AIセキュリティ 2025年11月12日

AI生成コードセキュリティチェックリスト【保存版】

これまで解説してきたアンチパターンと対策を、すぐに使えるチェックリスト形式でまとめます。 印刷して、デスクの横に貼ってください。 **毎回のレビューで確認:** **PRをマージする前に確認:** **ライブラリを追加する前に確認:**。

川西智也

合同会社ロイヤルピース 代表

チェックリスト集

今日から使えるチェックリスト

これまで解説してきたアンチパターンと対策を、すぐに使えるチェックリスト形式でまとめます。

印刷して、デスクの横に貼ってください。


AI生成コードレビューチェックリスト

毎回のレビューで確認:

## AI生成コード レビューチェックリスト

### 機密情報
- [ ] APIキーがハードコードされていない
- [ ] シークレットが環境変数で管理されている
- [ ] 認証情報がソースコードに含まれていない
- [ ] ログに機密情報が出力されていない

### 認証機能の実装ポイント・認可
- [ ] 認証がサーバーサイドで行われている
- [ ] 認可チェックがバックエンドにある
- [ ] JWTの検証が適切に行われている
- [ ] セッション管理が安全である

### 入力バリデーション
- [ ] すべてのユーザー入力がバリデートされている
- [ ] サーバーサイドでバリデーションしている
- [ ] SQLインジェクション対策がある
- [ ] パストラバーサル対策がある

### XSS対策
- [ ] innerHTML/dangerouslySetInnerHTMLを使っていない
- [ ] ユーザー入力がサニタイズされている
- [ ] CSPヘッダーが設定されている
- [ ] eval()を使っていない

### パスワード
- [ ] パスワードがbcrypt/Argon2でハッシュされている
- [ ] ソルトが適切に使用されている
- [ ] 平文パスワードが保存されていない
- [ ] MD5/SHA-1を使っていない

### 依存関係
- [ ] パッケージが実在することを確認した
- [ ] 最新の安定版を使用している
- [ ] 既知の脆弱性がない
- [ ] npm audit/pip-auditを実行した

PRマージ前チェックリスト

PRをマージする前に確認:

## PRマージ前チェックリスト

### 必須チェック
- [ ] CI/CDがすべてグリーン
- [ ] テストカバレッジが基準を満たしている
- [ ] セキュリティスキャンが通過
- [ ] 必要なレビュアーから承認を得た

### AI生成コード特有のチェック
- [ ] AI生成コードを含むことを明示した
- [ ] 生成コードをすべて読んで理解した
- [ ] セキュリティチェックリストを完了した
- [ ] テストを追加した

### ドキュメント
- [ ] 必要に応じてREADMEを更新した
- [ ] APIドキュメントを更新した(該当する場合)
- [ ] 変更内容が明確に説明されている

新規ライブラリ追加時のチェックリスト

ライブラリを追加する前に確認:

## 新規ライブラリ追加時のチェックリスト

### 存在確認
- [ ] npm info / pip show で存在を確認した
- [ ] 公式GitHubリポジトリが存在する
- [ ] ダウンロード数が十分にある

### 信頼性
- [ ] メンテナが信頼できる
- [ ] 最終更新が最近である
- [ ] スター数とフォーク数が適切
- [ ] Issueが適切に対応されている

### セキュリティ
- [ ] 既知の脆弱性がない
- [ ] Snyk/npm auditでスキャン済み
- [ ] ライセンスが適切

### 必要性
- [ ] 本当にこのライブラリが必要か
- [ ] 既存のライブラリで代替できないか
- [ ] 標準ライブラリで実装できないか

本番デプロイ前の必須チェックリスト

本番環境へのデプロイ前に確認:

## 本番デプロイ前の必須チェックリスト

### セキュリティ
- [ ] シークレットが環境変数で設定されている
- [ ] HTTPSが強制されている
- [ ] CORSが適切に設定されている
- [ ] セキュリティヘッダーが設定されている

### 品質
- [ ] すべてのテストが通過
- [ ] ステージング環境でテスト済み
- [ ] 負荷テストを実施(必要な場合)
- [ ] ロールバック手順を確認

### モニタリング
- [ ] ログ設定が適切
- [ ] アラートが設定されている
- [ ] エラートラッキングが有効

### 承認
- [ ] 技術リードの承認
- [ ] セキュリティチームの承認(必要な場合)
- [ ] ステークホルダーへの通知

セキュリティインシデント対応チェックリスト

インシデント発生時に確認:

## セキュリティインシデント対応チェックリスト

### 初動対応(30分以内)
- [ ] 影響範囲を特定
- [ ] 関係者への通知
- [ ] 必要に応じてサービスを停止

### 調査(2時間以内)
- [ ] ログの収集と分析
- [ ] 侵入経路の特定
- [ ] 影響を受けたデータの特定

