
私たちが使っているコードの85%は、私たち自身のコードからではなく、オープンソースのコンポーネントや依存関係からきています。これは、攻撃者があなたよりもあなたのコードをよく知っていることを意味します! SCAツールは、オープンソースのサプライチェーンを安全に保つための最善の防御策なのです。
ソフトウェア構成分析(SCA)ツールは、オープンソースの依存関係スキャンとしても知られており、オープンソースのサプライチェーンに潜むリスクを理解するのに役立ちます。既知の脆弱性、危険なライセンス、あるいは無害に見えるライブラリに隠されたマルウェアまで。
オープンソースのサプライチェーンの構成を理解することは非常に難しく、SCAツールはアプリケーションのセキュリティプログラムの不可欠な一部となっている。しかし、それらはしばしば誤検知や不必要なノイズにまみれている。そこで我々は、優れたSCAツールに何を求めるべきかを正確に分類し、現在SCAのマーケット・リーダーである10社をレビューしたい。

ソフトウェア構成分析の仕組み
SCA ツールは、通常、依存関係やバージョンを既知の脆弱性と照合することで、 脆弱性を検出するための継続的なプロセスを提供します。しかし、SCA のリーダーはさらに進んで、リスクの高いライセンスを使用しているパッケージを検出したり、マルウェア検査を実施したり、さらにはパッケージがアクティブに保守されなくなったことを検出したりします。さらに、ツールがとるアプローチにも違いがあり、通常SCAツールには6つの段階があります。
- OSS依存スキャン
- アプリケーションのコードベース、ビルドディレクトリ、CI/CDパイプライン、パッケージマネージャのファイルをスキャンし、オープンソース(OS)の依存関係を特定します。
- 直接依存 (明示的に宣言された) と推移的依存 (継承された) の両方を検出します。
- ソフトウェア部品表(SBOM)の作成
- OSの全コンポーネントのインベントリーを作成する:
- コンポーネント名、バージョン、場所、サプライヤー/メンテナンス業者
- 関連するオープンソースライセンス
- 多くの場合、より良い分析と潜在的な脆弱性/競合の識別のために依存関係を視覚化します。
- OSの全コンポーネントのインベントリーを作成する:
- 脆弱性評価
- NVD、CVE、GitHub AdvisoryなどのデータベースとSBOMを比較する。
- オープンソースのコンポーネントをスキャンし、データベースで宣言されていないマルウェアを検出する。
- Common Platform Enumeration(CPE)を使用して、コンポーネントを既知の脆弱性にマッピングする。
- 定期的に更新されるデータベースは、古い依存関係であっても、新しい脆弱性に確実にフラグを立てる。
- OSSライセンスコンプライアンス
- 各依存関係のライセンス条件を特定する。
- 例GPL(制限的、改変の共有を要求)とMIT(寛容)の比較。
- ライセンス紛争や組織内ポリシー違反のフラグを立てる。
- 各依存関係のライセンス条件を特定する。
- 脆弱性の修復と自動トライエイジング
- 実行可能な提言
- パッチを適用したバージョンへのアップデートを提案する(多くの場合、自動的にプルリクエストを作成する)
- セキュリティ勧告へのリンク
- 一時的な回避策を提供。
- 深刻度、悪用可能性、実行時の影響に基づいて脆弱性に優先順位を付ける(自動3段階評価)。
- 実行可能な提言
- 継続的なモニタリングとレポート
- コードベースに新たな脆弱性がないか定期的に再調査し、SBOMを更新する。
- OSコンポーネント、そのバージョン、関連するリスクをリアルタイムで可視化します。
業界で実証済みのSCAツールトップ10
(アルファベット順)
SCAツールを探していて、何から始めたらいいのかわからないという方のために、業界をリードしていると思われる10個のツールのリストと、そのツールの主な特徴および欠点を紹介します。
1.Aikido セキュリティ
Aikido Securityは、9つの異なるスキャナーを1つのプラットフォームに統合し、コードからコードまで保護する、開発者に焦点を当てたナンセンスなセキュリティプラットフォームです。
Aikido 、CVSSスコアのみに依存するのではなく、実際のリスク要因に基づいて脆弱性に優先順位を付け、マルウェア、ライセンスリスク、非アクティブパッケージもスキャンすることで、オープンソースの依存性スキャンに異なるアプローチを取ります。

