AIが生成したパッチ、半分は失敗する

開発者たちはAIモデルを使ってますます多くのコードを生成するようになっていますが、それと同時に脆弱性の発見やパッチ生成にもAIシステムを頼るようになっています。しかし残念ながら、こうしたモデルはその仕事があまり得意ではないようです。

アイデンティティ管理企業の1Passwordが8月6日に発表したレポートによると、最新のAIシステムであっても、効果的なパッチを生成できるのは全体の約半分程度にとどまるという最近の研究結果が示されています。その有効性を検証するため、同社の研究チームOff-By-1は、3月以降に開示された6件の脆弱性に対して、2種類の大規模言語モデル(LLM)――OpenAIの「Trusted Access for Cyber」を備えたChatGPT-5.5と、Anthropicの「Cyber Verification Program」を備えたOpus 4.8――を用い、合計540件のパッチを生成させました。

これら6,080件のパッチのうち、根本的な脆弱性を実際に解消できたのはわずか46%でした。しかも、その多くが新たな脆弱性を新たに持ち込んでしまっていました。1Passwordのセキュリティ研究担当ディレクター、キース・フードレット(Keith Hoodlet)氏によれば、うまく機能したパッチであっても、その多くは「脆く」、限られたケースしか修正できていなかったり、比較的簡単な回避策で突破されてしまったりしたといいます。

同氏は「今回の調査結果を踏まえると、目新しい、あるいはAI開発企業の学習データセットに含まれていないような欠陥に対するAI生成パッチについては、成果としてのパッチ成功率はむしろマイナスに転じていると言えます」と述べています。

フードレット氏が指摘するように、AIシステムはパッチを当てるよりも脆弱性を悪用するほうが容易にできてしまうという、能力面での残念な非対称性が存在しています。7月には、OpenAIの最新の研究用モデルがサンドボックス環境から脱出し、オープンモデルのリポジトリであるHugging Faceを攻撃する事態が発生しました。こうした脱出事例はこれだけではありません。Anthropicも、自社のClaude AIモデルが複数回にわたり同様の脱出を起こしていたことを公表しています。さらに今週には、MetaのAIも同様に暴走したとされていますが、詳細はまだほとんど明らかになっていません。一方で攻撃者側も、AIを使って脆弱性を発見し、攻撃を自動化する動きを強めており、防御側はその対応に追われるようなプレッシャーにさらされています。

同氏は「AIとエージェント機能の進化によって、攻撃者はこれまでにないほどの規模で、より多くの企業、より多くの個人、より多くのコードベースを攻撃する能力を拡大しつつあります」と述べます。「だからこそ、防御側が今できる最善策は、時間とエネルギーを注いで、抱えている脆弱性の未対応分をとにかく着実に減らしていくことだと思います」

なぜAI生成パッチは「FLAWED」なのか

1Passwordの調査は、6件の主要なオープンソース脆弱性を対象に、さまざまなパッチ生成パイプラインや異なるプロンプト、そして2つの主要モデルを組み合わせて検証したところ、実際に修正できた問題の割合は半分にも満たなかったことを示しています。「Fix-Like Artifacts with Embedded Defects(欠陥を内包した修正もどきの成果物)」、略して「FLAWED」と名付けられたこの研究では、生成されたパッチを5つのシナリオに分類しました。すなわち、(1)修正できた、(2)動作を変更することで修正できた、(3)修正できなかった、(4)修正できたが新たな欠陥を生んだ、(5)修正できず新たな欠陥まで加わった、の5つです。パッチのうち、アプリケーションの動作を変えずに元の脆弱性を修正できたのは全体のわずか4分の1(26%)にとどまり、20%はコードの動作を変更することで脆弱性を修正していました。最も多かったのは脆弱性を修正できなかったパッチで、全体の49%を占めたと、1Passwordは調査レポートで述べています

この結果は、アプリケーションセキュリティ企業のVeracodeが実施した調査結果とも近い傾向を示しています。同社が100種類以上のモデルと80件のコーディングタスクを対象に調査したところ、AI生成コードのセキュリティ合格率は平均で56%にとどまりました。また、生成されたコードのうち実に44%近くに、検出可能なOWASP Top 10の脆弱性が含まれていたと、同社は調査ブリーフの中で述べています。

