DX推進のカギとなるDevSecOpsとは?実現させるためのポイントを詳しく解説

DevSecOpsはなぜ必要なのか?必要性や具体的なメリットを解説

DevSecOpsはなぜ必要なのか?必要性や具体的なメリットを解説

近年、DXを推進する体制として「DevSecOps(デブセックオプス)」の考え方に注目が集まっています。DevSecOpsとは、「DevOps」と「Security」を合わせた用語で、開発チームと運用チームが連携する「DevOps」に、Security(セキュリティ)を加えた概念です。

本記事では、DX推進のカギとなるDevSecOpsについて、基礎知識や実現させるためのポイント、DevSecOpsの進め方などを詳しく解説します。

1. DX推進の課題

近年、市場環境や顧客ニーズが急速に変化する中で、多くの企業がDXを推進しています。
DXを実現するための中核的な要素にシステム開発が位置付けられていますが、さまざまな課題からスムーズにシステム開発を進められない、という課題が顕在化しています。
ここでは、国内におけるDX推進の主な課題として以下の2点を解説します。

ソフトウェア開発手法がマッチしない

DXを推進するための重要な要素の一つが「システム開発」です。
近年では、技術革新やビジネスモデルの変化などに伴い、市場環境や顧客ニーズが目まぐるしく変わるようになりました。
そのため、従来の開発手法では、以下のような課題が発生するリスクがあります。

  • 開発サイクルが長くなる傾向があり、スピーディーに経営者や顧客からのニーズに対応できない
  • 仕様を固定して開発するため、ニーズの変化に対して柔軟にシステムを変更できない(対応可能でも変更コストが大きくなる場合が多い)
  • 旧来の技術で開発されたシステムは、新しい技術やツールとの統合が困難で、運用保守やアップデートコストが増加しがち
  • 開発スピードを重視すると、セキュリティ対策が疎かになる、もしくは工数が増える

戦略的なIT投資ができない

DX推進の必要性が高まる一方で、大半の日本企業がDX推進に向けた新規投資ができていないことも大きな課題です。経済産業省が発表した「DXレポート」※1では、短期的な視点でシステムを開発したことにより、結果的にシステムの保守・運用費が高騰し、技術的負債となっていることが挙げられています。これにより戦略的なIT投資がしづらく、多くの企業でDXを妨げる要因となっているのです。

このような背景から、DXを実現するには、現状を分析・評価し、システムを仕分けて、戦略的にシステム刷新する必要があります。そのうえで、頻繁に変更が発生するシステムでは、スピーディーで安全性の高いソフトウェア開発手法や、レガシーなシステムの刷新が求められます。そこで、DX推進のカギとして注目されているのが「DevSecOps」です。
なぜDevSecOpsが課題解決につながるのか、次章から詳しく解説していきます。

※1 出典:経済産業省「DXレポート

2. DevSecOpsとは

ここでは、DevSecOpsの基礎知識を解説します。

DevSecOpsの概要

DevSecOpsとは、「開発(Development)」と「運用(Operations)」を組み合わせた 「DevOps」に、「セキュリティ(Security)」を融合した考え方です。

DevOpsとは、開発チームと運用チームが協力してシステムを開発・運用することで、システム開発の信頼性や生産性を向上させる方法・考え方を指します。DevOpsによって得られる主なメリットは以下の3点です。

  • 開発期間を短縮し、リリースする頻度を高められる
  • 顧客ニーズに迅速に対応でき、高品質なサービスを継続的に届けられる
  • 高品質なサービスを提供し続けることで顧客満足度が向上し、競争力アップにもつながる

DX推進のためには、顧客ニーズに素早く対応し、開発をスピーディーに進める体制・基盤を構築する必要があります。「DevSecOps」の考え方を取り入れることで、市場変化や顧客ニーズに応じた柔軟かつセキュリティ面でも安心なシステム開発の土台を構築することが可能です。

また、スピーディーかつ堅牢な開発体制を構築できれば、レガシーな頻繁に変更が発生するシステムに注力でき、DXをスムーズに進められます。

DevOps との違い

DecSecOpsとDevOpsの違いは、セキュリティの観点をDevOpsの開発ライフサイクルに組み込んでいるかどうかです。なぜ、セキュリティの観点を組み込む必要があるかというと、以下の課題に関係があります。

  • 後工程のセキュリティテストで脆弱性が見つかった場合、修正に多大な手間と時間がかかる
  • アジャイル開発(計画から運用までの各サイクルを短期間で繰り返す手法)では、セキュリティ対策が疎かになるおそれがある
  • リリースをするたびに脆弱性テストが必要となるため、工数が増えて開発スピードが落ちる

