Infostand海外ITトピックス

Vibe Codingが急拡大 AI任せの開発に潜む「見えない脆弱性」

安全なVibe Codingとは

 では、Vibe Codingを安全に活用するにはどうすればいいのか――。The Hacker Newsは「セキュアプロンプティング」を推奨している。プロンプトにセキュリティ要件を明示的に含めることだ。

 例えば、「ファイルアップロードサーバーを構築して」と依頼すると、AIはJPEGでもEXEでも何でも受け付けるコードを出力する。しかし、次のように書けば、よりセキュアにできるという。

 「JPEGまたはPNGのみを許可し、5MB以下、ファイル名をサニタイズ(無害化)してWebルート外に保存するアップロード機能を構築して」

 また、AIツールごとの特性を理解することも有益だと解説している。

 AIツールには例えば以下のような特徴があるという。GPT-4は非常に柔軟だが、明確な指示がなければ冗長なコードや旧ライブラリを出力することがある。一方でClaudeは、セキュリティ的に懸念がある箇所にコメントを付けて警告を示す傾向が強い。Cursorは、コードのリファクタリング中にリアルタイムで脆弱性を警告してくれる優れた「リント機能」を備えている。

 そして、セキュアなVibe Codingの実践手法として、以下の4段階を推奨している。イスラエル発のサイバーセキュリティ企業Reflectizが提供しているガイドラインをまとめたものだ。

1)セキュリティコンテキストの提示:セキュリティ脅威を考慮した指示を含める
2)マルチステップ・プロンプト:コード出力後に「このコードに脆弱性はないか」と再質問する
3)自動テスト:SnykやSonarQube、GitGuardianなど外部サービスと統合する
4)人間によるレビュー:AI出力は「常に不完全」という前提で最終チェックを行う

 決して「AIにすべて任せる」のではなく、対話しながら細かく関与してゆくことでリスクは軽減できる。

 実際、Vibe Codingを言い出したKarpathy氏自身も注意喚起をしている。Business Insiderによると、同氏は6月のY Combinatorのイベントで「AIに手綱をつけておく必要がある」と述べた。「(AIは)人間には絶対にないミスを犯す」といい、自身も開発では「常に小さな増分単位で進め、問題がないことを確認する」と語っている。

 また、Googleの開発体験責任者Addy Osmani氏は、Substackでのニュースレターの中でこう述べている。「Vibe Codingは創造の自由を与えてくれるが、それは“クラフトマンシップを放棄していい”という免罪符ではない」「Vibeに乗るのはよい。だが、技術としての作法は忘れてはならない」「品質の伴わないスピードには何の意味もない」