コース概要
モジュール1 AIアプリケーションに生じる脆弱性とは
演習:なし。アーキテクチャの概要説明および討論
開発者目線で攻撃面を整理します。
学ぶ内容:
- 開発者側から見たLLM・RAG・エージェントのアーキテクチャ構成
- AI機能におけるリクエスト/レスポンスフローの概要
- システム指示文、開発者の指示、ユーザー入力、ツール出力といった各種メッセージの役割
- 信頼できないデータがモデルへ送られる箇所(再入力も含む)
- 開発者が責任を持つ信頼境界とそうでない部分
- AI攻撃の本質は構文的ではなく意味的である理由
- OWASP LLMトップ10項目を自身のコードへどう対応させるか
重要な洞察:信頼できないテキストがモデル側へ渡る場所や、モデルの出力結果がアプリケーションに影響する点すべてが開発者の責任境界となります。
モジュール2 開発者向けプロンプトインジェクション対策
演習:ラボ01 01-Prompt-Injection
AIにおける「SQLインジェクション問題」ですが、完全回避は困難な状況です。
学ぶ内容:
- 直接および間接的なプロンプトインジェクションの特徴
- 文書やウェブページ、ツール出力に隠された指示文への対処法
- ジルーブレイク現象やロール混同問題の理解
- 指示文とデータ分離がなぜ重要か
- デリミタ設定・構造化・権限最小化などの防御的プロンプト設計
- 完全阻止は不可能であるため影響制限型の設計が求められる理由
実践演習:
- 自作チャットボットへの攻撃手法を体験する
- 単純なフィルターの回避テスト
- 影響範囲縮小向けのプロンプト再設計法
モジュール3 モデル出力を信頼できない対象として扱う方法
演習:ラボ02 02-Output-Handling
開発者が最も見落としやすい脆弱性のカテゴリです。
学ぶ内容:
- モデル出力結果を他システム向け信頼できない入力データとして取り扱う理由
- XSSやSSRF、コマンド/SQLインジェクションなどの不適切処理リスク(LLM02)
- 生成された出力を直接実行・レンダリングせず検証を行う必要性
- 構造化データおよびスキーマベースの妥当性チェック法
- 出力内容のエンコード処理や許可リスト運用術
- ウェブ/UI環境での安全な表示手法
実践演習:
- 出力内容の不適切処理を起因とする脆弱性の発見と修正
- モデル応答内容に対してJSONスキーマ検証を適用する
モジュール4 RAGセキュリティ対策
演習:ラボ03 03-RAG-Security
新規に登場した最大級の攻撃面であり、構築者が責任を持つ領域です。
学ぶ内容:
- ベクターDBおよび検索プロセスにおける脅威分析
- 取り込み時のデータ適切処理手法
- 文書出自確認や信頼度付け方法
- 検索範囲制限およびメタデータ分離テクニック
- 検索結果に含まれる隠された指示文(間接インジェクション)
- 検索プロセスを通じたデータ流出防止法
実践演習:悪質な文書を用いたRAGパイプラインの汚染操作、その後での取り込み処理強化および検索制限設定。
モジュール5 エージェント・ツールの安全性確保
演習:ラボ04 04-Agent-Safety
脆弱性が実際の行動に直結する側面を扱います。
学ぶ内容:
- 過剰な権限設定(LLM06)によるツール不正利用問題
- エージェントに対する最小権限原則の適用法
- 許可リスト設定や引数検証作業
- 承認機構および人間介入プロセスの導入策
- ツール実行環境のサンドボックス化手法<\/li>
- エージェント専用一時的資格情報の管理例
- 自律ループや連続処理回数の制限策
実践演習:
- 過剰権限を与えられたエージェントの保護措置導入
- 危険性の高いツールへの許可リストや承認機構追加作業
モジュール6 キー管理・アイデンティティ検証およびコスト抑制法
演習:ラボ05 05-Secrets-and-Cost
運用上最も素早く大きな影響を及ぼし得る失策点です。
学ぶ内容:
- プロンプト・コード・ログ内にキーや機密情報が存在してはならない理由
- AI機能向けユーザ認証および権限付与の仕組み
- ツール処理時や検索時におけるユーザ識別情報の適切な継承法
- 無制限トークン消費による経済的損失防止策
- レート制限・トークンバジェット設定およびタイムアウト管理
- 機密情報や個人情報漏洩を防ぐためのログ運用法
実践演習:
- キー類をプロンプト経路から完全に分離する作業
- 個別ユーザ向けレート制限やコスト予算枠の導入
モジュール7 ガードレイルライブラリの適用法
演習:ラボ06 06-Guardrails
入出力セキュリティ確保における購入品と自作ソフトの使い分けについて説明します。
学ぶ内容:
- ガードレイルフレームワークが実現・できない機能の理解
- 入力時用ガードレイル:インジェクション検知や個人情報分類器
- 出力時用ガードレイル:妥当性チェック、フィルタリングおよび事実整合性確認手法
- 自作決定論的チェックと比較した導入タイミング判断法
- 本講座で習得した各種制御策との組み合わせ方
- 処理性能や誤検出率、障害パターンの把握方法
実践演習:
- AI機能にガードレイル層を構築し適用する作業
- 検出精度の検証と見落とされやすい脆弱点特定法
モジュール8 自アプリケーション向けレッドチーミング実施法
演習:ラボ07 07-Red-Testing
攻撃者視点からの事前準備状況を確認する訓練です。
学ぶ内容:
- AI機能向け不正利用検証用テストセット作成法
- プロンプトインジェクションおよびジルーブレイク自動判定手法
- ガードレイル設定や運用方針の後退防止対策
- CI工程でのAIセキュリティチェック組み込み方法
- モデルおよび依存コンポーネントの供給源管理・バージョン固定法
- リリース前最終段階で実行すべきセキュリティチェック項目例
実践演習:
- 自身のAI機能用レッドチーミングテスト自動化法
- CI検証工程への接続作業例
モジュール9 AIセキュリティ評価:SAIS-100フレームワーク解説
演習:なし。スコア付け訓練(総仕上げ用アプリケーション使用)
これまでの知識を実際的な点数評価へ繋げます。
学ぶ内容:
- 従来の「安全か否か」判断に代わる6大問いを含む『AIセキュリティ六角形』
- 各項目はデータ・プロンプト・エージェント・供給チェーン・検知能力・運用管理の6カテゴリーからなる
- 100点満点およびそれぞれの配分基準値説明
- 結果評価帯判定規定と単一項目オーバーライドルール概略
- SAIS-100という再適用可能な公式化フレームワーク概要
- 構築前後での点数変化が安全性向上の指標となる仕組み
実践演習:
- 総仕上げ用アプリケーションに対する100点満点評価</li>
- 得点上昇効果が最も大きい改善ポイント特定法
重要な洞察:高配分カテゴリーは開発者責任範囲そのものであり、点数評価の主眼部分です。
総仕上げ演習
受講者が初めから脆弱性だらけなAIアプリケーションを徹底的に強化します。
提供用サンプルには以下要素があります:
- 外部攻撃可能なプロンプト仕様
- 出力内容の不適切処理構造
- 制限範囲未設定のRAGパイプライン
- 過剰権限を有するエージェント設定
- プロンプト経路に混入した機密キー類
- コスト制限規定なしの実行環境
習得すべき改善事項:
- 影響範囲抑制向けプロンプト再設計法
- 出力データの妥当性確認およびエンコード手法
- 検索結果および取り込み情報の安全化策
- エージェント権限縮小および承認制御導入例
- 機密キー管理改善とコスト/レート制限実装
- ガードレイル構築および自動化レッドチーミングテスト組み込み</li>
最終成果物:強化完了したアプリケーションとOWASP LLMトップ10自己診断結果報告書です。
モジュール~演習対応表
演習はモジュール順序に従って実施。全9モジュール中7つの演習コースが存在します:モジュール1は概要説明、モジュール9はスコア評価のみなのでそれぞれ単独のフォルダありません。
- ラボ01 - 01-Prompt-Injection:自身チャットボットへの攻撃検証と影響制限設計(モジュール2)
- ラボ02 - 02-Output-Handling:出力不適切処理問題の発見および修正(モジュール3)
- ラボ03 - 03-RAG-Security:RAGパイプラインへの悪意的操作とその防御策習得(モジュール4)
- ラボ04 - 04-Agent-Safety:過剰権限を持つエージェントの適切制御実践(モジュール5)
- ラボ05 - 05-Secrets-and-Cost:機密情報分離およびコスト管理手法導入(モジュール6)
- ラボ06 - 06-Guardrails:入出力用ガードレイル実装検証(モジュール7)
- ラボ07 - 07-Red-Testing:CI内自動化レッドチーミングテスト構築例(モジュール8)
なおモジュール1および9については演習環境がありません。前者が概要説明、後者が評価訓練として利用されるためです。
要求
- 中級レベルのスキルが必要です。
- REST APIの作成・利用、Pythonを用いた簡単なコーディング、基本認証知識、GitおよびCLI操作に慣れていることが望ましい
- 機械学習の専門的知識は不要です。本講座はLLMを活用したアプリケーション構築者向けのセキュリティコースであり、モデル学習を行う方向けではありません。
対象者
- LLM機能を構築するソフトウェア/バックエンド開発者
- フルスタック・API開発者
- AI/MLアプリケーション技術者
- コーパイロットや自律型エージェントを提供するプラットフォーム技術者
- AI機能構築を主導するテックリード・上級開発者
お客様の声 (2)
AI攻撃とその実践に役立つツールの知識を学べたことは非常に有意義でした。セキュリティテストのために積極的に活用するにあたり、多くの新たな知見を得ることができました。この講座は私の期待を上回る内容であり、特に「Comet Browser」の機能には大きな感動を覚えました。今後はさらに掘り下げて調査したいと思っています。全体として大変優れた講座であり、OWASP GenAI Top 10の全項目を学ぶことができたことを嬉しく思います。
Patrick Collins - Optum
コース - OWASP GenAI Security
機械翻訳
彼が私たちの前で専門的な知識をどのように提示したか
Miroslav Nachev - PUBLIC COURSE
コース - Cybersecurity in AI Systems
機械翻訳