« 赤ちゃんの目をシミュレートするテストツール?「TinyEyes」 | メイン | 角丸画像を簡単に作る »

5分でできるウェブサーバのセキュリティ向上施策
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

こんにちは、naoya です。

先日、ウノウが公開しているサービスの中にいくつかの脆弱性が見つかったため、社内で「脆弱性発見大会」を開催しました。この大会は、二人一チームに分かれてウノウが公開している各サービスの脆弱性を見つけることを目的とした大会です。結果は、いくつか各サービスに脆弱性が見つかり、すぐに修正することができました。

僕のチームは、ウノウのホームページやラボブログなど細かいサービスを担当しました。その中で、いくつかのウェブサーバにセキュリティ上あまい設定がありました。

今日は、ウェブサーバのセキュリティ向上のための設定方法についてエントリします。なお、ウェブサーバはApache 2.2系を前提としています。

サーバ情報の表示しない

ウェブサーバ(Apache)で、404などのエラーページを表示したとき、ヘッダやページの下にApacheやOSのバージョンが表示されます。こういったサーバ情報をわざわざ表示する必要はありません。サーバ情報の表示しないようにするには、Apacheの設定ファイル(httpd.conf)に、次の設定を追加します。

  ServerTokens ProductOnly
  ServerSignature Off

この設定を追加後、Apacheを再起動するとServerヘッダにはApache、エラーページにもサーバの情報は表示されなくなります。


.で始めるディレクトリは公開しないようにする

ウノウでは、すべてのサービスをsvn(Subversion)で管理しています。アップデートもsvnで行っています。そのため、.svnディレクトリが誤って公開されていることがあります。.svnディレクトリには、ソースコードが入っていますので公開しない方がいいです。.svnだけでなく、.で始まるディレクトリを公開しないようにするようには、Apacheの設定ファイル(httpd.conf)に、次の設定を追加します。

.svnディレクトリにはソースコードが入っているので、注意する必要があります。

  <Directory ~ "/\..+/">
        Order Deny,Allow
        Deny from All
  </Directory>


最後に、PHPのセキュリティ向上施策も追記しておきます。

PHPファイルに対してリクエストすると、HTTPヘッダにX-Powered-Byという情報が入っています。X-Powered-Byヘッダには、PHPのバージョンが次のような形で含まれています。

X-Powered-By: PHP/4.3.11

このヘッダを隠すには、PHPの設定ファイル(php.ini)に、次の設定を追加します。

  expose_php = Off


この他にも、ウェブサーバのセキュリティ向上のための情報がありましたら、ぜひ教えてください!

トラックバック

このエントリーのトラックバックURL:
http://www.unoh.net/mt32/mt-tb.cgi/942

この一覧は、次のエントリーを参照しています: 5分でできるウェブサーバのセキュリティ向上施策:

» [情報関係]HTTPヘッダにPHPのバージョン情報が from かぎっ子が虎視眈々と
ウノウラボ Unoh Labs: 5分でできるウェブサーバのセキュリティ向上施策 最初のふたつは知ってたけど、最後のPHPのは気にしたことなかったな。 ... [詳しくはこちら]

コメント

confファイルが流出するならまだがしも、バージョンを知られたとしても無傷だと思うんですが...(サーバー情報を収集するサービスもあることだし)

バージョンを隠さないといけないほど、脆弱性を放置しているということなわけですね。

>バージョンを隠さないといけないほど、脆弱性を放置しているということなわけですね。

クラッカーのやる気を減らすという面でバージョン隠しは効果的ではあります。

svnを認証もかけていない公開ディレクトリに置くというのは斬新ですね!

本気のクラッカーなら、バージョンがわからなくても、既知の脆弱性は手当たり次第に攻めてくると思う。

タイトルに釣られた。

naoya氏は対処作の1つを挙げただけなので、突っつき過ぎるのは酷かとw

対処策のひとつ??
いまどきワームで全自動攻撃が普通なんですから、何の意味もありませんが?

> この他にも、ウェブサーバのセキュリティ向上のための情報がありましたら、ぜひ教えてください!

ここにある情報は全て無意味です。

手厳しいですね。
ただ僕も思いますが、、、

無意味です

この手のは、攻撃対象から外れるための対処ですからね

クリアケースの入ったリンゴとリンゴの絵が描かれた箱、どっちを狙うかっていう程度の

まぁ無意味ではないですけど、ほかにもやることは沢山あるでしょうね

たくさんの指摘、意見ありがとうございました。
タイトルの対してエントリの内容が薄すぎて申し訳ありませんでした。

もちろん、この対策だけではセキュリティ対策としては不十分なので、引き続きウノウでのセキュリティ対策について公開していきたいと思っています。

naoya氏へ。謝ることは無いと思いますよ。

>この手のは、攻撃対象から外れるための対処ですからね

攻撃対象から外れるための対処にすらなってませんが?

攻撃してみりゃ結果でわかるわけですから。
バージョンなんて見るまでもないわけで。

質問。
提供元(たとえばRedhat)からのパッチが当たってるPHPとパッチが当たってないPHPの差はバージョン番号から識別できますか?

> 攻撃対象から外れるための対処にすらなってませんが?

全世界のPCにすべての攻撃を仕掛けるクラッカーなんていないっしょ

リストを絞る際に脆弱性のあるバージョンと、バージョンが解らないサーバどっちを狙うの?

セキュリティって、無駄だと思えることでも少しでも意味があれば対策すべきだと思うんだけど

その積み重ねでしょ

>全世界のPCにすべての攻撃を仕掛けるクラッカーなんていないっしょ
クラッカー自身が作業するならそう思うでしょうね。
でも実際はワームがやるなら、そんな「無駄な」バージョン確認なんかせずに闇雲にやるでしょう。
時間もCPUも全部他人のものを利用しているので、攻撃者はちっとも疲れない。

わざわざ(デフォルトだけど)バージョン晒して攻撃者を誘うようなことはしないほうがいいと思うな。
こんな基本的なこともやっていないサイトと思われるよ。

つ【 5分でできる】

>こんな基本的なこともやっていないサイトと思われるよ。

とんでもない。バージョンは隠さないのがセキュリティ業界の常識です。
バージョンを隠していると、脆弱性パッチをあててないと思われてむしろexploitをつっこまれる。

> バージョンを隠していると、脆弱性パッチをあててないと思われてむしろexploitをつっこまれる。

古いバージョンをさらしているともっと確実ですね。

バージョン隠すのは御守り程度の効果だけど、
監査担当の会社によっては「何故隠さないのか」とツッコミが入るんだよなぁ。
それが面倒だから基本的に隠しちゃう。

コメントを投稿


画像の中に見える文字を入力してください。