WordPressでやってるブログの脆弱性をチェックしてみた

ブログ運営

自分のブログが乗っ取られるかも!? そう思ったら誰だって居ても立っても居られませんよね?

このブログはWordPressで運営しているんですが「WP Doctor」という無料サービスを使って脆弱性をチェックしてみました。

WP Doctor – WordPress(ワードプレス)脆弱性診断 セキュリティースキャナ

スポンサーリンク

指摘されたのは計6カ所

診断結果は6秒ぐらいで出ました。内容は以下の通りです。

ワードプレス脆弱性検査結果レポート

URL: https://worpaholic.com/
検査日Mon Sep 23 10:27:54 2019

 [要緊急対応] ‘https://worpaholic.com/readme.html’ がワードプレスのバージョンを漏洩しています
 [要緊急対応] サーバーのフルパスが右のファイルによって漏洩しています ‘https://****.php’
[注意]ヘッダー出力(情報漏洩の可能性) : LINK: ; rel=”https://api.w.org/”
[注意]ヘッダー出力(情報漏洩の可能性) : SERVER: nginx
[注意]XML-RPCによるブルートフォースアタックを受ける可能性があります https://worpaholic.com/xmlrpc.php

ワードプレス本体検査 バージョン:*.*.*

*****よりバージョンを取得しました

プラグインの検査結果

脆弱性のあるプラグインは、見つかりませんでした

検査終了 Mon Sep 23 10:28:00 2019
ワードプレスのメモリ使用量 166.09 MB
検査時間 00:00:06

以上の内容をまとめると、今回指摘された脆弱性は以下の6カ所となります。

  1. readmeによるWordPressのバージョン漏洩問題
  2. サーバーのフルパス漏洩問題
  3. xmlrpc.phpへの総当たり攻撃問題
  4. ヘッダー出力(LINK)による情報漏洩問題
  5. ヘッダー出力(SERVER)による情報漏洩問題
  6. *****によるWordPressのバージョン漏洩問題

結構ありますね…。

こうした脆弱性をすべてなくすことはできるのか? ひとつずつ見て行きましょう。

readmeによるバージョン漏洩問題→解決

実際にブラウザでreadme.htmlを開き、内容を目視で確認してみましたが、WordPressのバージョンはどこにも記述されていません。どうやらWordPressのバージョンは「4」あたりからreadme.htmlに記述されなくなったみたいですね。

だったらこのままにしておこうかな? とも考えましたが、念のためreadme.htmlを削除することにしました。

結果、WP Doctorの警告は消えました。ホッ。まずはこれで一安心。ちなみに今は、readme.htmlを開こうとすると「404 File Not Found」が出て見られませんよ。

サーバーのフルパス漏洩問題→解決

詳細は書けませんが、https://****.phpを実行しようとしたら以下のエラーが出ました。

Fatal error: Uncaught Error: Call to undefined function _deprecated_file() in /***.php:8 Stack trace: #0 {main} thrown in /***.php on line 8

この「/***.php」の部分にサーバーのフルパスが書いてあって、ディレクトリ構造がモロバレなんですね。

オレがお世話になっている「スターサーバー」というレンタルサーバーでは、コントロールパネルからPHPの設定を自分で変更できます。

「php.ini」の設定項目のうち「display_errors」が「on」になっていたので、これを「off」に変更したら、WP Doctorの警告は無事消えました。

ちなみに今は、https://****.phpを実行しようとすると以下のエラーが表示されます。

このページは動作していません

worpaholic.com では現在このリクエストを処理できません。

HTTP ERROR 500

xmlrpc.phpへの総当たり攻撃問題→解決

https://worpaholic.com/xmlrpc.phpについて「XML-RPCによるブルートフォースアタックを受ける可能性があります」というエラーが出ました。

これは、WordPressが備えているスマホから投稿するプログラムを悪用し、総当たり攻撃によってログインIDとパスワードを盗まれる怖れがありますよ、という意味なんですね。もちろんそんなの困ります。

対策としては、

  1. スマホから投稿することがあるので、敵のIPアドレスのみアセクスを禁止する。
  2. スマホからは投稿しないので、xmlrpc.phpへのアクセスを全面的に禁止する。
  3. スマホからは投稿しないので、xmlrpc.phpへのアセクスを別ページへリダイレクトする。

の3通りがあるようです。オレはスマホからは投稿しませんし、コードが短くて済む「2」を選択しました。サーバー負荷の件はよく分かりませんww

具体的には「.htaccess」というファイルに以下のコードを追加しただけです。簡単でしょ?

<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>

今は、xmlrpc.phpへアクセスしようとすると、上の画像のように「403 Forbidden」エラーが表示されます。

ちなみにWebサーバーはnginxです。1行目のコードは<Files “xmlrpc.php”>ではなく<Files xmlrpc.php>のように記述したらうまく行きましたよ。ネットにはよく<Files “xmlrpc.php”>と書いてあるんですわ。

ヘッダー出力(LINK)による情報漏洩問題→調査中

ヘッダー出力(SERVER)による情報漏洩問題→調査中

*****によるバージョン漏洩問題→調査中

ブラウザで*****を表示したら、WordPressのバージョンがしっかり表示されていました(^^;; 何のことか? 鋭い人にはバレバレですね…。

終わりのない闘いは続く

残念ながらこのブログ、脆弱性はまだ完全に排除できていません。今後も継続して対策するつもりです。あんまりイジメないで下さいね。

WordPressでブログを運営している人は、ぜひ一度、脆弱性をチェックしておきましょう!

コメント

タイトルとURLをコピーしました