Anthropicは、AIモデル「Claude」を使ってソフトウェアのアタックサーフェスを分析し、縮小する研究の初期結果を公開した。25件のオープンソースプロジェクトから493件の問題を特定し、OpenSSHでは認証前に到達可能だったコードの削減につなげた。
脆弱性単体ではなく到達可能な範囲を分析
アタックサーフェスとは、外部の攻撃者が到達できるコードの範囲を指す。今回の研究では、個々の脆弱性を探すだけでなく、不要な機能を認証後へ移す、初期設定で無効化するといった方法により、攻撃者がアクセスできる範囲そのものを狭めることを目指した。
Claudeによる3つの分析観点
Claudeは、C、C++、Java、PHP、Pythonなどで書かれた25件、合計500万行超のオープンソースプロジェクトを分析した。調査対象となった1万7000以上の設定項目のうち、3842項目がセキュリティ関連と判断された。
- 初期設定のまま、不要なコードへ外部から到達できないか
- 組み合わせによって問題を起こす設定がないか
- 認証などのチェック前に複雑な処理が実行されていないか
この分析により、合計493件の問題が見つかった。認証を前提とする11プロジェクトすべてで、意図せず外部から到達できるコードが確認された。
設定の矛盾を162件特定
エラーや警告を出さずに受け入れられる設定の組み合わせは162件あり、そのうち94件ではセキュリティ機能が意図せず無効になっていた。記事では、クライアント証明書による認証を求める設定が、別の設定との併用によって解除される事例も紹介されている。この矛盾は21年間残っていたという。
これらは単独で直ちに悪用できる問題とは限らない。一方でAnthropic側は、必要以上に攻撃の入り口を広げる要因になると説明している。
OpenSSH 10.6への修正成果
大きな成果が得られた対象は、リモート接続に広く使われるOpenSSHだった。バージョン10.4では、耐量子計算機暗号の署名方式「ML-DSA-44」に関する実験的コード約4500行へ、認証前のクライアントが到達できた。
このコードは初期設定で有効ではなく、管理者が明示的に除外した場合でも到達可能だった。約4500行は、初期設定のOpenSSHで認証前に動くコードのおよそ16%に相当する。
Anthropicは修正案とともにOpenSSHの開発者へ報告し、バージョン10.5で対策が導入された。その後、Claudeが対策に残る2つの抜け道を特定。開発者との修正を経て、認証前に到達できたコードの約5分の1が削減され、その成果はOpenSSH 10.6へ反映された。
OSS Scannerへの組み込み
Anthropicは今回の分析手法を再利用可能なスキルとして整理し、オープンソース向け脆弱性発見サービスOSS Scannerへの組み込みを進めている。
想定される使い方
- 3つの観点に沿って設定とコードの到達経路を順番に分析する
- 検出した問題を、プログラムを実際に動かして確認する
- 初期設定を変更する修正では、プロジェクトのテストを実行して既定動作への影響を確認する
- 初期設定以外の動作に影響する変更は、人間が判断する
ここまでが記事で示された事実である。今回の成果は、Claudeを脆弱性の個別検出だけでなく、設定と実行経路を横断して攻撃対象領域を整理する用途に利用した事例と位置付けられる。
出典
ITmedia NEWS:Anthropic、Claudeでソフトウェアのアタックサーフェスを洗い出し・縮小する研究を公開