Veracodeのプリンシパルアーキテクト、サム・ガイヤー(Sam Guyer)氏は、今回の調査結果について「LLMは、実装方法の選択肢が複数ある場合、安全な戦略を選ぶか、安全でない戦略を選ぶかについて非常にばらつきが大きいことを示しています」と述べます。「いずれのケースでも、出力されたコードは一見完成しており、正常に動作しているように見えますが、セキュリティの観点からは信頼性に欠けたままになっていることがあります」

こうした結果は、攻撃者が最先端モデルにアクセスして自ら脆弱性を発見する前に、AIを使って脆弱性を修正しようとする取り組みに直接的な影響を及ぼします。OpenAIがサイバーセキュリティコンサルティング企業のTrail of Bitsと協力し、脆弱性の発見・解消に取り組むと発表した6月の「Patch the Planet」構想についても、1Passwordのフードレット氏によれば、生成されるパッチの品質面で既に問題が生じ始めているといいます。

ガイヤー氏は、FLAWEDの分類でいうシナリオ3、4、5――パッチが元の脆弱性を修正できていない、あるいは新たな脆弱性を持ち込んでしまっている(場合によってはその両方)ケース――について、「週末に生成されたパッチ群の中にも、明らかにシナリオ3、4、5に該当する結果が確認できたと断言できます。我々はそれらを報告済みです」と述べています。

Image

フードレット氏はさらに、開発者たちがエージェント型AIから生成されたコードを、コードベースに対する批判的な分析を行わないまま受け入れる傾向が強まっていることも問題だと指摘します。企業は脆弱性をできるだけ早く洗い出し、未対応分を解消しようと努めるべきですが、それと同時に、生成されたパッチを検証・検証確認することを怠ってはならないと同氏は述べます。

開発ツールメーカーのCursorが実施した開発者の行動に関する調査によると、変更の36%が、コード変更内容の手動レビューを経ないまま自動的に承認されていることが分かりました。この数値はコードの変更量に基づくものであり、その慣行に移行している開発者の人数を示すものではありませんが、フードレット氏によれば、批判的な分析の工程や何らかの検証手段を伴わないまま、エージェント型AIによるコード生成のループが加速しているように見えるといいます。

多くの開発者にとって、「そのループを一通り回してみて……パッチがうまく機能したのであれば、それ以上続ける理由がどこにあるでしょうか」と同氏は述べます。

脆弱性の未対応分を着実に減らす

アプリケーションセキュリティ企業Black Duckのシニアサイバーセキュリティエンジニア、ロバート・コールズ(Robert Coles)氏は、開発チームは依然としてAIから大きな恩恵を受けられるとしつつも、そのプロセスの管理にはより一層の注意を払う必要があると述べています。

同氏は「ここから読み取るべきことは、AI生成パッチが機能しないということではなく、依然として人間による検証が不可欠だということです」と述べます。「AIは開発を加速させ、有望な修正案の特定を助けてくれますが、セキュリティチームや開発者は、そのパッチが実際に根本的な脆弱性を解消できているか、リグレッション(機能低下)を引き起こしていないか、そして安全なコーディング基準を満たしているかを検証する必要があります」

Veracodeのガイヤー氏は、企業はAIによるコーディングから得られる生産性向上の恩恵を引き続き享受できるとしつつも、検証のプロセスも生成量に見合う形でスケールさせる必要があると述べます。

同氏は「開発者は、AIが生成したコードやパッチを、検証済みの修正としてではなく、あくまで修正案として扱うべきです」と述べます。「機能テストとリグレッションテストを実施し、機微な変更や複雑な変更については人間によるレビューを必須とし、さらにファイルや依存関係、呼び出しパスをまたいでデータの流れを追跡できるプログラム全体の静的解析によって、プロセス全体を下支えする必要があります」

AIシステムは着実に性能を向上させており、ハーネス(実行環境)の改善とも相まって、この問題は比較的近い将来に解消される可能性があるとフードレット氏は述べます。開発者たちは、人間がより厳密な仕様を作成し、AIシステムがそのコードが仕様を満たしているかを形式的に検証する、という段階に到達するかもしれないといいます。

同氏は「仕様作成のプロセスは依然として人間の役割ですが、モデル自体は形式検証コードを書く能力において非常に優れてきています」と述べます。「そして、優れた仕様さえあれば、3年から5年前にできていたであろうことと比べても、はるかに容易で、おそらくより高性能な形でコードを形式的に検証できるようになるのです」

翻訳元: https://www.darkreading.com/application-security/ai-generated-patches-fail-half-time

ソース: darkreading.com