読み方 : エスシーエー

SCA【Software Composition Analysis】ソフトウェア構成分析

概要

SCAとは、ソフトウェア開発で利用されるオープンソースライブラリなどの外部コンポーネントを自動的に検出・分析し、既知の脆弱性ライセンス上の問題を洗い出すツールおよび手法のこと。
SCAのイメージ画像

現代のソフトウェア開発では、オープンソースとして公開されているライブラリコンポーネントモジュールなどを組み合わせることが一般的であり、自社で記述したコードよりも外部由来のコードが占める割合の方が大きいケースも珍しくない。

SCAはソースコード実行ファイル、パッケージ管理ファイルなどを解析し、利用されているライブラリの種類やバージョンを特定する。その結果を「NVD」(National Vulnerability Database)や「CVE」(Common Vulnerabilities and Exposures)といった脆弱性データベースと照合することで、セキュリティ上の問題を含むコンポーネントを検出する。

分析の対象は、開発者が直接追加したライブラリだけでなく、そのライブラリがさらに別のライブラリに依存する「間接依存」(推移的依存)にも及ぶ。自分では組み込んでいないコンポーネント脆弱性が見つかる場合もあり、依存関係を含めた管理が重要である。

ライセンスの確認もSCAが担う機能のひとつである。オープンソースソフトウェアにはGPLMITライセンスなど様々なライセンスが存在し、商用利用や再配布の条件はそれぞれ異なる。SCAを用いることで、プロジェクト内に混在するライセンスを把握し、条件に抵触するコンポーネントを事前に洗い出すことができる。

SCAは「静的アプリケーションセキュリティテスト」(SAST)と混同されることがあるが、目的は異なる。SASTが自作ソースコードの記述を解析して不具合や脆弱性を検出するのに対し、SCAは利用している外部コンポーネントを調査する。両者は補完関係にあり、組み合わせて利用されることが多い。

SCAはCI/CDパイプラインに組み込まれることも多く、ライブラリの追加時や新たな脆弱性情報の公開時に自動でスキャンを実行し、問題が検出された場合にビルドや公開を停止する運用も行われている。近年では人気ライブラリの攻撃者による「乗っ取り」被害なども顕在化しており、SCAはソフトウェアのサプライチェーン全体の安全性を確保する取組みの一環として重視されている。

(2026.6.27更新)
 
この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。