本文へスキップ
AI-Papers

Anthropic、Claudeで攻撃対象領域を縮小、OpenSSHの認証前コード1/5削減

Anthropic、Claudeで攻撃対象領域を縮小、OpenSSHの認証前コード1/5削減
  • AnthropicがClaudeを使い、オープンソースの攻撃対象領域そのものを狭める研究の初期結果を公開した
  • 25プロジェクト500万行超を分析し、設定項目1万7000件以上から3842件のセキュリティ関連項目を抽出、493件の問題を特定
  • OpenSSHでは認証前に到達できるコードを約5分の1削減し、その成果がバージョン10.6に反映された

研究の概要

Anthropicは2026年10月20日(現地時間)、同社のAIモデルClaudeを使ってソフトウェアの攻撃対象領域を縮小する研究の初期結果を公開しました。執筆したのは、AIのリスク評価を担う社内チームFrontier Red Teamのクリス・ロルフ氏です。

攻撃対象領域(アタックサーフェス)とは、外部の攻撃者が到達できるコードの範囲を指します。今回の研究が従来のAIセキュリティ研究と異なるのは、個別の脆弱性を見つけることではなく、到達経路そのものを閉じる点に軸足を置いていることです。

脆弱性探しとの違い

脆弱性を1件ずつ発見して修正する手法では、残っている脆弱性がどれだけあるのか分かりません。そのため、対策の規模を広げにくいという課題があります。

これに対して、外部に公開する必要のない機能を認証の背後に移したり、初期設定で無効にしたりすれば、未発見の脆弱性が残っていても悪用されにくくなります。弱点を探す前に、使っていない出入口を閉じておくという考え方です。

25プロジェクトの分析結果

分析対象はC、C++、Java、PHP、Pythonなどで書かれたオープンソースプロジェクト25件、合計500万行を超えるコードです。Claudeは各プロジェクトから設定項目を抽出し、そのうちセキュリティに関わるものを選り分けたうえで問題の洗い出しを行いました。

項目

件数

分析対象プロジェクト

25件(500万行超)

抽出した設定項目

1万7000件以上

うちセキュリティ関連

3842件

特定した問題

493件

矛盾する設定の組み合わせ

162件(うち94件で機能が無効化)

認証を前提とする11プロジェクトでは、いずれも意図せず外部から到達できるコードが見つかりました。エラーも警告も出さずに受け入れられてしまう設定の組み合わせは162件あり、そのうち94件ではセキュリティ機能が意図せず無効になっていたといいます。

具体例として、クライアント証明書による認証を求める設定と別の設定を併用すると、証明書の検査が外れて誰でも接続できる状態になるケースが挙げられています。この設定の矛盾は21年間残っていたとされます。いずれも単独ですぐ悪用できるものではありませんが、必要以上に攻撃の入口を広げている状態だと説明されています。

OpenSSHでの実測成果

研究で最も具体的な成果が得られたのは、リモート接続で広く使われるOpenSSHへの適用でした。バージョン10.4では、耐量子計算機暗号の署名方式であるML-DSA-44の実験的コード約4500行に、認証前のクライアントが到達できる状態でした。

この方式は初期設定では有効になっておらず、管理者が明示的に除外した場合でも同じように到達可能だったといいます。約4500行は、初期設定のOpenSSHで認証前に動作するコードの約16%に相当します。

Anthropicが修正案を添えて開発者に報告した結果、バージョン10.5で対策が入りました。その後Claudeが10.5の対策に含まれる2つの抜け道を見つけ、開発者とやり取りを重ねた末に認証前へ到達できるコードは約5分の1削減され、2026年10月6日公開のバージョン10.6に反映されています。ロルフ氏は、世界で最も入念に監査されているコードの一つであるOpenSSHにも不要な到達経路が残っていた以上、他のソフトウェアにも同様の経路が残り得ると述べています。

Skill化とOSS Scanner

Anthropicは今回の手法を再利用可能なSkillとしてまとめ、オープンソース向けの脆弱性発見サービスOSS Scannerへ組み込む作業を進めています。Skillは、初期設定のままで不要なコードに外部から到達できないか、複数の設定を組み合わせると問題が起きないか、認証などの検査より前に複雑な処理が実行されていないか、という3つの観点を順に分析します。

図1: Skillによる分析と修正反映の流れ
図1: Skillによる分析と修正反映の流れ

図1のように、見つかった問題はプログラムを実際に動かして確認する工程に進みます。初期設定に関する修正はプロジェクトのテストを実行し、既定の動作が変わらないことを確かめたうえで反映されます。一方、初期設定以外の動作に影響する変更は人間の判断に委ねる設計です。

AIをセキュリティ検証に使う試みは、AIブラウザ7種の同一オリジンポリシー回避を検証した報告のように、対象を外から評価する形が中心でした。今回の研究は、コードベースの内側から到達経路を数えて減らすという方向で、開発者が自分のプロジェクトに適用しやすい形を取っています。

シェア:

投稿には GitHub アカウントが必要です。投稿内容は公開され、利用規約に反するものは予告なく削除します。