Claudがオープンソースの深刻なセキュリティ問題を約500件検出 ― C、Java、Ppythonのコードにリスク、ある欠陥は21年間潜伏…


  • Anthropicは、Claudeを使って25のオープンソースプロジェクトを分析し、約500件のセキュリティ問題を発見
  • 調査では、認証前に到達できるコードパス、互いに矛盾するセキュリティ設定、長年見過ごされてきた欠陥が判明
  • AIは攻撃対象領域(アタックサーフェス)の縮小策も特定し、脆弱性が悪用される前に不要なコードの露出を解消

Anthropicはこのほど、C、C++、Java、PHP、Pythonで書かれた主要なオープンソースプロジェクト25件のセキュリティ問題を、Claudeで分析しました。その結果、約500件の問題が見つかっています。内訳には、設定の競合によって無効化されたセキュリティ制御、認証前にアクセスできる機密性の高いコード、さらには21年間コードに潜んでいた脆弱性などが含まれます。

今回の調査は、一般的な脆弱性探しではありません。Anthropicはレポートの中で、個々の脆弱性を探す作業は終わりのない「シーシュポスの岩」のようなものだと主張しています。規模を拡大しにくく、安全性を保証することもできないためです。そのうえで、防御側は悪用される可能性のあるコードへの不要なアクセスを制限し、ソフトウェアの攻撃対象領域を減らす方向へ舵を切るべきだと訴えています。

Anthropicは次のように述べています。「コード内の不要な攻撃対象領域を減らせば、そのコードに潜むあらゆる未知の脆弱性のリスクを一度に下げられます。すでにひそかに悪用されているものも例外ではありません」

スキャンした25のプロジェクトのコードは、合計500万行以上に及びます。Claudeは1万7,000件を超える設定オプションの一覧を作成し、そのうち3,842件がセキュリティに関わる制御や機能に関するものでした。

誤設定されたセキュリティ制御

同社の調査は、コードが不必要に露出する3つのパターンに着目しました。1つ目は、不要なのにデフォルト設定でアクセスできてしまう機能です。2つ目は、組み合わせるとセキュリティを損なう複数の設定です。3つ目は、セキュリティチェックの前に実行される、不必要に複雑で機密性の高いコードです。

分析の結果、認証済みユーザー向けに設計された11のプロジェクトすべてに、本来は到達できないはずのコードが存在しました。具体的には、デフォルト設定での認証前の攻撃対象領域が93件、認証前にコードが実行されるケースが37件、認証前の制御を弱める設定の組み合わせが61件です。

分析した25のプロジェクト全体では、ドキュメントに挙動の説明がないまま受け入れられる設定の組み合わせが162件ありました。セキュリティ制御が無効化されているケースもあれば、さまざまな不整合や問題を抱えるケースもあります。

Anthropicによると、ある設定上の欠陥は20年以上も発見されないままでした。ある設定ではクライアントに証明書による本人確認を求める一方、別の設定ではその確認を完全に無効にしていました(本来は確認を遅らせるための設定で、無効にする意図ではありませんでした)。両者は互いに矛盾するオプションでしたが、警告もなく受け入れられていました。

OpenSSHでは数千行のコードが露出

Anthropicは、レポートのケーススタディとしてOpenSSHを取り上げました。安全なリモートアクセスの手段として広く使われているこのソフトウェアのデーモンでは、ポスト量子署名アルゴリズムを実装した4,500行の実験的コードに到達できました。しかも、サーバーの設定で許可されているかどうかを確認する前の段階です。

このアルゴリズムはデフォルトで無効でしたが、そのパース処理のコードには認証前のクライアントがアクセスできる状態でした。AnthropicがOpenSSHに調査結果を報告したところ、バージョン10.6で修正されました。この修正により、認証前のクライアントが到達できないコードは全体の約20%になりました。

同社は、これらの手法を再利用可能なClaudeのスキルにまとめたと説明しています。このスキルは近く、オープンソースプロジェクト向けの無料かつオプトイン方式のセキュリティスキャンサービス「OSS-Scanner」に統合される予定です。デフォルト設定、セキュリティチェック前に到達できるコード、互いに競合する設定を調べます。

Anthropicは、動的なプログラムトレースで検出結果を検証し、提案する変更が既存の挙動に影響しないかもテストすると付け加えています。影響が大きくなりかねない変更は、人間によるレビューに委ねる方針です。

研究者らは次のように結論づけています。「あるコードベースに未知の脆弱性がいくつあるのかを測ることは、おそらく不可能です。攻撃者は十分な時間をかければ、そうした脆弱性を見つけ出します。最先端のAIモデルを使えばなおさらです。これを裏づけるデータも数多くあります」。だからこそ、AIは開発者が不要な露出を体系的に抑えるのに役立ち、ソフトウェアを攻撃されにくくできるとしています。




翻訳元: https://www.techradar.com/pro/security/claude-flags-nearly-500-worrying-open-source-security-issues-c-java-and-python-code-all-at-risk-as-one-flaw-wasnt-spotted-for-21-years

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