ソフトウェアコンポジション分析チェックをパイプラインに統合する

完了

セキュリティ スキャンは、メンバーが他のグループにほとんど関与していなかった専用のセキュリティ チームによって、リリースごとに 1 回完了したアクティビティと考えられていたものです。

このプラクティスでは、開発者がソフトウェア製品をリリースする最も負荷が高いタイミングで、セキュリティ スペシャリストが大量の問題を検出する危険なパターンが作成されます。

多くの場合、この負荷により、製品のリリース後に対処する必要があるセキュリティ脆弱性を含むソフトウェアの展開が発生し、開発パスに沿って複数のポイントでチームのワークフローにスキャンを統合します。 セキュリティで保護された DevOps は、セキュリティ、継続的、自動化など、すべての品質保証アクティビティを行うのに役立ちます。

pull request のコード スキャン分析の統合。

DevOps チームは、プル要求 (PR) を使用して、提案された変更をアプリケーションの (メイン) コードベースに送信できます。 新しい問題が発生しないようにするには、開発者は PR を作成する前に、コードの変更の影響を確認する必要があります。 通常、PR は DevOps プロセスの小さな変更ごとに行われます。 メイン コードベースを最新の状態に保つために、変更はメイン コードベースと継続的にマージされます。 理想的には、開発者は PR を作成する前にセキュリティの問題を確認する必要があります。

PR 中にスキャンを統合するのに役立つ Azure Marketplace 拡張機能は次のとおりです。

  • Mend。 バイナリ フィンガープリントを使用して依存関係を検証するのに役立ちます。
  • Checkmarx. 変更の増分スキャンを提供します。
  • Veracode。 開発者サンドボックスの概念を実装します。
  • ブラック ダック バイ シノプシス. コンプライアンスの特定、修正、管理に役立つオープンソース コード用の監査ツール。

これらの拡張機能を使用すると、開発者は PR として送信する前に変更を試用できます。

ビルドとリリース定義のコード スキャン、分析、統合

開発者は、ビルドの問題に関するフィードバックをすぐに得るために、CI を最適化する必要があります。 コード スキャンは、CI ビルド定義を統合するのに十分な速さで実行でき、ビルドの破損を防ぐことができます。 これにより、開発者は潜在的な問題を直ちに修正することで、ビルドの状態を準備完了/緑に復元できます。

同時に、CD は完全なものである必要があります。 Azure DevOps では、CD は通常、リリース定義 (環境間でビルド出力を進行させる) またはその他のビルド定義によって管理されます。

ビルド定義は、スケジュール (毎日) することも、コミットごとにトリガーすることもできます。 どちらの場合も、ビルド定義では、(次の図に示すように) より長い静的分析スキャンを実行できます。

コード プロジェクト全体をスキャンし、CI フローをブロックすることなく、オフラインでエラーや警告を確認できます。

ビルド定義がソース コードの静的分析スキャンをトリガーする方法を示すワークフローを示す図。