チェックリスト集
今日から使えるチェックリスト
これまで解説してきたアンチパターンと対策を、すぐに使えるチェックリスト形式でまとめます。
印刷して、デスクの横に貼ってください。
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時間以上学習している
- [ ] 業界トレンドを追っている
- [ ] コミュニティに参加している
この事例から学ぶべき教訓と実践ポイント
「チェックリスト集」から学ぶべきことは以下の通りです。
-
チェックリストで漏れを防ぐ
- 人間は忘れる、チェックリストは忘れない
-
定期的に実行
- 毎回のレビュー、週次チェック
-
チームで共有
- 全員が同じ基準でチェック
-
継続的に更新
- 新しい脅威に対応
-
印刷して貼る
- 目に見える場所に
まとめ:重要ポイントの振り返り
- レビューチェックリスト: 毎回のAI生成コードレビューに
- PRマージ前: マージ前の最終確認に
- ライブラリ追加: 新規依存関係の追加時に
- 本番デプロイ前: デプロイ前の最終確認に
- インシデント対応: 緊急時の対応手順
- 週次チェック: 定期的なセキュリティ確認
- プロンプトテンプレート: 安全なAI活用に
- 組織導入: 段階的な導入に
- 個人スキルアップ: キャリア開発に
- 教訓:チェックリストを習慣化せよ