Web アプリ診断(OWASP ZAP の基本的な使い方)


■Web アプリ診断(OWASP ZAP の基本的な使い方)

前回までで、

・Windows 環境で仮想マシン(Virtual Box)を使えるようにする
・仮想マシン上で、Kali Linux を動かす
・仮想マシン上で、練習用サーバーの metasploitable2 を動かす
・Kali Linux にある metasploit で脆弱性をついてみる

という所まで実施できた。

これで、一般的なサーバーやサーバー機能を持つ機器に対し、

・どうやって脆弱性を突くのか?
・脆弱性を突くとどうなるのか?

という所が多少理解(体験)できた。

ということで今回は、次のステップとして、

・Web アプリに対する脆弱性診断

にトライしてみようと思う。

Web アプリに対する脆弱性診断ツールとしては、

OWASP ZAP や Burp Suite などが有名だが、

今回はまず OWASP ZAP を使った診断をしてみたいと思う。

OWASP ZAP 自体は、Linux でも Windows でも

動作させることが可能。

実際、

ラズパイでセキュリティ

では、

脆弱性検査 – OWASP ZAP(インストール編) –

にて、raspberry pi に OWASP ZAP を

インストールする方法について記載している。

ただ、実際に試してみるためには、

やっぱりやられサーバーが必要となる。

ということで、今回は既にやられ用サーバーとして

metasploitable2 を使えるようにしていることもあり、

Windows 環境で試してみる。

とはいえ、使い方としては別に OS 毎に

代わるわけではないため、Linux 系に

インストールした場合でも同様に使えるかと思う。

以下、OWASP ZAP の基本的な使い方について記載していく。

  1. 事前準備と診断対象の確認
  2. OWASP ZAP を利用したセキュリティ診断
  3. 診断結果とその見方
  4. まとめ

なお、繰り返しになるが、本記事で記載の内容を、

他者の管理するサーバー等に対して、

許可なく実施することは違法行為となるため、

絶対にやらないでいただきたい。

他者に迷惑をかけることなくセキュリティ診断の方法論について学ぶため、

これまで述べてきたような環境構築を実施し、

自分の責任範囲にとどめて実施していただきたい。



・事前準備と診断対象の確認

事前準備として、まずはやられ側サーバーの

Web アプリケーションを確認しておく。

Metasploitable2 は、

Web アプリケーションの脆弱性も検査できるよう、

OWASP Top 10 に記載されたすべての脆弱性を盛り込んだ

Web アプリケーションが構築されている。

特に検査に必要なわけではないが、

最初にこれを確認してみようと思う。

まずは metasploitable2 上で IP address を確認する。

その方法については、

metasploit の使い方

に記載している通り、metasploitable2 のコンソール上で

ipconfig コマンドを実行すればよい。

metasploitable2 の IP address を確認したら、

続いて Kali Linux 上でブラウザを立ち上げ、

「http://(先ほど調べた)metasploitable2 の IP Address」

を入力し、アクセスしてみる。

私の環境であれば、今回は

http://10.0.2.5

となる。

で、実際に出てきた画面がこちら。
*赤枠は私が勝手につけたもの。

このように、metasploitable2 には、

Web アプリケーションの脆弱性検査用サイト

が立ち上がっているのである。

いやはや、非常にありがたいことだ。

で、実際このサイトのトップから検査してみてもよいのだが、

それだと非常に時間がかかってしまうため、

今回は、mutillidae に対して診断をかけることにする。

この mutillide という Web アプリケーションには、

Metasploitable2 Exploitability Guide
https://metasploit.help.rapid7.com/docs/metasploitable-2-exploitability-guide

にあるように、OWASP Top 10 +αの脆弱性が組み込まれている。

ということで、実際に先ほどの画面の赤枠をクリックし、

http://10.0.2.5/mutillidae

にアクセスしてみると、以下のようなページが現れる。

今回は、これに対して OWASP ZAP による診断をしてみようと思う。



・OWASP ZAP を利用したセキュリティ診断

事前準備といっても、必要なものは、

・診断対象となる Web サーバーの URL

のみである。

あとは OWASP ZAP にこの URL を入力してやれば、

自動で診断してくれるから楽なもの。

ということでその手順を書いていく。

まずは OWASP ZAP を立ち上げる。

Kali Linux には普通に OWASP ZAP が入っているので、

それを起動する。

具体的には以下の通り。

①デスクトップ左上にある、「Applications」をクリック

②リストのうち、「03-Web Application Analysis」にカーソルを合わせる

