3 つの手法と 25 プロジェクト

Claude が探したのは 3 種類です。出荷時のデフォルト設定で到達できるのにデフォルト機能では使われないコード、単独では問題ないのに組み合わせると問題になる設定、認証などの制御より前に動く複雑でセキュリティ上重要なコードです。対象は C、C++、Java、PHP、Python などで書かれた 25 のオープンソースプロジェクト、計 500 万行超。Claude は 17,000 以上の設定項目を洗い出し、うち 3,842 項目がセキュリティ関連で、493 件の問題を見つけました。

主な発見

  • 認証済みユーザー向けの 11 プロジェクトすべてに、意図せず到達できるコードがありました。デフォルト設定での不要な認証前の入口が 93 件、認証前にコードが実行されたり状態が記録されたりする箇所が 37 件、管理者が設定した認証前の制御を黙って弱める設定の組み合わせが 61 件です。
  • エラーも警告も文書もないまま受け付けられるセキュリティ関連の設定の組み合わせが 162 件あり、うち 94 件はセキュリティ制御を黙って無効にしていました。
  • 無関係な 4 つのプロジェクトで、ホスト名で書いた拒否ルールが逆引き DNS 無効時には一致せず、リストが素通りになる同じパターンが見つかりました。
  • あるプロジェクトでは、クライアント証明書の確認を必要時まで遅らせるはずの設定が実際には確認を無効にしており、確認の内側にあるはずのリクエスト処理コードに誰でも到達できました。この競合は 21 年間存在していました。

OpenSSH

コード全体に占める割合で最も大きく縮小できたのは OpenSSH です。10.4 では、実験的な ML-DSA-44 署名コード約 4,500 行に、デフォルト設定の未認証クライアントが到達できました。管理者がこのアルゴリズムを除外していても同じで、デフォルトの sshd の認証前コードの約 16% にあたります。メンテナーと修正を重ねた結果、許可リストの確認が解析や署名検証より前に行われるようになり、未認証クライアントが到達できたコードの約 5 分の 1 が取り除かれました。変更は OpenSSH 10.6 に含まれています。

今後

Anthropic はこの手法を 1 つの Claude スキルにまとめました。コードベースに 3 回のパスを走らせ、各発見を動的トレースで確認します。オープンソース向けのオプトイン型脆弱性発見サービス OSS-Scanner への組み込みを進めているとしていますが、時期は示していません。非デフォルトの動作を変えるゲートは人が判断します。

攻撃側の評価については、Vals AI の攻撃型サイバーテストで DeepSeek V4.1 Flash 1017 が GPT-6 Sol を上回った件をご覧ください。チーム向けの Claude のコードチェックについては Claude Code Review の Team・Enterprise 向け費用にまとめています。