
生成AIに書かせたコードのセキュリティ対策:レビューをどう設計するか
株式会社ペンタコン研究所 PentaTrail開発チーム···7分で読める
目次
AIに書かせたコードの安全は、「気をつける」では守れません。
AIに任せるとコードは人間の数倍の速さで増え、増えれば穴も同じ速さで増えます。権限を閉じ忘れたり、秘密をコードに残したまま忘れたり、入力チェックが抜けたり。速さを取った以上、1人の目視ではもう追いつきません。
付録:層ごとの「何をして、何を防ぐか」
表1:6 つの層
| 層 | 何をするか | 何を防ぐか |
|---|---|---|
| 境界 | エッジで Bot と不審な自動アクセスを落とす | 無差別スキャン、自動化された大量アクセス |
| 認証の委譲 | 中核を自前で実装せず、パスキーと外部ログインに預ける | フィッシング、パスワード漏洩、セッション固定、トークン偽造 |
| データの境界 | 行ごとに持ち主を縛り、既定で開く権限を閉じる | テナント越境、権限昇格 |
| コード規約 | 書く前に決めた規約を毎回読ませる | インジェクション、XSS、秘密の混入、偽装ファイル |
| CI の門番 | 機械の検査を束で通し、緑が揃うまで止める | 退行、認可の取り違え、供給網攻撃、鍵の誤コミット |
| 二刀流の目 | 系統の違う AI を重ね、最後は人が確かめる | 同系統では揃って見落とす欠陥 |
表2:CI で走る検査
| 検査 | 何を防ぐか |
|---|---|
| 秘密情報スキャン | 鍵やトークンの誤コミットによる侵入 |
| 権限ゲート | 強権限の関数や匿名アクセスの穴がマージされること |
| 権限テスト | 一度塞いだ穴が、後の変更で再び開く退行 |
| 結合テスト | 認証・権限を含む振る舞いの取り違え |
| 型・ビルド・lint | 規約からの逸脱 |
| 依存追加ゲート | 公開直後の悪意ある版を自動更新で引き込む事故 |
表3:書く前に決めている規約
| 規約 | 何を防ぐか |
|---|---|
| 入力はホワイトリストで検証し、問い合わせはパラメータ化する | SQL インジェクション、不正な値の混入 |
| 画面に出す値はエスケープする | クロスサイトスクリプティング |
| 秘密はコードに書かず、鍵の保管庫に置く | ソースが漏れたときに鍵まで漏れること |
| アップロードは拡張子と中身を二重に確かめる | 偽装したファイルの混入 |



