ソートリーダー
AIによって生成されたコードはここに残る。結果として私たちは安全ではなくなっているのか?

2025年のコーディングは、断片を苦労して作成したり、長時間デバッグに費やしたりすることではありません。それは全く別の雰囲気です。AIによって生成されたコードは、将来的に製品の大部分を占めることになり、現代の開発者にとって不可欠なツールキットとなっています。これは「バイブコーディング」と呼ばれ、Github Copilot、Amazon CodeWhisperer、Chat GPTなどのツールによって生成されたコードの使用が、ビルド時間の短縮と効率性の向上において通常となるでしょう。しかし、AIによって生成されたコードの便利さは、暗い脅威をもたらす可能性がありますか?生成的なAIは、セキュリティアーキテクチャに脆弱性を増加させますか?それとも、開発者が「バイブコーディング」を安全に行う方法はありますか?
「AIによって生成されたコードの脆弱性によるセキュリティインシデントは、今日ではあまり議論されていないトピックの1つです」と、DeepSourceの創設者であるSanket Sauravは述べました。「まだ、CopilotやChat GPTなどのプラットフォームによって生成されるコードが人間のレビューを受けていないものが多くあり、セキュリティ違反は影響を受ける会社にとって壊滅的な結果をもたらす可能性があります。」
コードの品質とセキュリティのために静的分析を使用するオープンソースプラットフォームの開発者であるSauravは、2020年のSolarWindsハックを、企業がAI生成コードを使用する際に適切なセキュリティガードレールを設置していない場合に発生する可能性のある「絶滅イベント」の例として挙げました。「静的分析により、不確実なコードパターンと悪いコーディング慣行を特定できます」とSauravは述べました。
ライブラリを通じた攻撃
AI生成コードに対するセキュリティ脅威は、発明的な形式をとることができ、ライブラリに対して向けられることがあります。プログラミングにおけるライブラリは、開発者がコードを書く際に時間を節約できる再利用可能なコードです。
ライブラリは、データベースの相互作用を管理するなどの通常のプログラミングタスクを解決し、プログラマーがコードをスクラッチから書き直す必要性を減らします。
ライブラリに対する脅威の1つは、「幻覚」と呼ばれ、AI生成コードが架空のライブラリを使用して脆弱性を表示します。AI生成コードに対する最近の別の攻撃方法は「slopsquatting」と呼ばれ、攻撃者がライブラリを直接標的にしてデータベースに侵入することができます。
これらの脅威に対処するには、「バイブコーディング」という用語が示唆するよりも多くの注意が必要かもしれません。Université du Québec en Outaouaisの事務所から話すRafael Khoury教授は、AI生成コードのセキュリティの発展を密接に追跡しており、新しいテクニックがその安全性を向上させることを確信しています。
2023年の論文で、Khoury教授は、追加のコンテキストや情報なしにChatGPTにコードを生成するように依頼した結果を調査しました。その結果は、安全でないコードが生成されました。これはChat GPTの初期の日々でしたが、Khoury教授は今、将来に希望を持っています。「その以来、多くの研究が進行中であり、LLMを使用するための戦略がより良い結果につながることを期待しています」とKhoury教授は述べました。さらに、「セキュリティは改善されていますが、直接的なプロンプトで安全なコードを取得する段階にはまだ達していません」と付け加えました。
Khoury教授は、有望な研究について説明しました。そこでは、コードを生成し、そのコードを脆弱性を分析するツールに送信しました。ツールが使用する方法は、Finding Line Anomalies with Generative AI(FLAGと略称)と呼ばれます。
「これらのツールは、たとえば24行目に脆弱性があることを示すFLAGを送信し、開発者はそれをLLMに送信して問題を調査して修正するように依頼できます」と彼は述べました。
Khoury教授は、このやり取りが、攻撃を受ける可能性のあるコードを修正する上で重要であると示唆しました。「この研究では、5回のイテレーションで脆弱性を0に減らすことができることを示しています。」
これは言ったが、FLAG方法には、偽陽性や偽陰性を引き起こす可能性があるという問題があります。さらに、LLMが生成できるコードの長さには限界があり、断片を結合する行為が別の層のリスクを加える可能性があります。
人間をループに留める
「バイブコーディング」のうちのいくつかのプレーヤーは、コードを断片化し、人間がコードベースの最も重要な編集の最前線に留まることを推奨しています。「コードを書くときは、コミットの観点で考えるべきです」と、Windsurfの製品エンジニアリング責任者であるKevin Houは、バイトサイズのピースの知恵を称賛しました。
「大きなプロジェクトを、小さなチャンクに分割します。通常、コミットまたはプルリクエストとして扱うものです。エージェントが小さなスケールで、1つの分離された機能を構築します。これにより、コード出力が適切にテストされ、よく理解されることが保証されます」と彼は追加しました。
執筆時点で、Windsurfは50億行以上のAI生成コード(以前の名前であるCodeiumを通じて)にアプローチしました。Houは、開発者がプロセスを認識しているかどうかが、最も緊急に回答する必要がある質問であると述べました。
「AIは、多数のファイルを同時に多数の編集を行うことができます。開発者が何が起こっているかを理解してレビューするのではなく、単にすべてを受け入れるのではなく、開発者が何が起こっているかを理解してレビューする方法は何ですか?」とHouは質問し、WindsurfのUXに多大な投資を行ったと述べました。「AIが行っていることと完全に同期し、人間が完全にループに留まるための、多数の直感的な方法があります。」
これが理由で、「バイブコーディング」がより主流になるにつれて、人間がループに留まっていることが、脆弱性についてより注意深くなければなりません。「幻覚」から「slopsquatting」脅威まで、課題は現実的ですが、解決策もあります。
静的分析、FLAGのような反復的改良方法、UXデザインなどの新しいツールは、セキュリティとスピードが相互に排他的である必要はないことを示しています。
鍵は、開発者を関与させ、情報を提供し、コントロール下に置くことです。適切なガードレールと「信頼して検証」という心構えを持つと、AI支援コーディングは革命的でありながら責任あるものとなるでしょう。