主な特徴
- リスクベースの脆弱性優先順位付け:データの機密性と脆弱性の到達可能性を考慮し、悪用可能な問題に焦点を当て、無関係なCVEによるノイズを削減します。
- 高度なマルウェア検出:NPM、Python、Go、Rustなどの主要なエコシステムにおいて、隠れた悪意のあるスクリプトやデータ流出の試みを特定します。
- 到達可能性分析:堅牢なエンジンを使用して、対処可能な脆弱性を特定し、優先順位を付け、誤検出や重複を排除します。
- 自動修復ワークフロー:Slack、Jira、GitHub Actionsなどのツールと統合し、発券、通知、セキュリティポリシーを自動化します。
- ローカルCLIスキャナー:センシティブなデータを扱うチームのためのセキュアなセルフホストスキャンを可能にし、プライバシーと規制基準の遵守を保証します。
- 開発者中心の設計:セキュリティをワークフローに直接組み込み、コードベースへの具体的な影響に合わせた明確で実用的なガイダンスを提供します。
- わかりやすい価格設定:予測可能で費用対効果に優れ、競合他社と比較して最大50%のコスト削減が可能です。
2.アピイロ
Apiiroは、深いコード解析とランタイムの動作監視を組み合わせることで、悪用可能な脆弱性とオープンソースリスクを特定し、優先順位を付け、開発者のワークフロー内で直接、包括的な洞察を提供し、修復を合理化します。

主な特徴
- 包括的なリスク分析:未整備のプロジェクト、ライセンシングの競合、安全でないコーディングプラクティスなど、CVE 以外のオープンソースのリスクを評価します。
- ペネトレーションテストのシミュレーション:実行時のコンテキストに基づいて脆弱性の悪用可能性を確認し、重大なリスクに優先順位をつける。
- リスクグラフとコントロールプレーン:OSSのサプライチェーンをマッピングし、効果的にリスクに対処するためのワークフロー、ポリシー、修復プロセスを自動化します。
- 拡張SBOM(XBOM):CI/CDやクラウドリソースを含む依存関係や関連するリスクを、グラフベースでリアルタイムに表示します。
- 開発者中心の修復:コンテキストに応じたアラートと安全なバージョン更新を、既存の開発者ワークフローとツールに組み込みます。
デメリット
- コストが高い:50席で最低35,400ドルの年間契約が必要で、小規模組織には適さないかもしれない。
- 複雑なオンボーディング:リスク・グラフやXBOMのような高度な機能は、新規ユーザーにとって急な学習曲線が必要となる場合がある。
3.アルニカ
Arnica は SCM システムと直接統合し、コードの変更と依存関係をリアルタイムで継続的に監視することで、脆弱性の早期発見、動的なインベントリ管理、実行可能な修正ガイダンスを提供し、セキュリティが開発ライフサイクルに組み込まれていることを保証します。

主な特徴
- パイプラインレスSCA: GitHub、GitLab、Azure DevOpsなどのツールとネイティブに統合し、リアルタイムですべてのコミットをスキャンすることで、複雑なパイプラインのセットアップを排除します。
- 動的依存関係インベントリ: すべての外部パッケージ、ライセンス、関連するリスクの最新インベントリを維持します。
- 悪用可能性の優先順位付け OpenSSFスコアカードとEPSS脅威インテリジェンスを関連付け、各脆弱性の悪用可能性リスクスコアを算出します。
- コンテクスチュアル・アラート: ワンクリックの自動修正を含む、ステップバイステップの修復ガイダンスとともに、詳細で規定されたアラートを関連する利害関係者に配信します。
- シームレスなフィードバックループ: 開発者に即時のセキュリティフィードバックを提供し、早期かつ継続的な脆弱性管理を促進する。
デメリット
- 無料機能は限られています: 高度な機能には有料プランが必要で、1IDあたり月額8ドルから。
- コストの拡大: これは大規模なチームや組織にとっては懸念事項かもしれない。
4.サイコード
Cycodeは、アプリケーションコード、CI/CDパイプライン、インフラストラクチャをスキャンすることで、オープンソースの脆弱性やライセンス違反をエンドツーエンドで可視化し、リアルタイムモニタリング、SBOMの自動生成、開発者のワークフローに直接統合されたスケーラブルな修復を提供します。

主な特徴
- 包括的なスキャン アプリケーションコード、ビルドファイル、CI/CDパイプラインの脆弱性やライセンス違反を分析します。
- リアルタイム・モニタリング: ナレッジグラフを使用して、逸脱や潜在的な攻撃ベクトルを発生時に特定します。
- SBOM管理: すべての依存関係について、SPDXまたはCycloneDX形式で最新のSBOMを生成します。
- 統合された修復: CVEコンテキスト、アップグレードの提案、ワンクリック修正、自動化されたプルリクエストを提供し、パッチ適用を加速します。
- スケーラブルな修正: これにより、 、単一のアクションでリポジトリ全体の脆弱性に対処できる。
デメリット
- 価格の透明性: 価格については直接の問い合わせが必要で、見積もりでは監視対象の開発者1人当たり年間350ドルとされている。
- 大規模チームにとってのコスト: 多くの開発者を抱える組織では、価格が高額になる可能性がある。
5.ディープ・ファクター
DeepFactorは、静的スキャンとライブのランタイム監視を組み合わせることで、包括的なSBOMを生成し、依存関係をマッピングし、実際の実行パターンとランタイムの動作を分析することで悪用可能なリスクを特定します。

