Webサーバに対するペネトレーションテスト(後編)
0
会員になると、いいね!でマイページに保存できます。
情報漏えいの防止、内部統制をはじめ、昨今の情報システム部門に求められるセキュリティの課題は非常に多い。いかにセキュアなシステムを構築しているつもりであっても、思わぬところに落とし穴があればすべてが水泡に帰す。本特集では、守る側ではなく攻める側に立って自身のシステムをチェックする「ペネトレーションテスト(疑似侵入テスト)」のノウハウをご紹介するとともに、多角的なセキュリティに対する考え方を持つ必要性を説く。第5回は前回に続きWebサーバに対するペネトレーションテストについてご紹介する。
※弊社および筆者はこの記事によって引き起こされた損害賠償責任、刑事責任、一切の責任を負いません。調査を実施する場合は、調査が許可されたテスト環境に対してのみ行ってください。場合によっては「不正アクセス禁止法」などに抵触することもあるので自己責任の上で十分に注意して実施してください。
≫Webサーバに対するペネトレーションテスト(前編)
3.IISのISAPI拡張
IISはISAPI(Internet Server Application Programming Interface)で機能を拡張できる。IIS 6.0より前のバージョンではデフォルトで多くのISAPI拡張が有効になっている。たとえば、printerという機能は通常使用しないはずなので、有効化されていないか調査する必要がある。
・調査
では、IISでどのようなISAPI拡張が有効になっているか確認するために、「.ida」や「.printer」などの拡張子を持つリクエストをIISに対して送信してみよう。
cova@cova-desktop:~$ nc 192.168.1.51 80
GET /example.ida HTTP/1.0
リクエストに対するWebサーバからの応答が「200 OK」または「500 Internal Server Error」である場合、該当の拡張子を処理するISAPI拡張がIISで有効になっていることを表す。この調査はNetcatでもWebブラウザからでも行うことが可能だが、Netcatから行う場合、Shift JISの日本語が表示できない端末では文字化けが起きてしまうので注意しよう。
・攻撃
過去、ISAPI拡張には情報漏えいやバッファオーバーフローなどの脆弱性が発見されてきた。先ほど、調査を行って確認した2つのISAPI拡張にもバッファオーバーフローの脆弱性が存在し、この脆弱性を攻撃するツールも存在する。ida拡張およびprinter拡張もともに、バッファオーバーフローの脆弱性を攻撃するツールが存在する。そのため、この脆弱性が存在するサーバは攻撃を受けると完全に乗っ取られてしまい、インターネット上のほかのサーバを攻撃する際の踏み台として使用されたり、フィッシング用の偽Webサイトの構築などが行われてしまう可能性がある。
また、ida拡張の脆弱性は2001年夏に発生したワームにも利用され、世界中に蔓延したという過去を持つ。そのワームとは、Code Red、Code Red II、そしてNimdaである。これらのワームは感染活動を行うだけではなくバックドアも残したため、このバックドアを利用した踏み台攻撃も多数発生した。
・対策
この脆弱性は、ソフトウェアのバグが原因となっている。今回紹介した脆弱性に対しては、MS01-033およびMS01-026[
注1]のパッチを適用することで対応可能だ。また、この脆弱性に関しては「.ida」や「.printer」に対するスクリプトマッピングを削除することでも対応することができる。この設定は手動で行うことが可能だが、デフォルトのIISに関してはほかにもセキュリティ強化の面で推奨される設定(サンプルスクリプトの削除など)があり、それらをすべて手動で行うことは若干面倒だ。
そこで、これらの設定を簡単に行うことができる
IIS Lockdownツールがマイクロソフトから提供されている。なお、IIS Lockdownツールには先に紹介したURLScanも含まれているが、バージョンが古いためIISLockdownをインストールした後に別途ダウンロードしたURLScanをインストールしたほうがよいだろう。パッチを適用した上でIIS LockdownやURLScanで設定を強化することが望ましい。
4.Unicodeバグ[注2]
最初に行った調査からIISのバージョンは5.0であることがわかった。このバージョンのIISにはUnicodeバグと呼ばれる脆弱性が存在する可能性がある。この脆弱性はIISにUnicodeでエンコードされたURLを渡すとディレクトリトラバーサル[
注3]が発生し、Webとして公開されているフォルダ以外に存在するコマンドが実行できるようになってしまうというものだ。
・調査
対象のIISにこの脆弱性が存在するか確認するには、実際にUnicodeでエンコードされたURLをリクエストとして送信すればよい。脆弱性が存在していれば
画面1のようにディレクトリトラバーサルが発生する。
・攻撃
画面1ではcmd.exeを実行しているが、ほかのコマンドを実行することもできる。攻撃ツールを併用することでサーバのシステム権限を持ったコマンドプロンプトを取得することも可能だ。このため、IISのISAPI拡張の脆弱性と同様の脅威が存在する。
画面1 ディレクトリトラバーサル |
※クリックで拡大 |
・対策
Unicodeバグにより発生する脆弱性は、ISAPI拡張のバッファオーバーフローと同じく、ソフトウェア実装のバグが原因となっている。マイクロソフトは、この脆弱性に対するパッチをMS01-026として提供している。なお、ほかの脆弱性にも対応するため、最新のパッチをすべて適用することを推奨する。
5.Open Proxy
最初に行った調査からApacheが動作しているOSはUbuntuであり、比較的最近のバージョンのApacheを使用していることが確認された。しかし、使用しているApacheのバージョンが新しいからといって脆弱性がないことにはならない[
注4]。新しいバージョンを使うことで防ぐことができる脆弱性はソフトウェアのバグに起因するものであり、設定ミスに起因する脆弱性を防ぐことはできない[
注5]。新しいバージョンが使用されている場合には既知の脆弱性に対する攻撃はほぼ通じないと考え、設定ミスを利用した攻撃を想定したほうがよいだろう。
Apacheではモジュールを組み込むことでWebサーバ機能に加えてProxy機能を提供することができる。そのため、ApacheはしばしばProxy機能が有効にされた状態のままWebサーバとして使用されることがある。この時、アクセス制御の設定ミスをしてしまうと、インターネット側からもアクセスすることができるようになってしまう。このような状態のProxyサーバをOpen Proxyと呼ぶ。
[注1]MS01-026
累積的パッチとなるため、本パッチより前のIISに関する修正も含む内容となっている
[注2]Unicodeバグ
不正な形で符号化されたUTF-8の文字列が、不正文字列のセキュリティチェックを突破してしまう問題のこと
[注3]ディレクトリトラバーサル
相対パス指定により、管理者やソフトウェア開発者が想定しないファイルへアクセスしてしまう脆弱性
[注4]バージョンが~ならない
逆に別途最新版が存在するからといって今回の調査対象となったApache 2.2.4が脆弱性を持つということにはならない。パッケージ形式で管理を行う多くのLinuxディストリビューションは、リリース時のソフトウェアのバージョンを維持し、セキュリティフィックスやバグフィックスをバックポートという形で適用しているためだ
[注5]設定ミスに~できない
これはWebサーバだけではなく、ほかのソフトウェアにも言えることである
関連タグ