Anthropic、オープンソースプロジェクトが警告なくセキュリティ制御を無効化する94件の事例を確認

ソフトウェアには、機能が無効になっている場合や不要な場合でも、認証前のユーザーが複雑な機能にアクセスできてしまうものがあります。Anthropicのフロンティアレッドチームは、Claudeを使って25のオープンソースプロジェクトを調査しました。その結果、不要な機能の公開、設定の競合、セキュリティチェックより前に実行されるコードに関する問題を493件報告しています。

攻撃対象領域の縮小とは、攻撃者が到達できるソフトウェアの範囲を限定することです。開発者は、脆弱性が見つかるのを待つのではなく、不要な機能へのアクセスを制限したり、複雑な処理の前にセキュリティチェックを移したりできます。

不要な機能の公開とセキュリティ設定の競合

調査では、次の3種類の露出に焦点を当てました。1つ目は、デフォルト設定で到達できるにもかかわらず、本来デフォルトで提供する機能を持たないコードです。2つ目は、組み合わせることで保護を弱める設定です。3つ目は、適切なセキュリティチェック、ユーザー操作、プロトコルの状態遷移より前に実行される、セキュリティ上重要なコードや複雑なコードです。

Image

各手法で発見された問題のカテゴリ別内訳(出典:Anthropic)

機能を認証済みユーザーに限定する意図を持つ11のプロジェクトはすべて、認証前に意図せず到達できるコードを含んでいました。Anthropicによると、このグループの問題は単独ですぐに悪用できるものではありませんが、攻撃者が狙える攻撃対象領域を広げていました。

とりわけ重大な問題は、設定の相互作用から見つかっています。Claudeは、全プロジェクトを通じて、セキュリティ上重要な設定の組み合わせを162件特定しました。これらはエラーも警告も出さずに受け入れられ、組み合わせた際の挙動を説明するドキュメントもありませんでした。うち94件では、設定の組み合わせによってセキュリティ制御が警告なく無効になっていました。

無関係な4つのプロジェクトでは、ホスト名ベースのアクセスルールが、逆引きDNSの検索を制御する別の設定に依存していました。検索を無効にすると、サーバーはホスト名のルールをクライアントのIPアドレスと比較します。その結果、ホスト名ベースの拒否ルールが一致せず、管理者が遮断するつもりだった接続を許可してしまいます。

別の例では、2つの設定の組み合わせにより、クライアント証明書を必須にしているはずのサーバーが、誰からの接続でも受け入れていました。証明書の要件が無効になっても、管理者には警告が出ません。Anthropicによれば、この競合するオプションは21年間にわたりソフトウェアに存在していたということです。

AnthropicのChris Rohlf氏(LinkedIn)は、次のように書いています。「これらの手法でコードに潜む未知の脆弱性がなくなるわけではありませんが、脆弱性に到達しにくくなります」

OpenSSHの攻撃対象領域を縮小

安全なリモートアクセスを提供するOpenSSHでは、Claudeが約4,500行の実験的な暗号コードを特定しました。管理者がそのアルゴリズムを明示的に除外していても、認証前のクライアントがこのコードに到達できる状態でした。

このコードは、耐量子計算機署名アルゴリズムのML-DSA-44を実装したものです。OpenSSHは、渡された鍵を処理してから、その鍵の種類が許可されているかを確認していました。

Anthropicはこの問題をOpenSSHのメンテナーに報告し、パッチも提供しました。OpenSSH 10.5ではチェックをパース処理の前に移しましたが、Claudeはその後、2つの抜け穴を見つけています。1つは、クライアントが鍵の種類を偽れること。もう1つは、証明書の処理が、関連する設定チェックより前に署名検証コードへ到達しうることです。

Anthropicはメンテナーと協力して、さらに変更を加えました。パーサー内部にチェックを置き、エンコードされた鍵の種類と証明書の署名アルゴリズムを、対応する処理の前に、設定された許可リストと照合するようにしたものです。

OpenSSH 10.6で提供されたこの変更により、デフォルトビルドで認証前に到達できるOpenSSHのコードは、およそ5分の1減りました。このコードの脆弱性を見つけなくても、不要なアクセスを制限するだけで効果が得られたことになります。

Anthropicの手法の適用方法

Anthropicはこれらの手法を、再利用可能なClaudeのスキルにまとめました。オープンソースプロジェクト向けの無料のオプトイン型セキュリティスキャンサービスOSS Scannerへの統合を進めています。

このスキルは、デフォルトで公開されている不要なコード、認証やその他のセキュリティゲートより前にアクセスできる機能、警告なく保護を弱める設定の組み合わせを調べます。

Claudeは、動的実行トレースで検出結果を検証します。デフォルト設定での検出結果については、提案したゲートを実装し、プロジェクト自身のテストとブラックボックスのリグレッションスイートを使って、変更後のビルドをベースラインと比較します。結果は同一でなければなりません。

デフォルト以外の設定で挙動が変わるゲートは、人間によるレビューに回します。それ以外のパスでは、Claudeが設定チェックの移動、プロトコルの状態順序の強制、競合する設定の拒否といった変更を提案します。

この手法は、コード分析にとどまらず応用できます。Anthropicによると、Claudeは実行時ログと設定を突き合わせ、未使用のパーサー、レガシープロトコル、ダッシュボードといった不要な機能を特定できます。運用者がこれらを無効にすれば、セキュリティリスクを減らせます。

翻訳元: https://www.helpnetsecurity.com/2026/10/22/anthropic-attack-surface-reduction-open-source/

本記事は helpnetsecurity.com の記事を翻訳・要約したものです。