今日はVAddyを使ってWordPressの一部ページを脆弱性診断する方法を書きたいと思います。
明日は、WordPressにクロスサイトスクリプティング(XSS)の脆弱性をあえて入れて、VAddyで検査した結果を見る記事を書く予定です。
VAddyの脆弱性診断
VAddyは、継続的なWeb脆弱性診断が簡単に実現できるSaaSです。
手動の脆弱性診断をパッケージにしたPlatinum+プランもあります。
ソースコード診断ではなく、ブラックボックステストと呼ばれるWebサーバに検査用のHTTPリクエストを実際に送って検査する方式。
現在の検査項目は下記の5つです。
- SQLインジェクション
- XSS(クロスサイトスクリプティング)
- リモートファイルインクルージョン
- ディレクトリートラバーサル
- コマンドインジェクション
VAddyの検査までの3つのステップ
VAddyを使い始めるのは非常に簡単で、下記の3つのステップを行うだけです。
- Step1: テスト対象サーバ名を登録 (2分)
- Step2: テスト対象のURL、パラメータを登録(クロール) (7分)
- Step3: スキャン実行ボタンを押して結果を閲覧 (1分)
合計10分程度の作業です。
なお、WordPressはインストール済みという前提です。
VAddyの検査を実行するまでに最低限必要なものは、ブラウザとテスト対象サーバです。
テスト対象サーバはインターネット経由でアクセスできる必要があります。(もうすぐプライベートネット版VAddyをリリース予定ですので、イントラネット内のサーバのスキャンも可能になります)
Step1 テスト対象サーバ名を登録
まずはテスト対象のサーバ名(FQDN)を登録します。登録後はそのサーバの所有者を確認するためにVerificationファイルを設置します。
サーバ名の登録
まずは、ログイン後画面にあるAdd Serverボタンを押してサーバ名を登録します。
今回は、 wp-demo.vaddy.net
というFQDNを使います。
VAddyの検査はSSLにも対応してますし、ポート番号が80, 443以外も対応しています。
サーバの所有者確認
サーバ名の登録が終わるとこの画面がでます。所有者確認を行うために検査対象サーバのWebrootに、この画面で表示されているVerificationファイルを設置します。
具体的には検査対象のサーバが、wp-demo.vaddy.netですのでhttp://wp-demo.vaddy.net/vaddy-xxxxx.html
でアクセスできるようにします。
画面の上部の「Verificationファイルのダウンロードはこちら」のリンクをクリックすると、Verificationのhtmlファイルがダウンロードできるページが開きます。そのページにcurlコマンドの場合も載っているため、コピーしてサーバ上でcurlコマンドをそのまま実行していただく形でも大丈夫です。
最後に、Verify
ボタンを押せば完了です。
Step2 テスト対象のURL、パラメータを登録(クロール)
次にクロールを行います。検査対象のURLとPOST、GETなどのパラメータを登録します。
正しい画面遷移やフォームの入力項目のデータをVAddyに登録し、その情報を使って脆弱性検査を行います。ですのでクロールはアプリケーションの通常の操作をするのみです。
クロールの画面では、5つのステップでクロールの操作説明が表示されます。
まずは、ブラウザのプロキシ設定を変更し、自分のサイト(今回はWordPress)にアクセスして操作、最後にプロキシ設定を元に戻すというフローです。
プロキシ設定の変更
今回はMacとChromeを使ってクロールデータを作りたいと思います。
はじめに、Chromeの環境設定メニューを選択します。
chromeの設定画面が出たら、一番したの「詳細設定を表示」をクリックします。
さらに設定項目が出たところに、下記画面のように「ネットワーク」の項目の「プロキシ設定の変更」ボタンを押します。
chromeの場合は、Macのネットワーク設定でプロキシの設定を行うため、次のような画面が開きます。
ここで、「Webプロキシ(HTTP)」にチェックを入れて、Webプロキシサーバの項目に、VAddyのプロキシサーバのIP54.92.84.100
とポート番号10080
を入れます。
もしSSLのサイトの場合は、「保護されたWebプロキシ(HTTPS)」の方にもチェックを入れて同じようにIPとポートの情報を入れます。
さて、okを押して、適用ボタンを押すとMacからのすべてのHTTPリクエストはVAddyプロキシサーバを経由するようになります。ただ、登録したサーバwp-demo.vaddy.net
以外の通信はすべて遮断するようになっています。
プロキシ変更中もアクセスしたいサイトがあれば、「プロキシ設定を使用しないホストとドメイン」の箇所に記載しておきます。console.vaddy.netはクロール中でも閲覧したいため今回、書いておきました。
クロール
クロールデータの登録は、クロール開始URLにアクセスし、その後WordPressのサイトを操作、最後にクロール終了URLにアクセスして登録完了となります。
クロール開始URL、終了URLはVAddyのクロール管理画面の説明の箇所に書いてありますので、そのままURLをクリックすれば大丈夫です。
今回は、WordPressのTOPページにアクセスし、下の図のようにWordPressの検索フォームに文字を入れて検索結果を表示するところまでをクロールしました。
クロール登録情報
どんなURLをクロールしたかは、クロール管理画面のクロール一覧情報にある「View」ボタンを押すと確認できます。
TOPページと検索ページへのアクセスURLが表示されていますね。
Step3: スキャン実行ボタンを押して結果を閲覧
さて、ここまでで作業は終わりです。あとはボタンを押して結果を見るのみとなります。
実行予定の検査項目が表示されます。「Run VAddy Scan」ボタンを押すと検査開始です。
これで20秒ほど待てば結果が返ってきます。
(クロールしたURLやパラメータ数が多い場合はもっと時間がかかる場合があります)
###スキャン結果
WordPressの最新版に対してスキャンし、WordPressの検索フォームには脆弱性がないことが確認できました。
もし脆弱性があった場合はこのような画面が表示され、脆弱性のあったURLとパラメータ名が表示されます。
明日の記事では、WordPressに"あえて"XSSの脆弱性を入れて、同じクロールデータを使って再検査して、XSSの脆弱性が見つかることを確認したいと思います。
さいごに
VAddyの操作を画面キャプチャつきで紹介しました。
無料で手軽に始められるので是非お試しください。
https://vaddy.net/ja
なお、今回キャプチャした画面の環境は私のローカル環境で動かしているVAddyです。URLやVerificationファイルは架空のものです。
ビールネタ
ハワイのコナビールが日本でも手軽に買えるようになってきました。Big Waveはゴールデンエールですが香りが強くて好きです。もちろんFire Rockペールエールも美味しいです。コンビニやスーパーで見かけたらぜひ試してみてください。
あと、あまり売ってないのですがコナビールの Castaway IPAが美味しいです。たまにカクヤスで入荷してたりするので、VAddyミートアップでも何回か懇親会ビールに入れました。