アプリケーションセキュリティ
SCA(ソフトウェアコンポジション解析)
別称: OSS セキュリティ, 依存関係スキャン
定義
アプリケーションが利用するオープンソース・サードパーティコンポーネントを自動解析し、既知の脆弱性、ライセンス問題、古い・危険な依存関係を洗い出す手法。
SCA ツールは package.json、pom.xml、go.mod、requirements.txt などの依存定義、ロックファイル、バイナリ成果物を解析し、ソフトウェア部品表(SBOM)を生成して NVD、GitHub Advisory Database、OSV といった脆弱性データベースと突き合わせます。脆弱なバージョンの指摘、安全なアップグレードの提案、推移的依存関係の検出、ライセンスリスクの可視化を行います。最近ではコード内で実際に到達するかを判定するリーチャビリティ解析を備える製品も増えています。代表ツールには Snyk Open Source、Dependabot、Sonatype Nexus IQ、Mend(旧 WhiteSource)、JFrog Xray、OWASP Dependency-Check があります。
例
- Dependabot が脆弱な npm パッケージを自動更新する Pull Request を作成する。
- CI で Snyk Open Source を実行し、修正可能な Critical CVE が見つかったらビルドを失敗させる。
関連用語
SAST(静的アプリケーションセキュリティテスト)
ソースコード・バイトコード・バイナリを実行せずに自動解析し、インジェクションや安全でない API、弱い暗号などのセキュリティ欠陥を検出する手法。
DAST(動的アプリケーションセキュリティテスト)
稼働中のアプリケーションにネットワーク経由でアクセスして行うブラックボックス型のセキュリティテストで、ランタイムでのみ現れる脆弱性を検出する。
CVE(共通脆弱性識別子)
公開された各ソフトウェア・ハードウェア脆弱性に一意の識別子を付与し、業界全体で曖昧さなく参照できるようにする公的カタログ。
DevSecOps
セキュリティの責任を DevOps のワークフローに組み込み、安全なソフトウェアを継続的かつ高速に提供するための文化とプラクティス群。
サプライチェーン攻撃
信頼されたサードパーティのソフトウェア・ハードウェア・サービス提供者を侵害し、その下流顧客に到達する攻撃。
Log4Shell (CVE-2021-44228)
2021 年 12 月に公表された Apache Log4j 2 の致命的なリモートコード実行脆弱性。ログに JNDI ルックアップ文字列が記録されただけで攻撃が成立した。