skipfishによるWebアプリエーションの脆弱性検査の手順

本書ではFreeBSD9.xプラットフォームでのskipfishコマンドによるWebアプリケーションの脆弱性検査の手順を簡潔に示します。skipfish は Google がApache ライセンスで公開しているオープンソースの脆弱性ツールです。 調査結果はHTML形式のレポートとして出力され、発見された問題点はリスクのレベルに応じて分類されます。skipfishコマンドの詳細なオプションやレポートの見方については公式ページを参照してください。

尚、辞書やサイトから抽出したキーワードから多量のURLを生成してクロールを行いテスト対象のサーバーに高負荷がかかりますので、 本番環境と同等のテスト環境で検査を実行すること推奨します。

skipfishの実行

FreeBSD 9.x では skipfish の ports がありますが、残念ながらインストールしたコマンドは実行時にエラーが発生して正常に実行できないので、インストールまでは行わず ports からソースのダウンロード、コンパイルのみを行います。

signatures/* ファイルがカレントディレクトリにないと起動に失敗するようなので、skipfishコマンドの実行はコンパイルディレクトリで行います。

cd /usr/ports/security/skipfish
make 
cd /usr/ports/security/skipfish/work/skipfish-2.10b/

skipfish コマンドを検査対象のURLを指定して実行します。

./skipfish -S dictionaries/complete.wl -o <レポート出力ディレクトリ> <クロールを開始するURL>

レポート出力ディレクトリにレポートファイルが HTML形式で出力されます。 webサーバーの公開ディレクトリに移動することでWebブラウザからレポートを確認する事が出来ます。 2度目の実行で 出力先のディレクトリがあるとエラーになるので気を付けて下さい。

認証が必要なサービスの場合には、 -A や、 -C オプションを使用する事で認証情報を与える事ができます。

-A user:pass      - use specified HTTP authentication credentials
-C name=val       - append a custom cookie to all requests

参考