無料でWebアプリにありがちな
脆弱性を調べて治す
株式会社アメニクス
x-lab チーム
2008/3/5
| 今回の主な内容 |
完全な方法とはいえません」 |
前回の「Tomcatのセキュリティとリスクの基本分かってる?」ではTomat自体が持つ脆弱(ぜいじゃく)性について調べていきましたが、今回はWebアプリケーションのセキュリティについて調べていきましょう。
Webセキュリティを調べる無料ツールとは?
Webアプリケーションが持つ脆弱性はいくつか存在しますが、前回の説明にあった「インジェクション系」や「クロスサイトスクリプティング」(XSS)などが有名です。それ以外にも「パラメータ改竄(かいざん)」や「セッションハイジャック」といった脆弱性が一般的にはよく見つかります。
このような脆弱性は特定の手法で見つかることはよくありますが、すべての手法を人が覚えて実行するのは大変です。設定のミスまで自分で探すのはとても大変なことで、常に最新の情報を追っていくことも困難であるといえます。
そんなときどうすればいいか? いまは非常に便利な「代行してくれるツール」が開発され、公開されているので、これを利用してチェックしてみましょう。今回はオープンソースのWebセキュリティ・スキャナ「Nikto」を利用します。
![]() |
| 図1 Niktoのページ |
■ Niktoのセットアップ
「Nikto」のページを開くと、画面上部に「Download」の項目があります。クライアントに環境設定するのは大変なので、今回のツールもサーバ上に導入しましょう。
まずは、圧縮形式「.gz」を利用するので「.gz」のリンク先をコピーして、サーバ上でwgetを利用してファイルを取得します。
# wget http://www.cirt.net/nikto/nikto-current.tar.gz |
ファイルのダウンロードが完了したら、圧縮ファイルを解凍しましょう。
# tar xzf nikto-current.tar.gz |
解凍したファイルは「Nikto-【バージョン】」という名前のディレクトリとして解凍されるので、まずはディレクトリ名を調べてみましょう。
# ls |
ディレクトリ名が「nikto-2.02」になっていることを確認しました。それでは、この解凍したNiktoを適当な場所に設置しましょう。
# mv -f /tmp/nikto-2.02/ /opt/nikto |
これで、Webセキュリティ・スキャナの導入は完了です。
■ Niktoを実行してセキュリティ状態をチェック
それでは、導入まで行ったWebセキュリティ・スキャナを実際に利用してみましょう。Niktoを実行するためには、Niktoを設置したディレクトリに移動します。
# cd /opt/nikto |
まず、脆弱性を調べてみる前に、Niktoの脆弱性情報やプラグインを最新版にアップデートします。アップデートコマンドを実行しましょう。
# perl nikto.pl -update |
実行すると、今回のように現時点の最新版を導入している場合には、アップデートの必要がないために以下のようなメッセージが表示されます。
+ No updates required. |
もし、前のバージョンで実行していたりすると、Pluginやデータベースの更新と最新版のアナウンスが表示されます。以下は、2.00のバージョンでアップデートコマンドを実行した場合の表示例です。
+ Retrieving 'nikto_headers.plugin' |
最新版であることも確認できたので、実際にWebアプリケーションの脆弱性を調べてみましょう。
perl nikto.pl -host http://192.168.1.45:8080 |
実行すると、以下のような結果が表示されました。
内容をよく見てみると、いくつかの脆弱性が見つかっているようです。先頭に「+OSVDB」が付いているものが脆弱性で、大きく分けると以下の4種類です。
- 利用が許可されているリクエストメソッドの問題
- トップページがデフォルトのTomcatの状態であることの検出
- Tomcatのデフォルトディレクトリが検出された問題
- MyWebServer 1.0.2の脆弱性が見つかった問題
■ 見つかった問題を解析
これらの見つかった問題を1つ1つ見ていきましょう。
「1」は、普段利用しないようなPUTやDELETE、TRACEというようなリクエストメソッドまで許可しているので、検出されています。PUTやDELETEはWebdavを利用しているわけでもないので、大きな問題にはならないでしょう。TRACEも、いまの時点で大きな問題はなしです。よって対応は必要なしです。
編集部注:WebDAVについて詳しく知りたい読者は、「次世代プロトコルWebDAVの可能性」をご参照ください。
「2」「3」では、トップページのファイルや初期にあるディレクトリからTomcatを利用していることが検出されました。これは、Tomcatをデフォルト状態から追加を重ねて利用していたために検出されたことなので、実際にサーバを立てるときには新しく設定を作成してこのような問題が見つからないように努めましょう。
「4」はHTMLインジェクション(XSS)が発見されたかのように見受けられますが、MyWebServer 1.0.2は利用していませんし、実際には誤検出のようです。
実際には大きな問題は見つかりませんでしたね。今回は最新版のTomcatを利用していることと、汎用のWebセキュリティ・スキャナを利用していたために細かい問題は見つからなかったようです。
次ページでは、以前作成したCometのチャット・アプリケーションでありがちな脆弱性(XSS)を発生させてみます。
| 1-2-3 |
| INDEX | ||
| 第5回 無料でWebアプリにありがちな脆弱性を調べて治す | ||
| Page1 Webセキュリティを調べる無料ツールとは? |
||
| Page2 ありがちな脆弱性(XSS)を調べてみよう |
||
| Page3 クロスサイトスクリプティングを解消するには? コラム 「注意! 文字のエスケープも完全な方法とはいえません」 脆弱性を見逃さないためには |
||
| Java Solution全記事一覧 |
TechTargetジャパン
- Scalaのパッケージ、アクセス修飾子、オブジェクト継承 (2012/5/22)
インポート、パッケージオブジェクト、抽象クラス/抽象メソッド、オーバーライド、final、シールドクラスなども - 基幹系システムでCloud SQLは使えるか試してみた (2012/5/17)
サンプルとしてMRPシステムを作成して動かし、「再帰呼び出し」などのパフォーマンスを測定して検証してみます - アジャイル管理ツール9選+Pivotal Tracker入門 (2012/5/14)
群雄割拠のアジャイルプロジェクト管理ツールを9つ紹介し、特に注目を集めているPivotal Trackerの基本的な使い方を解説します - サーバサイドJSやJavaでWebアプリが作れるXPages (2012/5/11)
Notes/Dominoの資産をサーバサイドJavaScriptやJavaで操作し、HTMLやJavaScript、CSSをUIにできる技術を紹介
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -

