DevSecOpsにより、ソフトウェア開発ライフサイクル(SDLC)の早い段階でのセキュリティテストの統合が可能になります。これは、一般に「(セキュリティの)シフトレフト」と呼ばれます。DevSecOpsによりシームレスなアプリケーションセキュリティが、ソフトウェア開発ライフサイクルの早い段階で可能になりますが、これがサイクルの最後の方になると対策が必要な脆弱性の発見がより難しく、かつ実装がコストのかかるものになります。
DevSecOpsはDevOpsの拡張で、Secure DevOpsと呼ばれることもあります。DevOpsは、人や組織に応じて異なった意味を持つことがありますが、文化的また技術的な変更を伴うものです。理想的に言えば、セキュリティはDevOpsの成功への暗黙の要件です。
DevSecOpsには、開始時からアプリケーションとインフラストラクチャのセキュリティの計画が必要です。セキュリティ機能を備えた統合開発環境(IDE)を選択するという決定など、適切なツールの選択が、常に全体のセキュリティを保つという目標を達成する助けになります。ツールとプロセスはまた、DevOpsのワークフローが遅延しないようセキュリティゲートを自動化できなければなりません。

DevSecOpsのメリット
開発者は常にセキュリティを念頭に置いてコーディングするとは限りません。DevSecOpsメンタリティにより、開発者はソフトウェアとアプリケーションデリバリーパイプライン全体で自動化を強化することで、コーディングミスを排除し、最終的に侵害を減らすことができます。
チームがDevSecOpsのツールとプロセスを実装し、セキュリティをDevOpsフレームワークに組込めば、安全なソフトウェアをより迅速にリリースできます。開発者は、コードのセキュリティをテストし、セキュリティ上の欠点をそれが書かれた時点で検出できます。自動スキャンは、コードのチェックイン、ビルド、リリース、あるいはその他のCI/CDパイプラインの構成要素の中で起動できます。開発者がすでに使用しているツールと統合することで、開発チームはWebアプリケーション開発のセキュリティ面をより簡単に向上させることができます。
DevSecOpsの主要コンポーネントとは
DevSecOpsアプローチには、以下の3つの重要なコンポーネントがあります。
- アプリケーション/APIインベントリ
- ポートフォリオ全体のディスカバリ、プロファイリング、コードの継続監視を自動化します。これには、データセンター、仮想環境、プライベートクラウド、パブリッククラウド、コンテナ、サーバーレスなどで運用中のコードも含まれる場合があります。自動ディスカバリとセルフインベントリツールを組み合わせて用います。ディスカバリツールは、どのアプリケーションやAPIを所有しているか特定するために役立ちます。セルフレポートツールによって、アプリケーションが自らインベントリを行い、メタデータを中央データベースにレポートします。
- カスタムコードセキュリティ
- 開発、テスト、運用を通じて、ソフトウェアの脆弱性を継続的に監視します。コードのデリバリーを頻繁に行い、各コードアップデートで脆弱性をすばやく特定できます。
- Static Application Security Testing (SAST)は、アプリケーションソースファイルをスキャンして、内在するセキュリティの不具合を修正できるよう、根本原因を正確に突き止めます。
- Dynamic Application Security Testing (DAST)は、実行中のウェブアプリケーションまたはサービスで制御されている攻撃をシミュレートし、悪用されやすい脆弱性を実行環境で特定します。
- Interactive Application Security Testing (IAST)は、アプリケーション、そのインフラストラクチャ、依存性、データフローだけでなく、コードも継続的に分析するエージェントとセンサーを用いるアプリケーションを組み込むことで、しっかりとしたスキャンを行います。
- オープンソースセキュリティ
- オープンソースソフトウェア(OSS)はセキュリティの脆弱性を持っていることがよくあるため、完全なセキュリティ対策には、OSSライブラリを追跡し、脆弱性やライセンス違反をレポートするソリューションが含まれています。
- ソフトウェアコンポジション解析(SCA)は、リスク管理、セキュリティ、ライセンスのコンプライアンスの目的で、オープンソースソフトウェア(OSS)の可視性を自動的に得ます。
- ランタイム防止
- 稼働中のアプリケーションを保護 – 新しい脆弱性が検出される可能性があり、レガシーアプリケーションの開発は止まっている可能性があります。
- ログを取ることでどのようなタイプの攻撃ベクトルとシステムが標的にされているか分かります。脅威インテリジェンスで脅威モデリングとセキュリティアーキテクチャプロセスの情報を得られます。
- コンプライアンスモニタリング
- 文化的要因
- セキュリティチャンピオンを特定する、開発者向けのセキュリティトレーニングを策定する、など。
DevSecOpsを上手に役立たせるために
ステップ1:ソフトウェア要件へのセキュリティの組み込み
ステップ2:早期、頻繁、高速なテスト
ステップ3:統合機能の活用によるライフサイクルにおけるアプリケーションセキュリティの標準化
ステップ4:開発およびテストプロセスの一環としてのセキュリティの自動化
ステップ5:リリース後のモニタリングと保護
FortifyはDevOpsのセキュリティ構築をサポート
業界をリードするAppSecソリューション