
foxguard v0.13.0
高速なユニバーサルコードセキュリティスキャナー、Rustで記述。バッテリー同梱:14言語対応、トリアージ用TUI、シークレット、ポスト量子監査、diff対応スキャンなど 𓃥
foxguard
コード、シークレット、依存関係、暗号リスクに対する高速なローカルセキュリティスキャン。
オープンサイバーセキュリティハーネス 0sec に統合されています。
npx foxguard .
なぜ
12 のソース言語にわたる 200 以上の組み込みルール、さらに設定ファイルとマニフェストのチェック
14 言語のテイント追跡、Python、JavaScript、Go、Java、Ruby、PHP、C#、Kotlin のクロスファイル解析に対応
高速なローカルおよび CI スキャン、「このブランチは何を追加したか?」のための diff モード付き
シークレットスキャン、OSV に基づく依存関係スキャン、耐量子暗号監査
公開レジストリの約 98% を読み込む Semgrep/OpenGrep 互換 YAML ブリッジ(カバレッジレポート)
ターミナル、JSON、SARIF、CycloneDX 1.6 CBOM、Semgrep 互換 JSON 出力
インストール
npx foxguard . # インストール不要
curl -fsSL https://foxguard.dev/install.sh | sh # ビルド済みバイナリ (macOS/Linux)
cargo install foxguard # ソースから
ビルド済みインストールでは、リリースバイナリを checksums.txt に対して検証します。リリースバイナリは GitHub のアーティファクト証明も公開しています。手動検証には gh attestation verify を使用するか、リリースの来歴を参照してください。
GitHub Action:
- uses: 0sec-labs/foxguard/[email protected]
with:
path: .
severity: medium
fail-on-findings: "true"
upload-sarif: "true"
pre-commit:
repos:
- repo: https://github.com/0sec-labs/foxguard
rev: v0.13.0
hooks:
- id: foxguard
連携: GitHub App、VS Code、Claude Code プラグイン、MCP サーバー。
ホスト型 GitHub App の運用
foxguard-github-app は改行区切りの JSON ログを書き込みます。完了したスキャンと失敗したスキャンはそれぞれ event=foxguard.scan.completed と event=foxguard.scan.failed を使用し、相関付けのために delivery、installation、repository、PR、commit、duration、usage_scope フィールドを含みます。識別子はメトリクスラベルではなくログフィールドとして保持してください。
FOXGUARD_INTERNAL_ACCOUNTS に、自組織の GitHub アカウントと組織のカンマ区切りリストを設定します。マッチングは大文字小文字を区別しません。それ以外のオーナーは external に分類されます。リストが未設定またはオーナーが欠落している場合は unknown になります。外部アクティビティは有料顧客であることの証明ではなく、スキャンは人ではありません。
インストールレジストリは、起動時と毎時、GitHub の App インストール API の全ページに対して照合されます。更新に失敗した場合は既存の状態が保持され、同時実行される webhook が優先されます。疎な webhook メタデータは、既知のアカウント詳細と観測されたリポジトリ名を保持します。これらの名前は、インストールがアクセス可能なリポジトリの完全なインベントリではありません。
FOXGUARD_INSTALLATIONS_PATH と FOXGUARD_PULL_REQUEST_JOBS_PATH は永続ストレージ上に保存してください。スキャン失敗と併せて foxguard.installations.reconcile_failed を監視してください。foxguard.installations.reconciled は、更新成功後の合計および internal/external/unknown のインストール数を報告します。FOXGUARD_PR_WORKERS は、計測されたスキャナーのピークメモリとコンテナのメモリ制限に基づいてサイズ設定してください。子プロセスの OOM kill は、ホスト型アプリケーションを再起動せずに発生する可能性があります。
クイックスタート
foxguard . # すべてをスキャン
foxguard diff main . # main に対する新規検出のみ
foxguard secrets . # 漏洩した認証情報と鍵
foxguard sca . # OSV からの依存関係脆弱性
foxguard pqc . # 耐量子暗号監査
foxguard --format sarif . > results.sarif
foxguard --format semgrep-json . # Semgrep CLI 互換 JSON
foxguard --fix src/ または foxguard --fix src/app.py を使用して、サポートされているテイント修正をその場で適用します。対象は正規のスキャンディレクトリまたは選択したファイルに対してチェックされ、その範囲外の検出はスキップされます。Python のコマンドインジェクション修正は、必要に応じて import subprocess を追加し、モジュールの docstring と future import を保持します。コミットする前に生成された変更を確認してください。
言語カバレッジ
| 言語 | 組み込みルール | テイント追跡 | フレームワーク対応ルール |
|---|---|---|---|
| JavaScript / TypeScript | はい | はい | Express, Next.js |
| Python | はい | はい | Django, Flask, FastAPI |
| Go | はい | はい | Gin |
| Kotlin | はい | はい | Spring |
| Java | はい | はい | Spring |
| Ruby | はい | はい | Rails |
| PHP | はい | はい | Laravel |
| Rust | はい | -- | -- |
| C# | はい | はい | .NET |
| Swift | はい | はい | iOS |
| Haskell | はい | -- | Cardano seed rules |
テイント追跡は C、Bash、Solidity もカバーします。設定、マニフェスト、外部ルールのスキャンは、Dockerfile、Nginx、Apache、HAProxy、HCL/Terraform、YAML/JSON/XML/HTML、Semgrep YAML/Coccinelle 経由の C などをカバーします。
セキュリティモード
foxguard sca .
foxguard pqc .
foxguard --rules ./semgrep-rules .
SCA は Cargo.lock、package-lock.json、pnpm-lock.yaml、requirements.txt、poetry.lock、Pipfile.lock をサポートします。PQC 監査は両面のスコアカードです。量子脆弱なプリミティブ(RSA、ECDSA/DSA、ECDH/DH)を CNSA 2.0 移行期限とともにフラグ付けし、すでに使用されている耐量子アルゴリズム(ML-KEM、ML-DSA、SLH-DSA、FN-DSA、HQC、X25519MLKEM768 などのハイブリッド)を情報提供として、量子耐性のあるインベントリとして検出します — 移行準備率を報告します。両面とも CycloneDX 1.6 CBOM にエクスポートされ、そこでは耐量子アルゴリズムは脆弱性ではなく量子耐性資産として表示されます。
設定
foxguard はスキャンパスから上方に向かって .foxguard.yml を自動検出します。
scan:
baseline: .foxguard/baseline.json
disable_rules: [py/no-eval]
secrets:
exclude_paths: [fixtures, testdata]
受け入れた検出は // foxguard: ignore[rule-id] でインライン抑制できます。
ドキュメント
まずドキュメントインデックスから始めてください。主要なリファレンス: アーキテクチャ、Semgrep/OpenGrep 互換性、リリースランブック。
ベンチマーク
| リポジトリ | LoC | foxguard | Semgrep | 高速化 |
|---|---|---|---|---|
| express | 15K JS | 0.28s | 6.09s | 22x |
| flask | 14K Py | 0.33s | 6.51s | 20x |
| gin | 18K Go | 0.50s | 4.95s | 10x |
| sentry | 1.3M Py | 35s | 194s | 5x |
./benchmarks/run.sh で再現できます。結果はマシンによって異なります。benchmarks/README.mdを参照してください。
コントリビューション
ルールの作成、テスト、開発環境のセットアップについては CONTRIBUTING.md を参照してください。
ライセンス
MIT OR Apache-2.0 -- 0sec Labs