Detectifyというサイトがあって、無料で脆弱性のチェックをしてくれる。
登録の仕方等の使い方は、こちら「あなたのWebサイトの脆弱性を調査してくれるサービス『Detectify』」が詳しい。
Scan Startして3日ほどで結果を返してくれる。
試しにうちで管理しているサイトのひとつを調べて見たら、以下のような結果に。
0 Exploits Found / 24 Warnings Found / 222 Notices Found
危ない(Exploits)はゼロでよかったが、注意(Warnings)が24もあるのは気になる。
今日はこれをつぶしていこう。
- PHP Easter Egg
URLの最後に「?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000」これを付けると、phpinfo()が表示されてしまうという、ちょっとしたTips。設定ファイルとか、なんのLIBが有効かなどがわかると侵入者に手がかりを与えかねないのでこれはふさいでおこう。
「/etc/php5/apache2/php.ini」に「expose_php = On」があるので、これを Offにして完了。 - Operating System Disclosure
ApacheのレスポンスにOSが出ているよという警告。これも隠しておこう。
「/etc/apache2/conf.d/security」の「ServerTokens Prod」と「ServerSignature Off」で Serverは「Apache」だけになる。 - Directory Listing
ディレクトリ一覧(ファイル一覧)が見えてるところがあるよという警告。これはつぶしておく。
「/etc/apache2/conf.d/security」に「Options Includes ExecCGI FollowSymLinks」を追加。
これ自体は、CGIとシンボリックリンクの許可だが、明示的に Optionsを指定することで「Indexes」(ファイル一覧)を禁止することになる。 - Cookie not HttpOnly
HttpOnlyクッキーにしないと、javascript等から読みだされてしまうよということなんですが、変更したときの影響がよくわからないので、ペンディング。 - Input AutoComplete
オートコンプリートが Onになっていると危ないよという指摘だが、これは使い勝手とのトレードオフになるので、このまま放置。 - Unencrypted Login
WordPressのログイン画面が httpなので、これをSSL(https)にしなさいという指示。
wp-config.phpに「define(‘FORCE_SSL_LOGIN’, true);」を追加するだけでできるのだが、SSL証明書を用意したり、他のお客様(マルチドメインで運用しているので)への影響を考えてペンディング。