🧭
概念 #セキュリティ #AI開発 #学習ロードマップ #DevSecOps #脅威モデリング 📚 AI開発時代のセキュリティ

リスクから逆算するセキュリティ学習ロードマップ

AIを使う開発者が、Web基礎、認証認可、脅威モデリング、クラウド、DevSecOps、AI固有リスクをどの順番で学ぶべきかを整理する。

なぜ逆算するのか

セキュリティの範囲は広い。暗号、ネットワーク、Web、クラウド、OS、マルウェア、フォレンジック、GRC、法規制、AIセキュリティまで全部を同時に学ぶと、何から実務に効くのか分からなくなる。

AIを使ってWeb/業務アプリを開発する人は、まず「自分が作るものがどこで壊れるか」から逆算するとよい。
AI時代でも、最初に必要なのは高度な攻撃手法ではなく、ユーザー入力、認証認可、データ保護、権限境界、開発プロセスを安全に扱う力である。


学習の全体像

Phase 1: Webアプリの壊れ方を知る
Phase 2: 認証・認可・データ保護を固める
Phase 3: 脅威モデリングで設計前に考える
Phase 4: クラウドと運用の被害範囲を理解する
Phase 5: DevSecOpsで開発フローに組み込む
Phase 6: LLM/エージェント固有のリスクを重ねる

AI固有リスクは最後に置いているが、重要度が低いという意味ではない。
AIリスクの多くは、既存の認可、入力検証、ログ、権限管理の失敗と接続しているため、土台を先に作るほうが理解しやすい。


Phase 1: Webアプリの壊れ方を知る

最初に学ぶべきは、Webアプリがなぜ攻撃されるのかである。

学習対象:

  • HTTPリクエストとレスポンス
  • Cookie、セッション、CSRF
  • XSS、SQLインジェクション、SSRF
  • ファイルアップロード、リダイレクト、CORS
  • OWASP Top 10の全体像

到達目標:

  • 「ユーザー入力はすべて改ざんできる」と説明できる
  • フロントエンドのバリデーションを信用しない理由が分かる
  • 典型的な脆弱性がどの層で起きるか分類できる
  • AIが生成したコードに危険な文字列連結や出力処理を見つけられる

関連Docs:


Phase 2: 認証・認可・データ保護を固める

AI時代の実害は、モデルの誤回答よりも、権限外データへのアクセスや重要操作の実行で大きくなることが多い。

学習対象:

  • 認証と認可の違い
  • セッション、JWT、OAuth/OIDC
  • RBAC、ABAC、オブジェクト単位のアクセス制御
  • 暗号化、鍵管理、秘密情報管理
  • ログに残してよい情報と残してはいけない情報

到達目標:

  • 「ログイン済み」と「そのリソースを操作できる」を分けて設計できる
  • AIエージェントのツール権限を最小化できる
  • RAGの検索範囲にユーザー権限を反映できる
  • APIキーや個人情報をプロンプトやログに混ぜない設計ができる

関連Docs:


Phase 3: 脅威モデリングで設計前に考える

セキュリティは実装後のチェックリストだけでは足りない。
AI機能は、入力、外部データ、モデル、ツール、権限が複雑に接続されるため、設計段階で信頼境界を描く必要がある。

学習対象:

  • STRIDE
  • データフロー図
  • 信頼境界
  • 攻撃者視点の問い
  • リスクの優先度付け

到達目標:

  • AI機能のデータフローを図にできる
  • 外部文書、モデル出力、ツール実行の信頼境界を説明できる
  • 「どの脅威を受け入れ、どの脅威を対策するか」を判断できる
  • セキュリティ要件を機能要件と一緒に書ける

関連Docs:


Phase 4: クラウドと運用の被害範囲を理解する

AIアプリはAPIキー、ベクトルDB、オブジェクトストレージ、ジョブ実行環境、外部LLM API、ログ基盤に依存する。
アプリのバグがクラウド権限と接続すると、被害範囲は一気に広がる。

学習対象:

  • IAMと最小権限
  • ネットワーク分離
  • シークレット管理
  • 監査ログ
  • インシデントレスポンス
  • コンテナ・Kubernetesの基本的な保護

到達目標:

  • アプリ用、CI用、エージェント用の権限を分けられる
  • LLMツール実行環境からアクセスできる範囲を制御できる
  • 漏洩・誤操作が起きたときにログで追跡できる
  • 本番データを安易に開発・検証用AIへ渡さない判断ができる

関連Docs:


Phase 5: DevSecOpsで開発フローに組み込む

AI開発は変更速度が速い。人間が最後にまとめてレビューするだけでは、生成コード、依存関係、設定ミスを拾いきれない。

学習対象:

  • SAST、DAST、SCA
  • Secret scanning
  • Dependabotや脆弱性管理
  • セキュリティレビュー観点
  • CI/CDの権限設計
  • Secure Software Development Framework

到達目標:

  • PR時に最低限のセキュリティ検査を自動化できる
  • AI生成コードのレビュー観点をチェックリスト化できる
  • 脆弱性を「後で直す」ではなく優先度付きで管理できる
  • セキュリティ指摘を開発者が理解できる言葉で説明できる

関連Docs:


Phase 6: LLM/エージェント固有のリスクを重ねる

最後に、LLM特有の攻撃面を既存の土台へ重ねる。

学習対象:

  • プロンプトインジェクション
  • RAG汚染
  • 機密情報漏洩
  • Excessive Agency
  • モデル出力の検証
  • AIリスク管理
  • Human-in-the-Loop

到達目標:

  • 外部コンテンツを「命令」ではなく「データ」として扱える
  • モデル出力を実行前に検証できる
  • エージェントの権限を読み取り、下書き、実行で分けられる
  • AI機能の失敗モードを仕様として説明できる

関連Docs:


学習を進めるときの注意

ツール名より脅威モデルを優先する

Burp Suite、Semgrep、CodeQL、SIEM、EDRなどのツールは重要だが、先に「何を検出したいのか」を説明できる必要がある。

攻撃手順の暗記で止まらない

攻撃を知ることは重要だが、開発者に必要なのは、設計・実装・レビュー・運用で再発しない仕組みに変換する力である。

AIの回答を教材としても監査対象としても扱う

AIは学習を助けるが、間違った説明や古いベストプラクティスを出すことがある。
重要な判断は公式ドキュメント、標準、既存コード、テストで確認する。


参考リソース

出典: OWASP Top 10 / OWASP Top 10 for LLM Applications / NIST SP 800-218 SSDF / CISA Secure by Design