Google Skipfishのインストールと実行

Googleが先月(2010年3月)にリリースした、オープンソースのウェブセキュリティスキャナ「skipfish」をインストールして試してみた。

ブラインドSQLやXMLインジェクションといったセキュリティホールがあるかどうか、ウェブアプリケーション全体をざっとスキャンしてチェックしてくれるらしい。

導入自体は簡単で、

  1. 最新版をDL (from skipfish – Project Hosting on Google Code
  2. makeでインストール
  3. 対象URLとレポートの保存ディレクトリを指定して実行
  4. 待つ

という程度。

ただし4での時間と負荷はかなりかかるので、その辺は覚悟。

準備

OpenSSLが入っていなかったら、あらかじめyumでインストールしておく。

[root@dacelo]# yum install openssl-devel libidn-devel

最新版のSkipfishを確認し、ダウンロードして解凍してインストール。

[root@dacelo]# wget http://skipfish.googlecode.comhttps://dacelo.space/wp-content/uploads/skipfish-1.32b.tgz
[root@dacelo]# tar xvzf skipfish-1.32b.tgz
[root@dacelo]# cd ./skipfish
[root@dacelo]# make

実行

スキップフィッシュのスクリプトに、レポートの生成先、対象URLを引数で渡すとスキャンが始まります。

[root@failtesta skipfish]# ./skipfish -o /var/www/html/report http://blog.dacelo.info/

しばし待ちます…。(↓1時間10分経過後の様子)

skipfish version 1.32b by                                                                                                         
                                                                                                                                                      
  - test.dacelo.info -                                                                                                                
                                                                                                                                                      
Scan statistics                                                                                                                                       
---------------                                                                                                                                       
                                                                                                                                                      
       Scan time : 1:10:01.0517                                                                                                                       
   HTTP requests : 53431 sent (12.89/s), 72413.38 kB in, 12654.48 kB out (20.25 kB/s)                                                                 
     Compression : 0.00 kB in, 0.00 kB out (0.00% gain)                                                                                               
 HTTP exceptions : 365 net errors, 0 proto errors, 0 retried, 0 drops                                                                                 
 TCP connections : 817 total (72.37 req/conn)                                                                                                         
  TCP exceptions : 0 failures, 365 timeouts, 1 purged                                                                                                 
  External links : 102 skipped                                                                                                                        
    Reqs pending : 5693                                                                                                                               
                                                                                                                                                      
Database statistics                                                                                                                                   
-------------------                                                                                                                                   
                                                                                                                                                      
          Pivots : 105 total, 47 done (44.76%)                                                                                                        
     In progress : 32 pending, 15 init, 6 attacks, 5 dict                                                                                             
   Missing nodes : 5 spotted                                                                                                                          
      Node types : 1 serv, 44 dir, 36 file, 0 pinfo, 23 unkn, 1 par, 0 val                                                                            
    Issues found : 92 info, 23 warn, 15 low, 0 medium, 0 high impact                                                                                  
       Dict size : 2036 words (36 new), 69 extensions, 80 candidates 

ここで/var/www/html を選んでいるのは、レポートはブラウザでないと確認できないからです。

広告

JavaScriptを駆使した、こんな感じのレポートができあがります。

skipfishのReport

ちなみに1時間以上経っても終わらず、「なんかテストサーバー重くなってるよ!」と怒られたので途中で停止しました。

毎秒1000件くらいのアクセスが発生し、LoadAverageは20近くになっていましたので要注意。決して本番環境ではやらないこと!

About: dacelo


1 thought on “Google Skipfishのインストールと実行”

Leave a Reply

Your email address will not be published. Required fields are marked *