自分のブログが乗っ取られるかも!? そう思ったら誰だって居ても立っても居られませんよね?
このブログはWordPressで運営しているんですが「WP Doctor」という無料サービスを使って脆弱性をチェックしてみました。
指摘されたのは計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カ所となります。
- readmeによるWordPressのバージョン漏洩問題
- サーバーのフルパス漏洩問題
- xmlrpc.phpへの総当たり攻撃問題
- ヘッダー出力(LINK)による情報漏洩問題
- ヘッダー出力(SERVER)による情報漏洩問題
- *****による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とパスワードを盗まれる怖れがありますよ、という意味なんですね。もちろんそんなの困ります。
対策としては、
- スマホから投稿することがあるので、敵のIPアドレスのみアセクスを禁止する。
- スマホからは投稿しないので、xmlrpc.phpへのアクセスを全面的に禁止する。
- スマホからは投稿しないので、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でブログを運営している人は、ぜひ一度、脆弱性をチェックしておきましょう!
コメント
まったく同じような結果が出て、
検索からたどり着きました。
大変参考になりました。
ありがとうございます。
調査中のところもぜひ知りたいです。
更新お待ちしております。
にゃるさん、コメントありがとう!
少しはお役に立でたようでよかったです(^^)
その後、調査中の項目について調べてみたんですが、
私のスキルでは、対策コードの書き方や、
最終的にどうするかの判断が難しいなと感じています。
ヘッダー出力(LINK)による情報漏洩問題
ヘッダー出力(SERVER)による情報漏洩問題
このまま放置しておくリスクは残りますが、
ひとまずは様子見という感じにしようかと思っています。
期待していたような答えができなくてスミマセンm(._.)m
何かいい案があったら教えて下さいね(^^;