さまざまなアプリケーションでは、インストール時にマニュアルやヘルプ、サンプルスクリプトといったファイルもインストールされることが多い。これは、サーバの運用方法やプログラムの動作チェックなどのために用意されているものである。Apacheでいうと「manual」ディレクトリ(http://サーバのIPアドレス/manual/)や「icons」ディレクトリ(http://サーバのIPアドレス/icons/)がそれに当たる。
Apacheの場合では、「manual」ページにアクセスすることにより、1.3系であるか、2.0系であるかということが分かる【注2】。
Apacheの場合では、このようなデフォルトのコンテンツがあることで直接的に侵入につながったり、重要情報の漏えいにつながるわけではないので、今回は、Apacheに関連するアプリケーションサーバ「Tomcat」の脆弱性も紹介しようと思う。
Tomcatをインストールした際には、デフォルトでインストールしたサーバのTCP8080番ポートにブラウザで接続すると下記のようなコンテンツが表示される。
このページが表示されることで、Tomcatがインストールされているということ、Tomcatのバージョンがいくつかということが分かる。ここまでは、前述したApacheの「manual」ディレクトリと似ているのだが、今回紹介するのはデフォルトでインストールされるTomcatのサンプルアプリケーションである。
サンプルアプリケーションは、動作チェックなどに用いられるものであるため、あまりセキュリティ面を考慮して設計されていない場合がある。過去にIISでもサンプルスクリプトを悪用することで、システム内部のファイルを表示できる脆弱性が発見されたこともある。
Tomcatにも最近、サンプルプログラムにクロスサイトスクリプティングの脆弱性が発見され、情報が公開されている。脆弱性の原因は、非常に初歩的なエスケープ処理のミスである。
このような脆弱性がサンプルスクリプトにおいて発見されることは少なくない。サンプルスクリプトは運用上不必要というだけでなく、このように予期しない脆弱性をシステム上に残してしまう可能性がある。発見される脆弱性の中にはOSのコマンドをサンプルプログラム経由で実行、重要ファイルの不正閲覧を可能にするものもあるため、サンプルスクリプトの存在がシステムの命取りとなる場合も考えられる。
対策としては、運用上必要がないと思われるマニュアルやサンプルスクリプトなどは、思わぬ被害の原因となる可能性があるため、削除することが推奨される。
いま一度、自身の管理下のシステム上で、現在必要のないファイルが配置されていないかどうか、新しいサービスやアプリケーションを追加した場合には、運用に必要のないコンテンツが配置されていないかという確認を行うことをお勧めする。
「ユーザーディレクトリ機能が有効」「デフォルトのコンテンツの存在」というのは、デフォルトのインストールによって有効、存在しているものであるがゆえに、リリース前のチェックでは見落とされがちである。
実際に、ペネトレーションの現場でもこの問題がよく検出される傾向にある。過去の検査では、Webアプリケーションにおいてはさまざまな対策が取られていたにもかかわらず、このようなデフォルトのコンテンツに含まれるサンプルプログラムに脆弱性があったため検査対象の評価としてセキュリティレベルが低いと判断せざるを得ないものもあった。
チェックで見落とされる傾向にあるということは、独自に開発したWebアプリケーションの改修やOSなどの修正プログラムの適用などとは違い、意識されずに運用を行ってしまうことが多いと考えられる。だが、それにより発現する事象は、企業にとって計り知れないものになるかもしれない。
開発、構築、運用、どのような場合においても「意識の欠如」というものが大きなセキュリティホールを顕在化させるきっかけとなり得るのである。本記事の読者もセキュリティホールを生み出さないよう「知り」そして「意識」することを忘れないでほしい。
Copyright © ITmedia, Inc. All Rights Reserved.