AI Navigate

あなたのAIコーディングエージェントは脆弱なパッケージをインストールしている。私はその修正を作りました。

Dev.to / 2026/3/20

📰 ニュースDeveloper Stack & InfrastructureTools & Practical Usage

要点

  • AI コーディングエージェントはパッケージを非常に速くインストールできますが、その自動化はエージェントが自動的に検出・警告しない重大な脆弱性を導入する可能性があります。
  • 著者は脆弱性、ライセンス、公開日をスキャンする Hound MCP を構築し、AI支援開発におけるセキュリティのギャップを埋めました。
  • ワンコマンド統合(claude mcp add hound -- npx -y hound-mcp)により、エージェントは複数のエコシステムにまたがる12のセキュリティツールを自動監査に利用できるようになります。
  • このアプローチは、依存関係を選択する際に人気指標だけに頼るのではなく、AI ワークフローに自動化されたセキュリティチェックを組み込むことを提唱します。
  • 2024 年の State of Open Source Security レポートを引用し、多くのプロジェクトが数十件の脆弱性を抱えていることを示しており、リスクの規模を強調しています。

この記事は元々 tiluckdave.in に公開されました

Claude Code に認証付きの Express API のセットアップを依頼しました。1分未満で23個のパッケージをインストールしました。ルート、ミドルウェア、データベース層をスキャフォールドしました — クリーンなコードで、構造が整理され、出荷準備が整っています。

そのうち3つのパッケージには既知の重大な脆弱性がありました。1つは CVSS スコアが9.8でした。

Claudeはそれを指摘しませんでした。認識していませんでした。

この問題は今すぐあなたに影響します

Claude Code、Cursor、Copilot、または他のAIコーディングエージェントを使用している場合、あなたのエージェントは人気度と関連性に基づいてパッケージを推奨し、インストールします。セキュリティではなく。ライセンス互換性でもなく。パッケージが2021年に最後に更新されたかどうかでもありません。

npm audit は存在します。Snyk も。Socket も存在します。しかしこれらは人間のツールです — 実行し、出力を読み、どうするかを決めるには人間を要します。あなたのAIエージェントはそれらを一切使いません。ただインストールして、次へ進むだけです。

今AIエージェントと作業する方法を考えてください。機能を依頼します。エージェントがライブラリを選択し、インストールし、コードを書き、あなたが出力をレビューします。そのワークフローのどの段階においても、人間でもAIでも、依存関係が安全かどうかを確認することはありません。

AIエージェントを使って構築したすべてのプロジェクトには、依存関係のツリーに未レビューの脆弱性が潜んでいる可能性があります。 2024年版オープンソースセキュリティ報告 は、平均的なアプリケーションがそれらを49個抱えていると指摘しています。

このギャップが存在すべきではないと考え、Hound を作りました。

\"Claude
Hound が requests@2.31.0 に対して hound_inspect を実行 — 脆弱性、ライセンス、公開日を1回の呼び出しで取得

60秒で修正

1つのコマンド。APIキーは不要。アカウントも不要。設定ファイルも不要。

claude mcp add hound -- npx -y hound-mcp

これで終わりです。あなたのAIエージェントは自動的に使用できる12のセキュリティツールを手にしました — 脆弱性スキャニング、ライセンスチェック、タイポスクワット検出、依存関係の監査 — これらは npm、PyPI、Go、Cargo、Maven、NuGet、RubyGems にまたがります。

ツールの使い方を学ぶ必要はありません。設定も何も行いません。今のあなたの作業方法のまま続けるだけで、エージェントがより安全な意思決定を始めます。

Cursor、Windsurf、または Claude Desktop を使用していますか? これをあなたの MCP 設定に追加してください:

{
  \"mcpServers\": {
    \"hound\": {
      \"command\": \"npx\",
      \"args\": [\"-y\", \"hound-mcp\"]
    }
  }
}

VS Code Copilot:

