たまに発生するPHPの脆弱性ですが、サーバで利用しているバージョンがレスポンスヘッダから分ってしまう事で攻撃の対象となってしまう事があります。
バージョンアップが一番の対策ですが、環境によってはすぐに対応が出来ない場合もあると思います。
隠して何とかなるものではないですが、ヘッダに含まれている事で分り易さ200%アップよりは出ていない方が攻撃とされることが少なくなるのではないかと思われます。
では、未対策の場合のレスポンスヘッダを見て見ます。
Connection Keep-Alive
Content-Type text/html; charset=UTF-8
Date Wed, 26 Jun 2013 03:47:57 GMT
Keep-Alive timeout=5, max=100
Server Apache/2.2.14 (Unix) mod_ssl/2.2.14 OpenSSL/0.9.8e-fips-rhel5 DAV/2
X-Powered-By PHP/5.3.23
これだけで、「あ、サーバはApacheの2.2.14でPHPは5.3.23なんだ」と言う情報が漏れています。
これらのバージョンに脆弱性がある場合には、恰好の獲物となってしまう可能性があります。
隠せるところは隠すと言う所で、設定を変更して行きます。
まずは、httpd.confの設定を変更します。
[shell]
vi /etc/httpd/conf/httpd.conf
[/shell]
変更する箇所は下記の部分です。
[shell]
# 変更前
ServerTokens OS
# 変更後
ServerTokens Prod
[/shell]
次に変更するのは、PHPの設定です。
php.iniを変更します。
[shell]
vi /etc/php.ini
[/shell]
変更する箇所は下記の部分です。
[shell]
# 変更前
expose_php = On
# 変更後
expose_php = Off
[/shell]
上記の2点の設定変更をしたら、Apacheの再起動をしましょう。
[shell]
/etc/init.d/httpd restart
[/shell]
再起動後にレスポンスヘッダを確認してみると違いが分ります。
Connection Keep-Alive
Content-Type text/html; charset=UTF-8
Date Wed, 26 Jun 2013 03:47:57 GMT
Keep-Alive timeout=5, max=100
Server Apache
Serverの項目については、Apacheのバージョンが表示されなくなりX-Powered-Byについては、項目自体が消えています。
こうする事で、多少のリスク軽減に繋がる・・・のではないかと思われます。
コメント