フリーで使えるセキュリティスキャナ・ツールまとめ
森川です
セキュリティスキャナについて色々と調べたことがあったので、それについての備忘録の意味も含めたまとめ+アルファです。
セキュリティスキャナといっても色々とあって、ネットワークを対象にしたもの、アプリケーションを対象にしたものなど色々とありますが、今回はアプリケーションに関するものが対象です。
さらに、セキュリティをチェックする方法として、コマンドラインで実行するタイプと、プロキシを使用するものの2種類に大別されます。
プロキシ型としては、先日Googleが新しくRatProxyというセキュリティツールを公開しているので、まずはRatProxyをプロキシ型のメインとして簡単に触れてみたいと思います。
RatProxyは意外と簡単に使うことができました。手順は単純で、Linux上でソースコードのダウンロード、makeでプログラムが出来上がるので、あとはratproxyという実行ファイルを実行します。
これで、インストールしたマシンの8080番ポートをプロキシとして指定して、チェックしたいサイトをブラウジングするだけです。
絶対に自分で管理していないサイトに対して実行しないでください。
こうしてできた、hoge.log を同梱のratproxy-report.shで解析すれば、レポートがHTMLとして出力されます。
レポートのHTMLもスクリーンショットも公開されています。
その他にもプロキシ型のスキャナは色々とあるのですが、RatProxyのドキュメントページに自分が調べたものは大体記述されていました。なので、簡単に触れるにとどめておきます。
1. WebScarab
2. Paros
3. Burp
4. ProxMon
5. Pantera
6. Chorizo!
それぞれのプログラムについて、検索すれば使い方はわりと簡単にわかると思います。また、Proxyとして動作するものなので、複数のプロキシを繋げて使うことも可能です(スキャナにプロキシを指定できる場合に限定されますが)。
といっても、これから使う場合、新し物好きなこの業界であれば、みなさんRatProxyを使うのではないかと思います。これからRatProxyがどのように発展していくのかが楽しみです。
NiktoはWebサーバとその上で動く既知のアプリケーションのセキュリティホールをチェックしてくれるものです。
プラグインでの拡張が可能なのが特徴なのと、かなり広く使われていて簡単に使えるので、既存のソフトウェアを使用している場合は、スキャンしてみるとよいでしょう。
使い方は非常に簡単で、nikto のソースコードをperlがインストールされているマシンにダウンロードして、以下のようなコマンドを実行します。
これで、出力される結果を見て、サーバの設定を変えたり、最新版に変えたりするとよいでしょう。
Wapitiはあまり有名でないかもしれませんが、非常に簡単にWebのセキュリティチェックをすることができるツールです。
WapitiもNiktoと同じようにコマンドラインでテストを行うことができます。なお、NiktoはPerlのプログラムですが、WapitiはPythonです。
Ubuntu・Debianではパッケージがあるので、apt-get install wapitiとすればインストール可能です。CentOSなど、パッケージがない場合でもダウンロードして展開すれば問題ありません。基本的な使い方はサイトに書いてある通りで、以下のようなコマンドになります。
これで、XSSなどの脆弱性を簡易的にチェックすることができます。なんといっても直感的に、問題がすぐにコマンドラインから調べられるのがよいです。
ログインが必要なサイトでも、クッキーを使用することで対応することができます。ソースコード内に含まれる getcookie.py というファイルを使用します。以下はダウンロードしたソースに含まれている example.txt の内容です。
上記のようにログインした時のクッキーをファイルとして保存しておいて、wapiti実行時に指定することで、ログインが必要なサイトでも使用することができます。
最新のRatProxyがプロキシ型のように、最近のWebアプリケーションではJavaScriptやActionScriptからのアクセスが多くなっているので、すべてのURLを網羅するという意味ではプロキシ型の方が優れていますが、コマンドライン型でもかなりの部分をカバーすることができます。
個人的には、担保したいセキュリティレベルに応じて、使用するプログラムを変更していくこと、そして何よりも定期的なチェックが大事だと思います。なので、まずはWapitiで簡易チェックを実行することを習慣づけることが重要です。
セキュリティスキャナについて色々と調べたことがあったので、それについての備忘録の意味も含めたまとめ+アルファです。
セキュリティスキャナといっても色々とあって、ネットワークを対象にしたもの、アプリケーションを対象にしたものなど色々とありますが、今回はアプリケーションに関するものが対象です。
さらに、セキュリティをチェックする方法として、コマンドラインで実行するタイプと、プロキシを使用するものの2種類に大別されます。
プロキシ型としては、先日Googleが新しくRatProxyというセキュリティツールを公開しているので、まずはRatProxyをプロキシ型のメインとして簡単に触れてみたいと思います。
RatProxy
RatProxyは意外と簡単に使うことができました。手順は単純で、Linux上でソースコードのダウンロード、makeでプログラムが出来上がるので、あとはratproxyという実行ファイルを実行します。
- ./ratproxy
-w hoge.log -r -lfscmXC &
これで、インストールしたマシンの8080番ポートをプロキシとして指定して、チェックしたいサイトをブラウジングするだけです。
絶対に自分で管理していないサイトに対して実行しないでください。
こうしてできた、hoge.log を同梱のratproxy-report.shで解析すれば、レポートがHTMLとして出力されます。
- ./ratproxy-report.sh
hoge.log > hoge.html
レポートのHTMLもスクリーンショットも公開されています。
その他のプロキシ型スキャナ
その他にもプロキシ型のスキャナは色々とあるのですが、RatProxyのドキュメントページに自分が調べたものは大体記述されていました。なので、簡単に触れるにとどめておきます。
1. WebScarab
2. Paros
3. Burp
4. ProxMon
5. Pantera
6. Chorizo!
それぞれのプログラムについて、検索すれば使い方はわりと簡単にわかると思います。また、Proxyとして動作するものなので、複数のプロキシを繋げて使うことも可能です(スキャナにプロキシを指定できる場合に限定されますが)。
といっても、これから使う場合、新し物好きなこの業界であれば、みなさんRatProxyを使うのではないかと思います。これからRatProxyがどのように発展していくのかが楽しみです。
Nikto
NiktoはWebサーバとその上で動く既知のアプリケーションのセキュリティホールをチェックしてくれるものです。
プラグインでの拡張が可能なのが特徴なのと、かなり広く使われていて簡単に使えるので、既存のソフトウェアを使用している場合は、スキャンしてみるとよいでしょう。
使い方は非常に簡単で、nikto のソースコードをperlがインストールされているマシンにダウンロードして、以下のようなコマンドを実行します。
- ./nikto.pl
-host http://example.com
これで、出力される結果を見て、サーバの設定を変えたり、最新版に変えたりするとよいでしょう。
Wapiti
Wapitiはあまり有名でないかもしれませんが、非常に簡単にWebのセキュリティチェックをすることができるツールです。
WapitiもNiktoと同じようにコマンドラインでテストを行うことができます。なお、NiktoはPerlのプログラムですが、WapitiはPythonです。
Ubuntu・Debianではパッケージがあるので、apt-get install wapitiとすればインストール可能です。CentOSなど、パッケージがない場合でもダウンロードして展開すれば問題ありません。基本的な使い方はサイトに書いてある通りで、以下のようなコマンドになります。
- python
wapiti.py http://example.com
これで、XSSなどの脆弱性を簡易的にチェックすることができます。なんといっても直感的に、問題がすぐにコマンドラインから調べられるのがよいです。
ログインが必要なサイトでも、クッキーを使用することで対応することができます。ソースコード内に含まれる getcookie.py というファイルを使用します。以下はダウンロードしたソースに含まれている example.txt の内容です。
- bash-3.0$
python getcookie.py cookies.txt http://127.0.0.1/vuln/?page=login - Please
enter values for the folling form : - url
= http://127.0.0.1/vuln/login.php - login
(on) : toto - password
(on) : toto - 0
: PHPSESSID=8qte5k7jr6ogkocrlcrk9obmj2 for 127.0.0.1/>
上記のようにログインした時のクッキーをファイルとして保存しておいて、wapiti実行時に指定することで、ログインが必要なサイトでも使用することができます。
最新のRatProxyがプロキシ型のように、最近のWebアプリケーションではJavaScriptやActionScriptからのアクセスが多くなっているので、すべてのURLを網羅するという意味ではプロキシ型の方が優れていますが、コマンドライン型でもかなりの部分をカバーすることができます。
個人的には、担保したいセキュリティレベルに応じて、使用するプログラムを変更していくこと、そして何よりも定期的なチェックが大事だと思います。なので、まずはWapitiで簡易チェックを実行することを習慣づけることが重要です。
コメント
コメントフォーム
トラックバック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日 : 松田惇]













これから関連ありそうな記事のときにはリンクはりますのでよろしくお願いします。
ご紹介ありがとうございます。