あなたのサイト大丈夫?かんたん脆弱性診断

セキュリティチェックツール skipfish を利用した脆弱性診断のインストールから実行方法まで紹介します

Satoshi Kojima
VELTRA Engineering
5 min readNov 14, 2017

--

システム開発の現場では、納期に追われ脆弱性の配慮が後回しになりがちです。脆弱性による情報漏洩があれば、事業継続・企業存続しかねません。ぜひ、今回を機に脆弱性診断をお試しください。

skipfish とは?

このツールは、5年以上前に Google が開発・公開し多くの人に使われています。

CLI 上で実行可能な、Web アプリケーションのページ階層をクローリングし、あらかじめ定義したインジェクションなどの脆弱性があるかチェックし出力してくれるツールです。

C 言語で書かれているため高速で、入力フォームの自動チェックなど、潜在的に隠れた脆弱性もチェックできます。Linux・FreeBSD・MacOS X・Windows (Cygwin) の環境で動作します。

インストール

今回は、Amazon EC2 上の Amazon Linux から動かすことを前提とします。ソースコードをダウンロードしてビルドするだけで動作します。

  1. skipfish をダウンロードします
(DEV)kojima@dev:~/tmp$ wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/skipfish/skipfish-2.10b.tgz

2. skipfish をビルドします

(DEV)kojima@dev:~/tmp$ tar xvzf ./skipfish-2.10b.tgz
(DEV)kojima@dev:~/tmp$ cd skipfish-2.10b
(DEV)kojima@dev:~/tmp/skipfish-2.10b$ make
cc -L/usr/local/lib/ -L/opt/local/lib src/skipfish.c -o skipfish \
-O3 -Wno-format -Wall -funsigned-char -g -ggdb -I/usr/local/include/ -I/opt/local/include/ -DVERSION=\"2.10b\" src/http_client.c src/database.c src/crawler.c src/analysis.c src/report.c src/checks.c src/signatures.c src/auth.c src/options.c -lcrypto -lssl -lidn -lz -lpcre
See doc/dictionaries.txt to pick a dictionary for the tool.Having problems with your scans? Be sure to visit:
http://code.google.com/p/skipfish/wiki/KnownIssues

3. skipfish のヘルプを参照します

(DEV)kojima@dev:~/tmp/skipfish-2.10b$ ./skipfish -h
skipfish web application scanner - version 2.10b
Usage: ./skipfish [ options ... ] -W wordlist -o output_dir start_url [ start_url2 ... ]
Authentication and access options:-A user:pass - use specified HTTP authentication credentials
-F host=IP - pretend that 'host' resolves to 'IP'
-C name=val - append a custom cookie to all requests
-H name=val - append a custom HTTP header to all requests
-b (i|f|p) - use headers consistent with MSIE / Firefox / iPhone
-N - do not accept any new cookies
--auth-form url - form authentication URL
--auth-user user - form authentication user
--auth-pass pass - form authentication password
--auth-verify-url - URL for in-session detection
< 省略 >

実行

以下のように実行することができます。-m は同時アクセス数、-o は診断結果の HTML 出力先を指定することができます。

(DEV)kojima@dev:~/tmp/skipfish-2.10b$ ./skipfish -L -W- -m 2 -o ./tmp <URI>

※ 実行の際には、アクセス先・アクセス元に負荷がかかるため注意してご利用ください。

以下のページには、どのような脆弱性診断が実施されるのか記載ありますので参考にしてください。

--

--