← 最新の論文
💻 computer science

Minimal Prompt Perturbations Lead to Code Vulnerabilities: Prompt Fragility and Hidden-State Signals in Coding LLMs

本研究は、プロンプトにおける微小な単一文字の摂動さえもコード生成用大規模言語モデルに脆弱なコードを生成させることを明らかにし、入力処理の欠陥はセキュアなデフォルト設定の誤りよりも隠れ状態から予測可能であることを示すことで、プロンプト・インジェクションを超えて通常のプロンプト変異も含むセキュリティ脅威モデルを拡張するものである。

原著者: Alexander Sternfeld, Andrei Kucharavy, Ljiljana Dolamic

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

原著者: Alexander Sternfeld, Andrei Kucharavy, Ljiljana Dolamic

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

非常に才能があり、超高速な見習いプログラマーを雇うと想像してください。この見習い(AI)は数秒でプログラム全体を作成できます。あなたは「安全にファイルを解凍する関数を作成せよ」といった単純な指示を与えます。通常、彼らは素晴らしい仕事をします。

しかし、この論文は恐ろしい問いを投げかけます:もしこの見習いが、指示の与え方における些細なミスに極めて敏感だとしたらどうなるでしょうか?

研究者たちは、指示を一字変えるだけで(タイプミスや、似た言葉への置き換えなど)、見習いが作成するコードが「安全で堅牢」なものから「ハッカーが侵入できる穴だらけ」のものに急変する可能性を発見しました。

以下に、日常の比喩を用いた彼らの発見の概要を示します:

1. 「一文字」のドミノ効果

AI への指示をレシピだと考えてください。研究者たちは、レシピの一文字を変更する(例えば「塩」を「塩辛い」に変えるなど)だけで、出来上がった料理の味が少し変わるだけでなく、毒物になってしまう可能性があることを発見しました。

  • 発見: 彼らは 3 つの異なる AI モデルと 5 つのプログラミング言語でテストを行いました。その結果、プロンプトの 1 文字を変更するだけで、コードが安全な状態から脆弱な状態に反転することがわかりました。
  • 比喩: 料理人に「ドアが施錠されているか確認せよ」と言うのと、「ドアがlocked されているか確認せよ」(タイプミスあり)と言うのとでは、この特定のケースにおいて AI はドアを施錠するのを完全に忘れ、家を丸裸にしてしまう可能性があります。

2. 2 種類の異なる「ミス」

研究者たちは、すべてのセキュリティホールが同等に作られているわけではないことに気づきました。彼らは、異なる挙動を示す 2 つの明確なカテゴリーを発見しました。

  • タイプ A: 「守備の不在」(入力処理)

    • 概要: AI が、クラブの入り口で ID を確認するボーイのような安全確認を追加するのを忘れます。
    • 発見: AI の内部の「脳」(隠れ状態)は、実際にコードを書く前にもうこのミスの兆候を示しています。まるで料理人が調理を始める前に、間違った材料を取りに行こうとしているのを見るようなものです。研究者たちは、AI の思考プロセスを見るだけで、これらのエラーを約75% の精度で予測できました。
    • 理由: AI はコードに全体として新しい「安全構造」を組み込むかどうかを、早期に決定する必要があります。その決定は早期に現れます。
  • タイプ B: 「弱い選択」(デフォルトの安全性)

    • 概要: AI は安全構造を構築しますが、弱い鍵(複雑なパスワードの代わりに「1234」など)を選んでしまいます。
    • 発見: これらは予測がはるかに困難です。AI の内部の脳は、最後の瞬間まで正常に見えます。弱い鍵を選ぶという決定はプロセスの非常に最後の段階で行われるため、「早期警告信号」が存在しません。研究者たちは、これらを約67% の確率でしか予測できませんでした。
    • 理由: まるで料理人が家が完成した後に、ドアに脆弱な鍵を使用すると決めるようなものです。設計図は完璧に見えましたが、最終的な選択が悪かったのです。

3. ミスが発生する場所が重要

研究者たちはまた、タイプミスが指示のどの部分で発生したかも調査しました。

  • 中央が重要: 彼らは、指示の中央部分でのタイプミスが最も危険であることを発見しました。
  • 比喩: 「フロントドアとバックドアを施錠してください」という文を想像してください。中央の「フロント」という単語にタイプミスがあると、AI はどのドアを施錠すべきか混乱する可能性があります。最初の単語や最後の単語にタイプミスがある場合、AI はそれを無視するか、正しく推測する可能性が高くなります。指示の「中身」こそが、AI が最も脆弱な部分です。

4. 「水晶玉」(プロービング)

チームは、プロンプトを読み終えた直後、コードを書き始めるの AI の内部状態を覗き見る「水晶玉」(数学的プローブ)を構築しました。

  • 結果: この水晶玉は、AI が「守備の不在」エラー(タイプ A)を含むコードを書こうとしているかどうかを、かなり正確に判断できます。
  • 限界: 「弱い選択」エラー(タイプ B)の予測には苦労します。これは、一部のセキュリティ問題については AI が書き始めるに検知できる一方で、他の問題については、コードが書かれている最中、あるいは書き終わった後にチェックする必要があることを示唆しています。

結論

この論文は、AI コーディングアシスタントが堅牢であると仮定することはできないと結論付けています。単純なタイプミスやリクエストのわずかな言い換えが、偶発的にセキュリティ脆弱性を生み出す可能性があります。

  • 良い知らせ: AI の内部の「思考」を見ることで、これらのリスクを早期に検知できる場合があります。
  • 悪い知らせ: この方法ではすべてのリスクを捕捉することはできません。特に、プロセスの最後の瞬間に AI が単一の悪い選択をするようなケースではそうです。

重要な注意点: 研究者たちは強調しています。彼らは人間が犯すような、ランダムで偶発的に見えるタイプミス(意図的に AI を欺こうとしたものではなく)によってこの研究を行いました。これは、単に仕事を終わらせたい通常の日常の開発者にとっても、危険が現実であることを意味します。

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

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

Digest を試す →