Definition

DevSecOps は、ソフトウェア開発ライフサイクル (SDLC) の早い段階でセキュリティを導入するアプリケーション・セキュリティ (AppSec) プラクティスです。DevSecOps は、セキュリティ・チームをソフトウェアのデリバリ・サイクルに統合することで、開発チームと運用チームのコラボレーションを拡大します。これにより、セキュリティは共有責任となり、これらのコア機能グループ全体でカルチャー、プロセス、ツールの変更が必要になります。SDLC に関与するすべての人が、DevOps の継続的インテグレーションと継続的デリバリ(CI/CD) ワークフローにセキュリティを組み込む役割を担っています。

SDLC 全体に継続的にセキュリティを組み込むことで、DevOps チームは、迅速かつ高品質で安全なアプリケーションを提供できます。ワークフローにセキュリティを組み込むのが早ければ早いほど、セキュリティ上の弱点や脆弱性を、より早い段階で特定して修正できます。この概念は、セキュリティ・テストを開発者側に移すことで、従来のようにサイクルの終わりまで待つことなく開発中にコードのセキュリティ問題を修正できるため、「シフトレフト」と呼ばれることもあります。そして、DevSecOps は、計画と設計からコーディング、構築、テスト、リリースまで、リアルタイムの継続的なフィードバック・ループと知見を用いて、SDLC 全体を対象としています。

DevSecOpsはDevOpsとどう違うのですか?

簡単に言えば、DevOps とは、従来サイロ化されていたチーム間の壁を取り除くことです。DevOps モデルでは、開発チームと運用チームが、開発とテストから、さらにデプロイから運用まで、ソフトウェア・アプリケーションのライフサイクル全体にわたって連携します。

DevOps は、組織の文化、プロセス、テクノロジーの 3 つの柱からなる思想です。これら 3 つの柱はすべて、開発チームと IT 運用チームが協力して、従来のソフトウェア開発プロセスよりも迅速に、アジャイルかつ反復的な方法でソフトウェアを構築、テスト、リリースできるようにすることを目指しています

DevOps ハンドブックによれば、「理想的な DevOps では、開発者は作業に関するフィードバックを迅速かつ継続的に受け取り、コードを迅速かつ独立して実装、統合、検証し、コードを本番環境に展開できます。」


現代のソフトウェア組織はほぼすべて、アジャイル・ベースの SDLC を使用して、アップデートや修正を含むソフトウェア・リリースの開発と配信を加速しています。DevOps と DevSecOps は、異なる目的でアジャイル・フレームワークを使用します。DevOps はアプリ配信のスピードに重点を置いていますが、DevSecOps は、可能な限り迅速に、可能な限り安全なアプリを配信することで、スピードとセキュリティを高めます。DevSecOps の目標は、安全なコードベースの迅速な開発を促進することなのです。

DevSecOps は、ビルドから本番環境まで、SDLC のあらゆる部分にセキュリティを統合します。DevSecOps では、セキュリティは DevOps バリュー・チェーンのすべての関係者の共同責任です。DevSecOps には、開発、リリース管理 (または運用)、およびセキュリティ・チーム間の継続的で柔軟なコラボレーションが含まれます。つまり、DevOps はスピードを重視し、DevSecOps はスピードを重視したセキュリティに重点を置いています。


DevSecOpsが重要な理由

Black Duck の「世界のDevSecOps の現状 2023」レポートは、世界中の 1,000 人以上の IT プロフェッショナルを対象にした調査に基づいており、回答者の 53% がビジネス・クリティカルなアプリケーションのセキュリティを少なくとも週に 1 回テストし、31% が少なくとも毎日テストしていると報告しています。これは、DevOps ツールを使用した統合型自動セキュリティ・テストが標準になりつつあることを示しています。さまざまな業界の組織が DevSecOps を使用して開発、セキュリティ、運用チーム間のサイロを解消し、開発のスピードとセキュリティを維持しています。

