09/19 Webセキュリティスキャナ「skipfish」をインストール

サイトの最終納品に向けてセキュリティチェックのレポートを作ることになった。チェックは無料のものでもかまわないということなので、オープンソースのWebセキュリティスキャナ「skipfish」をインストールしてみた。

skipfishはGoogleが開発しており、 Apache License 2.0で公開されている。Webアプリケーションの脆弱性、SQLインジェクションやクロスサイトスクリプティング等を自動的に検出してくれる。最初のバージョンは2010年3月に公開されており、現時点で最新版は2.09bとなっている。

CNETの記事、「グーグル、ウェブアプリの脆弱性検査ツール「skipfish」を公開」によれば、

skipfishは対象サイトへの再帰的クロールと辞書ベースの調査を実行し、その結果を表示したインタラクティブなサイトマップを作成する。脆弱性がある場合には強調表示する。また、skipfishが作成する最終レポートは、セキュリティ評価の判断材料として利用できる。

だそうだ。

このツールはLinuxにインストールして使う。今回はCentOSに入れてみた。Windowsで動かすにはcygwinが必要なようだ。Linuxでもライブラリが揃って無くて苦労したので、cygwinでやるのはかなり面倒ではないだろうか。

wget http://skipfish.googlecode.com/files/skipfish-2.09b.tgz
tar xvzf skipfish-2.09b.tgz
cd skipfish
make

エラーの山

ここでエラーが出て実行ファイルが作られない。

src/signatures.h:24:18: pcre.h: そのようなファイルやディレクトリはありません

pcre.hが無いのと言ってるので、検索したところpcreパッケージが必要らしい。pcreはPerl5 互換の正規表現をC言語で実装したライブラリであるとのこと。最新版のpcre-8.31.tar.gzをダウンロードしてインストールする。

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.31.tar.gz
tar xvzf pcre-8.31.tar.gz
cd pcre-8.31
./configure
make
sudo make install

skipfishのディレクトリに戻って、再度make

make

src/signatures.c:83: 警告: データ型の範囲制限によって、比較が常に false となります

という警告が出たけれど、makeはできた。

だがしかし、起動するとまたまたライブラリがないと言って動かない

./skipfish
./skipfish: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory

libpcre.so.1というライブラリが無いというので、シンボリックリンクを張ってやる

sudo ln -s /lib/libpcre.so.0.0.1 /lib/libpcre.so.1

./skipfish
skipfish version 2.09b by

やっと動いた。

自分の個人サイトでテストしてみる

まずは自分の個人サイトをターゲットにしてセキュリティスキャンをかけてみる。かなりWebサーバーに負担をかけるので、許可無く外部サイトに対して実行しないようと書かれている。下手にやったら侵入容疑か業務妨害になってしまう。もちろん、今回はエルデが開発を担当しているサイトだから問題はないのだけど、まずは足下からチェックだ。

testというディレクトリを直下に作り、そこに結果を出力するように指定した。

./skipfish -o test http://www.erde.co.jp/~masaru

動いてはいるようだけど、いつ終わるのかわからない。skipfishについて解説している他のブログなどを見ると、30分以上はかかるらしい。5分ぐらい待ったところでCtrl-Cで強制終了。

skipfish version 2.09b by lcamtuf@google.com

- www.erde.co.jp -

Scan statistics:

Scan time : 0:05:59.414
HTTP requests : 1212 (3.7/s), 8036 kB in, 475 kB out (23.7 kB/s)
Compression : 0 kB in, 0 kB out (0.0% gain)
HTTP faults : 20 net errors, 0 proto errors, 0 retried, 0 drops
TCP handshakes : 1222 total (1.7 req/conn)
TCP faults : 0 failures, 20 timeouts, 0 purged
External links : 76 skipped
Reqs pending : 849

Database statistics:

Pivots : 115 total, 8 done (6.96%)
In progress : 68 pending, 16 init, 11 attacks, 12 dict
Missing nodes : 6 spotted
Node types : 1 serv, 36 dir, 8 file, 0 pinfo, 49 unkn, 21 par, 0 val
Issues found : 30 info, 17 warn, 3 low, 4 medium, 0 high impact
Dict size : 589 words (589 new), 10 extensions, 256 candidates
Signatures : 75 total

testディレクトリの中を見るといろいろファイルができている。html形式でレポートするようだ。これをブラウザで開いたのが次の画面。

コメントを残す

メールアドレスが公開されることはありません。

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください