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
コメントフォーム
トラックバック
最近の記事
- もうすぐ健康診断があるんだ・・・ [2010年09月02日 : 阿部恵]
- Photoshopで壁紙を作りながら、基本的な使い方を覚える [2010年09月01日 : 鴨田健次]
- はじめての共同作業 Canvas編 (node.js + websocket) [2010年09月01日 : 中川善樹]
- 「PHP×Flex(後編)」PHPテクニカルセミナー(無料)第4弾の募集を開始しました!! [2010年08月26日 : 和田記光]
- 【HTML5】Canvasでお絵かきしてみた(前編) [2010年08月25日 : 橋本章史]
- MacにgroongaのMySQL用ストレージエンジン [2010年08月23日 : 笹亀弘]
- Appleのサイトで見たiPhone4をFireworksで描いてみました-1/2 [2010年08月19日 : 和田記光]
- iPad版の会社紹介を作ってみました [2010年08月19日 : 小林有佳]
- iPhoneアプリ開発開始時に気をつけるべきファイルの取り扱い (2) [2010年08月19日 : 亀本大地]
- symfonyセミナー動画無料公開! [2010年08月13日 : 岡本雄樹]



最近のコメント