前述した課題を解決するため、あらかじめセキュリティ対策を考慮した開発と運用のサイクルが求められるようになりました。このような背景から、開発プロセスの早い段階でセキュリティに関する問題に対応可能なDecSecOpsの考え方が登場し、注目を集めています。

3. DevSecOpsのメリット

DevSecOpsを導入することで、DevOpsの利点に加えて以下3つのメリットを得られます。

リリース後の脆弱性へのセキュリティ対策を継続的に実施し、早期に解消できる

DevSecOpsを実現すれば、開発段階で使用しているJavaやPythonなどのOSS(Open Source Software)の部品をきちんと把握し、リリース後の脆弱性発見にすばやく対応できるように備えることができます。

近年のサイバー攻撃は高度化・複雑化しており、すべての企業において、安全な運用を継続するためのセキュリティの確保が必須となっています。サービスリリース後にデータ漏洩などのセキュリティ事故が起これば、企業に多大な影響を及ぼします。サービスを一時的に停止せざるを得なくなったり、顧客や取引先に支障がでたり、社会的な信頼が低下したりするなど、さまざまな被害が生じるでしょう。

こうしたトラブルを回避するためにも、開発段階でリリース後のセキュリティリスクに備えるDevSecOpsの考え方は非常に重要です。近年では、ソフトウェアの部品をSBOM(ソフトウェア部品管理表)で管理することが求められています。

関連情報:ソフトウェア部品管理ソリューション

シフトレフトにより、セキュリティの脆弱性を早期に解消

DevSecOpsの土台となっているのは「シフトレフト(Shift Left)」です。シフトレフトとは、システム開発の早い段階で、テストやセキュリティ対策を実施するという考え方を指します。従来、システム開発でセキュリティ対策を実施するタイミングは、最終段階で行うのが一般的でした。シフトレフトでは、早期にセキュリティテストを実施し、いち早く脆弱性を発見・修正できます。

開発・運用・セキュリティチームで変化する市場に柔軟に対応

セキュリティチームも開発・運用チームに加わり、3チームが相互に協力し合うことになります。3チームのコミュニケーションを円滑に進めることで、顧客からの要望・フィードバックを迅速に取り入れられるほか、変化する市場にも柔軟に対応できるでしょう。

4.日本のDevSecOpsの活用状況について

日本は、米国などの諸外国と比較すると、DevSecOpsの活用が進んでいないのが現状です。IPAの「DX白書2023」※2では、「ITシステムの開発手法・技術の活用状況(開発手法)」において、DevSecOpsを「全社的に活用している」と回答した企業は1.7%、「事業部で活用している」と回答した企業は7.4%しかありません。また「この手法・技術を知らない」と回答した企業は38.9%となっています。

一方、米国ではDevSecOpsを「全社的に活用している」と回答した企業が25.4%、「事業部で活用している」と回答した企業が27.5%です。この調査結果から、日本ではDevSecOpsの考え方や手法がまだまだ浸透していないことがわかります。日本はマイクロサービスやコンテナなどの技術を活用する企業も1割から2割程度しかなく、新しい開発技術の活用に遅れをとっています。

※2 資料名:IPA、「DX白書2023」、図表1-29から30

5. DevSecOpsの実現に必要な4つの分野

DevSecOpsを実現するためには、組織、プロセス、技術、ガバナンスの4つの分野すべてに取り組んでいくことが重要です。米国の国防総省が発表した「DoD Enterprise DevSecOps Reference Design」※3を参考にまとめました。

組織

DevSecOpsを組織に取り入れるためには、組織体制を見直したうえで、開発作業やセキュリティ対策に取り組まなければなりません。以下のステップで、DevSecOpsを実現できる組織体制を構築していきましょう。

  1. DevSecOpsの重要性を理解してもらうための教育
    DevSecOpsには多くのメリットがありますが、組織内には従来から行ってきたシステム開発のやり方を変えたくない人や、変化することを手間に感じる人も一定数いるものです。そのため、まずは組織全体にDevSecOpsの原則や実現する方法を理解してもらえるよう、継続的な教育を実施していきましょう。DevSecOpsで企業のビジネスを発展させていくためには、組織全体がDevSecOpsの重要性を理解したうえで取り組む必要があります。
  2. チームごとの役割を明確にする
    セキュリティチームにセキュリティ対策を一任するのではなく、開発に関わるメンバー全員の責任という考えのもとで、開発から運用までの各工程における責任を分担しましょう。加えて、セキュリティに関する脆弱性を発見した際、即時に対応するための体制や、実施したセキュリティ対策をフィードバックする流れ・手順も決めていきます。
  3. DevSecOpsの効果に関する評価・改善を定期的におこなう
    DevSecOpsの効果を確認するために、指標やKPIなどを設定して定期的な評価・改善を実施しましょう。評価・改善を繰り返すことで、開発・運用・セキュリティの各チームが連携し、協力し合う文化を醸成できます。また、開発・運用・セキュリティチームが共通のツールを利用すれば、効率的なコミュニケーションが可能となり、より強固な協力体制を構築できるでしょう。

