ソートリーダー
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つの脅威は「hallucinations」と呼ばれ、AI生成コードが架空のライブラリを使用して脆弱性を表示するものです。AI生成コードに対するもう1つの最近の攻撃は「slopsquatting」と呼ばれ、攻撃者がライブラリを直接標的にしてデータベースに侵入するものです。
これらの脅威に対処するには、単に「バイブコーディング」という用語が示唆するよりも多くの注意が必要です。Université du Québec en OutaouaisのRafael Khoury教授は、AI生成コードのセキュリティの発展を密接に追っており、新しい技術がその安全性を向上させることを信じています。
Khouryは2023年の論文で、ChatGPTに追加のコンテキストや情報なしにコードを生成するよう依頼した結果、安全でないコードが生成されることを調査しました。これはChat GPTの初期の日々でしたが、Khouryは今回の将来について楽観しています。「その後、現在レビュー中の多くの研究があり、LLMを使用するための戦略が見つかれば、より良い結果が得られる可能性があります」とKhouryは述べています。また、「セキュリティは改善されていますが、直接的なプロンプトで安全なコードを得ることができる段階にはまだ達していません」と述べています。
Khouryは、有望な研究について説明しました。そこでは、コードを生成し、それを脆弱性を分析するツールに送信します。ツールが使用する方法は、Finding Line Anomalies with Generative AI(FLAG)と呼ばれます。
「これらのツールは、たとえば24行目に脆弱性があることを示すFLAGを送信し、開発者はそれをLLMに戻して問題を調査して修正するように依頼できます」とKhouryは述べています。
Khouryは、このやり取りが脆弱性のあるコードを修正するために重要であると示唆しています。「この研究によると、5回のイテレーションで脆弱性を0に減らすことができます」とKhouryは述べています。
しかし、FLAG方法には、偽陽性や偽陰性を引き起こす可能性など、問題もあります。また、LLMが生成できるコードの長さにも限界があり、断片を組み合わせることでさらにリスクが加わる可能性があります。
人間をループに留める
「バイブコーディング」のうちの何人かは、コードを断片化し、人間がコードベースの最も重要な編集の中心に留まることを提案しています。Windsurfの製品エンジニアリング担当のKevin Houは、「コミットを考えてコードを書く」という言葉の知恵を説き、バイトサイズのピースの重要性を強調しています。
「大きなプロジェクトを、小さなチャンクに分割します。通常、コミットまたはプルリクエストとして扱うものです。エージェントが小さなスケールで、1つの分離された機能を構築します。これにより、コード出力が適切にテストされ、理解されることを保証できます」とHouは述べています。
執筆時点で、Windsurfは(以前の名前であるCodeiumを通じて)50億行以上のAI生成コードにアプローチしています。Houは、開発者がプロセスを認識しているかどうかが、最も重要な質問であると述べています。
「AIは同時に多くのファイルを編集できますが、開発者が何が起こっているかを理解してレビューしていることを確認するにはどうすればよいのでしょうか?それを無視してすべてを受け入れるのではなく」とHouは質問しながら、WindsurfのUXに多大な投資を行ったことを述べています。「AIが行っていることと完全に同期して、人間がループに留まるための直感的な方法が多数あります」。
これが理由で、「バイブコーディング」が主流になるにつれて、人間はその脆弱性についてより慎重になる必要があります。「hallucinations」や「slopsquatting」などの脅威は実在しますが、解決策もあります。
静的分析やFLAGのような反復的改良方法、そして思慮深いUXデザインなどの新興ツールは、セキュリティとスピードが相互に排他的なものである必要はないことを示しています。
鍵は、開発者が関与し、情報に基づき、コントロール下に留まることです。適切なガードレールと「信頼して検証する」という心構えで、AI支援コーディングは革命的でありながらも責任を持って行うことができます。












