AI支援でコードを書く開発者、バグと脆弱性が増加=スタンフォード大研究
スタンフォード大学の研究者が発表した論文によると、GitHub CopilotなどのAIアシスタントを使用した開発者は、利用しなかった開発者に比べて安全性の低いコードを書く傾向にあることが判明しました。さらに、AI利用者は自分のコードが安全であると誤認しやすいことも明らかになっています。

GitHub CopilotなどのAIツールを使って日々のプログラミングを効率化している開発者は、一度手を止めてコードを見直したほうがいいかもしれません。
スタンフォード大学のコンピューター科学者たちによる最新の研究論文『Do Users Write More Insecure Code with AI Assistants?(ユーザーはAIアシスタントを使うと、より安全でないコードを書くのか?)』によると、AIアシスタントを利用した開発者は、そうでない開発者に比べてバグや脆弱性の多いコードを生成しやすいことが明らかになりました。
脆弱性は増えたのに、本人は「完璧」と思い込む
この実験では47人の開発者を対象に、複数のプログラミング課題を出題しました。参加者の一部にはAIアシスタントの使用を許可し、残りの参加者は自力でコードを書きました。
例えば「与えられた対称鍵を使って文字列を暗号化・復号する2つのPython関数を書く」という課題では、AIを使わなかった開発者の79%が正しいコードを書けたのに対し、AIの支援を受けたグループの正答率は67%にとどまりました。
さらに深刻なのがセキュリティ面です。AIを使ったグループは安全でない実装を提供する確率が統計的に有意に高く、換字式暗号のような初歩的で脆弱な暗号手法を使ったり、戻り値の真正性チェックを怠ったりする傾向が顕著でした。特に文字列の暗号化やSQLインジェクションに関して、重大な脆弱性が多く生じていたといいます。
皮肉なのは開発者の心理状態です。AIを使った開発者は、客観的には脆弱なコードを書いているにもかかわらず、自分のコードは安全だと盲信してしまう傾向が確認されました。
参加者の一人は「AIアシスタントはStack Overflowの上位互換のようだ。質問がバカげていると文句を言われることもないからね」と冗談交じりに語っています。
コードの品質だけでなく、法的な地雷も
問題はセキュリティだけにとどまりません。AIが吐き出したコードを使うことには、法的リスクも付きまといます。
先月、OpenAIとMicrosoftはGitHub Copilotをめぐり集団訴訟を起こされました。Copilotは何十億行もの公開コードを学習していますが、元の開発者の著作権やライセンス表示を無視してコードを流用していると主張されています。
Software Freedom ConservancyのBradley M. Kuhn氏が今年指摘したように、Copilotはライセンス準拠の責任をユーザー側に丸投げしているのが実情です。開発者がAIの提案をそのまま取り込むと、意図せず著作権侵害の責任を負わされるリスクがあります。
なぜ重要か
この研究は、生成AIプログラミングが抱える最大のリスクを突いています。問題は「動かないコードが出ること」ではなく、「一見きれいに動くけれど、裏で致命的な脆弱性を抱えたコードが出ること」です。そしてAIの流暢さが、開発者の警戒心を奪ってしまいます。
個人開発者やエンジニアにとって、Copilotのようなツールはボイラープレートの生成には有用ですが、認証や暗号化、DB操作などのセキュリティが絡む領域では現状使うべきではないと考えられます。盲信の代償はセキュリティ事故という形で返ってきます。
業界全体にとっても、コードレビューのあり方を根本から見直す契機になります。AIが書いたコードは構文が整っているため見落とされやすく、専用の脆弱性スキャンや厳格なチェック体制が不可欠です。
モデル提供元が生成時にリアルタイムでセキュリティ検証やライセンス確認を行う仕組みを組み込まない限り、手に入れた開発速度はそのまま将来の技術的負債や訴訟リスクに化けることになりそうです。
情報源 (1)
- artificialintelligence-news.com(新しいタブで開きます)原文artificialintelligence-news.com
トピックを追うAIコーディングツールのリスクに関するスタンフォード大学の研究
- スタンフォード大研究:AIでコードを書くほど脆弱性を作り込みやすい
- AI支援でコードを書く開発者、バグと脆弱性が増加=スタンフォード大研究この記事