たった2行でできるWebサーバ防御の「心理戦」セキュリティ対策の「ある視点」(1)(1/3 ページ)

高い壁を作るだけがセキュリティ対策ではない。攻撃者の心理を考え、彼らに選ばれないシステム作りも大きな効果が望めるのではないだろうか。本連載では視点を変え、攻撃者に選ばれないためにできる、ほんのちょっとした対策を取り上げる。(編集部)

» 2007年07月19日 00時00分 公開

対策をもう一歩進めるための新たな視点を持とう

 システムは動くだけではなく、セキュリティ対策がなされていなければいけないといわれ始めて久しい。セキュリティという言葉を聞くと、物理的なものだけではなく、ネットワークセキュリティを連想するほどの認知度も得ているのではないだろうか。

 個人宅のネットワーク環境にもファイアウォール機能を搭載したルータがあり、PC1台1台にアンチウイルスソフトがインストールされている。いまとなっては珍しくなく、むしろ当たり前とも思えるようになった。

 一方、ネットワークに存在する脅威というと、ウイルス、ワーム、ボット、サイトの改ざん、個人情報の漏えい、フィッシング……挙げればキリがないほど多く、そして、過去のそれらよりも悪賢いものになってきている。そしてインターネット、ローカルネットワークを問わず、それらのさまざまな脅威が、さまざまな経路で、皆さんが思っているよりも近くで、大きな口を開けて存在する。

 過去のことを思えば、ネットワークセキュリティに対しての認知度や理解度の向上もあり、守る側の選択肢も増えた。だが、セキュリティ事故は後を断たない。

 筆者は日々、ペネトレーションテストを実施し、システム上に存在する問題を発見、指摘、改善提案を行っている。指摘には当然、侵入などのシステムに直接影響を与える緊急を要する対策優先度が高いものもあれば、システムの情報の一部を外部に露呈してしまっているなど、単体ではシステムに影響を与えない対策優先度の低いものもある。

 本稿では、その指摘内容の一部から、攻撃者の視点を踏まえた話、対策方法を紹介していきたいと思う。

 本連載での基本的な構成としては、

(1)指摘内容とその解説
(2)推奨されるべき設定、対策
(3)その設定、対策を行わないことにより発現する脅威

といった流れで解説させていただく。また、本稿では、ネットワークペネトレーションの検査範囲をOSやサーバソフトウェアとさせていただく。連載第1回では、多くの製品の管理画面のベースにもなり、世界でも広く使用されているWebサーバ“Apache”のセキュリティ設定(前編)を紹介しよう。

Webサーバの“バナー情報”から分かること

 まず、サーバのバナー情報とは何かということを説明しておこう。

 バナー情報とは、サーバサービス自身が稼働中のサービスの種類やバージョンなどを知らせるメッセージのことで、サーバサービスへの接続やコマンドの発行により外部から得ることが可能な情報である。

 Apacheに対しては、大きく分けて2つの方法でこの情報を取得することが可能である。 その2つとは以下のとおりである。

(1)HTTPリプライヘッダ
(2)エラーページのフッタ

 (1)のHTTPリプライヘッダとはクライアント(ブラウザ)のリクエストに対して、サーバの応答に含まれるメッセージのことであり、このメッセージの中のServerフィールドと呼ばれる個所にバナー情報が含まれる。

 以下はApacheに対して、HEADリクエストを送信した際の応答を表示したものである。

C:\>nc www.target-example.jp 80    Webサーバへ接続

HEAD / HTTP/1.0            HEADリクエストを送信

HTTP/1.1 200 OK            サーバの応答(HTTPリプライヘッダ)

Date: Fri, 29 Jun 2007 18:18:18 GMT

Server: Apache/1.3.37 (Unix)   Serverフィールド

Last-Modified: Thu, 27 Jul 2006 09:44:28 GMT

ETag: "xxxxx-xxx-xxxxxxxx"

Accept-Ranges: bytes

Content-Length: 1737

Connection: close

Content-Type: text/html

リスト1 ApacheのHTTPリプライヘッダ

 上記の「Serverフィールド」の個所を見てほしい。

Server: Apache/1.3.37 (Unix)


としっかりとバージョン情報が表示されていることが分かる。

 (2)のエラーページとは、Webサイトの巡回をしているとよくお目にかかる「Not Found」ページや「Forbidden」ページのことである。Apacheのデフォルトの設定では、このエラーページにバナー情報が含まれる。

 意図的に、存在しないであろうページ、閲覧権限が与えられていないページにアクセスすることでこのようなページを表示させることが可能である。

図1 ページが存在しないことを示すエラーページ 図1 ページが存在しないことを示すエラーページ

 こちらにもしっかりとバージョン情報が表示されていることが分かる。

 これらの方法を使うことにより、リモートから特定のWebサーバのバージョンを知ることができるというわけだ。バージョンを知られてしまうことにより発現する脅威は後述するとして、まずはこれらの情報を外部に露呈しない設定方法の紹介をする。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。