前回の「Tomcatのセキュリティとリスクの基本分かってる?」ではTomat自体が持つ脆弱(ぜいじゃく)性について調べていきましたが、今回はWebアプリケーションのセキュリティについて調べていきましょう。
Webアプリケーションが持つ脆弱性はいくつか存在しますが、前回の説明にあった「インジェクション系」や「クロスサイトスクリプティング」(XSS)などが有名です。それ以外にも「パラメータ改竄(かいざん)」や「セッションハイジャック」といった脆弱性が一般的にはよく見つかります。
このような脆弱性は特定の手法で見つかることはよくありますが、すべての手法を人が覚えて実行するのは大変です。設定のミスまで自分で探すのはとても大変なことで、常に最新の情報を追っていくことも困難であるといえます。
そんなときどうすればいいか? いまは非常に便利な「代行してくれるツール」が開発され、公開されているので、これを利用してチェックしてみましょう。今回はオープンソースのWebセキュリティ・スキャナ「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セキュリティ・スキャナの導入は完了です。
それでは、導入まで行った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 |
実行すると、以下のような結果が表示されました。
- ***** SSL support not available (see docs for SSL install instructions) ***** |
内容をよく見てみると、いくつかの脆弱性が見つかっているようです。先頭に「+OSVDB」が付いているものが脆弱性で、大きく分けると以下の4種類です。
これらの見つかった問題を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セキュリティ・スキャナを利用していたために細かい問題は見つからなかったようです。
Copyright © ITmedia, Inc. All Rights Reserved.