{
  \"mcp\": {
    \"servers\": {
      \"hound\": {
        \"type\": \"stdio\",
        \"command\": \"npx\",
        \"args\": [\"-y\", \"hound-mcp\"]
      }
    }
  }
}

ヒント: 設定ファイルの場所: Claude Desktop (macOS) は ~/ Library/Application Support/Claude/claude_desktop_config.json、Cursor は ~/.cursor/mcp.json、Windsurf は ~/.codeium/windsurf/mcp_config.json

今あなたのエージェントができること

「このプロジェクトを監査する」

新しいチームに参加します。コードベースを引き継ぎます。 「依存関係のセキュリティ問題を監査する」 と伝えると、あなたのエージェントはロックファイルを読み込み、 hound_audit を実行します:

 Hound Audit — package-lock.json
══════════════════════════════════════════════════
Scanned 142 packages

 CRITICAL — 2 packages
──────────────────────────────
  lodash@4.17.20
    GHSA-35jh-r3h4-6jhm · Prototype pollution via zipObjectDeep
    Fix: upgrade to 4.17.21

  axios@0.21.1
    GHSA-42xw-2xvc-qx8m · Server-side request forgery
    Fix: upgrade to 0.21.2

 HIGH — 1 package
──────────────────────────────
  minimist@1.2.5
    GHSA-xvch-5gv4-984h · Prototype pollution
    Fix: upgrade to 1.2.6

✅ 139 packages clean

Source: OSV.dev

142 パッケージ。3つがフラグ付き。修正版が含まれています。エージェントはあなたが監査出力を1行も読まずにそれらをアップグレードします。これが全体のワークフロー — 「audit」と言えば、それで完了です。

「このパッケージをインストールして安全ですか?」

エージェントが npm install を実行する前に、まず以下をチェックできます:

 Pre-install check: lodash@4.17.20 (npm)
════════════════════════════════════════════════════════════
Verdict: NO-GO

 Blockers
──────────────────────────────
  • 2 CRITICAL/HIGH vulnerabilities known for this version

⚠️  Warnings
──────────────────────────────
  • Package version is 3 year(s) old — may be abandoned

 Run hound_vulns for full vulnerability details.
 Run hound_upgrade to find a safe version.

GO。 注意。 NO-GO。エージェントが実行できる明確な結論です — 安全なバージョンを選択する、代替案を提案する、または進行前に警告します。

「Express か Fastify か?」

推測やググりに頼る代わりに、あなたのエージェントは実際のセキュリティデータと比較します:

⚖️  Package Comparison (npm)
══════════════════════════════════════════════════
                        express         fastify
──────────────────────────────────────────────────
Version                 4.18.2          4.26.2
Vulnerabilities         0               0
OpenSSF Scorecard       6.8/10          7.2/10
Stars                   64,128          31,204
Days since release      821             45
License                 MIT             MIT

 Recommendation: fastify
   More recently maintained and slightly higher security score.

Not "which one is more popular" — which one is actively maintained, has better security practices, and was updated this century.

「これは実在するパッケージですか、それとも typosquat ですか?」

サプライチェーン攻撃は、人気ライブラリと1文字異なるパッケージ名を悪用します。 hound_typosquat はおそらくの候補を生成し、レジストリに存在するかを確認します — lodahsaxois のような攻撃を、ロックファイルに落ちる前に検出します。

Watch the full demo →

全12のツール

日常的には3つから4つを使います。残りは必要なときに使える状態です。

ツール 機能
hound_audit ロックファイル全体の脆弱性をスキャンする
hound_preinstall インストール前の GO / CAUTION / NO-GO
hound_score 0–100 のヘルススコア(A–F のアルファベットグレード)
hound_compare 推奨を表示しつつ 2 つのパッケージを並べて比較
hound_upgrade すべての脆弱性を修正する最小の安全版を見つける
hound_vulns 特定のパッケージバージョンに対するすべての既知の CVE
hound_inspect 完全なパッケージプロファイル — ライセンス、脆弱性、スコアカード、スター
hound_license_check ロックファイルをライセンスポリシーに対してスキャン
hound_tree 遷移依存関係を含む完全に解決された依存ツリー
hound_typosquat パッケージ名のタイポスクワットのバリアントを検出
hound_advisories GHSA、CVE、または OSV ID による完全なアドバイザリの詳細
hound_popular エコシステム内の人気パッケージを脆弱性の観点でスキャン

七つのエコシステムに対応します:七つのエコシステム、npm、PyPI、Go、Maven、Cargo、NuGet、RubyGems。同じツール、同じ出力です、言語に関係なく。

3つの組み込みプロンプト — security_auditpackage_evaluation、および pre_release_check — これらのツールを連携させ、エージェントが自動的に従う多段階のワークフローを作成します。

ゼロ設定が譲れない理由

ほとんどのセキュリティツールは、サインアップ → APIキーの生成 → 環境変数の設定 → YAML の設定 → もしかすると GitHub アプリのインストール → エディタの再起動、という流れです。各ステップは小さく見えますが、すべて合わせると多くの開発者は煩わしくて手を付けません。

Hound は Google が維持する2つの無料・未認証の公開APIを利用します:パッケージメタデータと OpenSSF Scorecards の deps.dev、および脆弱性データの OSV。キーもトークンもアカウントも不要。

これは厳格なルールであり、暫定的な近道ではありません。貢献ガイドライン に記載されています: Hound はゼロ設定のまま、永久に無料でなければなりません。 APIキーを必要とする PR はマージされません。

セキュリティツールを最も必要とする人々 — ソロ開発者、学生、初期段階のスタートアップ、オープンソースのメンテナー — は、最もお金を払う可能性が低い人々です。Hound は彼らのために作られました。

内部の仕組み

Hound は MCP サーバーです — Model Context Protocol、Anthropic によるオープン標準で、AI エージェントが統一インターフェースを介して外部ツールと対話できるようにします。AI の USB-C を想像してください。1つのプラグで、任意のツール、任意のエージェントと接続できます。

ローカルのマシン上でサブプロセスとして動作します。エージェントが Hound のツールを呼び出すと、リクエストはローカルのまま — Hound はロックファイルを読み込み、2つの Google API を HTTPS 経由で照会し、整形済みの結果を返します。あなたのコードは決してマシンを離れません。

ロックファイル・パーサはネイティブに6つの形式を扱います — package-lock.jsonyarn.lockpnpm-lock.yamlrequirements.txtCargo.lockgo.sum — 純粋な TypeScript の正規表現を用い、外部のパーサ依存はありません。OSV へのバッチクエリは1回の API 呼び出しで最大100パッケージをチェックします。これにより、完全な監査は数十秒ではなく数秒で完了します。

今後の予定

  • hound_diff — PR で新たに導入されたリスクを検出するため、2つのロックファイルスナップショットを比較します
  • GitHub Actionhound_audit を自動 PR チェックとして実行します、AI エージェントは不要
  • Docker のサポート — CI/CD パイプラインでの Hound
  • Bun と Gradle パーサ — さらに多くのエコシステム、さらに広いカバレッジ

試してみて、壊して、改善しよう

Hound は MIT ライセンスで、貢献を歓迎します。コードベースは TypeScript、テストは Vitest、CI は Node 18、20、22 で実行されます。

オープンソースに貢献したことがない場合 — ラベルが付いた 初心者向けの良い課題 は実際に取り組みやすいです。ロックファイルパーサのテストを追加すること、重複する定数を抽出すること、バージョン文字列の不整合を修正すること。現実的な課題、現実的な影響、良いエントリーポイントです。

Hound を使っていて何かがおかしい、壊れたと感じた場合は — Issues を開く。それも等しく価値があります。

唯一のルール: 設定ゼロ、永久に無料。

GitHub · npm · 課題 · ディスカッション