AIコーディングのセキュリティ:プロンプトインジェクションがプロジェクトファイル内に潜んでいる

あなたのAIコーディングアシスタントは、リポジトリ内のすべてのファイルを読み取ります。README、設定ファイル、ルールなどを読み、それらのファイルに基づいてコードの書き方を決定します。

新たなセキュリティ脅威が、まさにこの挙動を悪用しています。研究者たちは、28種類の異なるAIコーディングツールにおいて脆弱性を発見しました。この攻撃は複雑なハッキングではありません。リポジトリ内に置かれた、単純なテキストファイルによるものです。

攻撃の仕組み:

オープンソースプロジェクトをクローンします。見た目は正常です。AIエディタで開き、新しい機能の実装を依頼します。設定ファイル内に隠されたUnicode文字には気づきません。これらの文字は、あなたからは指示を隠し、AIには別のことを行うよう命じます。

隠された指示は、AIに対してAWSの認証情報を外部サーバーに送信するよう命じます。AIはこれを正当なプロジェクトの指示だと判断し、コマンドを実行します。こうして、あなたの機密情報は流出します。

なぜ阻止が困難なのか:

  • 隠された文字: あなたには標準的なテキストに見えても、AIは不可視のUnicode文字を介して悪意のあるコマンドを読み取ります。
  • すべてのファイルが侵入口になる: READMEやライブラリ内のコメントが、ペイロードを運ぶ可能性があります。
  • 高い権限: AIエージェントは多くの場合、あなたのユーザー権限で実行されます。そのため、SSHキーやAPIトークンを読み取ることができてしまいます。
  • ツール呼び出し: AIはコマンドを実行するためにツール呼び出しを使用します。この攻撃は、安全性のトレーニングを回避するために、これらの呼び出しを標的にします。

ワークフローを防御する方法:

  • ファイル内容のサニタイズ: AIが読み取る前に、隠し文字や一般的なインジェクションパターンを削除します。
  • サンドボックスの利用: ネットワークアクセスを遮断し、読み取り専用のファイルシステムを持つコンテナ内でAIエージェントを実行します。
  • 厳格なポリシーの設定: 許可されたコマンドのホワイトリストを作成します。データの移動やファイルの削除を伴うコマンドには、人間による承認を必須にします。

コーディングセッションの前に、簡単なスキャンを実行することもできます。「ignore all previous」や「curl」、「exfil」といった不審な用語がファイル内にないか確認してください。

AIコーディングツールは生産的ですが、ディスク上のファイルは安全であるという前提に基づいています。しかし、実際にはそうではありません。すべてのファイルを「信頼できない入力」として扱ってください。

あなたはAIワークフローにおけるプロンプトインジェクションのリスクに、どのように対処していますか?

出典: https://dev.to/tyson_cung/ai-coding-security-prompt-injection-is-hiding-in-your-project-files-4be9