③OWASP ZAP をクリックする。

図はこちら。

なお、

Raspberry Pi に Kali Linux をインストールしてみた

でも記載したように、

Raspberry Pi 用の Kali Linux の場合は

【はじめからは入ってはいない】

ので、別途インストールが必要なことにご注意いただきたい。

その場合のインストール方法に関しては、

脆弱性検査 – OWASP ZAP(インストール編) –

に記載しているので、そちらを見ていただければと思う。

で、無事起動できれば、こんな画面が出てくる。

ダイアログは、

「ZAP のセッションをどう扱うか?」

ということが聞かれているだけなので、

なんでもいいがとりあえず何かを選んで

「Start」

ボタンを押す。

その後、Add-on を確認するダイアログもでるが、

まぁとりあえずスルーでよいだろう。

で、起動したらいよいよ診断スタート。

下図に示す、起動した画面の赤枠に対し、

①診断対象となるサーバーの URL を入力する
*今回の場合、ttp://10.0.2.5/mutillidae

②Attack ボタンを押す

とするだけ。

あとは放置しておけば、勝手にどんどん診断してくれる。
*今回の場合、数十分ってところかな?

超簡単、あら便利。

もちろん、より深く診断するためには、

もっといろいろオプションやら Add-on やらが

使えるのだが、まずは基本的な使い方を抑えるという意味では、

操作は以上でおしまい。

うーん、すごく簡単だわ。



・診断結果とその見方

診断が終われば、OWASP ZAP のメイン画面に、

以下の通り、

「Attack complete – See the Alerts tab for details of any issues found」

というメッセージがでる。
*以外と静かに終わる。

ということで、これが出ればいよいよ結果を確認していく。

全体概要

検出された脆弱性は、画面左下の Alert タブに出る。

検出された脆弱性の深刻度は、旗の色であらわされており、

・赤い旗が High
・オレンジの旗が Middle
・黄色い旗が Low

を各々示している。

今回は、

・High が 5 種類
・Middle が 4 種類
・Low が 5 種類

検出された。

Cross Site Scripting の他、

Remote OS Command Injection など、

結構深刻な脆弱性が検出されている。

では、この後どう対応すればよいのだろうか?

まずは個々の脆弱性を確認していこう。

個々の脆弱性確認

Alert タブに表示されている各脆弱性の左にある

三角マークをクリックすると、その脆弱性が存在する箇所が

リスト表示される。

リスト表示されたもののうち、一つをダブルクリックすると、

以下の通り、別のウィンドウが表示される。

ここには、

・脆弱性が存在する URL
・深刻度
・脆弱性の概要
・対策方法
・参考情報

などが示される。

なお、この情報は、メイン画面の右下部分にも記載されている。

また、この脆弱性を選択した状態で、

メイン画面の右上には、脆弱性が影響する箇所
*今回の場合は、該当する HTML のソース部分

が表示される。

よって、これらの情報を参考にすれば、

影響箇所や要修正箇所なども容易に理解できるはずである。



・まとめ

今回は、Web アプリの脆弱性を検査するツールとして、

OWASP ZAP

の超基本的な使い方、および結果の見方を記載した。

URL を指定し、実行するだけで、

結構ちゃんと検査してくれるっぽいことが分かった。

しかも、指摘された脆弱性の概要や、

指摘箇所、修正方法や参考情報なども提示してくれる。

これは非常にありがたいツールだと思う。

ということで、今回のポイントは以下の通り。

Point!・診断対象の URL を入力して実行するだけ!
・実行が終わったら、各脆弱性の中身を確認!
・指摘箇所を確認し、修正方法を参考にしながら修正!

現時点では本当に基本的な使い方をしたに過ぎないが、

より深い診断をするためには、ツールのオプションや

さらなる使い方を勉強する必要がある。

が、こんな簡単な操作をするだけでも

結構な脆弱性が検出できるため、

Web アプリを作成したら必ずやっておいたほうがよいだろう。

なお、今回診断対象となった、

metasploitable2 の mutillidae には、

OWASP Top 10 に記載のすべての脆弱性が組み込まれているが、

今回の検出結果がそれをちゃんとカバーできているのか、

までは確認できていない。

また、Burp Suite など、ほかにも有名なツールもある。

今後、これらとの結果比較など、もう少し深い分析をしていきたいと思う。

まぁ、いつになるかはわからんけれども…。




Copyright (c) 2017 Webmaster of this site All Rights Reserved.
カテゴリー: Windows でセキュリティ タグ: , パーマリンク