フリーで使えるセキュリティスキャナ・ツールまとめ
森川です
セキュリティスキャナについて色々と調べたことがあったので、それについての備忘録の意味も含めたまとめ+アルファです。
セキュリティスキャナといっても色々とあって、ネットワークを対象にしたもの、アプリケーションを対象にしたものなど色々とありますが、今回はアプリケーションに関するものが対象です。
さらに、セキュリティをチェックする方法として、コマンドラインで実行するタイプと、プロキシを使用するものの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で簡易チェックを実行することを習慣づけることが重要です。
コメント
コメントフォーム
トラックバック
最近の記事
- もうすぐ健康診断があるんだ・・・ [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日 : 岡本雄樹]



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