プロセス

DevSecOpsを実現させるためには、チームで共同開発を行い、継続的にシステムを改善しなければなりません。システム開発の各工程でテスト・改善を繰り返すことで生産性が向上し、高品質な成果物を作れます。たとえば、ツールやテクノロジーを導入し、各工程をより効率的に進められるか、自動化できないかなどを多角的に検討しましょう。自動化を進められれば、それまで人手で行ってきた作業が不要となり、別の作業に専念できるようになります。

加えて、開発途中やリリース直前にセキュリティの脆弱性を発見した場合には、なぜ脆弱性があったのか、どのような対策を実施すれば再発しないのかを考えることが重要です。

技術

DevSecOpsは、ソフトウェアやツールなどの活用が不可欠です。顧客やビジネスのニーズに柔軟かつ迅速に対応するためには、最新のソフトウェアやツールのトレンドを押さえておく必要があります。また、どのような技術を取り入れれば効率的に開発を進められるのかも検討するとよいでしょう。

DevSecOpsを進める際によく活用されている技術は、以下のとおりです。

  • クラウドやコンテナなどの最新技術
  • 開発作業を自動化するCI/CD(継続的インテグレーション/継続的デリバリー)
  • コンプライアンスチェックや監査を自動化する「Security as Code」
  • インフラ環境の構築や管理業務を自動化する「Infrastructure as Code」

これらの技術を導入すれば、インフラ環境やセキュリティ環境の構築を自動化でき、作業の効率化やコスト削減につながります。人の手による作業が少なくなることで、人的なミスも減らせるでしょう。

ガバナンス

ガバナンスの構築も、DevSecOpsの実現に欠かせない要素の一つです。統一されたポリシーを適用することで、組織全体に一貫した理念を共有でき、ガバナンス強化につながります。また、ガバナンスの視認性を高めることで、より安全なシステムの開発・運用を実現できるでしょう。

6. DevSecOpsを実現させるためのポイント

DevSecOpsを実現させるためには、以下のポイントも押さえておくことが重要です。

メンバーのスキル・経験をもとにチームを編成する

各チームのメンバーを編成する際には、ベテランと経験が浅いメンバーを一緒にするなど、メンバー一人ひとりのスキル・経験年数を加味し、バランス良く配置する必要があります。まずは、既存メンバーがどのようなスキルを持っているのか、今後どのようなスキルを身につけるべきか、リーダシップがあるのかなどを、客観的な視点で評価しましょう。

開発チーム・運用チーム・セキュリティチームの協力体制を構築する

メンバー編成が完了したら、開発部門・運用部門・セキュリティチームの連携を深めていきましょう。DevSecOpsの体制ではチームごとに役割があり、行うべき業務も異なりますが、お互いのチームの仕事内容を把握して助け合う姿勢が大切です。たとえば、開発担当者が運用チームの仕事に部分的に関わったり、運用担当者が開発を進めるうえでのセキュリティポリシーの策定に関わったりなど、状況に応じてお互いの業務をサポートできるような体制づくりが求められます。

また、他チームのメンバーとコミュニケーションを取るなかで、各チームの仕事の大変さなども理解できるでしょう。3チームが一体となり、協力し合う体制を構築できれば、迅速かつ効率的なシステム開発を実現できます。

KPIの設定

DevSecOpsを実践する際は、「KPI」を設定するのがおすすめです。DevSecOpsを組織に定着させるには長い期間を要します。そのため、運用ルールとしてKPIの測定と振り返りを行うことが大切です。たとえば、以下のような項目を指標にするとよいでしょう。

  • セキュリティテストで発見された異常や脆弱性の数
  • 異常や脆弱性が発生してから検知するまでの平均時間
  • 異常や脆弱性が検知されてから解決するまでの平均時間
  • セキュリティテストやセキュリティ監視の自動化率
  • 実際の運用環境やデプロイメントにて生じた問題やバグの数
  • 期間ごとにリリースされる機能や修正数
  • 新しい機能や修正を行う場合、コードが実装・リリースされるまでの平均時間

