フリーで使えるセキュリティスキャナ・ツールまとめ
森川です
セキュリティスキャナについて色々と調べたことがあったので、それについての備忘録の意味も含めたまとめ+アルファです。
セキュリティスキャナといっても色々とあって、ネットワークを対象にしたもの、アプリケーションを対象にしたものなど色々とありますが、今回はアプリケーションに関するものが対象です。
さらに、セキュリティをチェックする方法として、コマンドラインで実行するタイプと、プロキシを使用するものの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で簡易チェックを実行することを習慣づけることが重要です。
コメント
コメントフォーム
トラックバック
最近の記事
- 「Felica交換日記」 最優秀賞受賞!@Felica&AIR/Flashアプリケーションコンテスト [2010年03月18日 : 小林有佳]
- 【Flex3】「Flex3の、こんなときどうするの??」 [2010年03月18日 : 橋本章史]
- DoctrineのMaster&Slaveのコネクションを操作するクラスを作成する方法 [2010年03月15日 : 笹亀弘]
- <Symfony Componentsシリーズ(2)> Symfony 2の秘密兵器: Request Handler [2010年03月11日 : 小川雄大]
- <Symfony Componentsシリーズ(1)> オブジェクトをつなぐEvent Dispatcher [2010年03月11日 : 小川雄大]
- Symfony 2のアプリケーション構成を読む [2010年03月04日 : 小川雄大]
- サーバサイドJavaScriptの「node.js」を試してみました [2010年03月03日 : 中川善樹]
- お初の山梨旅行 [2010年02月26日 : 阿部恵]
- OpenVPNで拠点間VPN [2010年02月25日 : 門脇優児]
- OracleでのLIMITの記述あれこれ [2010年02月24日 : 松田惇]



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