DevSecOps は、ソフトウェア開発ライフサイクル (SDLC) の早い段階でセキュリティを導入するアプリケーション・セキュリティ (AppSec) プラクティスです。DevSecOps は、セキュリティ・チームをソフトウェアのデリバリ・サイクルに統合することで、開発チームと運用チームのコラボレーションを拡大します。これにより、セキュリティは共同責任となり、これらのコア機能グループ全体でカルチャー、プロセス、ツールの変更が必要になります。SDLC に関与するすべての人が、DevOps の継続的インテグレーションと継続的デリバリ(CI/CD) ワークフローにセキュリティを組み込む役割を担っています。
SDLC 全体に継続的にセキュリティを組み込むことで、DevOps チームは、迅速かつ高品質で安全なアプリケーションを提供できます。ワークフローにセキュリティを組み込むのが早ければ早いほど、セキュリティ上の弱点や脆弱性を特定して修正できるのが早くなります。この概念は、セキュリティ・テストを開発者側に移すことで、従来のようにサイクルの最後まで待つのではなく、開発中にコードのセキュリティ問題を修正できるため、「シフトレフト」と呼ばれることもあります。これとは対照的に、DevSecOps は、計画と設計からコーディング、構築、テスト、リリースまで、リアルタイムの継続的なフィードバック・ループと洞察を使用して、SDLC 全体にわたります。
簡単に言えば、DevOps とは、従来サイロ化されていたチーム間の障壁を取り除くことです。DevOps モデルでは、開発チームと運用チームが、開発とテストから展開と運用まで、ソフトウェア・アプリケーションのライフサイクル全体にわたって連携します。
DevOps は、組織文化、プロセス、テクノロジーの 3 つの柱からなるイデオロギーです。これら 3 つの柱はすべて、開発チームと IT 運用チームが協力して、従来のソフトウェア開発プロセスよりも迅速かつ俊敏で反復的な方法でソフトウェアを構築、テスト、リリースできるようにすることを目指しています。
According to The DevOps Handbook, “In the DevOps ideal, developers receive fast, constant feedback on their work, which enables them to quickly and independently implement, integrate, and validate their code, and have the code deployed into the production environment.”
現代のソフトウェア組織はほぼすべて、アジャイル・ベースの SDLC を使用して、アップデートや修正を含むソフトウェア・リリースの開発と配信を加速しています。DevOps と DevSecOps は、異なる目的でアジャイル・フレームワークを使用します。DevOps はアプリ配信のスピードに重点を置いていますが、DevSecOps は、可能な限り迅速に、可能な限り安全なアプリを配信することで、スピードとセキュリティを強化します。DevSecOps の目標は、安全なコードベースの迅速な開発を促進することです。
DevSecOps は、ビルドから本番環境まで、SDLC のあらゆる部分にセキュリティを統合します。DevSecOps では、セキュリティは DevOps バリュー・チェーンのすべての関係者の共同責任です。DevSecOps には、開発、リリース管理 (または運用)、およびセキュリティ・チーム間の継続的で柔軟なコラボレーションが含まれます。つまり、DevOps はスピードを重視し、DevSecOps はスピードにおけるセキュリティを重視します。
Synopsys の「世界のDevSecOps の現状 2023」レポートは、世界中の 1,000 人以上の IT プロフェッショナルを対象にした調査に基づいており、回答者の 53% がビジネス・クリティカルなアプリケーションのセキュリティを少なくとも週に 1 回テストし、31% が少なくとも毎日テストしていると報告しています。これは、DevOps ツールを使用した統合型自動セキュリティ・テストが標準になりつつあることを示しています。さまざまな業界の組織が DevSecOps を使用して開発、セキュリティ、運用間のサイロを解消し、開発速度とセキュリティを維持しています。
DevSecOpsは、以下の業界すべてに適用されます。
開発組織が最初からセキュリティを考慮してコードを作成すると、本番環境に展開される前やリリース後に、脆弱性を検出して修正するのがより簡単かつ低コストになります。
DevOps から DevSecOps に移行するメリットは次のとおりです。
DevSecOpsを実装するには、CI/CDプロセスに統合するさまざまなアプリケーション・セキュリティ・テスト(AST)ツールを検討する必要があります。一般的に利用されているASTツールの一部を以下に示します。
[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 の今日の最先端の AppSec ソリューションを使用すると、組織は開発チームのスピードを落とすことなく、セキュリティを簡単にシフトレフトできます。
Black Duck Polaris™ Platform は、統合されたクラウドベースのアプリケーション・セキュリティ・テスト・ソリューションであり、開発者を簡単にオンボードし、数分でコードのスキャンを開始できます。また、セキュリティ・チームは、数千のアプリにわたる AppSec テスト・アクティビティとリスクを一元的に追跡および管理して、パイプライン、チーム、ビジネス・ユニット全体で完全なセキュリティ・カバレッジを確保できます。
Black Duck は、開発者がリアルタイムで安全なコードを記述し、将来的にパイプラインの柔軟性を確保できるようにするための幅広い拡張機能とプラグインも提供しています。Code Sight™ は、IDE ベースの迅速なテストを提供するため、開発者はより安全なコードを記述し、ソフトウェアをダウンストリームにプッシュする前に脆弱なコンポーネントを修正できます。開発者は、IDE を離れることなく、セキュリティ上の不具合を迅速かつ正確に検出し、詳細な修正ガイダンスを表示できます。
Blak Duck GitHub Action、GitLab テンプレート、Azure DevOps 拡張機能、Jenkins プラグインは、テスト・サーバーへのシームレスな接続を確立し、開発者と DevOps チームが既存のワークフローにセキュリティ・テストを組み込むことを可能にします。これらのプラグインは、構成が完了すると、自動セキュリティ・チェックを実行し、開発者による追加の設定を必要とせずにポリシーとリスク許容度を適用します。
Polaris プラットフォームは、幅広いプラグインや拡張機能とともに、ビジネスに合わせて拡張および成長できる包括的で柔軟なソリューションを提供します。AppSec チームの制御と可視性を一元化し、開発者が既存のワークフロー内でセキュリティ・テストの洞察を活用できるようにすることで、開発中のソフトウェアが安全かつ効率的に展開されることを保証できます。