これらの指標を定期的に観測すれば、日頃から数字を意識して業務に取り組めるようになります。チーム単位で目標を設定し、チームのパフォーマンスを可視化する方法もおすすめです。

KPIによって評価できる仕組みを整えておくことで、メンバー一人ひとりが失敗を恐れず、主体性をもって改善案を提案したり、生産性向上につながる施策を考えたりできるでしょう。

開発・運用のサイクルを停滞させないようにする

DevSecOpsでは、セキュリティの脆弱性への迅速な対応が必要ですが、開発・運用の生産性を落とさないように注意しなければなりません。開発作業の中心はあくまで開発・運用であるため、開発・運用のサイクルが停滞してしまうと品質が下がったり、リリースが遅れたりするなど、さまざまなトラブルにつながります。

対策方法としては、開発・運用の一部の工程を自動化したり、ツールを活用して負担を軽減したりする方法がおすすめです。また、開発を進める際のルールや組織体制を整備しておくことで、セキュリティ対策に追われている状況でも慌てることなく、開発・運用のサイクルを進められるでしょう。

土台となるソフトウェア、ツールの導入

DevSecOpsを実現させるためには、継続的な改善と迅速なリリースを実現できるソフトウェア・ツールが重要です。たとえば、以下のようなソフトウェア・ツールが役立ちます。

  • CI/CDツール
    CI/CDツールは迅速な開発作業に大きく貢献します。「GitHub」や「GitLab」、「Bitbucket」、「Jenkins」などが代表的です。
  • コンテナ化・オーケストレーションツール
    「Docker」や「Kubernetes」は、世界中の企業で活用されているコンテナ化・オーケストレーションツールです。Dockerは、アプリケーションをコンテナとしてパッケージ化でき、Kubernetesではコンテナ管理の自動化が可能となります。
  • 構成管理ツール
    構成管理ツールは「Terraform」や「Ansible」、「Puppet」、「Chef」などを導入する企業が多く見られます。
  • セキュリティツール
    「Coverity」、「Blackduck」などのセキュリティツールが活用できます。セキュリティ管理の手間を省き、ヒューマンエラーを防ぐことが可能です。

DevSecOpsの土台となるソフトウェア・ツールを導入することで、DXを推進しやすくなるでしょう。

関連情報:開発支援サービス/開発支援ツールのご紹介
関連情報:HashiCorp(ハシコープ)社製品       
関連情報:DevOps|アジャイル開発支援ツール アトラシアン(Atlassian)社製品」       
関連情報:DevOps推進ソリューション       
関連情報:デジタルソリューション創出プラットフォーム

開発メンバー全員が共通のセキュリティ意識を持つ

開発・運用・セキュリティチームの全員が共通のセキュリティ意識を持つことも、DevSecOps実現のための重要なポイントです。セキュリティに関する責任者を任命し、必要な意思決定を行います。責任者を立てることで、企業全体におけるセキュリティへの取り組みが進み、セキュリティ意識のさらなる向上につながるでしょう。

また、各メンバーでセキュリティ意識にバラつきがあると、チーム全体での開発スピードや品質を両立させることが難しくなります。そのため、セキュリティに対する共通の意識を浸透させる取り組みも欠かせません。たとえば、セキュリティに関する情報や成功事例・失敗事例を、メンバー間で共有できる場を提供することが効果的です。チーム全体で同じセキュリティポリシーやガイドラインなどの基準にしたがって開発を進めることで、開発段階からセキュリティを確保できます。さらに、定期的にKPIを評価し、問題点や改善の余地を見つけて、チーム全体のセキュリティ意識を適切な方向へと導くことも重要です。

DevSecOpsには、セキュリティ品質に関する絶対的な基準は存在しません。そのため、前述したように、チームメンバーが自由に意見交換できる環境を整えるなど、さまざまなアプローチを通じて共通認識を形成していきましょう。

7. まとめ

DXを推進するためには、顧客ニーズや市場変化に、迅速かつ柔軟に対応することが重要です。そのためには、ソフトウェア開発環境・プラットフォームの導入・活用が欠かせません。
DevSecOpsは、顧客ニーズや市場変化に素早く対応するために重要な考え方です。アプリケーションの品質を向上させられるほか、セキュリティリスクや脆弱性に対して開発段階で対処できるメリットもあります。

日本において、DevSecOpsはまだまだ浸透していないのが現状です。しかし、今後DXを推進するためには、スピーディーにシステムを構築でき、セキュリティ対策も意識したDevSecOpsの考え方が重要となります。DXを推進し、ビジネスのさらなる発展を実現させるためにも、DevSecOpsの考え方を自社に取り入れてみてください。

最終更新日:2023年10月31日