最近は脆弱性診断に関するサイトや記事や本を目にする機会が増え、昔に比べて脆弱性診断士の仕事内容に関する情報を入手しやすくなりました。
しかし、脆弱性診断士への転職を目指し、これから勉強してみたいと思い、調べてみても、具体的に何から始めたらいいかわからない人もいるかと思います。
そこで、この記事ではこれから脆弱性診断士(Webアプリケーション診断)を目指す人に向けて、まず最初に使ってみて欲しいツールを2つ紹介したいと思います。
採用側としては、入社後にある程度教育期間を設けるとはいえ、できれば診断士としてなるべく早い段階で活躍してくれることを期待しています。
ここで紹介するツールは現場レベルで通用するものなので、転職時にアピールすることで現場責任者に注目してもらえる可能性は十分あります。
ここで紹介する方法は私自身脆弱性診断士になる前に取り組んだことです。面談時もある程度理解してることもアピールでき、一石二鳥です。
ローカルプロキシツールについて
Webアプリケーション診断を行う際に、必ず必要になってくるツールが「ローカルプロキシツール」です。
ローカルプロキシツールとは、簡単に言ってしまうとブラウザ(クライアント)とサーバ間の通信を仲介させるツールです。
「仲介させてどんないいことあるの?」という疑問もあるかと思います。
Web開発経験がある人なら、CSSやJavaScriptをローカルファイルに差し替えて検証する際等で使ったことがあるのではないでしょうか。
脆弱性診断でローカルプロキシツールが必要になる最大の利点は次の2つです。
- クライアント・サーバ間の通信の内容(リクエストおよびレスポンス)を見れる
- 実際に送信する内容を変更(改ざん)して送ることができる
ちなみに、私も脆弱性診断士になる前は色々なプロキシツールを触ってきました。
その中でも、これから脆弱性診断士を目指すのであれば是非一度使ってみることをおすすめしたいツールが以下となります。
- OWSP ZAP
- Burp Suite(Community EditionでOK)
理由はシンプルで、これらを実際に使っているあるいは類似する製品を使っている現場が多いためです。
ローカルプロキシツールは、UIの違いはもちろんありますが、最低限の機能や仕組みそのものは共通する部分が多いです。
少なくとも、上記2つのツールをある程度使えるレベルになっていれば脆弱性診断士として実際に業務を始めてもそこまで困ることは無いと思います。
ただ、いきなり2つ紹介されても「どっちからやればいいの?」って思っちゃいますよね。
基本どちらから使い始めてもらってもいいのですが、ここでは目的に応じてどちらがおすすめできるかを紹介します。
OWASP ZAP
「脆弱性診断って実際どんなものなのか、雰囲気を味わいたい!」
というのであれば、 OWASP ZAP から使ってみることをおすすめします。
その1番の理由は、OWASP ZAP に搭載された簡易的な診断スキャン機能が無料で利用できるという点です。
OWASPとはThe Open Web Application Security Project の略で、個人、団体におけるセキュリティに関する技術向上を目的とした非営利組織です。
OWASP – Open Web Application Security Project とは、Webをはじめとするソフトウェアのセキュリティ環境の現状、 またセキュアなソフトウェア開発を促進する技術・プロセスに関する情報共有と普及啓発を目的としたプロフェッショナルの集まる、 オープンソース・ソフトウェアコミュニティです。The OWASP Foundationは、NPO団体として全世界のOWASPの活動を支えています。
出典:OWASP Japan トップページより抜粋
記載にあるようにWebアプリケーションのセキュリティ向上などに力を入れており、OWASP TOP 10 などが有名です。
OWASP ZAP は、OWASPがWebセキュリティを向上させるために立ち上げたプロジェクトの一環として作成された脆弱性診断ツールです。
使い勝手もそこまで難しいUIではないため、比較的とっつきやすい部類に入ると思います。
具体的な使い方まで紹介するとこの記事で収まらなくなってしまうので割愛しますが、このツールの使い方は色んなブログや本などで紹介されています。
おすすめはトライコーダの上野氏が著者の「脆弱性診断スタートガイド」で、図解付きでOWASP ZAPの具体的な使い方について丁寧に解説されています。
また、OWASP ZAP を使わなくても、脆弱性診断の大まかな流れなども解説しています。
脆弱性診断士の仕事の流れなど具体的な内容を抑えておきたい方にもおすすめできる本です。
Burp Suite
脆弱性診断士を本気で目指したい人におすすめできるのが、この Burp Suite です。
統計を取ったわけではないので憶測ではありますが、私の知る限りでこのツールを使ってない現場は今のところ聞いたことがありません。
それもそのはずで、先ほど紹介した OWASP ZAP に搭載されている脆弱性スキャン機能をより高性能にした機能を Burp Suite で使うことができるためです。
他にも Burp Suite がデフォルトで搭載している機能も便利なものが多く、足りない機能についてもある程度アドオンで補完できるなど、取り回しが非常に良いツールとなっています。
ただし、Burp Suite の目玉(?)機能である脆弱性スキャン機能などは、有料ライセンスでのみ利用可能となるのでその点は注意が必要です。
他の製品に比べてライセンス費用は低いものの、個人利用するケースがなかなかないため購入するのは少しハードルが高いです。
ただ、最初に言ったように脆弱性診断における Burp Suite の利用率は高いため、診断を将来的に本気でやってみたいと考えているのであれば使ってみることをおすすめします。
最初は無償版であるCommunity Editionから使ってみましょう。
無償版とは言え、それだけでも実際の業務で使えるぐらい高性能です。
是非色んな機能を試してみてください。
また、「脆弱性診断スタートガイド」にも記載がありますがWASP ZAP で自動診断をしつつ Burp Suite で手動診断をするという使い分けも有効です。
ちなみに、基本公式ドキュメントは英語にはなりますが、ありがたいことにMBSDの国分氏が作成したBurp Suite の日本語ドキュメントがあります。
まずはこちらのドキュメントを一通り読んでみるところからはじめてみましょう。
「ある程度使えます」と言えるようになるための最初の4ステップ
ローカルプロキシツールをただインストールして触っているだけでは、なかなか使えるようにはなりませんよね。
そこで次の段階として、ローカルプロキシツールをある程度使えるようになるために何をしたらいいのかについて紹介します。
ちなみに、「ある程度使える」といっても実践レベルの技能を個人で習得するのは難しいです。
ここでは「実践経験を積むための下準備ができてる」というレベルを目指すことを前提とします。
・OWASP TOP 10 に出てくるような脆弱性については知ってる・理解できてる
・ローカルプロキシツール(特にBurpかOWASP ZAP)を使ったことがある
ということを満たしているだけで、実際に脆弱性診断を始める際かなり有利になります。
具体的には、以下のようなステップを想定しています。
- ローカルプロキシツールをインストール・設定
- やられアプリをローカル上に立ち上げ、プロキシ越しでアクセスする
- やられアプリのガイドに従って脆弱性を見つけてみる
- ツールの機能を使って脆弱性を見つけてみる
1. ローカルプロキシツールをインストール・設定
最初のステップは、(当たり前の話ですが)ローカルプロキシツールをインストールをする必要があります。
この記事で紹介した2つのツールをインストール後、各ツールが持つ証明書をブラウザにインストールすることを忘れないようにしましょう。
2. やられアプリをローカル上に立ち上げ、プロキシ越しでアクセスする
次に OWASP が用意したOWASP Broken Web Applicationsをダウンロードし、VirtualBox などの仮想環境上に構築しましょう。
OWASP Broken Web Applications(OWASP BWA)は、先ほど紹介した OWASP TOP 10 を中心とした脆弱性が盛り込まれたWebアプリケーションを色々詰め込んだサーバイメージです。
アプリごとに特徴は異なりますが、初学者向けのコンテンツも多くヘルプなどが充実しており、脆弱性を学ぶには最適な環境です。
3. やられアプリのガイドやヘルプに従って脆弱性を見つけてみる
次に、やられアプリに用意されたガイドに沿って脆弱性を見つけていきましょう。
最初のうちは、プロキシツールを使わなくてもブラウザだけで確認できるものが多いかもしれません。
ただ、段々とリクエスト内容などを改ざんする必要が出てきたりするので、プロキシ越しで通信する癖を付けておく方が良いです。
また、出来ればリクエスト内容などもこまめにチェックしてみましょう。
4. ツールの機能を使って脆弱性を見つけてみる
ツールの機能を使うとはどういうことかというと、脆弱性があるページに対して以下のようなことをしてみることを指します。
- OWASP ZAP の脆弱性スキャン機能を使って検出してみる
- Burp Suite を使ってリクエスト内容を書き換えてみる
OWASP ZAP の脆弱性スキャン方法は、具体的に次のようなアクションを行います。
- 該当ページのリクエスト内容もしくはページ内の機能を使用した際のリクエスト内容をキャプチャ
- 対象リクエスト選択してスキャンを開始
- 検出したログで脆弱性が検知されたことを確認
この際、注目してほしいポイントがあります。
- 検出された脆弱性に関するレポートを読む
- スキャン時に出力されたログをざっと見てみる
レポートはなんとなく見るのではなく、なんのパラメータで、どんなシグネチャを挿入して、何が検出されたか、といったポイントを押さえておくのが大切です。
またスキャンを実施した際にOWASP ZAP内のコンソール上にログが色々流れたと思います。
それはリクエスト内に含まれる複数パラメータに対し、OWASP ZAPが持つ大量のシグネチャを1つ1つ挿入しているからです。
ざっとログを眺めているだけでも、自動診断ツールの基本的な動きについて理解できるようになってくるので、大変かもしれませんがログを一つ一つ確認してみましょう。
Burp Suite を使ってみたい方は、intercept や Repeater 機能を使って改ざんしたリクエストを送信してみることをからやってみましょう。
あとは、各やられアプリで用意されたシナリオの数だけこれらを繰り返し、ツールの使い方や脆弱性についてコツコツと学んでいくだけでOKです。
全部終わるころには、各プロキシツールの特徴や診断時における便利機能、自動診断でできること・できないことなどが見えてくるようになるはずです。
その段階に到達できれば「ある程度使えます」といってもいいと考えています。
この方法はツールの使い方も学びつつ脆弱性も学べる美味しい勉強法だと思っています。
是非試してみてください!
まとめ
脆弱性診断に必要なツールの知識と、それを利用するケースについて紹介してきました。
実は、ひとつ伝えていないことがあります。
それは、「ある程度使えます」と言えるようになるための手順として紹介した4ステップについてですが、実際これだけでは転職時にアピールする理由としては少し弱いです。
その理由は、勉強してきましたということは誰でも言えるからですね。
未経験者として意欲アピールするために、「その業界や仕事内容について本で学びました!」や「しっかり基礎部分も勉強してきました!」を前面に押し出したい気持ちは分かります。
しかし、それを証明することができなければ相手にその姿勢や気持ちを汲み取ってもらうことは非常に難しいです。
なので、勉強したことをブログなど何らかの形でアウトプットすることを忘れないようにしてください。
ある程度自身が付いたら、アウトプットした結果をポートフォリオとしてまとめ、転職エージェントに相談してみましょう。
参考までに、私が実際にセキュリティエンジニアへの転職の際に利用して良かったと思えた転職サービスを紹介します。
是非活用してみてください。
また、これらをやってみて「自分には脆弱性診断は合わないかな…?」と思った方は、別の職種も色々あるので以下の記事を参考に是非自分好みの職種を探してみましょう。
コメント