2021-01-18

エンジニアは知るべき! IPA製の脆弱性体験ツール【AppGoat】がタメになる!

投稿者: KuRo

「脆弱性って、どんなものがあって、どんな被害があるの?」
お客さんにそう聞かれて、わかりやすく説明できますか?

若いエンジニアさんは、ちゃんと説明できない人が多いんじゃないでしょうか?
まずは、脆弱性にどんな種類があるのか。どんな被害につながるのかを【AppGoat】で1時間ほど学習して説明できるようになりましょう。

AppGoatとは、IPAが提供する脆弱性体験学習ツールです。

  • ローカルPCにApacheなどを動作させる
  • 脆弱性のあるソフトウェアを起動、マニュアルに従って攻撃手法を実行する
  • どんなことが起きるのかを体験する

こんなことができるソフトが、ワンパッケージになったフリーツールです。
ダウンロード1つで一通りのソフトがそろっているので、手間は少ないです

この記事やAppGoatのターゲットとわかること
  • 主にC言語開発従事者向けの体験型学習
  • よくある脆弱性と攻撃手法
  • 脆弱性のある実際のソースコード
  • 実際にあった脆弱性とその製品名など

紹介されているソースコードは、C++ですが、それ以外の言語開発者でも知っていたほうが絶対いいです。
Windowsに絡む脆弱性も紹介されています。

AppGoatでわかること


一通りいじってみて、何が分かるかご紹介します。

AppGoatで学べること
脆弱性名称等 学べること 実際にあった脆弱性事例リンク※
バッファオーバーフロー 仕組み、攻撃方法と対策 2020年 iPhone など
ディレクトリトラバーサル 仕組み、攻撃方法と対策 2019年 ウイルスバスター
リソースリーク 仕組み、攻撃方法と対策 2012年 サン・マイクロシステムズ
整数オーバーフロー 仕組み、攻撃方法と対策 2020年 Android
フォーマット関数(主にpringf)を用いた攻撃 攻撃方法と対策 2009年 Mac OS X
不備のある認証機能 具体例、攻撃方法と対策 2018年 Spring Framework
権限管理の不備 仕組み、攻撃方法と対策 2020年 マカフィー
ジャンクション不備(Windows) 仕組み、攻撃方法と対策 2020年 Windows10
暗号の不適切な利用 仕組み、攻撃方法と対策 2020年 iPhone iPad

※実際にあった脆弱性事例リンクは独自調査なので、不確実だったりしてます。

実例をみても、最近発生していますから、甘く見ることはできません。
それに、有名なハード・ソフトの名前がずらり。

お客さんからの「なんでアップデートが必要なの?」という質問にも詳細に答えられそうですね。

AppGoatのダウンロード


IPA製ですが、なんと、Vectorでダウンロードできます。
詳しくは、公式サイトからどうぞ。

脆弱性。説明できます?

現代のエンジニアは守られすぎ

エンジニアのみなさん。脆弱性対策やってますか?
特に意識してやったことない人がほとんどですよね?
脆弱性って、具体的にどんなことなのか、理解していないエンジニアも多いはず!

現代のエンジニアは、フレームワークによって作りこまれた土台に成果物を乗せる作業が9割になったと言っても過言ではありません。
そのため、脆弱性対策といっても、フレームワークがちゃんとやってくれているんですよ。

お客さんは理解しているエンジニアを求めてますよ

お客さんからすれば、プロとしてお金もらっているんだから、それくらい知っているはずと、思われていますよ。
脆弱性とは何か、なぜセキュリティ侵害事案が発生するのか。

説明を求められたら、サクッと答えられるだろうと、思われているかもっ!
やっぱり、こういう知識を持っている人は、単価も高い案件にアサインさせてもらえますよ。

学んでみた感想

脆弱性の名前をみて、どんなものかは知っていたつもりですが、実際に自分で手を動かして体験するのは、とても勉強になりました。

IPAでは、他にも学習コンテンツがたくさんあるので、また面白いのがあったらご紹介します