DevSecOpsにより、ソフトウェア開発ライフサイクル(SDLC)の早い段階でセキュリティテストの統合が可能になります。 これは一般的に「セキュリティのシフトレフト」または「シフトレフト」と表現されます。DevSecOpsによりシームレスなアプリケーションセキュリティが、緩和が必要な脆弱性の発見が難しく、かつ実装が高価になるソフトウェア開発ライフサイクルの終わりではなく、早い段階で可能です。
DevSecOpsはDevOpsの拡張で、時に、セキュアなDevOpsとも呼ばれます。 DevOpsは異なる業務に携わる人や組織には別のものを意味することもありますが、文化的また技術的な変更を伴います。 理論的に言えば、セキュリティは滞りないDevOpsの暗黙の要件を指します。
DevSecOpsには、開始時からアプリケーションとインフラストラクチャのセキュリティの計画が必要です。 適切なツールが、セキュリティ特性を備えた統合開発環境(IDE)を選択するといった決定など、常に整合性のとれたセキュリティの目標に達成するサポートになります。 ツールとプロセスはまた、DevOpsのワークフローが遅延しないようにセキュリティゲートを自動化できなければなりません。
DevSecOpsのメリット
DevSecOpsはソフトウェアデリバリのパイプラインを通して自動化を強化し、コーディングのミスをなくし、最終的には侵害を削減します。
セキュリティをDevOpsフレームワークに組込むためにDevSecOpsのツールとプロセスを実装するチームは、安全なソフトウェアをより迅速にリリースできます。 開発者はセキュリティのため、コードをテストして、コードが書かれた時点でセキュリティ上の欠点を検出できます。 チームは既存の開発ツールを使用して、ウェブアプリケーション開発のセキュリティ面を向上させることができるはずです。
DevSecOpsの主要コンポーネント
DevSecOpsアプローチには、3つの重要なコンポーネントがあります。
- アプリケーション/API インベントリ
- ポートフォリオ全体のディスカバリ、プロファイリング、コードの継続監視を自動化します。 これには、データセンター、仮想環境、プライベートクラウド、パブリッククラウド、コンテナ、サーバレス、その他の運用中のコードも含まれる場合があります。 自動ディスカバリとセルフインベントリツールを組み合わせて用いています。 ディスカバリツールは、どのアプリケーションやAPIを所有しているか特定するために役立ちます。
セルフレポートツールはアプリケーションが自らインベントリを行い、メタデータを中央データベースにレポートします。
- カスタムコードセキュリティ
- 開発、テスト、運用を通して、ソフトウェアの脆弱性を絶えず監視します。 コードのデリバリを頻繁に行い、各コードアップデートで脆弱性をすばやく特定できます。
- Static Application Security Testing(SAST)は、アプリケーションソースファイルをスキャンして、内在するセキュリティの不具合の根本原因を正確に突き止め、修正します。
- Dynamic Application Security Testing(DAST)は、実行中のウェブアプリケーションまたはサービスで制御されている攻撃をシミュレートし、悪用されやすい脆弱性を実行環境で特定します。
- Interactive Application Security Testing(IAST)は、継続的にアプリケーション、そのインフラストラクチャ、依存性、データフローだけでなく、またコードも分析するエージェントとセンサーを用いてアプリケーションを組み込むことでしっかりとしたスキャンを行います。
- オープンソースセキュリティ
- オープンソースソフトウェア(OSS)はセキュリティの脆弱性を持っていることがよくあるため、完全なセキュリティ対策には、OSSライブラリを追跡し、脆弱性やライセンス違反をレポートするソリューションが含まれています。
- ソフトウェアコンポジション解析(SCA)は、リスク管理、セキュリティ、ライセンスのコンプライアンスの目的で、オープンソースソフトウェア(OSS)の可視性を自動化します。
- ランタイム防止
- 稼働中のアプリケーションを保護 – 新しい脆弱性は検出されるかもしれませんし、レガシーアプリケーションは開発されないかもしれません。
- ログをとることでどのようなタイプの攻撃ベクターとシステムが標的にされているか分かります。 脅威インテリジェンスで脅威モデリングとセキュリティアーキテクチャプロセスの情報を得られます。
- ランタイムアプリケーション自己保護セキュリティ(RASP)はアプリケーションを組込み、内部から直接的に攻撃を計測し、その内部で悪用を防ぎます。
- コンプライアンスモニタリング
- 文化的要因
- セキュリティチャンピオンを特定する、開発者向けのセキュリティトレーニングを策定する、など。
DevSecOpsを上手に役立たせるために
ステップ1: ソフトウェア要件にセキュリティを構築する
ステップ2: 早期段階で頻繁かつ迅速にテストする
ステップ3: 統合を活用してアプリケーションセキュリティをライフサイクルの必然のものとする
ステップ4: セキュリティを開発とテストプロセスの一部にする
ステップ5: リリースしたら監視して保護する
FortifyはDevOpsのセキュリティ構築をサポート
- 開発者にとっての使いやすさ
- CI/CDパイプラインの自動化
- Fortify Static Code AnalyzerによるSAST
- Fortify WebInspectによるDAST
- Fortify Application DefenderによるRASP
- Sonatype and Fortifyによるソフトウェアコンポジション解析(SCA)/ オープンソースセキュリティ(OSS)
- アプリケーションセキュリティを拡張