AIによる「Vibeコーディング」の普及と潜在的リスク
近年、AIモデルの助けを借りてコードを書く「Vibeコーディング」は、多くの開発チームにとって日常的な開発手法となっています。これにより開発効率が大幅に向上する一方で、AIが生成したコードを過度に信頼することで、セキュリティ上の脆弱性が導入される可能性が浮上しています。
セキュリティ企業Intruderの経験は、AI生成コードがセキュリティに与える影響を示す現実世界の事例となりました。
AIにハニーポット構築を依頼した事例
Intruderは、早期の攻撃試行を収集するためにハニーポットを設置していますが、特定の要件を満たすオープンソースの選択肢が見つかりませんでした。そこで、多くのチームが現在行っているように、AIの助けを借りて概念実証のドラフトを作成しました。
このAI生成コードは、意図的に脆弱性を持つように隔離された環境にデプロイされましたが、展開前には簡単な健全性チェックが行われただけでした。数週間後、ログに奇妙な現象が現れ始めました。本来であれば攻撃者のIPアドレスの下に保存されるべきファイルが、ペイロード文字列と共に表示されていたのです。
見過ごされた脆弱性の詳細
コードを詳しく調査したところ、問題の原因が判明しました。AIは、クライアントから提供されたIPヘッダーを訪問者のIPアドレスとして扱うロジックを追加していたのです。この処理は、プロキシ経由の場合を除き、クライアントの制御下にあるため危険です。つまり、サイト訪問者はIPアドレスを簡単に偽装したり、ヘッダーを悪用してペイロードを注入したりできる状態でした。これは、侵入テストで頻繁に見つかる脆弱性の一つです。
このケースでは、攻撃者は単にペイロードをヘッダーに配置していたため、影響は限定的でした。しかし、もしIPアドレスが別の方法で使用されていれば、ローカルファイル開示(Local File Disclosure)やサーバーサイドリクエストフォージェリ(Server-Side Request Forgery)といった、より深刻な脆弱性につながる可能性がありました。
SASTツールが検出できなかった理由
Intruderは、このコードに対してSemgrep OSSとGosecといった静的解析ツールを実行しましたが、どちらもこの脆弱性を検出しませんでした。これはツールの失敗ではなく、静的解析の限界を示しています。この種の欠陥を検出するには、クライアント提供のIPヘッダーが検証なしで使用されていること、そして信頼境界が強制されていないことといった文脈的な理解が必要です。これは人間のペンテスターには明らかですが、AI生成コードに過度な信頼を置くと見落とされがちです。
AI自動化による過信の問題
航空業界における自動化監視に関する研究が示すように、自動化されたタスクを監視するには、手動でタスクを実行するよりも多くの認知的労力が必要です。AI生成コードにも同様の現象が見られました。自分たちで書いたコードではないため、その動作に対するメンタルモデルが弱く、レビューが不十分になったと考えられます。
AI生成コードには、航空機の自動操縦システムのような長年の安全工学の裏付けがまだありません。
他のAI生成コードの事例
この脆弱性を持つハニーポットの事例は、決して例外的なものではありません。Intruderは、AWSのカスタムIAMロールを生成するためにGemini推論モデルを使用しましたが、それも権限昇格の脆弱性を抱えていることが判明しました。問題を指摘しても、モデルは同意するものの、再び脆弱なロールを生成しました。安全な設定にたどり着くまでに、人間による4回の修正と指示が必要でした。モデルはセキュリティ上の問題を独立して認識することはなく、常に人間の介入が必要でした。
経験豊富なエンジニアであれば、通常これらの問題を特定できます。しかし、AIアシスト開発ツールは、セキュリティの専門知識を持たない人々でもコードを生成しやすくしており、最近の研究では、このようなプラットフォームによって数千もの脆弱性が導入されていることが明らかになっています。経験豊富な開発者やセキュリティ専門家でさえ、AIモデルが生成したコードが自信に満ちていて、一見正しく動作するように見える場合、欠陥を見落とすことがあります。
AIを利用するチームへの提言
AI生成コードを使用するチームに対して、Intruderは以下の点を提言しています。
- 開発者やセキュリティ専門家以外のスタッフがAIにコードを書かせることは推奨しません。
- 専門家がこれらのツールを使用する場合でも、コードレビュープロセスとCI/CDにおける検出機能を再検討し、AIによって導入される新たな種類の問題が見落とされないようにする必要があります。
AIによって引き起こされる脆弱性は、今後ますます一般的になると予想されます。組織がAIの使用から問題が発生したことを公に認めることは少ないため、問題の規模は報告されている以上に大きい可能性があります。これは最後の事例ではなく、孤立した事例でもないでしょう。