DevSecOpsは、以下の業界すべてに適用されます。

  • 自動車業界: DevSecOps は、MISRA や AUTOSAR などのソフトウェア・コンプライアンス標準が確実に満たされるようにしながら、長いサイクルタイムを短縮します。
  • 医療業界: DevSecOps は、HIPAA などの規制に従って機密性の高い患者データのプライバシーとセキュリティを維持しながら、デジタル・トランスフォーメーションの取り組みを可能にします。
  • 金融、小売、eコマース: DevSecOps は、OWASP Top 10 Web アプリケーション・セキュリティ・リスクに対処し、トランザクションの PCI DSS データ・プライバシーとセキュリティ・コンプライアンスを維持するのに役立ちます。
  • 組み込み、ネットワーク、専用機、コンシューマー、IoT デバイス: DevSecOps により、開発者は CWE Top 25 の最も危険なソフトウェア・エラーの発生を最小限に抑える安全なコードを作成できます。

 

 


DevSecOps の利点は何ですか?

開発組織が最初からセキュリティを考慮してコードを作成すると、本番環境へ展開する前やリリース後に、脆弱性の検出と修正が、より簡単で低コストで済むようになります。

DevOps から DevSecOps に移行するメリットは次のとおりです。

  • 問題を早期に発見: 問題が SDLC のさらに後の工程に進む前に発見することで、問題が本番環境に残ってしまう可能性を減らします。
  • 問題をより早く解決: ポリシーによるテストとオーケストレーションの自動化を、セキュリティ・チームと開発チーム間の閉じたフィードバック・ループと組み合わせると、チームは発見されたノイズを排除し、効率的に優先順位を付け、修復を迅速化できます。
  • 攻撃の機会を低減: 検出から修復までの時間を短縮することは、悪意のある攻撃者がアクセスする機会が大幅に減少することを意味します。
  • 拡張性の向上: 開発パイプラインにテストを統合し、自動化されたポリシーで管理することで、開発速度を犠牲にすることなく、スケールアップまたはスケールダウンする柔軟性が得られます。

DevSecOpsで用いられるAppSecツール

DevSecOpsを実装するには、CI/CDプロセスに統合するさまざまなアプリケーション・セキュリティ・テスト(AST)ツールを検討する必要があります。一般的に利用されているASTツールの一部を以下に示します。

 

  • 静的アプリケーション・セキュリティ・テスト(SAST):SASTツールは、独自開発コードやカスタム・コードをスキャンして、コーディング・エラーや、悪用可能な弱点につながる設計上の欠陥を検出します。SASTツールは、主にSDLCのコーディング、ビルド、開発の各段階で使用します。Coverity®は、そうしたSASTツールの1つです。
  • ソフトウェア・コンポジション解析(SCA):Black DuckなどのSCAツールは、ソースコードやバイナリをスキャンして、オープンソースおよびサードパーティーのコンポーネントの既知の脆弱性を特定します。また、セキュリティとライセンスのリスクに関する知見を提供し、優先順位付けと修正の取り組みを加速します。さらに、CI/CDプロセスにシームレスに統合して、ビルドの統合から実稼働前のリリースまで、新しいオープンソースの脆弱性を継続的に検出できます。
  • インタラクティブ・アプリケーション・セキュリティ・テスト(IAST):IASTツールは、手動または自動機能テスト中にバックグラウンドで動作し、Webアプリケーションの実行時の動作を解析します。たとえば、Seeker IASTツールはインストルメンテーションを用いてアプリケーションの要求/応答のやり取り、動作、データフローを監視します。実行時の脆弱性を検出し、自動的に結果を再生してテストし、発生したコード行までの詳細な洞察を開発チームに提供します。これにより、開発チームは重要な脆弱性に時間と労力を集中させることができます。
  • 動的アプリケーション・セキュリティ・テスト(DAST):DASTは、ハッカーがWebアプリケーションやAPIを操作する方法を模倣する自動ブラックボックス・テスト技術です。この手法では、ペネトレーション・テストの場合とほぼ同様に、アプリケーションのクライアント側レンダリングを調べ、ネットワーク接続を介してアプリケーションをテストします。[5] DASTツールでは、スタックをスキャンするためにソースコードやカスタマイズにアクセスする必要がありません。Webサイトとやり取りして、低い誤検知率で脆弱性を発見します。たとえば、Black Duck DASTツールは、モバイル・バックエンド・サーバー、IoTデバイス、RESTful APIまたはGraphQL APIなどのWeb接続デバイスを含む、WebアプリケーションおよびAPIの脆弱性を特定します。[6]

 

