01.24
xmlrpc.phpへのDoS攻撃
WordPressディレクトリ直下にxmlrpc.phpがあります。
xmlrpc.phpファイルはアプリなどのXML-RPCを使った更新機能として用意されています。
ただ、DDoS攻撃、ブルートフォースアタックの対象にされてしまうことがあり、対象にされている間はサーバの動作が重くなるか、もしくはアクセスできなくなります。
特定のIPアドレスから大量のアクセスがあったり、CPU使用率が高い場合は、DDoS攻撃やブルートフォースアタックの対象にされている可能性があります。
CPU31.5% POST /xmlrpc.php HTTP/1.1
xmlrpc.phpにPOSTしている行が大量にあれば今回の対応策にあてはまるので、Apacheのログがあるディレクトリに移動し、下記のようにgrepで検索しても良いでしょう。
grep "xmlrpc.php" access_log
緊急対応としてはxmlrpc.phpを削除するという方法もありますがxmlrpc.phpはWordPressをアップデートした時に復活してしまうので、中長期的には根本的な対応が必要です。
対応策は数多くありますが、ここで紹介する対応策はプラグインによる制限と、.htaccessファイルを使った制限です。
もしまだアタックを受けていないとしても、下記の対応はしておいた方が良いでしょう。
【対策1】
.htaccessファイルでxmlrpc.phpへのアクセスをリダイレクト
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
【対策2】
Disable XML-RPC Pingbackをインストール
Disable XML-RPC Pingbackプラグインを導入して、xmlrpc.phpへのアクセスを制限することもできます。
.htaccessファイルに設定していればこのプラグインは不要です。
Disable XML-RPC Pingbackプラグインを導入後、xmlrpc.phpページにアクセスすると次のようなメッセージが表示されます。
XML-RPC server accepts POST requests only.