WordPress

xmlrpc.phpの使用している機能を把握してアクセス制限をかけよう

更新日:

WordPressはxmlrpc.phpという外部からWordpressを制御するプログラムが含まれています。
セキュリティーホールになることが多く攻撃対象として使われることも多くあります。

ただ、標準で備わっているということは、便利な機能の提供もしています。

そこで、「xmlrpc.php」を使用しているプラグイン・機能を紹介します。
ここに記載されている機能を使用していないのであれば「xmlrpc.php」アクセス制限をかけてしまうことを推奨します。

xmlrpc.phpを使用している機能・プラグイン

標準での機能
ピンバック機能
ピンバックとは参考にした記事のサイト管理者にリンクした事を通知する機能でトラックバックと同じような機能です。
スパム目的で通知するケースが多く最近は使用しない人が大半をしめます。
メールでの投稿
スマホの普及に従い現在は使っていない人が大半です。
アプリでの投稿(iPhone、Android)

利用している人もいますが、ブラウザで更新が出来るので必須の機能ではありません。
プラグイン
・jetpack

このプラグインを使用している場合、「xmlrpc.php」が使えることが前提になっているので制限するとプラグインが機能しなくなります。
制限する場合は慎重に検討しましょう。

攻撃に悪用される内容

実際に「xmlrpc.php」を悪用される内容を記述していきます。

ブルートフォースアタック

ブルートフォースアタックとはパスワード辞書を使用してログイン情報を特定するため、何回も辞書のパターンでログインを繰り返すアタックです。
「xmlrpc.php」は投稿等も行えるのでもちろんログイン認証が必要ですが、ここのログイン機能を悪用してアタックをかけてきます。
以下の実害が出ることが多くあります。
高負荷状態の継続

何度もログインを継続されるとサーバに大きな負荷がかかります。また最悪の場合サイトダウンにも繋がります。

サイト改ざん

アカウント情報が特定されてしまった場合にはサイトが改ざんされてしまうこともあります。

踏み台として使われる

「xmlrpc.php」は高機能なので踏み台にされてスパムメールの送信、DDOS攻撃に使用されてしまう場合もあります。

アクセス制限方法

.htaccessで制限

「.htaccess」が使用できる環境であれば以下の記述をしてアクセス制限をかけてしまうのをお勧めします。

<Files "xmlrpc.php">
order deny,allow
deny from all
</Files>

nginxで制限

nginxをお使いの方は以下の記述で制限出来ます。

location = /xmlrpc.php {
deny all;
}

プラグインで無効

プラグインで無効にする場合は「SiteGuard WP Plugin」を使用します。
設定方法は「XMLRPC防御」→「XMLRPC無効化」で設定出来ます。

  • この記事を書いた人
さすけ

さすけ

インフラ関連を中心に、仕事をしています。 最近はWeb開発の仕事も多いです。

-WordPress
-

Copyright© さすけのプログラミング入門 , 2018 All Rights Reserved.