ソフトウェア・インテグリティ

 

検出機能:Black Duck SCAの中核的な差別化要因

Black Duckの検出機能でオープンソースの脆弱性とライセンスの義務を完全に把握

ますます複雑化するソフトウェア上で、実行環境の信頼性とセキュリティを確保することは次第に困難になっています。この事実はオープンソース・コンポーネントの場合に特に当てはまります。あらゆる業界のほぼすべてのソフトウェア・アプリケーションにおいて重要な役割を果たしているオープンソース・コンポーネントですが、オープンソースの使いやすさ、市場投入までにかかる時間の短縮、コストの削減といったメリットによってその潜在的なリスクは見落とされがちです。ソフトウェアとセキュリティの現状を毎年評価するシノプシスの「オープンソース・セキュリティ&リスク分析(OSSRA)」レポートでは、この点が強調されています。2020年のOSSRAでは、監査対象の1,253のアプリケーションのうち、オープンソースが監査対象コードベースの70%を占め、監査対象のコードベースの99%にオープンソースが含まれていました。この存在感の大きさを考えると、ソフトウェア・コンポジション解析(SCA)などの適切なオープンソース・リスク管理ソリューションを実装しなければ、ユーザーは間違いなく無防備で脆弱な状態になります。

このブログ・シリーズでは、Black Duck® SCAソリューションの他製品とは一線を画す主な差別化要因に重点を置いて説明します。Black Duckは、オープンソースのセキュリティおよびコンプライアンス管理のリーダーとして、今日の最新のDevSecOps環境を補完するために必要な優れた機能、サポート、自動化を提供します。

問題点:限定的な検出機能

セキュリティ/開発チームの一般的な不満の1つは、現在のSCAツールは検出に制限がある、すなわち対象範囲が不足していることです。多くの場合、チームは、現在のソリューションはコード内に存在する可能性のあるすべてのオープンソースが明らかになっていないという認識に直面しています。現在のSCAツールには、十分な保護に必要なカバレッジと深度が不足しています。オープンソースの脆弱性とライセンスの義務を常に把握しておくには、コードに何が含まれているのか知る必要があります。存在を知らなければセキュリティを確保することはできません。

この短所に対処するには、広範な言語のサポート、成果物のサポート、複数の検出方法を備えたスキャン方法を探す必要があります。コードを手動で追跡することも可能ですが、多くの場合、不正確で、そもそも非効率です。Black Duckなどの堅牢なSCAツールは優れたソリューションを提供します。

ここでの説明のために、現在の検出製品/サービスの市場を詳しく検討してみましょう。

通常のSCAツールでできること

SCAは、コードベース内のオープンソースを特定し、そのインベントリを既知の脆弱性とライセンスのリストにマップします。これを実現するために、現在市販されているほとんどのSCAツールは、依存関係のスキャンという一方法のみを使用しています。依存関係のスキャンは、パッケージ・マネージャーに問い合わせてファイルを宣言し、実際に使用されているオープンソース・コンポーネント、ライセンス、および依存関係を識別しています。

これは手早く簡単な方法ですが、すべてがパッケージ・マネージャーで明示的に宣言されているという強い信頼に依存します。この種の依存は、コンポーネントと関連する脆弱性が容易に見落とされる余地を残します。基本的に、このプログラムの優劣は、そこに装備されている情報の優劣次第で決まり、リスクの状況に大きなギャップを残します。

単純な依存関係のスキャンを超える機能を備えたツールを使用することが重要です。

Black Duckならではの検出機能

Black Duck SCAなどの先進のソリューションでは、複数の堅牢な検出技術を採用し、オープンソースの検出に多面的なアプローチを用いています。このような業界をリードする多要素検出機能を提供しているのはBlack Duckだけです。

Black Duckの主な検出手法

Black Duck SCAの検出手法 | シノプシス

シグネチャ(ファイル・システムのスキャニング)

シグネチャ・スキャンは、任意のファイル、ディレクトリ、アーカイブをスキャンするためのBlack Duckの技術で、パッケージ管理やリポジトリのコンテキスト外でコンポーネントを識別できます。シグネチャ・スキャンでは、他の手法では認識できないコンポーネントを識別できます。以下のコンポーネントが対象に含まれます。

  • パッケージ・マネージャーで明示的に宣言されていないコンポーネント
  • ファイルの追加、削除、または変更があったコンポーネント
  • パッケージ管理がないエコシステム/言語(C/C++)から派生したコンポーネント
  • Dockerイメージ内にあるコンポーネント

単純な依存関係のスキャナーだけではこれを実現できず、単独で使用すれば、AppSec体制に大きなギャップを残します。

バイナリ解析

Black Duck Binary Analysis(BDBA)では、サードパーティーおよびオープンソースのコンポーネントを追跡し、既知のセキュリティ脆弱性、関連ライセンス、コード品質リスクを特定する完全なソフトウェア部品表(BOM)を、ソースコードへのアクセスを必要とせずに速やかに生成します。

BDBAの強みの1つは、組織のソースコードへのアクセスが制限されている場合に特に注目されます。アクセスが制限されていても、組織はソフトウェアのセキュリティとライセンスの責任から解放されるわけではありません。あるいは、組織がベンダーから調達したファームウェアをスキャンする必要がある場合もあります。出荷済みのファームウェアのセキュリティやコンプライアンスの問題を修正することは、更新プログラムをプッシュするほど容易ではありませんが、デプロイ前に、ソースコードにアクセスせずにこれらの問題を見つけることはかなりの困難が伴う可能性があります。BDBAではこの制約を排除し、ビルド環境へのアクセスが制限されていてもサードパーティー製ソフトウェアを簡単にスキャンできます。

また、ソースコードへのアクセスが問題であるかどうかにかかわらず、アプリケーションのビルド後でも、バイナリ解析でデプロイ前に最終的なチェックを行うことができます。

スニペット・スキャン

スニペット・スキャンは、独自のディレクトリに移動された独自開発のコードファイルまたはファイル内のオープンソース・コードのフラグメントを専門的に識別するBlack Duckの手法です。スニペット・スキャンでは、識別されたコードとBlack Duck KnowledgeBaseファイル内のオープンソース・コードを照合します。

スニペットは、さまざまな方法で簡単にプロジェクトに組み込むことができる小規模な再利用可能コードです。たとえば、開発者がスタック・オーバーフローからの切り取りと貼り付けで、無意識にプロジェクトにオープンソース・コードを挿入する可能性があり、これは未確認のライセンス侵害が発生する原因となります。

Black Duckはこれらのスニペットを見つけてコンポーネントおよびライセンスと照合し、法的リスクを特定して評価できるようにします。

カスタマイズ

これで不十分な場合は、開発とセキュリティのプラクティスに合わせてカスタマイズもできます。ユーザーは、実行するスキャンとタイミングを選択し、目標とする開発速度とリスク許容度に合わせてシームレスに調整することができます。

Black Duckの詳細はこちらをご覧ください。

Black DuckでAppSecの体制を向上させ、一歩先を行く方法を5部構成で詳しくご紹介します。ぜひご覧ください。

Black Duckでアプリケーションのオープンソース・コードを特定する方法の詳細はこちら

 

この著者によるその他の情報