情報セキュリティ

脆弱性体験学習ツール AppGoat (個人学習向け):ツール概要

最終更新日:2024年3月29日

ツール概要

利用者は、IPAのウェブサイトからAppGoatをダウンロードし、自身のPCで学習を進めることができます。個人学習用のAppGoatは、複数の学習テーマから構成されています。利用者は、自身の学習目的に合わせて、任意の学習テーマを選択できます。

  • 利用者は、申請を行いAppGoatをダウンロードします

学習の流れ

AppGoatは、「ウェブアプリケーション用学習ツール」で12個の脆弱性を学習することができます。各脆弱性毎に複数の学習テーマがあり、各学習テーマを順に学習することで脆弱性に対する理解を深めることが出来ます。ウェブアプリケーション用学習ツールは、各テーマは主に以下の図の構成となっています。前半は、攻撃者のように脆弱性を実際に悪用する演習を行い、脆弱性がどのように狙われどんな影響があるのかを学習します。後半では、開発者の立場で実際にソースコードを修正し、脆弱性の対策方法を学びます。脆弱性の概要のみを学習したい方は前半を、開発者の方は前半および後半を学習してください。

  • 各テーマは攻撃者視点と開発者視点で行われます

特長

様々な脆弱性を学習可能

ウェブアプリケーションの開発の際に作りこみやすいSQLインジェクション等の脆弱性を合計12種類学習可能です。

攻撃者視点での脆弱性の攻撃体験

AppGoatには、意図的に脆弱性を埋め込んだウェブアプリケーションが内在しています。攻撃者の立場でそのウェブアプリケーションに対して脆弱性を悪用した攻撃を行う体験ができます。体験を通じて、脆弱性がどのように悪用されるのか、そしてどのような影響を受けるのかを実際に確認できます。

開発者視点での脆弱性の修正

AppGoatには、ソースコードを修正する演習があります。実際に修正を行い、修正結果を確認することで、対策方法をより実践的に学習することができます。

申請方法

手順1:利用申請フォームより申請

「利用許諾条件合意書」に同意の上、下記申請フォームより、必要事項を明記し申請します。

  • 申請フォームにご入力いただいたメールアドレス宛へダウンロード詳細をご案内しています。
  • メールが届かない場合は、迷惑メールの受信ボックスのご確認や「@ipa.go.jp」からのメールの受信許可をお試しください。

ご協力のお願い

授業や社内教育等で複数人が個人学習モードを利用する場合、講師等の代表者が利用申請を行い、ダウンロードしたファイルを参加者に再配布するようお願いいたします。
その際は以下の点にご留意ください。

手順2:ウェブアプリケーション用学習ツール(個人学習向け)のダウンロード

手順1で申請を行うと申請時に入力したメールアドレスにダウンロードの詳細が送付されます。
注意事項を確認し、URLよりダウンロードを行ってください。

ダウンロードファイルのサイズ:約810MByte
ファイルサイズが大きいため、利用回線などの通信環境にご注意ください。

学習の始め方

手順1:AppGoatの解凍

ダウンロードしたAppGoat(zip形式)を任意のフォルダに解凍します。

解凍先のフォルダのパスに、全角文字(日本語)、半角スペース、半角記号を含めないでください。

手順2:AppGoatの起動

解凍したフォルダ内にあるAppGoatSettings.exeを起動し、環境設定アプリを起動してください。起動後、[Apache起動]ボタンをクリックしてください。

  • Apacheを起動

手順3:AppGoatを利用する上での遵守事項の確認および実施(V3.0.3より追加)

AppGoatを利用する上で遵守事項があります。ダイアログ内に記載している遵守事項を確認し、LANケーブルを外す等の遵守事項を実施してください。

  • 使用時の遵守事項の確認

手順4:学習開始

AppGoatの起動に成功すると、以下の総合メニューの画面が表示されます。「学習環境へ」をクリックし、学習を開始してください。
なお、初めてAppGoatを利用する場合は、学習を開始する前に「学習を進める前に」をクリックし、学習の進め方等を確認してください。

  • メニュー画面の表示

学習できる脆弱性一覧

ウェブアプリケーション用学習ツール

学習可能な脆弱性名
  1. クロスサイト・スクリプティング
  2. SQLインジェクション 
  3. CSRF(クロスサイト・リクエスト・フォージェリ)
  4. ディレクトリ・トラバーサル
  5. OSコマンド・インジェクション
  6. セッション管理の不備
  7. 認証制御や認可制御の欠落
  8. HTTPヘッダ・インジェクション
  9. バッファオーバーフロー 
  10. クリックジャッキング 
  11. メールヘッダ・インジェクション
  12. その他の脆弱性(システム情報漏えい等)

お問い合わせ先

問い合わせ

  • E-mail

    isec-appgoat@ipa.go.jp

更新履歴

  • 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を利用した集合教育補助資料 -セッション管理の不備編-
  • 2019年11月5日

    AppGoat (ウェブアプリケーション用学習ツール) V3.0.4 の公開

    6個の脆弱性(基礎)の演習(発見)に関する文言を見直しました。

  • 2019年8月29日

    以下の資料を公開

    • AppGoatを利用した集合教育補助資料 -ディレクトリ・トラバーサル編-
    • AppGoatを利用した集合教育補助資料 -OSコマンドインジェクション編-
    • AppGoatを利用した集合教育補助資料 -セッション管理の不備編-
    • AppGoatを利用した集合教育補助資料 -Fiddlerの使い方-
  • 2017年11月30日

    以下の資料を公開

    • 脆弱性体験学習ツール「AppGoat」を用いた集合教育実施の手引き
    • AppGoatを利用した集合教育補助資料 -SQLインジェクション編-
    • AppGoatを利用した集合教育補助資料 -クロスサイトスクリプティング編-
    • AppGoatを利用した集合教育補助資料 -クロスサイトリクエストフォージェリ編-