見出し画像

AIとバイブコーディングの危うさについて対話した。安全に開発を進めるための「6つの厳守事項」とは

プログラミングの世界で「バイブコーディング(Vibe Coding)」という言葉をよく耳にするようになりました。厳密な設計を行わず、AIとの「ノリ(バイブス)」や直感的な対話を通じてアプリを構築していく手法のことです。

ご存じの方もいらっしゃるかもしれませんが、私も、このバイブコーディングに魅了されている一人です。自分がやりたいことを言葉にするだけで、目の前で魔法のようにコードが書き上げられていく体験は、これまでの常識を覆すほど刺激的です。

ただ、かつてメディアでIT業界やテクノロジー領域を取材し、技術の光と影を見てきた経験から、この手軽さに対して、心躍らせながらも、思考の片隅で警鐘が鳴るのを感じました。現在の私の知識だけでなく、専門機関などの情報を調べながらAIと議論し、初心者が陥りやすい「危うさ」について整理してみました。


「動作」と「安全性」の乖離が招くリスク

AIプラットフォームを展開するDatabricksのレポートによると、AIは「指示通りに動くコード」を作る能力には非常に長けていますが、そのコードが「安全であるか」という点については、人間が明示的に求めない限り優先順位が下がってしまう傾向があるそうです。

特に注意が必要なのは、AIが生成したコードの中身をよく理解しないまま継ぎ接ぎしていくことで、後から修正が不可能な「ブラックボックス」が積み上がってしまう点だといいます。これは単にバグが出やすくなるだけでなく、外部からの攻撃に対しても無防備な状態になりかねないとの指摘があります。かつてよく取材した「セキュリティーの落とし穴」が、バイブコーディングの世界では加速度的に広がっていく可能性もあります。

初心者が直面しやすい「APIキー」の罠

私もバイブコーディングを楽しみながら、特に「危なっかしい」と感じたのが機密情報の扱いです。

例えば、様々な外部のウェブサービスを利用するための「APIキー」はバイブコーディングに不可欠で、AIはしばしばコードの中に直接書き込む(ハードコードする)形で提案してくることがあります。

プログラミングに詳しくない初心者が「動いたからこれで完成だ」と思い、そのコードをそのまま公開の場(GitHubなど)に載せてしまうケースは少なくないといいます。しかし、これをやってしまうと、瞬時に悪意のあるプログラムによってAPIキーが盗まれ、高額な請求が届いたり、管理しているデータが流出したりといった被害に繋がる恐れがあります。もちろん、パスワードや電話番号、メールアドレスなどの個人情報については言うまでもありません。

AIに守らせるべき「6つの厳守事項」とは

バイブコーディングの楽しさを損なわずに、こうしたリスクを避けるためには、プロンプトにあらかじめ、「守りのルール」を組み込んでおくのが有効だそうです。

私がAIと議論して整理、調整した「AIへの指示に加えるべき6項目」を以下にまとめておきます。参考にしていただければ幸いです。多くのサイトで同趣旨の内容が(専門的な書き方で、ですが)触れられています。ただ、私はエンジニアではありませんので、情報が不完全な部分もあります。より詳しい情報を知りたい方は、ご自身で調べていただけますと幸いです。


開発品質とセキュリティの厳守事項

  1. セキュリティ・セルフレビューの実施: コードを生成した後、AI自らが「セキュリティ担当者」として検証を行い、脆弱性を修正した「リファイン版」を提示させること。

  2. 入力値の徹底的な検証(バリデーション): 外部からのデータはすべて「信頼できないもの」と見なし、形式や長さのチェック、無害化(サニタイズ)を徹底させる。

  3. 安全なデータ処理形式の選択: Pythonのpickleなど、読み込むだけでコードが実行されるリスクのある形式の仕様を避け、JSONなど、比較的わかりやすく安全な形式を優先させる。

  4. 機密情報の分離: APIキーやトークンをコード内に直接書くことを厳禁し、必ず環境変数などの外部から読み込む構造にさせる。

  5. 最小権限の原則: プログラムが必要以上のシステム権限を要求しないよう、実行に必要な最小限の動作で設計させる。

  6. エラーハンドリングの徹底: 万が一エラーが起きた際、システムの内部情報がエラーメッセージなどの形で表に出ないよう配慮させる。

このようなリストを、
「最初にコーディングを指示する際のプロンプト」「出来上がったコードをレビューする際のプロンプト」に意識的に入れておくことで、多少はリスクを抑えることができるかもしれません。

「自らの趣味でバイブコーディングを行う場合はここまで厳しい原則は必要ないかもしれません」とAIは付け加えていましたが、大は小を兼ねる、で厳しい原則を常に踏まえておくのがよいと個人的には思っています。

私の勤める会社はセキュリティが厳しく、とてもバイブコーディングできる環境ではありませんので、当面は趣味の範疇でやることになるだろうと考えています。ですが、仕事でバイブコーディングを活用したいという方は、一段も二段も高いセキュリティ意識が求められるといえそうです。


「手軽さゆえの落とし穴」を防ぐことはできるのか

バイブコーディングは、私のような文系非エンジニアでも新しいものづくりに挑戦できる素晴らしい手法です。

「バイブコーディングのnoteをやり始めたばかりなのに、なぜこんな早くからセキュリティの話を」と思われる方もいらっしゃるかもしれませんが、手軽さゆえの落とし穴があることは確かな事実です。バイブコーディングの楽しさだけを一方的に伝え続けるのは無責任だと感じ、「バイブコーダー」として早い段階から問題をウォッチしていこうと考え、筆を執りました。

メディアでは取材者として多くの技術革新を見てきましたが、新しい技術を使いこなすためには、その背後にある論理的なリスクを理解し、適切な制約を設けることが不可欠です。こうした問題をあらかじめ自らの筆で発信しておくことは、創作を縛るものではなく、安心して使い続けられる「資産」にするためだと思っています。今後もバイブコーディングのリスクに関する問題については折を見て記事にしていければと思っています。

繰り返しにはなりますが、現時点では情報としては不完全であることは自覚しておりますし、その点はにあらかじめご容赦いただけますと幸いです。

「AIとのペアプログラミング」を楽しみながらも、早い段階からAIと自分を律するための最低限のルールは設けておく。これが、これからのAIとの上手な付き合い方だと信じています。


いいなと思ったら応援しよう!

ゆらぎ文系思考ログ 記事を楽しんでいただけましたら、サポートいただけると嬉しいです。いただいたチップは、AIエージェントのAPI利用料、検証用ガジェットの資金、そして時々、オフィスの癒やし(金魚やイモリのエサ代)に使わせていただきます。「次の実験も楽しみにしてるよ」という応援、励みになります!

この記事が参加している募集