Claudeがソフトウェアの攻撃対象領域を分析・縮小!OpenSSHの修正にも貢献

Claudeがソフトウェアの攻撃対象領域を分析・縮小
米Anthropicは、AIモデル「Claude」を活用してソフトウェアの攻撃対象領域(アタックサーフェス)を分析し、縮小する研究の初期結果を公開しました。この研究は、同社のAIリスク評価を担う「Frontier Red Team」のクリス・ロルフ氏によって執筆されました。
攻撃対象領域とは、外部の攻撃者が到達できるコードの範囲を指します。Anthropicによると、個々の脆弱性を修正する従来の方法では、規模を広げにくいという課題がありました。これに対し、外部に見せる必要のない機能を認証の後ろに移したり、初期設定で無効にしたりすることで、攻撃者が届く範囲を狭めるアプローチを提案しています。この方法により、まだ発見されていない脆弱性があっても悪用されにくくなり、深刻度を下げられると説明されています。
研究の概要と成果
この研究では、C、C++、Java、PHP、Pythonなどで書かれたオープンソースプロジェクト25件(合計500万行超)をClaudeで分析しました。Claudeは各プロジェクトから1万7000以上の設定項目を洗い出し、そのうち3842項目がセキュリティに関連するものでした。分析は以下の3つの観点で行われました。
- 初期設定のまま不要なコードに外部から届かないか
- 組み合わせると問題を起こす設定がないか
- 認証などのチェックより前に複雑な処理が動いていないか
その結果、合計493件の問題が発見されました。認証を前提とする11件のプロジェクトでは、すべてで意図せず外部から届くコードが見つかっています。また、エラーや警告なしに受け入れられる設定の組み合わせが162件あり、そのうち94件ではセキュリティ機能が意図せず無効化されていました。中には、クライアント証明書による認証を求める設定と別の設定を併用すると、証明書のチェックが外れて誰でも接続できてしまうという、21年間残っていた設定の矛盾も発見されました。
OpenSSHへの貢献
この研究で最も大きな成果を上げたのは、リモート接続に広く使われる「OpenSSH」です。バージョン10.4では、耐量子計算機暗号の署名方式「ML-DSA-44」の実験的なコード約4500行が、認証前のクライアントから到達できる状態でした。このコードは初期設定では有効になっておらず、管理者が明示的に除外した場合でも同様でした。この約4500行は、初期設定のOpenSSHで認証前に動くコードの約16%に相当します。
AnthropicはこれをOpenSSHの開発者に修正案とともに報告し、バージョン10.5で対策が導入されました。その後もClaudeは10.5の対策に2つの抜け道を発見し、開発者との修正作業を重ねた結果、認証前のクライアントが到達できたコードの約5分の1が削減され、この修正はバージョン10.6に反映されました。OpenSSH 10.6は10月6日に公開されています。
ロルフ氏は、OpenSSHが世界で最も入念に監査されているコードの一つであるにもかかわらず、不要な到達経路が残っていたことから、同様の問題は他のどこにでも存在しうると指摘しています。
今後の展開
Anthropicは今回の手法を再利用可能な「スキル」としてまとめ、オープンソース向けの脆弱性発見サービス「OSS Scanner」に組み込む作業を進めています。このスキルは3つの観点で順に分析を行い、発見された問題はプログラムを実際に動かして確認されます。初期設定に関わる修正では、プロジェクトのテストを実行して既定の動作が変わらないことを確認し、初期設定以外の動作に影響する変更は人間の判断に委ねる設計となっています。


