コンテンツにスキップ
ossscanner.org

比較

オープンソースプロジェクト向けセキュリティスキャナーの選び方

AI監査、ファジング、ルールベースの静的解析では、それぞれ異なるバグが見つかります。セキュリティ対策が十分なプロジェクトの多くは、複数の手法を併用しています。それぞれの得意分野を紹介します。

ossscanner.org

独立

脅威モデルがある公開リポジトリを対象としたAI監査。独立した検証エージェント、根本原因、脆弱性を導入したコミット、修正候補のパッチ、SARIFを提供します。無料のクイックスキャンと、登録プロジェクト向けの週次ディープスキャンに対応しています。

適した用途
セットアップ不要で、どのプロジェクトでも数分で検証済みの詳しい検出結果を取得できます。
制限事項
静的なコード解析のみで、コードのビルドや実行は行いません。Claude Mythosではなく、一般公開されているモデルを使用します。モデルの出力は誤っている場合があります。

Anthropic OSS Scanner

Anthropic

Claude Mythosを含むAnthropicの最も高性能なモデルによる、無料のオプトイン型定期スキャン。オフラインのサンドボックスでDockerfileからプロジェクトをビルドしてスキャンします。未レビューのレポートが、再現用データとパッチとともにメールで届きます。

適した用途
質の高いレポートが継続的に届くため、そのトリアージに対応できる重要インフラプロジェクト。
制限事項
案件ごとに審査されます。プルリクエスト、Dockerfile、メンテナーによる手動検証が必要です。結果の通知はメールのみです。

OSS-Fuzz

Google

重要なオープンソースプロジェクトを対象とした、カバレッジ誘導型ファジングの継続的な実施。クラッシュの自動トリアージとバグ報告の起票に対応します。

適した用途
C、C++、Rust、Goで書かれたパーサーやライブラリのメモリー安全性に関するバグ。すべてのクラッシュを再現できます。
制限事項
ファジング用ターゲットとビルドへの組み込みが必要です。ファザーが到達できる範囲の問題を検出しますが、ロジックや認証のバグはほとんど見つかりません。

CodeQL

GitHub

クエリ言語と豊富なセキュリティクエリライブラリを使用する、セマンティックコード解析ツールです。GitHubのコードスキャンを通じて、公開リポジトリでは無料で利用できます。

適した用途
CIで、すべてのプルリクエストごとに既知の脆弱性パターンとデータフロー上の問題を検出します。
制限事項
クエリで記述された内容を検出します。新しいロジックバグやプロジェクト固有の問題には、カスタムクエリが必要です。

Semgrep

Semgrep, Inc.

パターンベースの高速な静的解析ツールです。コミュニティルールとカスタムルールに対応し、オープンソースのエンジンをローカルまたはCIで実行できます。

適した用途
安全なコーディングルールの適用や、よくあるミスの迅速な検出に適しています。
制限事項
ルールベースのため、既知のパターンを高い再現率で検出しますが、意図や文脈の理解は限定的です。

Claude Security

Anthropic

Claudeモデルを活用し、企業が自社コードの脆弱性を検出・修正できるよう支援するAnthropicの商用製品です。

適した用途
AIによるセキュリティレビューをソフトウェア開発ライフサイクルに取り入れる企業。
制限事項
商用製品で、個人のオープンソースメンテナーではなく組織を対象としています。

AI監査、ファジング、静的解析の比較

ファザーは何百万もの生成入力でコードを実行します。再現可能なメモリ破損の検出では比類ありませんが、その能力を発揮できるのはハーネスが到達できる範囲に限られます。CodeQLやSemgrepのようなルールベースの解析ツールは、既知のパターンに照らしてすべての行を低コストで、コミットごとにチェックします。AI監査ツールは、レビュー担当者のようにコードを読みます。意図を理解し、認可やロジックの不備を見つけ、根本原因を説明できます。ただし、結果は確率的であり、検証が必要です。

そのため、ossscanner.orgではすべての検出結果を表示する前に、別のエージェントで反証を試みます。また、CI解析やファジングとの併用を推奨しています。

小規模プロジェクト向けの実践的な構成

  • CodeQLのコードスキャンを有効にする(公開リポジトリでは無料)。
  • ossscanner.orgで無料スキャンを実行し、週次の詳細スキャンに登録する。
  • 当社のSARIFをGitHubにアップロードし、AIによる検出結果をCodeQLのアラートと並べて表示する。
  • 脅威モデルを追加し、すべてのスキャナーに対象範囲を知らせる。
  • 信頼できないバイナリ形式を扱う場合は、ファズターゲットを追加し、OSS-Fuzzの利用を検討する。
  • プロジェクトが重要インフラに関わる場合は、AnthropicのOSS Scannerに申請する。