HOME >> ツール&データベースカタログ >> 1-2. 脆弱性体験学習ツール「AppGoat」 −突いてみますか?脆弱性!−
1-2

脆弱性体験学習ツール「AppGoat」
−突いてみますか?脆弱性!−


効果的に安全なアプリケーション開発技法の習得を支援するツール

http://www.ipa.go.jp/security/vuln/appgoat/ 公開中 2011年1月から公開中


近年、ウェブサイトや国産のソフトウェア製品の脆弱性を突いた攻撃やそれによる被害が多数報告されており、安全面を考慮したアプリケーションの開発や運用が求められています。

しかし、これまで脆弱性の対策・検証方法を学ぶツールは十分に整備されておらず、脆弱性の低減が進まないひとつの要因となっていました。

そこでIPAでは、職場や自宅のパソコンにインストールし、ナビゲーションに従って脆弱性の検証手法から原理、影響、対策までを自習することができる体験型学習ツール「AppGoat」を開発しました。

本ツールは、開発プロジェクトなどにおいて、事前にメンバーのスキルチェックを行う場合やセミナー等で、脆弱性の解説や実演を行うための教材としても活用できます。

本ツールの特徴は次の通りです。


■ 28の学習テーマを用意

脆弱性の種別や対策目的ごとに分類した28の学習テーマを用意し、脆弱性や対策方法について幅広く学習することができます。利用者は自身の学習目的に合わせて、学習テーマを選択できます。


■ 演習問題には7種類のアプリケーションを用意

演習問題として、ウェブアプリケーションに加えてサーバアプリケーションやデスクトップアプリケーション等の7種類のアプリケーションを用意しており、さまざまな分野の開発者や学生にとって有効に活用できる内容です。


■ 幅広い利用者レベルに対応する学習教材

脆弱性を突いた攻撃が成功する仕組みから実際の対策手法まで、説明図を交えて学習できる教材を備えており、これから脆弱性を学習する初級者でも理解しやすい内容で構成しています。

また、実際の開発現場ですぐに活用できるよう、ソースコード修正などの演習も用意しており、プログラミング技術を持つ利用者は論理的な理解に加え、具体的な対策方法も学ぶことができます。

動作環境

 OS  Microsoft Windows XP Professional SP3
 Microsoft Windows Vista SP2
 Microsoft Windows 7 (32bit版)
 ブラウザ  Internet Explorer 7 又は、 Firefox 3.6 以上
 その他  ハードディスク 100MBの空き容量
 モニタ解像度 1,024×768ピクセル以上
 Adobe Reader 9 以上がインストールされていること

脆弱性の発見にチャレンジ

利用者は、演習環境上において模擬ウェブアプリケーションの脆弱性を探し出します。脆弱性を発見すると、画面上にメッセージが表示されます。

脆弱性の発見にチャレンジ

学習テーマ一覧

AppGoatは、「ウェブアプリケーション版」15学習テーマ、「サーバ・デスクトップアプリケーション版」13学習テーマから構成されています。


表1.ウェブアプリケーションテーマ一覧
クロスサイト・スクリプティング
  クロスサイト・スクリプティングとは
  アンケートページの改ざん(反射型)
  掲示板に埋め込まれるスクリプト(格納型)
  入力情報の漏えい(反射型)
  ウェブページの改ざん(DOMベース)
  不完全な対策
SQLインジェクション
  SQLインジェクションとは
  不正なログイン(文字列リテラル)
  情報漏えい(数値リテラル)
  他テーブル情報の漏えい(数値リテラル)
  データベースの改ざん(数値リテラル)
CSRF
  CSRF(クロスサイト・リクエスト・フォージェリ)とは
  意図しない命令の実行
  不完全な対策
その他
  エラーメッセージからの情報漏えい


表2.サーバ・デスクトップテーマ一覧
バッファオーバーフロー
  バッファオーバーフローとは
  アーカイブソフトの異常終了
  FTPプロキシソフトの異常終了
  ウェブサーバの異常終了(ヒープ領域)
ディレクトリ・トラバーサル
  ディレクトリ・トラバーサルによる情報漏えい
リソースリーク
  プログラミングエラーによるリソースリーク
整数オーバーフロー
  整数オーバーフローによる異常終了
フォーマット文字列
  フォーマット文字列による異常終了
認証・認可
  本人認証の不備
  権限管理の不備によるファイルの漏えい
その他
  ジャンクションへの考慮不足の問題
  TOCTOUによる検証の迂回
  暗号の不適切な利用


学習テーマ