[1] https://www.csoonline.com/article/3245748/what-is-devsecops-developing-more-secure-applications.html

[2] https://itrevolution.com/the-devops-handbook/

[3] https://blogs.cornell.edu/react/devops-vs-devsecops-what-is-the-difference/

[4] https://enterprisersproject.com/article/2018/1/why-devsecops-matters-it-leaders

[5] https://jaxenter.com/dast-devops-166973.html

[6] https://www.channele2e.com/investors/exits/synopsys-buys-tinfoil-security/

DevSecOps の課題は何ですか?

DevSecOps の導入を開始する際、組織にいくつかの課題がもたらされる可能性があります。ソフトウェア開発には、独自の運用方法と開発方法を持つフレームワーク、言語、アーキテクチャなど、さまざまなテクノロジが関係します。このため、セキュリティ・チームが求めるスピードで継続的にテストおよび監視することが困難になる可能性があります。

これらの開発ツールやテクニックを、不適切に構成されたセキュリティ・テスト・メカニズムと組み合わせると、容易にパイプラインが脆弱になる可能性があります。脆弱なパイプラインは、一部が故障したり自動化が失敗したりすると、破損する可能性があります。セキュリティ・チームが、複雑で時間がかかる可能性のあるトリガーされたすべてのイベントとそれらを制御するポリシーの管理に失敗した場合、残念ながらこのような結果になる可能性が高くなります。

最後に、リスクはパイプラインのどこにでも発生する可能性があるため、パイプライン内で発生する新しい問題をできるだけ早く検出できるように、ソフトウェア開発プロセス全体にわたってセキュリティ チェックを実装することが重要です。ただし、上記の複雑な条件や、分散開発や DevSecOps の組織的なニュアンスから生じる可視性と優先順位の障害により、チームが必要なさまざまなセキュリティ チェックを調整および管理することは困難になります。

Black Duck は DevSecOps の実装にどのように役立ちますか?

DevSecOps モデルへの移行は複雑である必要はありません。Black Duck の今日の最先端の AppSec ソリューションを使用すると、組織は開発チームのスピードを落とすことなく、セキュリティを簡単にシフトレフトできます。

Black Duck Polaris™ Platform は、統合されたクラウドベースのアプリケーション・セキュリティ・テスト・ソリューションであり、開発者を簡単にオンボードし、数分でコードのスキャンを開始できます。また、セキュリティ・チームは、数千のアプリにわたる AppSec テスト・アクティビティとリスクを一元的に追跡および管理して、パイプライン、チーム、ビジネス・ユニット全体で完全なセキュリティ・カバレッジを確保できます。

Black Duck は、開発者がリアルタイムで安全なコードを記述し、将来的にパイプラインの柔軟性を確保できるようにするための幅広い拡張機能とプラグインも提供しています。Code Sight™ は、IDE ベースの迅速なテストを提供するため、開発者はより安全なコードを記述し、ソフトウェアをダウンストリームにプッシュする前に脆弱なコンポーネントを修正できます。開発者は、IDE を離れることなく、セキュリティ上の不具合を迅速かつ正確に検出し、詳細な修正ガイダンスを表示できます。

Blak Duck GitHub Action、GitLab テンプレート、Azure DevOps 拡張機能、Jenkins プラグインは、テスト・サーバーへのシームレスな接続を確立し、開発者と DevOps チームが既存のワークフローにセキュリティ・テストを組み込むことを可能にします。これらのプラグインは、構成が完了すると、自動セキュリティ・チェックを実行し、開発者による追加の設定を必要とせずにポリシーとリスク許容度を適用します。

Polaris プラットフォームは、幅広いプラグインや拡張機能とともに、ビジネスに合わせて拡張および成長できる包括的で柔軟なソリューションを提供します。AppSec チームの制御と可視性を一元化し、開発者が既存のワークフロー内でセキュリティ・テストの知見を活用できるようにすることで、開発中のソフトウェアが安全かつ効率的に展開されることを保証できます。

- This glossary was reviewed by Masato Yoshii.

DevOpsにセキュリティを組み込む方法をご紹介します