脆弱性体験学習ツール AppGoat (個人学習向け):ツール概要
最終更新日:2025年3月27日
ツール概要
利用者は、IPAのウェブサイトからAppGoatをダウンロードし、自身のPCで学習を進めることができます。個人学習用のAppGoatは、複数の学習テーマから構成されています。利用者は、自身の学習目的に合わせて、任意の学習テーマを選択できます。
学習の流れ
AppGoatは、「ウェブアプリケーション用学習ツール」で12個の脆弱性を学習することができます。各脆弱性毎に複数の学習テーマがあり、各学習テーマを順に学習することで脆弱性に対する理解を深めることが出来ます。ウェブアプリケーション用学習ツールは、各テーマは主に以下の図の構成となっています。前半は、攻撃者のように脆弱性を実際に悪用する演習を行い、脆弱性がどのように狙われどんな影響があるのかを学習します。後半では、開発者の立場で実際にソースコードを修正し、脆弱性の対策方法を学びます。脆弱性の概要のみを学習したい方は前半を、開発者の方は前半および後半を学習してください。
特長
様々な脆弱性を学習可能
ウェブアプリケーションの開発の際に作りこみやすいSQLインジェクション等の脆弱性を合計12種類学習可能です。
攻撃者視点での脆弱性の攻撃体験
AppGoatには、意図的に脆弱性を埋め込んだウェブアプリケーションが内在しています。攻撃者の立場でそのウェブアプリケーションに対して脆弱性を悪用した攻撃を行う体験ができます。体験を通じて、脆弱性がどのように悪用されるのか、そしてどのような影響を受けるのかを実際に確認できます。
開発者視点での脆弱性の修正
AppGoatには、ソースコードを修正する演習があります。実際に修正を行い、修正結果を確認することで、対策方法をより実践的に学習することができます。
申請方法
手順1:利用申請フォームより申請
「利用許諾条件合意書」に同意の上、下記申請フォームより、必要事項を明記し申請します。
- 申請フォームにご入力いただいたメールアドレス宛へダウンロード詳細をご案内しています。
- メールが届かない場合は、迷惑メールの受信ボックスのご確認や「@ipa.go.jp」からのメールの受信許可をお試しください。
ご協力のお願い
授業や社内教育等で複数人が個人学習モードを利用する場合、講師等の代表者が利用申請を行い、ダウンロードしたファイルを参加者に再配布するようお願いいたします。
その際は以下の点にご留意ください。
- 再配布先は授業や社内教育の関係者に限ること
- 利用申請フォームに再配布の人数および目的を記載すること
- 利用者全員に「利用許諾条件合意書」を配布し同意を得ること(PDF:285 KB)
- 再配布についての詳細は「利用許諾条件合意書」第 5 条をご確認ください。
手順2:ウェブアプリケーション用学習ツール(個人学習向け)のダウンロード
手順1で申請を行うと申請時に入力したメールアドレスにダウンロードの詳細が送付されます。
注意事項を確認し、URLよりダウンロードを行ってください。
ダウンロードファイルのサイズ:約810MByte
ファイルサイズが大きいため、利用回線などの通信環境にご注意ください。
学習の始め方
手順1:AppGoatの解凍
ダウンロードしたAppGoat(zip形式)を任意のフォルダに解凍します。
解凍先のフォルダのパスに、全角文字(日本語)、半角スペース、半角記号を含めないでください。
手順2:Microsoft Visual C++再頒布可能パッケージのインストール
AppGoatの解凍フォルダに含まれているMicrosoft Visual C++再頒布可能パッケージをインストールします。
AppGoat解凍フォルダ\IPATool\IPATool\Framework\Tools\vcredist_x86.exe
「vcredist_x86.exe」をクリックしてインストールします。
手順3:AppGoatの起動
解凍したフォルダ内にあるAppGoatSettings.exeを起動し、環境設定アプリを起動してください。起動後、[Apache起動]ボタンをクリックしてください。
手順4:AppGoatを利用する上での遵守事項の確認および実施(V3.0.3より追加)
AppGoatを利用する上で遵守事項があります。ダイアログ内に記載している遵守事項を確認し、LANケーブルを外す等の遵守事項を実施してください。
手順5:学習開始
AppGoatの起動に成功すると、以下の総合メニューの画面が表示されます。「学習環境へ」をクリックし、学習を開始してください。
なお、初めてAppGoatを利用する場合は、学習を開始する前に「学習を進める前に」をクリックし、学習の進め方等を確認してください。
学習できる脆弱性一覧
ウェブアプリケーション用学習ツール
- 学習可能な脆弱性名
-
- クロスサイト・スクリプティング
- SQLインジェクション
- CSRF(クロスサイト・リクエスト・フォージェリ)
- ディレクトリ・トラバーサル
- OSコマンド・インジェクション
- セッション管理の不備
- 認証制御や認可制御の欠落
- HTTPヘッダ・インジェクション
- バッファオーバーフロー
- クリックジャッキング
- メールヘッダ・インジェクション
- その他の脆弱性(システム情報漏えい等)
お問い合わせ先
問い合わせ
-
E-mail

更新履歴
-
2025年3月27日
学習の進め方「手順2」を追記
-
2024年3月29日
申請方法を更新(申請方法の変更)
-
2023年3月31日
申請方法を更新(申請方法の変更)
-
2023年2月28日
AppGoat (ウェブアプリケーション用学習ツール) V3.0.5 の公開
-
2023年1月19日
申請方法を更新(申請方法の変更)
-
2022年11月4日
サーバ・デスクトップアプリケーションの公開を終了
-
2021年7月20日
申請方法を更新(授業や社内教育等で利用する場合のお願いを追記)
-
2019年12月2日
以下の資料を修正
- AppGoat (ウェブアプリケーション用学習ツール) V3.0.4 の内容に合わせ修正しました。
- AppGoatを利用した集合教育補助資料 -SQLインジェクション編-
- AppGoatを利用した集合教育補助資料 -クロスサイトスクリプティング編-
- AppGoatを利用した集合教育補助資料 -クロスサイトリクエストフォージェリ編-
- AppGoatを利用した集合教育補助資料 -ディレクトリ・トラバーサル編-
- AppGoatを利用した集合教育補助資料 -OSコマンドインジェクション編-
- AppGoatを利用した集合教育補助資料 -セッション管理の不備編-
- AppGoat (ウェブアプリケーション用学習ツール) V3.0.4 の内容に合わせ修正しました。
-
2019年11月5日
AppGoat (ウェブアプリケーション用学習ツール) V3.0.4 の公開
6個の脆弱性(基礎)の演習(発見)に関する文言を見直しました。
-
2019年8月29日
以下の資料を公開
- AppGoatを利用した集合教育補助資料 -ディレクトリ・トラバーサル編-
- AppGoatを利用した集合教育補助資料 -OSコマンドインジェクション編-
- AppGoatを利用した集合教育補助資料 -セッション管理の不備編-
- AppGoatを利用した集合教育補助資料 -Fiddlerの使い方-