先日、ある情報セキュリティ関連の会社がラボを開設したことを発表しました。
そのラボにおける活動の第一弾として、『日本国内におけるWordPressセキュリティの現状』の分析レポートが公開されています。
皆さん、こんにちは。
業務改善を行うIT・業務コンサルタント、高橋です。
冒頭に書いたラボが公開した分析レポートにおいて、WordPressへの攻撃(検出箇所)として以下のものが最多として書かれていましたのでご紹介します。
WordPressへの攻撃で最多のものとは
WordPressへの攻撃(検出箇所)で検出が最も多かったものは、『xmlrpc.php』というものです。
『XML-RPC』というのは、遠隔での呼出しを行うプロトコルの一種で、WordPressで言えば、通常の管理画面以外からの投稿を可能にするものです。
WordPressの場合、スマホアプリなどのXML-RPCを使った更新にも対応しているため、xmlrpc.phpというファイルが用意されています。
これが使用可能になっているとどうなるのか?
xmlrpc.phpをターゲットとしたDDoS攻撃などの被害に遭う可能性があり、それを受けた際にはサーバが高負荷状態でパンクしてしまうことにもなります。
つまり、アクセスできない状態にされてしまう恐れがあるということです。
では、これを避けるための対策法はどのようにすれば良いのか?
xmlrpc.phpファイルへの攻撃の対処法
WordPress3.5未満においては管理画面の投稿設定にxmlrpcを無効にするチェックボックスがあったのですが、WordPress3.5以降のバージョンではそれがなく(現在の最新は4.9.4)、デフォルトで有効な状態にあります。
その場合、一番簡単な方法は『.htaccess』でxmlrpc.phpへのアクセスを禁止してしまう方法です。
<Files xmlrpc.php>
Order allow,deny
Deny from all
</files>
と、記述を追加すればOKです。
どうしても特定のIPアドレスからのみ許可をしたい場合、
<Files xmlrpc.php>
Order allow,deny
Deny from all
Allow from xxx.xxx.xxx.xxx
</files>
と、赤字の部分を加えればOKです。
これ以外に、多少サーバへの負荷が残るものを考慮したいのであれば以下の方法が良いです。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^xmlrpc\.php$ “http\:\/\/0\.0\.0\.0\/” [R=301,L]
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
というように、WordPressで.htaccessに設定される記述に赤字の部分を追加し、xmlrpc.phpへのアクセスを0.0.0.0にリダイレクトさせてしまう方法もあります。
ちなみに、プラグインを使って無効化する方法もありますが、プラグインそのものに脆弱性が見つかることもあるためお勧めではありません。