IPAが公開している脆弱性体験学習ツール「AppGoat」というものがあります。今回はこれのご紹介となります。AppGoatは、Webアプリケーションの脆弱性を体験しながら学習することができるツールとなっています。ツール内の擬似アプリケーションに対してこうすると攻撃ができてしまう、防ぐためにはここを修正して脆弱性をなくす必要がある、という内容を学ぶことができます。

対象テーマ

対象のテーマは以下の通りとなります。

  • クロスサイトスクリプティング
  • SQLインジェクション
  • クロスサイトリクエストフォージェリ
  • ディレクトリトラバーサル
  • OSコマンドインジェクション
  • セッション管理の不備
  • 認証制御や認可制御の欠落
  • HTTPヘッダ・インジェクション
  • バッファオーバーフロー
  • クリックジャッキング
  • メールヘッダ・インジェクション
  • その他の脆弱性(システム情報漏洩等)
  • 総合問題(上記の複合的な脆弱性を見つけ出す演習)
  • 脆弱性検査(より実践的な演習)


この内、クロスサイトスクリプティング~セッション管理の不備が基礎編、認証制御や認可制御の欠落~その他の脆弱性(システム情報漏洩等)が応用編、総合問題・脆弱性検査が総合となっています。今回自分は基礎編の6項目の学習を行いました。前提知識としては基本情報・応用情報を取得した時に資格所得のために5年以上前に覚えた朧げな知識のみなので、ほとんどの項目についてざっくりとした概要以外には何も知らない程度でした。

学習状況も確認できます。各項目、概要→脆弱性の発見方法→(種別がある場合は各種別の)対策方法→演習のような形式となっています。

また、実行時にはインターネット接続を切断する必要があります(脆弱性として一部ポートを解放するため)。一部演習でツールを使用したりする箇所があるため、体験してみたい方には事前にインストールしておくことをお勧めいたします。

実際に体験して


各項目1時間前後(最初の2テーマはそもそもの流れに不慣れだったこともありますが所要時間が長めだったので、ばらつきは大きいです)の時間がかかりました。ちゃんと学習しようとするとそれなりに時間や手間がかかりますが、前提知識が不足していてもかなり丁寧なヒントで誘導してくれるので、興味がある方は気軽にやってみても得られるものがあるのではないかと思います。
先述の通り実行時に毎回インターネット通信を切断する必要があり、多少手間になっていて長さ的に一度に学習し切れるものでもないので、心理的にも学習を続けるハードルが上がる部分はあるかと思います。しかし、それらを差し引いても体験型の学習というのは具体的な知識に紐づいてかなり理解しやすく、勉強にはなったかと思います。実際、資格取得のために本などの文字媒体のみで学習した時に比べて原理などかなり理解しやすかったです。セキュリティ分野は今後AIなどが躍進を遂げるのに比例して人間が理解しておく重要性が上がる分野だと思っているので、今後時間をかけても応用編・総合部分まで進めていきたいと感じました。

ここまで読んでいただき、ありがとうございます。もしこの記事の技術や考え方に少しでも興味を持っていただけたら、ネクストのエンジニアと気軽に話してみませんか。

  • 選考ではありません
  • 履歴書不要
  • 技術の話が中心
  • 所要時間30分程度
  • オンラインOK

エンジニアと話してみる

関連リンク

AI・クラウド・データ分析のご相談はネクスト株式会社までお問い合わせください。