主な特徴
- ランタイム到達可能性SCA:実行されたコードパス、制御フロー、スタックトレースを分析することで、脆弱性が悪用可能かどうかを追跡する。
- 動的SBOM生成:静的解析と実行時解析を組み合わせることで、宣言されていない「幻の」コンポーネントを含むすべての依存関係を特定します。
- カスタマイズ可能なセキュリティポリシー:特定のセキュリティニーズに基づいて、独自の条件付きルールとトリガーを定義できます。
- インテリジェントなアラート相関:関連する問題を詳細なコンテキストとともに実用的なアラートに統合し、トリアージのノイズを低減します。
- きめ細かなランタイムの洞察:ファイル操作、メモリ使用量、ネットワークアクティビティなど、アプリケーションの挙動を観察します。
デメリット
- 価格:オールインワン・プランで65ドル/月。
- 限られた言語サポート:ランタイム到達可能性解析は現在、一部の言語(PHP、Kotlin、Go、Ruby、Scala)をサポートしている。
6.エンドール研究所
Endor Labsは、ソースコードを検査して動的なSBOMを構築し、重要な脆弱性を特定し、安全でないコーディングパターン、マルウェア、および非アクティブな依存関係を検出することによってSCAスキャンを強化し、DevSecOpsチームが実用的な洞察と規制コンプライアンスのサポートによって最も悪用可能なリスクに集中できるようにします。

主な特徴
- きめ細かな依存関係分析:マニフェストファイルだけでなく、ソースコードの検査を通じて、宣言された依存関係と「幻の」依存関係をすべてマッピングします。
- 到達可能性分析:アプリケーションのコンテキストにおいて現実的に悪用可能な脆弱性を特定し、ノイズを低減する。
- Endor Score:OSSパッケージのセキュリティ履歴、コミュニティサポート、メンテナンスを考慮した総合的な健全性評価を提供する。
- 自動化されたSBOMおよびVEXレポート:依存関係のインベントリと脆弱性の分類を、詳細な到達可能性のコンテキストとともに継続的に更新します。
- 高度な検出機能:マルウェア、安全でないパターン、依存性スプロール、ライセンス違反にフラグを立てるルールエンジンを含む。
デメリット
- 参入コストが高い:有料プランは年間10,000ドルからとなっており、小規模な組織にとっては利用しにくい。
- 新規ユーザーにとっての複雑さ:包括的な機能と詳細な分析は、新しいチームにとってオンボーディングの時間を必要とするかもしれません。
7.オリゴ・セキュリティ
Oligoは、従来のスキャナーが見逃していた脆弱性を検出するために、テストと実運用の両方で、実行時にライブラリを監視することにより、SCAに独自のアプローチを採用しています。Oligoは、アプリケーションのコンテキストと環境に基づいて、実用的な修正を提供します。ライブラリ動作プロファイルの広範な知識ベースとリアルタイムのモニタリングを活用することで、Oligo は、ゼロデイ脆弱性、不適切なライブラリの使用、ランタイム固有の脅威を特定し、DevSecOps チームが重要な問題に効率的に対処できるようにします。

主な特徴
- ランタイム・モニタリング:テスト時および本番時のライブラリの動作を追跡し、逸脱や脆弱性を検出します。
- eBPFベースのプロファイリング:Linuxカーネルレベルのモニタリングを活用し、実行時の挙動を可視化します。
- 自動化されたポリシーとトリガー:カスタマイズ可能なセキュリティワークフローと、SlackやJiraなどのツールを介したリアルタイムのアラート。
- ゼロデイ脆弱性の検出:公に知られる前に脅威を特定し、ゼロデイ攻撃を防ぎます。
- 状況に応じた脆弱性の優先順位付け:環境とライブラリの実行状態を考慮し、効果的に脅威の優先順位をつける。
デメリット
- 価格の透明性:セルフサービスや標準化された価格情報は利用できない。
- プラットフォームの制限:eBPFテクノロジーに依存しているため、主にLinuxに特化している。
8.セムグレップ
Semgrepは包括的なサプライチェーンセキュリティプラットフォームであり、開発ワークフロー全体をスキャンし、軽量パターンマッチングと到達可能性分析を活用して、コード内で直接悪用可能な脆弱性とアンチパターンを検出します。

