← 最新の論文
🤖 AI

Vibe Coding and Web Application Security: A Twin-Prompt Study

この予備研究は、自然言語によるプロンプトにセキュリティ要件を明示的に付加することが、AIが生成するウェブアプリケーションにおける確認された脆弱性の数を大幅に減少させることを実証しており、セキュリティを考慮したバリアントは、ベースラインのバリアントと比較して、重大または高レベルの脆弱性を一切含まない。

原著者: Darko Andročec

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

原著者: Darko Andročec

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

現代のデジタル世界において、ソフトウェアはしばしば、コンピュータにそれを書いてもらうという方法で構築されています。私たちは、ブログ、ショップ、タスクマネージャーといった、自分が欲しいものの説明を入力します。すると、数百万行ものコードを学習した強力な人工知能が、それを機能させるために必要な指示を生成します。「バイブ・コーディング(vibe coding)」とも呼ばれるこの手法は、機械がソフトウェアの機能だけでなく、それを安全に保つための隠れたルールをも理解しているという考えに基づいています。しかし、そこには拭いきれない疑念があります。機械は自然に、必要な鍵やアラームを備えているのでしょうか、それとも単に、誰が侵入しようとするかを気にすることなく、機能するドアをただ作るだけなのでしょうか。ソフトウェアにおけるセキュリティとは、単にプログラムを動作させることではありません。それは、秘密が秘密であり続けること、ユーザーが他人になりすませないこと、そしてシステムが誤って部外者を招き入れないようにすることなのです。これらのAIツールが普及するにつれ、問いは「AIがコードを構築できるか」から、「明示的に指示されずとも、安全なコードを構築できるか」へと変化しています。

ザグレブ大学のある研究者は、AIを「正しいことをするために特定の指示を必要とするかもしれない学生」として扱うことで、この問いに答えようと試みました。この研究では、シンプルなブログから管理ダッシュボードを備えたショップまで、6つの異なるウェブアプリケーションを作成しました。研究者は各アプリケーションについて、AIに2回ずつ構築を依頼しました。最初の依頼は、ソフトウェアが何をすべきかという標準的な説明でした。2回目の依頼は、あらゆる点で最初と同一でしたが、一点だけ異なる点がありました。それは、「パスワードを平文で保存しないこと」や「すべてのユーザーが本人であることを検証すること」といった、明確なセキュリティ・ルールのリストを追加したことです。この設定により、一般的なプロンプトで構築されたバージョンと、特定のセキュリティ上の注意書きを用いて構築されたバージョンを、AIモデル、使用されたツール、および生成プロセスをすべて全く同じにした状態で、直接比較することが可能になりました。

何が起きたのかを確認するために、研究者は単にコードを見ただけではありませんでした。彼らは、作成された12個のアプリケーションすべてに対して、厳格な一連のテストを実施しました。ソースコード内の危険なパターンを読み取る自動スキャナー、ソフトウェアが騙される可能性があるかどうかを稼働中にチェックするツール、そして、機械が見逃す可能性のある独創的な手法を用いてシステムへの侵入を試みる人間の専門家による最終段階の手動テストを用いました。結果は驚くべきものでした。セキュリティ上の注意書きを用いて構築されたバージョンは、ベースラインとなったバージョンよりも問題が大幅に少ないことが判明しました。実際、セキュアなバージョンには致命的または高度なセキュリティ上の欠陥は存在しませんでしたが、注意書きのないバージョンは、攻撃者がユーザーのアカウントを乗っ取ったり、プライベートなデータにアクセスしたりすることを許してしまうような深刻な脆弱性を含む、重大な問題を抱えていました。この注意書きはソフトウェアを完璧にしたわけではありませんでした。両方のバージョンに共通して見られるような軽微な設定ミスは残りましたが、最も危険なエラーを排除することには成功したのです。

また、この研究は、これらの欠陥を見つけ出すことは単一のツールによる仕事ではないことも明らかにしました。コードを読み取る自動スキャナーは、稼働中のソフトウェアを監視するスキャナーが見逃した多くの問題を発見し、その逆もまた同様でした。最も注目すべき点は、実験全体で見つかった中で最も深刻な脆弱性、すなわち攻撃者がデジタルアイデンティティを偽造してアカウントを乗っ取ることができた欠陥が、自動化されたツールではどれ一つとして検知できなかったことです。それは、人間が手動でシステムをテストしたときに初めて発見されました。このことは、AIにセキュリティを意識させることは助けにはなるものの、人間の監視や多層的なチェックの必要性に代わるものではないことを示唆しています。研究者は、これは各アプリケーションにつき1回のみの実行による小規模な実験であるため、結果は決定的な証明というよりは強い示唆であると述べていますが、そのパターンはすべてのケースにおいて一貫していました。この研究は、予備的なステップとしての役割を果たしており、単純かつ明示的なセキュリティの要求が、人工知能によって生成されるソフトウェアの安全性を劇的に向上させることができる一方で、AIが単独ですべてのミスを捉えることはできないということを示しています。

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

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

Digest を試す →