Webサイトの脆弱性について知っておこう
皆さん Webサイトの脆弱性について、どこまで把握していますか?
クロスサイトスクリプティング(XSS)、クロスサイトリクエストフォージェリ(CSRF)、SQLインジェクション、パス・トラバーサル等々、昨今では様々な脆弱性について議論されています。
ただ、IPA(情報処理推進機構)がWebサイトの安全基準を提唱するなど、最新の情報やまとめ資料が手に入りやすくなってきているのも事実。
そして無料でセキュリティ診断をしてくれる便利なツールなんかも徐々に出てきています。
今回はそんな無料ツールを2つ程ご紹介しようと思います。
1. OWASP Zed Attack Proxy (ZAP) を使ってみる
ZAPとは、URLを入力するだけで対象となるWebサイトの脆弱性をチェックしてくれる無料のクライアントアプリケーションです。
とっても簡単な操作でチェックできるので、気軽に試してみる事が出来ます。
早速下記サイトからダウンロードしてみましょう!
OWASP Zed Attack Proxy Project
ダウンロードページからアプリケーションをダウンロードして、まずはインストール。
特別な操作は不要です。インターフェイスも自動的に日本語に設定されているので安心ですね。
チェックしたいWebサイトのURLを入力して、攻撃してみよう!
今回はテスト用のサイトで検証します。
アプリケーションを起動するとウェルカム画面が表示されていると思いますが、これが「クイックスタート」画面です。
「攻撃対象URL」に、脆弱性のチェックをしたいWebサイトのURLを入力して、「攻撃」をクリック!
こんな感じでスキャンの進行状況がリアルタイムに表示されます。
自動的にページの解析を行いクロールしていきますので、ある程度の負荷はかかるはずです。
念のためチェックのタイミングは気を付けて実施しましょう。
結果を分析してみる
チェックの結果はリスクの高いものから順に表示されます。リスク(高:High)→(中:Medium)→(低:Low)→(情報)の4段階で分類されます。
「パス トラバーサル」がリスクが最も高く、次いで「X-Frame-Optionsヘッダーの欠如」となっていますね。
それぞれのアラート項目をクリックすると、右側に詳細な情報が表示されます。「パス トラバーサル」については説明や解決方法が英語ですが、日本語で解説してくれている項目もありますので、対策を講じる際にも参考になります。
非常に簡単な操作で実施できますので、是非皆さんも試してみてください。
2. RIPS を使ってみる
こちらは少し変わって、ソースコードそのものを解析するというものです。
ローカルでチェックするためにはXAMPPを導入するなどしてWebサーバーがインストール済みであることが前提ですのでご注意を。
目的が目的なだけに、ある程度システムに関する知識が求められますね。
下記サイトからダウンロードして、ローカルのドキュメントルート以下にコピーします。
ローカル環境のルートディレクトリに解凍ファイル一式をコピーすれば、あとは対象ディレクトリにアクセスするだけで管理画面が表示されます。
例)C:\xampp\htdocs\rips にコピーした場合、http://localhost/rips/ 等でアクセスします。
今回はとっても分かりやすいよう下記のようなソースコードで試してみましょう。
php
<?php
mysql_query($_GET["query_str"]);
?>
これをC:\xampp\htdocs\check\codecheck.phpとして保存します。
ソースコードのファイルを指定してスキャンしてみる
先ほど作成したphpファイルのファイルパスを「path / file」項目に入力して、「scan」ボタンをクリック!
結果は即時表示されます。
今回は(当たり前ですが)SQLインジェクションのリスクがあるという結果が出ていますね。
インターフェイスが全て英語なので、ちょっととっつきにくい感じはありますが、各脆弱性についての解説はかなり細かく明記してくれています(多分)。
有料版はかなり多機能のようですので、興味のある方はこちらも検討してみては。
まとめ
Webサイトの脆弱性について、何かしら対策を行う必要があると感じつつ、実際どうすれば良いのか分からないといった事も多いと思います。
脆弱性対策は、まず対象となるWebサイトの事を知る所から始めるのが重要かもしれません。
自分のサイトが攻撃を受けたり、他人に迷惑をかけるサイトになってしまわないよう、気を付けたいものですね。