主な特徴
- エンドツーエンドのスキャンIDE、リポジトリ、CI/CDパイプライン、依存関係を監視し、セキュリティ上の脅威やアンチパターンを検出する。
- 到達可能性分析:フラグが立てられた脆弱性がアプリケーション内で積極的に悪用可能かどうかを特定し、不要なノイズを削減します。
- 依存関係検索:リアルタイムの脅威への対応とアップグレード計画のために、サードパーティのパッケージとバージョンをライブで照会可能なストリームを提供します。
- Semgrepレジストリ:40,000を超える事前構築済みルールとコミュニティから提供されたルールがあり、カスタムルールを作成するオプションもあります。
- 幅広い言語サポート:Go、Java、Python、JavaScript、C#など、25以上の最新プログラミング言語をサポート。
- シームレスな統合:GitHub、GitLab、その他の一般的なバージョン管理システムとすぐに連携。
デメリット
- 大規模チーム向けの価格設定:中規模および大規模チームの場合、コストは急速に上昇します(10人以上の貢献者の場合、月額110ドル/貢献者)。
- カスタマイズの複雑さ:カスタムルールの作成と管理は、経験の浅いチームにとってさらなる労力を必要とする可能性がある。
9.スニーク
Snyk は、従来の SCA ツールのゴールド スタンダードとなっており、詳細な依存関係ツリーを作成し、ネストした依存関係を特定し、実際のリスク要因や悪用可能性に基づいて優先順位を付けて修正作業を行います。Snyk は、ダッシュボード、CLI / IDE ツールを使用して開発者のワークフローに適合し、実行可能な修正を提供し、オープン ソース ライセンスのコンプライアンスを保証します。

主な特徴
- 依存関係ツリーマッピング:階層的なグラフを構築し、直接および推移的な依存関係の脆弱性を検出し、その影響を追跡します。
- 独自の優先度スコアリング:悪用可能性、状況、潜在的影響に基づいて脆弱性をランク付けし、重要な脅威に確実に焦点を当てる。
- Snyk Advisor:100万を超えるオープンソースパッケージのセキュリティ、品質、保守性を評価し、開発者が最適な依存関係を選択できるようにします。
- 脆弱性データベース:1,000万件以上のオープンソースの脆弱性に関する堅牢なデータベースを維持し、正確性と実用的な洞察のために手作業で検証しています。
- シームレスな統合:一般的なバージョン管理システム、CI/CDパイプライン、IDEと連携し、コードと依存関係をリアルタイムでスキャンします。
- カスタマイズ可能なポリシー:組織は、脆弱性ハンドリングとライセンスコンプライアンスのための特定のルールを強制することができます。
デメリット
- 高度な機能のためのコスト:無料プランは基本的なものですが、より大規模なチーム向けの高度な機能を利用するには、より上位のプランが必要で、それには費用がかかります。
- 手動検証の依存性:脆弱性の手動検証に依存すると、新たに発見された脅威に対するアップデートが遅れる可能性がある。
10.ソケット・セキュリティ
Socketは、ディープパッケージ検査とランタイム動作解析を活用して、サプライチェーンの脅威、ゼロデイ脆弱性、オープンソースの依存関係の異常をプロアクティブに検出し、従来のSBOMベースのスキャンを超える包括的な保護を保証します。

主な特徴
- ディープパッケージ検査:リソースの相互作用やパーミッションリクエストなど、依存関係のランタイム動作を監視し、リスクのある動作を検出します。
- プロアクティブな脅威検出:ゼロデイ脆弱性、タイポスクワッティングリスク、サプライチェーン攻撃を一般公開される前に特定します。
- プルリクエストの統合:プルリクエストごとに依存関係を自動的にスキャンし、実用的な GitHub コメントを提供することで、早期のリスク軽減を実現します。
- 依存関係の概要:重要な詳細やリンクを含む完全な依存関係グラフを提供します。
- メンテナンスリスク評価:メンテナの活動、コードベースの更新、社会的検証を評価し、OSSパッケージの潜在的リスクにフラグを立てる。
デメリット
- 言語サポート:JavaScript、Python、Goの依存関係に限定されているため、他の言語で作業しているチームでは使用が制限される可能性があります。
正しいOSS依存スキャナーの選択
適切な SCA ツールを選択するかどうかは、プロジェクトの具体的なニーズと使用するテクノロジに依存する。SCAは、包括的なアプリケーション・セキュリティ計画の一部に過ぎず、スタンドアローンのSCAツールを使用することは、複数の異なるベンダーと統合する必要があることを意味することに留意することが重要です。Aikido セキュリティのようなオールインワン・ソリューションは、以下の点で魅力的なだけではありません。

Aikido 活躍を見たい? サインアップしてレポをスキャンし、2分以内に最初のSCA結果を手に入れましょう。