### 対応
- [ ] 脆弱性の修正
- [ ] 認証情報のローテーション
- [ ] 追加の防御策の実装

### 事後対応
- [ ] インシデントレポートの作成
- [ ] 再発防止策の策定
- [ ] チームへの共有と教育

週次で実施すべきセキュリティチェック

毎週実施:

## 週次で実施すべきセキュリティチェック

### 依存関係
- [ ] npm audit / pip-audit を実行
- [ ] Dependabotのアラートを確認
- [ ] 脆弱性のあるパッケージを更新

### アクセス管理
- [ ] 不要なアクセス権限がないか確認
- [ ] 退職者のアクセスが削除されているか
- [ ] シークレットのローテーション時期を確認

### ログとモニタリング
- [ ] 異常なアクセスパターンがないか
- [ ] エラー率の急増がないか
- [ ] 不審なアクティビティがないか

AI活用プロンプトテンプレート

コピーして使えるテンプレート:

## 認証機能プロンプトテンプレート

[機能の説明を記述]

### 【必須】セキュリティ要件
- パスワードはbcrypt(コスト12以上)でハッシュ
- セッション管理はJWT(有効期限1時間)
- Cookie設定: HttpOnly, Secure, SameSite=Strict
- レート制限: 5回/15分
- アカウントロック: 5回失敗で30分
- 入力バリデーション: zodスキーマ使用
- SQLインジェクション対策: プリペアドステートメント

### AI開発で避けるべき禁止事項
- 平文パスワード保存
- MD5/SHA-1の使用
- クライアントサイド認証
- パスワードのログ出力
## API開発のプロンプトテンプレート

[エンドポイントの説明を記述]

### 【必須】セキュリティ要件
- すべてのエンドポイントで認証検証
- ユーザーごとのアクセス制御
- 入力バリデーション: zodスキーマ
- レスポンスに機密情報を含めない
- エラーメッセージで内部情報を漏らさない
- レート制限: 100回/分
- HTTPS強制

### AI開発で避けるべき禁止事項
- APIキーのハードコード
- 認証なしのエンドポイント
- 詳細なエラーメッセージ

AI開発ツール組織導入チェックリスト

AI導入を進める際に確認:

## AI導入チェックリスト

### Phase 1: 準備
- [ ] パイロットプロジェクトを選定
- [ ] 成功指標を定義
- [ ] 予算と時間を確保

### Phase 2: ガイドライン
- [ ] 利用ポリシーを策定
- [ ] セキュリティポリシーを策定
- [ ] レビュープロセスを定義

### Phase 3: 教育
- [ ] トレーニングカリキュラムを作成
- [ ] 全メンバーにトレーニング実施
- [ ] スキルアセスメントを実施

### Phase 4: 展開
- [ ] 段階的にチームに展開
- [ ] サポート体制を構築
- [ ] フィードバックを収集

### Phase 5: 改善
- [ ] メトリクスを測定
- [ ] 課題を分析
- [ ] ガイドラインを更新

個人スキルアップチェックリスト

キャリアを守るために:

## AI時代のスキルアップチェックリスト

### 基礎スキル
- [ ] AIツールを効果的に使える
- [ ] プロンプトエンジニアリングができる
- [ ] AI生成コードをレビューできる

### セキュリティスキル
- [ ] OWASP Top 10を理解している
- [ ] セキュリティレビューができる
- [ ] 脆弱性を識別できる

### 専門スキル(いずれかを選択)
- [ ] ドメイン知識を深めている
- [ ] アーキテクチャ設計ができる
- [ ] チームをリードできる

### 継続的学習
- [ ] 週に2時間以上学習している
- [ ] 業界トレンドを追っている
- [ ] コミュニティに参加している

この事例から学ぶべき教訓と実践ポイント

「チェックリスト集」から学ぶべきことは以下の通りです。

  1. チェックリストで漏れを防ぐ

    • 人間は忘れる、チェックリストは忘れない
  2. 定期的に実行

    • 毎回のレビュー、週次チェック
  3. チームで共有

    • 全員が同じ基準でチェック
  4. 継続的に更新

    • 新しい脅威に対応
  5. 印刷して貼る

    • 目に見える場所に

まとめ:重要ポイントの振り返り

  • レビューチェックリスト: 毎回のAI生成コードレビューに
  • PRマージ前: マージ前の最終確認に
  • ライブラリ追加: 新規依存関係の追加時に
  • 本番デプロイ前: デプロイ前の最終確認に
  • インシデント対応: 緊急時の対応手順
  • 週次チェック: 定期的なセキュリティ確認
  • プロンプトテンプレート: 安全なAI活用に
  • 組織導入: 段階的な導入に
  • 個人スキルアップ: キャリア開発に
  • 教訓:チェックリストを習慣化せよ

実践的なスキルを習得しませんか?

ブログで学んだ知識を、研修で実践に変えましょう。