市場に出始めた当初のソフトウェア・コンポジション解析(SCA)ツールはライセンスのコンプライアンスに焦点を当てていましたが、オープンソースの普及に伴い、SCAツールは拡張されて脆弱性管理を含むようになり、オープンソースを活用する組織のアタックサーフェス削減に役立つようになりました。最近の目標はライセンスとセキュリティのリスク低減ですが、ソフトウェア開発方法の変更に伴い、リスク低減の責任の大部分が開発チームに移行しています。2021年6月のリリースでBlack Duck®にRapid Scanが導入されたことにより、組織や開発チームはこのリスクへの対処が可能になりました。
DevSecOpsの方法論に従っている場合など、最近のソフトウェア開発環境では、組織の全員がセキュリティに責任を負います。ソフトウェア開発ライフサイクル(SDLC)の各段階で何らかの形のセキュリティを組み込む必要があります。これにより、開発チームはアプリケーションのセキュリティとコンプライアンスの問題に対する第一の防衛線となります。
それにもかかわらず、開発チームは無意識のうちに会社のリスク軽減ポリシーに違反するコードを作成・マージしがちです。しかも、通常は最後の段階になるまで問題点に気付かないため、厳しい納期での修正を余儀なくされます。この問題に対処するには、SDLCのできるだけ早い段階でポリシー違反を開発チームに通知する必要があります。
各マージがこの要件を満たせるようになったら、すべてのソフトウェア・コンポーネントのすべてのビルドをSCAツールでフルスキャンします。Black Duckのフルスキャンには、依存関係、コード出力、スニペット、バイナリ解析の任意の組み合わせを含めることができます。この機能によってすべてのオープンソース・コンポーネントを確実に特定し、包括的なBOMを構築し、ポリシー違反にフラグを立てる処理が行われるので、アプリケーションをリリースする前に実行することをぜひおすすめしますが、場合によっては、状況により適した別の方法、つまり、現在のジョブを完了するために十分な情報を提供する方法があるはずです。
Black Duckの高速スキャン機能は、開発チームが必要とするアジリティとオープンソース・リスク管理とのバランスを取ります。これにより、開発チームは、コードをリリースブランチに昇格させる前に、システムに含まれているオープンソース・コードを他の開発・運用タスクと同じ速度と規模で、企業のポリシーに基いて評価することができます。
Black Duck Rapid Scan機能を利用することで、開発チームおよびリリースマネージャーはリリース候補ブランチにコードをマージする前にセキュリティ違反やポリシー違反を迅速かつ機敏にチェックできます。依存関係の解析を1分未満で行い、1日あたり30,000件を超えるスキャンを実行できます。Rapid Scanは、開発プロセスを中断させることなくセキュリティとコンプライアンスの初期レイヤーを提供します。
必要なワークフローに応じて、Rapid ScanをDetect CLIから直接開始するか、JenkinsやGitLabなどの継続的インテグレーション(CI)ツール内で開始できます。Rapid Scanが開始すると、Black Duckはアプリケーションの完全な依存関係解析を実行して、セキュリティ/コンプライアンスのポリシー違反を特定します。
開発チームは、オープンソース内に見つかった脆弱性とライセンスをBlack Duckに設定されたポリシーと比較できます。対象コンポーネントにポリシー違反があるかどうかを確認し、必要に応じて問題の修正方法を知るための過不足のない情報が提供されます。見つかった依存関係は部品表に追加されず、開発チームにはコンポーネント、バージョン、脆弱性、ライセンス、およびその他の関連情報のリストが提供されるため、コード内の依存関係をすぐに把握できます。これにより、機能ブランチからマージされるポリシー違反の数を大幅に削減し、修正に伴うコストや時間を排除できます。
包括的なSCAソリューションでは、SDLC全体のさまざまな時点ごとに異なるスキャンを行う多面的なアプローチが必要です。Rapid Scanは、リリース・ブランチとマージする前にオープンソースの依存関係に潜むポリシー違反を迅速に特定するには最適なツールですが、Black Duckのフルスキャンを実行すると、さらに宣言されていないコンポーネント、部分的なコンポーネント、または変更されたコンポーネントを特定する包括的なオープンソースBOMが提供されます。
どちらのスキャンも必要ですが、シノプシスでは、効果的なアプリケーション・セキュリティ・テストのためには適切なタイミングで適切なスキャンを実行し、リスクを軽減するために必要な情報のみを提供することが重要だと考えています。この2種類のスキャンをSDLCの異なる段階で実行して互いの機能を補完し合うことにより、ソフトウェアの開発やリリースのペースに遅滞を生じることなく、アプリケーションのセキュリティとコンプライアンスの全体的なリスクを正確に把握できます。