NEWSkillSec — AI Skill のセキュリティを「マルウェア検知」から「能力監査」へSkillSec詳しく見る →
技術解説

SCA ツールの選び方:スニペットレベル検出とマニフェストレベル検出の本質的な違い

Sectrend リサーチ·2026.06.24·5 分で読了

市場の SCA ツールは書類上どれも似ている——コンポーネントの識別、脆弱性の照合、ライセンス分析、SBOM の出力。しかし検出原理で分類すれば、実は二つの別種である。マニフェストレベルpackage.jsonpom.xml、lockfile といった宣言ファイルを解析し、何を使っているかを推定する。スニペットレベルはソースコードそのものを膨大なオープンソースコード指紋と照合し、実際に何を使っているかを検証する。

マニフェストレベルの 5 つの盲点

  • コピー&ペースト:Stack Overflow やリポジトリから拾った数十行はどのマニフェストにも現れないが、ライセンス義務と脆弱性は一緒についてくる。
  • 改名と部分流用:プロジェクトをフォークしてパッケージ名を変える、選んだファイルだけ vendor/ に置く——マニフェストは無傷のまま、法的リスクはそのまま残る。
  • 静的リンクとビルド済み成果物:特に C/C++ では依存関係がバイナリに直接コンパイルされ、マニフェストに痕跡を残さない。
  • ビルド時注入:CI スクリプトが動的に取得するコードは依存宣言を完全にバイパスする。
  • 推移的依存のずれ:lockfile の欠落や陳腐化により、推定ツリーは実際に出荷されるものから大きく乖離しうる。

スニペットレベルの技術的ハードル

スニペットレベル検出はアルゴリズムの選択というよりデータエンジニアリングの偉業だ。検出率は指紋コーパスがオープンソース世界をどれだけカバーするかに、精度はマッチャーが「共通の祖先」と「偶然の類似」を見分けられるかに依存する。Sectrend CleanSource SCA を例にとれば、特許取得済みのスニペットエンジンを 3T 超のコード指紋、3.2 億のコンポーネント、27 万超の脆弱性インテリジェンスが支えている——コーパスの規模が「見つかるかどうか」を直接決める。無料ツールがほぼ例外なくマニフェストレベルに留まるのもこのためだ。データの堀は容易に築けない。

マニフェストレベルで足りる場面、スニペットレベルが必須の場面

すべての依存がパッケージマネージャーを経由し、エンジニアリング規律が強く、目的が日常的な脆弱性アラートなら、マニフェストレベル——たとえば無料の CleanSource SCA コミュニティ版——は優れた出発点だ。だが次のシナリオではスニペットレベルが必須になる。外部納品と検収(証言するのはマニフェストではなくコードだ)、M&A・投資デューデリジェンス(対象企業の申告こそ最も信用できないインプットである)、コンプライアンス監査と輸出認証(CRA や車載規制は実際の構成を反映した SBOM を求める)、そして静的リンクと vendored コードだらけの組込み・レガシーシステム。ソースすら入手できないなら、バイナリ成分分析の出番だ。

誤検知もまたコストである

網を広げることの裏面は、本物の流用と偶然の類似の判別だ。評価では 2 点を確認したい——ファイル全体一致・大規模断片一致・散在的類似に異なる重みを与える確信度の段階付けがあるか、そして 1 万件の生マッチをエンジニアに投げつけるのではなくコンポーネント単位で集約する効率的なレビューワークフローがあるか。検出率満点・誤検知管理ゼロのツールは、実チームでは四半期も生き残れない。

実際の監査事例から

あるデータプラットフォーム製品の納品監査で、我々はソースツリー一式が Apache-2.0 のオープンソースプロジェクトからコピーされ、すべてのライセンスヘッダーが組織的に剥がされたうえで自社開発コードとして納品されていたことを発見した。依存マニフェストは完璧に清潔で、マニフェストレベルのツールなら「リスクなし」と判定しただろう。スニペットレベルの照合は上流プロジェクトとバージョンを復元し、ついでにその中の未修正のデシリアライゼーション脆弱性とサポート終了(EOL)依存も特定した。マニフェストが証言できない場面——そこが二つのツール種の価値の分岐点である。

評価チェックリスト

  • スニペット流用を混ぜた実プロジェクトで PoC を行い、機能比較表ではなく検出率と精度を比較する。
  • 脆弱性インテリジェンスが複数ソース(CVE/CNVD/CNNVD/EUVD)を集約し能動的トリアージを備えるか——情報の数週間の遅れは数週間のエクスポージャーだ。
  • SPDX と CycloneDX 両形式のエクスポートを必須要件にする。
  • ライセンス識別がスニペットレベルで機能するか——ファイルヘッダーが欠けていても出所を追えるか。
  • 完全オフラインのオンプレミス展開が可能か——コードが社外に出るか否かは多くの企業で一票否決事項である。

一文でまとめれば:マニフェストレベルはあなたの言い分を信じ、スニペットレベルはあなたの行いを検証する。監査と納品の場面では、後者を選ぶべきだ。

SCA 選定ソフトウェアコンポジション解析スニペットレベル検出オープンソースコンプライアンスSBOM

関連記事

ディープダイブ

SBOM はコンプライアンスのチェックリスト以上のものだ

多くのチームは SBOM を「提出する書類」として扱う。だが価値ある SBOM は意思決定を駆動する——どの脆弱性が悪用可能か、どの依存を最初に直すべきか、どのライセンスがリスクを抱えるか。