← 最新の論文
🤖 machine learning

The Illusion of Secure LLM Code: Closing the Security Gap via Iterative Reprompting

本研究は、AIコーディングアシスタントはデフォルトでは安全な認証コードを生成できないことを実証しており、NISTの標準に求められる包括的なセキュリティアーキテクチャを達成できるのは、単発のプロンプトではなく、自己監査ループを伴う反復的な再プロンプトであるということを明らかにしている。

原著者: Ishpuneet Singh, Shreyas Mahajan, Gurjot Singh, Maninder Singh

公開日 2026-07-28
📖 1 分で読めます☕ さくっと読める

原著者: Ishpuneet Singh, Shreyas Mahajan, Gurjot Singh, Maninder Singh

原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む

あなたは、最新鋭の超スマートなロボット助手を買ったところだと想像してください。あなたはロボットに家を建てるよう頼み、するとロボットは数秒のうちに、壁、屋根、そして玄関ドアを備えた美しい構造物を作り上げました。見た目は完璧です!しかし、ここに落とし穴があります。そのロボットは、インターネット上の何百万もの古い設計図を読んで家の建て方を学んだのですが、そこには、裏口の鍵をかけるのを忘れていたり、土台に段ボールを使っていたりする1980年代の設計図も含まれていたのです。ロボットは「家らしく見せる」ことには長けていますが、実際に泥棒を防げるような家を作る方法までは必ずしも理解していません。

これが、ソフトウェア開発における大規模言語モデル(LLM)の世界です。これらは、私たちにコンピュータコードを書いてくれるAI「ロボット」です。彼らはプログラマーがアプリをより速く構築するのを助けることで有名になっています。しかし、大きな疑問がつきまとっています。もしAIにウェブサイトのデジタルな「玄関ドア」(認証システムと呼ばれます)を作るよう頼んだら、それは要塞を築くのでしょうか、それともハッカーが蹴り倒せるような、ただの薄っぺらな段ボールのドアを作るのでしょうか?私たちがこれを重視するのは、オンラインでの私たちの活動のほとんど――銀行取引、ソーシャルメディア、ショッピング――が、これらのデジタルのドアに依存しているからです。もしAIが脆弱なドアを作ってしまったら、私たちの秘密は安全ではなくなってしまいます。

デジタル・ドアの大テスト

この論文の中で、研究チームはある「最悪のシナリオ」を想定した開発者の役割を演じることにしました。彼らは、人間の専門家がセキュリティのヒントを耳元で囁いている状態のAIが見せる能力を見たいわけではありませんでした。彼らは、AIが放っておかれた時、あるいは曖лоいヒントだけを与えられた時にどうなるのかを見たいと考えたのです。彼らは、5つの最も人気のあるAIコーディング・アシスタント(GitHub CopilotやOpenAI Codex、Googleのモデルなどを含む)をテストするために、大規模な実験をセットアップしました。

彼らの目的はシンプルでした。これらのAIにウェブアプリ用のログインシステムを構築させることです。その後、彼らはデジタルな泥棒のチームのように振る舞い、中に侵入できるかどうかをテストしました。

研究者たちは、AIにドアを作るよう頼む方法として、4つの異なるアプローチを試しました。

  1. 「とにかくやれ」アプローチ(基本プロンプト): 彼らはAIに「クリーンなログインシステムを構築して」と頼みました。セキュリティについては一切触れません。ただ「動くようにして」という指示です。
  2. 「優しくして」アプローチ(セキュア・プロンプト): 彼らは少しだけ後押しを加えました。「安全でクリーンなものにして」と。
  3. 「専門家マニュアル」アプローチ(NISTベース・プロンプト): 彼らはAIに特定のルールブック(NIST SP 800-63Bガイドライン。これはデジタルの鍵に関する公式な政府基準のようなものです)を与え、そのルールに従うよう命じました。
  4. 「もう一度やって」アプローチ(反復的な再プロンプト): これがひねりです。AIがドアを構築した後、研究者は再びルールブックを渡し、「おい、今作ったものを見てみろ。ルールと照らし合わせてみろ。何を見落とした?さあ、直せ」と言いました。

結果:セキュリティの錯覚

結果は少し恐ろしいものでしたが、非常に明確でした。

研究者が**「とにかくやれ」**アプローチを用いたとき、AIは機能的なドアを構築しましたが、それらは穴だらけでした。コードは動作しましたが、窓の鍵をかけるのを忘れていることがよくありました。パスワードを100万回試行する攻撃(ブルートフォース攻撃)を防げず、「鍵」(セッションクッキー)を適切に隠せず、時には弱いロック(古いパスワードハッシュ化)を使用していました。それは、ドアに「押す」というサインは付いているものの、デッドボルト(かんぬき)がない木製のドアで作られた家のようでした。

たとえ**「優しくして」**アプローチ(単に「安全な」コードを求めること)を用いても、AIはあまり改善されませんでした。AIにとって「安全」とは、単に「クラッシュしない」ことを意味しているようで、「突破不可能である」ことを意味していませんでした。

AIに**「専門家マニュアル」**(NISTのルール)を与えると、状況は良くなりました。AIはいくつかのデッドボルトやより良いロックを追加し始めました。パスワードを長くすることや、失敗回数が多すぎる場合にアカウントをロックすることといった指示に従いました。しかし、ここが肝心な点ですが、ルールブックを手にしていたとしても、AIは依然としてセキュリティ計画の極めて重要な部分を見落としていました。強力な正面玄関は作ったものの、裏門を全開にしたままにしていたのです。「シングルショット(一度の問いかけ)」による手法では、真に安全なシステムを構築するには不十分でした。

本当の魔法が起きたのは、**「もう一度やって」**アプローチでした。研究者がAIに自分の仕事を見直し、何を落としたかを認めさせ、そして修正させたとき、セキュリティは大幅に跳ね上がりました。AIに「自己監査」させ、反復させることで、コードははるかに堅牢になることが研究者によって発見されました。AIはようやく「立ち入り禁止」の看板(セキュリティヘッダー)を設置し、裏門を閉める(CSRF保護)ことを思い出したのです。

大きな教訓

この論文は、AIがデフォルトで安全なソフトウェアを構築することをそのまま信頼してはならない、と結論付けています。もしあなたがAIに「ログインページを作って」と頼めば、それはおそらく動作はするものの、穴だらけのものを出すでしょう。ルールブックを一度与えるだけでは不十分です。

現在、これらのAIアシスタントから真に安全なシステムを得る唯一の方法は、彼らを「絶えず監督が必要な新人弟子」として扱うことです。「これは安全ですか?」と問い、次に「ルールに基づいて自分の仕事をチェックして」と言い、最後に「見落とした部分を修正して」と言わなければなりません。研究者たちはこれを**「反復的な再プロンプト(Iterative Reprompting)」**と呼んでいます。それは、子供にハンマーを渡して安全な家を建てることを期待するのと、子供の横に立って、作業をチェックし、家が本当に安全になるまでネジを締めるように指示するのととの違いなのです。

要するに、AIは強力なツールですが、「設定したらあとはお任せ」ができるセキュリティガードではありません。私たちの使い方が変わらない限り、私たちは懐中電灯を持ち、鍵がかかっているかを確認する役割を担い続けなければなりません。

自分の分野の論文に埋もれていませんか?

研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。

Digest を試す →