またGitHubには、Issueと呼ばれる課題管理の仕組みがある。外部ユーザーがIssueを投稿し、そのタイトルにプロンプトインジェクションを仕込むことにより、Issueを自動処理するAIエージェントがIssueの文章を命令として解釈し、GitHub Actionsの実行環境で処理を実行してしまうことが発見された。
コードの変更により自動でビルド、単体テスト、静的解析、品質チェックを行い(CI)、さらには、CIで問題なければ、そのままステージング環境、本番環境に自動で反映する(CD)ことも可能だ。
AIは開発速度を何十倍にも高めた。AIが高速で大量のコードを書くようになり、人間が十分に確認しないまま公開してしまうことにより、事故が起きている。
「うちはプロのエンジニアが開発しているから大丈夫」と考える企業も多い。しかし実際には、企業でも生成AIによるコード生成は急速に普及している。従来なら1週間かかった実装が半日で終わる。すると当然、「もっと早くリリースしよう」という圧力も強くなる。一方で人のリソースには限りがあり、人によるレビュー時間は増えない。結果として、安全性の確認が追いつかなくなるのだ。
AIは優秀な開発者だが、責任は取らない
AIにコードを書かせること自体は問題ではないが、問題は、人間がそのコードを信頼しすぎることである。企業が最低限取り組むべきことは3つある。
● 第2に、ソフトウェアの脆弱性を見つけるソースコード解析(SAST)や、実際に攻撃を試みる脆弱性診断(DAST)などの自動セキュリティチェックをCI/CDに組み込むこと。
● 第3に、「AIで作ったから早く公開できる」という評価ではなく、「安全性を確認して公開した」という評価へ組織文化を転換すること。
AIを前提とした開発では、セキュリティを設計段階から組み込む「セキュリティ・バイ・デザイン」と、人によるレビューを含む開発プロセスの双方が重要とされている。
生成AIは、ソフトウェアの市民開発を大きく前進させた。アイデアさえあれば誰でもサービスを作れる時代になった。一方で、誰でもサービスを公開できるということは、誰でも重大なセキュリティ事故を起こせる時代になったことも意味する。

