プログラミングの知識を持たない人間が、自然言語による指示(プロンプト)と「その場のノリ」だけでAIにコードを書かせる「バイブコーディング(Vibe Coding)」という開発スタイルが、一部の界隈で熱狂的な支持を集めている。開発者はもはやコードの細部を理解する必要はなく、AIの出力を監視する「AIラングラー」へと変貌を遂げるという予測すら飛び交うようになった。
AI生成OS「Vib-OS」が露呈した幻想の実態
この過激な開発手法が生み出した最も奇妙な果実の一つが、GitHub上で公開された「Vib-OS」だ。開発者であるviralcodeが公開したリポジトリのReadmeによれば、このオペレーティングシステムはC言語とアセンブリ言語による25,000行以上のコードで構成され、ARM64およびx86_64アーキテクチャをサポートし、TCP/IPネットワーキングスタックや仮想ファイルシステム(VFS)、さらにはmacOSからインスピレーションを得たGUIまで完備しているという。さらには往年の名作FPS「Doom」すらネイティブ動作すると謳っている。字面だけを追えば、LinuxやHaikuに対抗し得る新たなOSの誕生を予感させる壮大なプロジェクトに見える。
しかし、その実態は「もっともらしいコードのつぎはぎ」が引き起こす喜劇に近い状態だった。複数の技術系YouTuberやメディアがこのVib-OSを検証した結果、その見事なカタログスペックとは裏腹に、システムの根幹が激しく破綻している事実が次々と明らかになった。
有名テック系YouTuberのTirimidがQEMU環境(作者が互換性を明記している環境)で行った検証によれば、まずOSを起動させるまでにフォーラムを漁り数時間を費やす羽目になったという。苦労の末にデスクトップ画面が現れるものの、インターネットへの接続は完全に不可能であり、ファイルマネージャーは新規フォルダの作成すら受け付けない。「ブラウザ」と名付けられたアイコンをクリックすると現れるのはWebブラウザではなく単なる画像ビューアであり、メモ帳アプリは矢印キーによるカーソル移動を認識しない。
致命的なのは、目玉機能であるはずの「Doom」が全く起動しないことだ(海外では何かとDoomが使われる)。代わりにプリインストールされている「Snake(ヘビゲーム)」は一応動作するものの、人間には操作不可能な異常な速度で動作するという始末である。その上、ファンクションキーを押すとマウスポインタがホバーしたアプリのウィンドウを「食べる(消去する)」というシュールなバグまで報告されている。
このVib-OSの滑稽な失敗は、バイブコーディングという開発手法の限界を象徴する構造的な問題を浮き彫りにしている。大規模言語モデル(LLM)は、インターネット上の膨大なコードを学習し、「文脈的に正しそうな」コード片を出力する能力には長けている。しかし、それらが集合体となった際のシステム全体のアーキテクチャ、モジュール間の整合性、あるいはオペレーティングシステムという極めて厳密なリソース管理が要求される領域での論理的な正当性を真に理解しているわけではない。AIは「OSのコードっぽく見えるテキスト」を出力しただけであり、それが複雑に絡み合う動的なシステムとして機能するかどうかは計算の埒外にある。
「動くコード」と「安全なコード」の決定的な乖離
Vib-OSのようなジョークプロジェクトであれば笑い話で済まされるが、この手法が商用アプリケーションの開発に持ち込まれた途端、事態は企業の存続を揺るがす深刻な危機へと発展する。Kasperskyが発表した最新の調査レポートは、AIアシスタントに過度に依存した開発が生み出すセキュリティ上の脅威に対して強い警鐘を鳴らしている。
Veracodeの調査によると、今日の主要なAIモデルが生成するコードの90%はコンパイルに成功するものの、そのうちの45%にはOWASP Top 10にランクインするような古典的な脆弱性が含まれている。この2年間で「動くコード」を出力する能力は飛躍的に向上した一方で、「安全なコード」を出力する能力は全く進歩していない。Wizによる調査でも、Vibe Codingで構築されたアプリケーションの20%に深刻な脆弱性や危険な設定ミスが存在していることが確認されている。
その危険性を実例として証明してしまったのが、「Enrichlead」と呼ばれる新興スタートアップだ。同社の創業者はSNS上で「このプラットフォームのコードは100% Cursor AIによって書かれたものであり、人間が手で書いたコードは1行もない」と豪語していた。しかし、サービス公開から数日も経たないうちに、基本的なクロスサイトスクリプティング(XSS)やSQLインジェクション、さらにはペイウォールの容易なバイパスなど、素人レベルの致命的なセキュリティ欠陥が次々と露呈した。AIを使ってこれらの脆弱性を修正しようと試みたものの、最終的に安全な基準を満たすコードには至らず、プロジェクトは閉鎖に追い込まれた。
また、女性専用マッチングアプリ「Tea」の大規模なデータ漏洩事件も記憶に新しい。この件にAIがどこまで関与していたかは法廷で争われることになっているが、バイブコーディングで作られたアプリは、データベースに対する過剰な外部アクセス権限の付与や、内部APIのエンドポイントの無防備な公開など、致命的な単一障害点を抱えやすい。開発者がシステムの全体像やインフラストラクチャの知識を持たないまま、AIの提案した構成をそのまま本番環境に適用してしまうためである。
反復修正とドメイン知識の欠如が招く脆弱性の連鎖
AIが生成するコードに頻出する脆弱性は、MITRE CWE Top 25のリストと見事に合致している。CWE-94(コードインジェクション)、CWE-78(OSコマンドインジェクション)、CWE-306(認証の欠如)などがその筆頭である。AIモデルは与えられたタスクを「最も短い距離で」解決するように最適化されているため、入力値のサニタイズや厳密な認証ロジックといった冗長で面倒なセキュリティプロセスを省略する傾向にある。
さらに重大な懸念は、反復的なプロンプトによるコードの修正が、逆にシステムのセキュリティを劣化させていくという事実である。ある研究で、GPT-4oに対して既存のコードに新機能を追加するよう40回の反復的な修正を指示したところ、わずか5回のイテレーションを経た時点で、初期バージョンに比べて重大な脆弱性が37%も増加した。「新機能の追加」という目的にAIがフォーカスしすぎた結果、既存のセキュリティアーキテクチャが無視され、158個の新たな脆弱性(うち29個はクリティカル)がコードに混入したのである。プロンプトに「セキュアなコードを維持しろ」という指示を追加すれば発生率は半減するものの、暗号化などの複雑な実装においては依然として高い確率で致命的なエラーを生み出している。
加えて、AIアシスタントには業界固有の「文脈(コンテキスト)」が致命的に欠落している。金融、医療、物流といったセクターでは、データ処理の方法や保存期間、監査ログの取得に関して厳密な法的・技術的要件が存在する。AIは利息の計算ロジックなどは正確に出力するかもしれないが、規制当局が求める丸め処理の規則や、医療データに対する微細なアクセスログの記録要件などを自発的に実装することはない。「要件定義に記載されていない業界の暗黙知」を補完して実装に落とし込むのは人間のエンジニアの役割であり、AIはそこに介在できない。
開発環境を狙うMCP経由の新たなサプライチェーン攻撃
そして今、脅威のベクトルは生成されたコードそのものから、開発環境へのサプライチェーン攻撃へと向かい始めている。Cursorなどの開発環境とAIモデルを接続するMCP(Model Context Protocol)サーバーの脆弱性を突く攻撃だ。JiraのチケットやSlackの通信内容をAIに読み込ませる便利さは、悪意のあるプロンプト・インジェクションが開発者のローカルマシンに直結し、ソースコードや機密情報が外部へ流出する巨大なリスクと表裏一体である。
自然言語だけでシステムを構築できるというVibe Codingの誘惑は、非エンジニアにとって抗いがたい魅力を持っている。AI技術の進化が開発のハードルを下げ、アイデアを瞬時に形にする力をもたらしたことは疑いようのない事実である。しかし、Vib-OSの起動しないDoomや、Enrichleadの脆弱なログイン画面が示しているのは、インフラ、セキュリティ、業界のドメイン知識といったコードの背後にある「目に見えない構造」を設計・監督する人間の専門性は、消滅するどころかかつてないほど重要になっているという現実である。コードを書くことのコストがゼロに近づく時代において、システムの安全と信頼性を担保する責任をAIに丸投げすることは、砂上の楼閣を自動生成する行為に他ならない。
Sources
- GitHub: viralcode/vib-OS
- Hackaday: Trying A Vibe-Coded Operating System