アプリケーション・ソフトウェア開発サイクルでの継続的なコンプライアンスの実現
DevSecOps を活用し、エンタープライズ・アプリケーション開発ライフサイクルの各フェーズでセキュリティの統合を自動化することで、セキュリティ問題が発生したときに対処し、修正を簡単、迅速、低コストで行うことができる。 DevSecOps Application Lifecycle Managementの デプロイ可能なアーキテクチャを使用することで、 DevSecOps, を使用する2つの主な利点であるスピードとセキュリティを活用することができます。
開発サイクル全体を通して、コードの検討、スキャン、およびセキュリティー問題のテストが行われます。 この統合されたセキュリティーにより、チームは早期に問題をキャッチでき、重複したレビューや不要な再ビルドを減らすことができます。これにより、よりセキュアなコードがより迅速に配信されます。 DevSecOps、脆弱性スキャンとパッチ適用が開発およびリリースサイクルに統合されるにつれて、一般的な脆弱性と暴露(CVE)を特定し、パッチを適用する能力が向上している。 これにより、脅威アクターが公開されている実動システムの脆弱性を利用するための時間枠が制限されます。 さらに、実稼働環境でのアプリケーションの定期的なスキャンに対する継続的なコンプライアンスも含まれます。
自動化されたスキャンおよびテストを実装することにより、組み込まれたソフトウェア依存関係が適切なパッチ・レベルであることを確認し、ソフトウェアがセキュリティー・ユニット・テストに合格していることを確認することができます。 さらに、静的分析と動的分析を使用して、セキュリティーに関するコードのテストと検証を行うことができます。 スキャン結果のエビデンスは、変更が実稼働環境にプロモートされる前に、自動化された変更管理プロセスの一部として安全に保管、収集、および要約されます。
IBM Cloud DevSecOps ツールを使用することで、アプリケーション開発ライフサイクルの安全性を確保するために不可欠なステップの概要を、以下のセクションで確認してください。
セキュア・ソフトウェア開発アーキテクチャーのセットアップ
DevSecOps Application Lifecycle Management のデプロイ可能なアーキテクチャは、継続的インテグレーション(CI)、継続的デプロイメント(CD)、継続的コンプライアンス(CC)のツールチェーンテンプレートのセットを使用することで、セキュアなソフトウェアサプライチェーンのセットアッププロセスを合理化します。 これらのテンプレートは、アプリケーションのビルド、スキャン、テスト、変更管理、デプロイのために、ツール統合とカスタマイズ可能なリファレンスTektonパイプラインのコレクションを使用します。
Tekton パイプラインはカスタム・スクリプトのフレームワークを提供します。これを使用すると、コード変更および構成変更のオーケストレーションを、コンプライアンスを確保しながら自動化することができます。 パイプラインは、監査可能な変更要求を生成するために使用できるエビデンスを収集して保管する一方で、 GitOps リリース・インベントリーを保守します。 さらに、継続的コンプライアンス・パイプラインは、デプロイされた成果物および関連するソース・コード・リポジトリーを定期的にスキャンして、脆弱性がないか確認します。
ニーズに合わせて配置可能なアーキテクチャを構成する方法の詳細については、 DevSecOps 配置ガイドを 参照してください。 プロジェクト を使用して、このアーキテクチャーをすべてのアプリケーション開発環境にデプロイすることができます。これにより、開発チームは、セキュリティー・リスクと機密漏れを早期に特定して、コードが実動に到達する前に対処できるように、シフト・レフト・アプローチを取ることができます。
CC パイプラインへの継続的なコンプライアンスの確保
CI/CD パイプラインは、コードが実動にプッシュされる前に、チームが開発するアプリケーション・コードがセキュアであり、脆弱性がないことを確認します。 コードが実動に到達したら、CC パイプラインを使用して実動コードを継続的にスキャンし、新しい脆弱性がないか調べることができます。 CC パイプライン は、トリガーを使用して手動または定期的にトリガーすることができます。
CC パイプラインは、デプロイメント・スケジュールに関係なく、既存のデプロイ済み成果物とそのソース・リポジトリーをスキャンします。 これは、アプリケーション・ソース・コードに対して静的スキャンおよび動的スキャンを実行し、 Git リポジトリー、部品構成表 (BOM) チェック、 CIS チェック、および Vulnerability Advisor ・スキャンでシークレットを検出します。
監査に対応するための問題の管理と証拠の収集
成果物およびソース・リポジトリーをスキャンしてチェックを実行した後、パイプラインは、インシデント・リポジトリー内に新しいインシデントの問題を作成するか、既存のインシデントの問題を更新します。 最後に、これらの問題と結果を使用して、パイプラインはエビデンスを収集し、エビデンスを要約します。
CI パイプラインおよび CC パイプラインから報告される問題には、インシデントの問題と非インシデントの問題の 2 つのタイプがあります。 インシデントの問題は、コード内またはデプロイされたアーティファクト内で検出された脆弱性または CVE が原因で発生する可能性があり、非インシデントの問題は脆弱性から発生するのではなく、コンプライアンス状況からの逸脱 (単体テストの失敗やブランチ保護チェックの失敗など) を表します。 問題の管理について詳しくは、 インシデントおよび非インシデントの問題の処理 および インシデントの問題の管理 を参照してください。
コンプライアンス・エビデンスは、コンプライアンス監査中に監査人が探す証跡を作成する。 DevSecOps の目標のひとつは、監査可能な変更要求と耐久性のある証拠品ロッカーにおける証拠の自動生成と保管である。 詳しくは、 エビデンス を参照してください。