ソフトウェアの複雑さは、開発者が新しい機能、依存関係、抽象化のレイヤーを追加するにつれて増大することがよくあります。この複雑さは「不要な到達可能性」を引き起こす可能性があり、これはコードがコードベース内に存在しているものの、標準的なデプロイメントにおいてユーザーがアクセスできるように意図されていない状態を指します。Anthropicの研究者は、個々の脆弱性を発見して修正することは標準的なセキュリティ慣行ではあるものの、未知の脆弱性の根本的なリスクに対処しないため、スケーラビリティに欠けると主張しています。その代わりに、彼らは「攻撃面の削減」を提案しています。これは、公開する必要のないコードへのアクセスを特定して制限することで、特定のバグが発見される前であっても、潜在的なエクスプロイトの深刻度を低減する手法です。

ソフトウェアセキュリティに関するプロジェクトで協力して作業する研究チーム
Anthropicの研究者は、オープンソースソフトウェアの脆弱性を特定する手法を開発しています。www.anthropic.com

この画像は、オープンソースプロジェクトの脆弱性を特定および緩和するための研究チームの取り組みを表しています。

これをテストするために、AnthropicはC、C++、Java、PHP、Pythonなどの言語で書かれた、合計500万行を超える25のオープンソースプロジェクトに対してClaudeを実行しました。モデルは、意図しないコードを露出させるデフォルト設定、セキュリティ制御を密かに無効化する設定の相互作用、および認証やプロトコル状態の遷移の前に機密性の高いコードが実行される「早期到達可能性」の3つの主要なカテゴリーにわたって、493件の問題を特定しました。例えば、Claudeは警告なしに受け入れられる162件のセキュリティに敏感な設定の組み合わせを特定しました。そのうち94件では、その組み合わせによってセキュリティ制御が完全に無効化されていました。別の事例では、Claudeは、DNSルックアップが無効な場合にサーバーがホスト名のパターンをプレーンテキストのIPアドレスと比較するため、拒否ルールが「フェイルオープン」になる設定の欠陥を発見しました。

この研究は、安全なリモートアクセスのための広く監査されているCコードベースであるOpenSSHにおける重要な実世界への応用を強調しました。Claudeは、管理者がアルゴリズムを明示的に除外している場合でも、デフォルト設定において未認証のクライアントから到達可能な、約4,500行の実験的なポスト量子署名アルゴリズム(ML-DSA-44)のコードを特定しました。Anthropicはこれらの発見をOpenSSHの開発者に報告し、10.5および10.6のリリースでのパッチにつながりました。これらのアップデートにより、チェックがパース段階の前に移動し、以前は未認証のクライアントが到達できたコードの約5分の1を事実上除去しました。研究者は、OpenSSHのような高度に監査されたコードにこのような脆弱性が存在する場合、それらはより精査されていないソフトウェアにも存在している可能性が高く、自動化された攻撃面の削減は非常に効果の高い防御戦略になると指摘しています。