Home » スタッフBlog » Apacheの基本的なセキュリティ設定について

Apacheの基本的なセキュリティ設定について

category : スタッフBlog 2017.7.3 

技術部の久保田です。

クラウド環境の成長に伴い、さまざまなWebアプリケーションがクラウド環境へ移行している昨今、単純にサーバ環境だけを移行すると思わぬ落とし穴があったりします。
その一つに「セキュリティ対策」が挙げられますが、ここではApache+PHPのアプリケーションを例に、Apache設定ファイル(httpd.confなど)の基本的なセキュリティの設定を調べてみました。

1.バージョン情報は隠蔽されているか?
Apacheのバージョン、OS、PHPのバージョンなど利用者に不必要な情報は出力しないようにしましょう。
ServerTokens Prod
ServerSignature Off
Header unset X-Powered-By

2.クロスサイトスクリプティング(XSS)対策
「X-XSS-Protection」はブラウザ側のXSSフィルタリング機能を強制的に有効化し、
「X-Content-Type-Options」はIEのContent-Type無視問題に対応します。
Header set X-XSS-Protection “1; mode=block”
Header set X-Content-Type-Options nosniff

3.クリックジャッキング対策
SAMEORIGINを指定することで、同一サイト内の iframe でのみ、読み込みを許可します。
古い情報ですが、IPAが2013年に行った調査では、X-Frame-Optionsが付与されているWebサイトは56サイトの内、わずか3サイトのみだったとか。。
Header append X-Frame-Options SAMEORIGIN

4.DoS 攻撃対策
「LimitRequestBody」はリクエストボディの最大Byte数の制限ができます。
「LimitRequestFields」はHTTP リクエストで許可するリクエストヘッダフィールド数の制限ができます。
LimitRequestBody 10485760
LimitRequestFields 20

5.DoS攻撃 (slowloris) 対策
リクエスト受信開始からリクエストヘッダー受信完了までのタイムアウト時間、リクエストボディーの受信開始から完了までのタイムアウト時間を設定できます。
以下の例では、リクエストヘッダ受信完了まで20秒、500byte受け取るごとに1秒延長(ただし40秒まで)、
リクエストボディ受信完了まで20秒、500byte受け取るごとに上限なしに1秒延長、となります。
LoadModule reqtimeout_module modules/mod_reqtimeout.so
RequestReadTimeout header=20-40,MinRate=500
RequestReadTimeout body=10,MinRate=500

6.HTTPoxy対策
中間者攻撃が可能となるHTTPoxyの対策として、Proxy ヘッダを拒否します。
RequestHeader unset Proxy

他にもまだ設定する項目はあるかと思いますが、とりあえず基本的な部分として、上記を挙げさせていただきました。簡単な説明で恐縮ですが、是非、それぞれのキーワードで検索してみてください。
何が問題で、どのように対策することができるか、まずは知ることがセキュリティ対策の第一歩となるのではないかと思います。

タグ

サイト内検索

Copyright(c) 2017 IT-TERA All Rights Reserved.