Webアプリケーション向けの自動セキュリティスキャナ「Skipfish」を試してみました
こんにちは、中川です。
先日、GoogleからWebアプリケーション向けの自動セキュリティスキャナ「Skipfish」が公開されたので、社内で利用しているCakePHPのアプリで試してみました。
Skipfish( http://code.google.com/p/skipfish/ )は、Webアプリケーションの脆弱性、SQLインジェクションやクロスサイトスクリプティング等を自動的に検出してくれるApache License 2.0のライセンスで公開されているオープンソースのツールです。
必要なライブラリは以下とのこと。
私の環境では、libidnがなかったので、yumで入れました。
さて、skipffish本体のインストールを行いましょう。
※最新のダウンロードはこちらのページを参照ください。
http://code.google.com/p/skipfish/
インストールが完了したら、実際に動かしてみましょう。
いろいろとオプションがありますので、
今回は、以下のオプションを追加した条件で実行しています。
そして、実行!
が、終わらない、、、30分経っても、がんがん実行中で終わらない。。。
サーバの負荷も高い高い。。これは外部に対しては絶対に行わないようにしましょう!
あきらめてCtl+Cで終了しました。。
途中で止めても結果ファイル自体は出力してくれるようです。
log/ ディレクトリ以下のindex.htmlファイルを適当なブラウザで開けば結果を確認できます。
こんな感じです。
※細かい結果の部分は今回はお見せしないようにしますが、各項目をクリックで詳細の確認ができます。

途中で止めたせいもあるのか(それでも30分くらいは動かしていた、、、)、今回は特に大きな問題などは見つからなかったようです。
(XSRFと表示されていますが、GETでアクセスする表示だけのページでこのアプリでは問題ないです。)
が、アプリケーションの想定外の動作を発見できたりしました。。
余談ですが、今回はCakePHPのアプリで試したのですが、
CakePHPのセッションのチェックには、UserAgentのチェックもされているようで、
core.phpの以下の設定を変更する必要がありました。
なぜセッション指定してもログアウトするのか結構悩みました。。。
検査には時間がかかるようですが、簡単に試すことができますので、脆弱性チェックの一つとして利用してみてはいかがでしょう。
■参考にさせていただいたサイト
・Skipfishで定義されている Webアプリに対するテスト一覧
http://www.yokada.net/blog/1456
・使ってみました。 - はじめに。
http://d.hatena.ne.jp/hajimeni/20100324/1269394599
先日、GoogleからWebアプリケーション向けの自動セキュリティスキャナ「Skipfish」が公開されたので、社内で利用しているCakePHPのアプリで試してみました。
Skipfish( http://code.google.com/p/skipfish/ )は、Webアプリケーションの脆弱性、SQLインジェクションやクロスサイトスクリプティング等を自動的に検出してくれるApache License 2.0のライセンスで公開されているオープンソースのツールです。
必要なライブラリは以下とのこと。
* GNU C Compiler * GNU Make * GNU C Library (including development headers) * zlib (including development headers) * OpenSSL (including development headers) * libidn (including development headers)
私の環境では、libidnがなかったので、yumで入れました。
さて、skipffish本体のインストールを行いましょう。
※最新のダウンロードはこちらのページを参照ください。
http://code.google.com/p/skipfish/
- #
wget http://skipfish.googlecode.com/files/skipfish-1.29b.tgz - #
tar xvzf skipfish-1.18b.tgz - #
cd skipfish - #
make
インストールが完了したら、実際に動かしてみましょう。
いろいろとオプションがありますので、
- ./skipfish
--help
今回は、以下のオプションを追加した条件で実行しています。
- ・-W
dictionaries/minimal.wl - ・・辞書ファイルは用意されている、dictionaries/minimal.wl
を利用。 - ・-C
MYSESSIONNAME=e3mvctp2b46u312b5a5b9krop5 - ・・ログインが必須のアプリをテストしたため、クッキーの値をセット。
- ・・値は適当なブラウザでログインしてクッキーの情報をコピペ。
- ・-X
logout,login - ・・logout
/ login を含むURLはセッションが切れてしまうのでまずは除外する。 - ・-g
1 - ・・開発サーバのスペックが低いため同時接続は1で。
- ・-o
log/ - ・・結果の出力先を、log/
と指定 - ・http://192.168.1.236:8080/
- ・・検査URL
そして、実行!
- $
./skipfish -W dictionaries/minimal.wl -C MYSESSIONNAME=e3mvctp2b46u312b5a5b9krop5 -X logout,login -g 1 -o log/ http://192.168.1.236:8080/
が、終わらない、、、30分経っても、がんがん実行中で終わらない。。。
サーバの負荷も高い高い。。これは外部に対しては絶対に行わないようにしましょう!
あきらめてCtl+Cで終了しました。。
途中で止めても結果ファイル自体は出力してくれるようです。
log/ ディレクトリ以下のindex.htmlファイルを適当なブラウザで開けば結果を確認できます。
こんな感じです。
※細かい結果の部分は今回はお見せしないようにしますが、各項目をクリックで詳細の確認ができます。
途中で止めたせいもあるのか(それでも30分くらいは動かしていた、、、)、今回は特に大きな問題などは見つからなかったようです。
(XSRFと表示されていますが、GETでアクセスする表示だけのページでこのアプリでは問題ないです。)
が、アプリケーションの想定外の動作を発見できたりしました。。
余談ですが、今回はCakePHPのアプリで試したのですが、
CakePHPのセッションのチェックには、UserAgentのチェックもされているようで、
core.phpの以下の設定を変更する必要がありました。
なぜセッション指定してもログアウトするのか結構悩みました。。。
- Configure::write('Session.checkAgent',
false);
検査には時間がかかるようですが、簡単に試すことができますので、脆弱性チェックの一つとして利用してみてはいかがでしょう。
■参考にさせていただいたサイト
・Skipfishで定義されている Webアプリに対するテスト一覧
http://www.yokada.net/blog/1456
・使ってみました。 - はじめに。
http://d.hatena.ne.jp/hajimeni/20100324/1269394599
トラックバックURI
最近の記事
システム開発エンジニア募集! [2012年02月03日 : 小林有佳]
OpenVPNで細々便利な設定 [2012年01月31日 : 門脇優児]
【iOS】Viewの開発・デバッグに役立つ色々 [2012年01月23日 : 中川善樹]
PHPDocumentorの利用方法まとめ [2012年01月19日 : 笹亀弘]
Google Chart Toolsを使ってサイトマップを描こう! [2011年12月21日 : 志田仁美]
stumpwm設定v2 [2011年12月19日 : 門脇優児]
Mashup Awards 7の授賞式が行われました [2011年12月16日 : 中川善樹]
社員旅行に行きました [2011年12月12日 : 大橋寛子]
iCloud風のアイコンを作成する(Fireworks) [2011年12月07日 : 和田記光]
iScroll4でネイティブに近いスマホ向けHTMLページを作成する [2011年12月02日 : 松田惇]













コメントフォーム