WordPressでセキュリティアップに必要とされるXML-RPCの無効化について

公開日:2025(令和7)年3月3日/最終更新日:

WordPress Customize Ideas | Personal WP Customization Notes (PWCN)

【景品表示法に基づく表記】ページ内のコンテンツには、商品プロモーションが含まれています



WordPressでたびたびセキュリティ上のリスクがあるから無効にした方がいいと言われるXML-RPC。そもそもこれは外部のアプリからサイト内の編集をしたり、メールによる投稿を行ったりするために利用するもので、そうした機能が必要ないなら無効にしておいた方がいいという機能です。

最近出てきたREST APIと同じように何かのリクエストを外部から行って、サイト側から回答が返ってくるという仕組みなので、投稿の新規作成や編集といった操作だけでなく、ユーザーに関するリクエストなども存在するため、悪意を持った訪問者がこの機能を逆手にとってユーザー名やパスワードを類推しようとされてしまうことがあるのです。

上記の内容はあくまでも私が解釈している範囲で書いているものであり、認識の誤りがあるかもしれないことを前置きしておきます

さて、ではどうやってXML-RPCを無効にするのか、ということですが、これは多くのサイトが紹介されているように、以下の一行を有効化しているテーマのfunctions.phpへ追加するだけです。

add_filter( 'xmlrpc_enabled', '__return_false' );

ただこれにもいろいろな意見があって、これでOKというページもあれば、これでは無効にできていないと述べているページもあり、いったいどっちなの?と混乱すると思います。

結論から言えば、悪意を持ってパスワードなどを類推するようなリクエストは上記のコードで無効にできるということです。

これについては、公式リファレンスのapply_filters ( ‘xmlrpc_enabled’, ブール値 $is_enabled )でも認証を必要とする XML-RPC メソッドが有効になっているかどうかをフィルタリングするものだと書かれており、全部をブロックするわけではないことが分かります。

上記コードでXML-RPCが完全に無効になっていれば、「ドメイン/xmlrpc.php」へアクセスした時にアクセス拒否されるはずが「XML-RPC server accepts POST requests only.」というメッセージが表示され、無効になっていないように見えるため、前述のような混乱させるようなページも存在するのだと思われます。

そこでいろいろなページを見れば見るほど混乱するので、XML-RPCにおいて一体何を無効にすればログインセキュリティに対する安全性がより保てるのかをAIに聞いてみたところ文末のような回答があり、自身納得しました(興味のある方はページ末尾までご覧ください)。

このAIの回答を参考にすれば、HTTP POSTリクエストを使って悪意を持って情報を取得できる部分が閉じていれば(無効になっていれば)安全性が向上するということなので、コードを設置したら本当にそうなっているかをチェックするといいと思います。

チェックで有用なのは、「WordPress XML-RPC Validation Service」という外部サービスです。アクセスしたらサイトのURLを入れるだけで簡単にチェックでき、以下のようになっていればOKです。

WordPressでセキュリティアップに必要とされるXML-RPCの無効化について|Personal WP Customization Notes (PWCN)

私はセキュリティ関係のエキスパートではありませんので、本当に大丈夫かについてはご自身でじっくり調べてください

以下前述したAIによる回答です。

XML-RPCを使った不正行為の一般的な流れは、以下のようになります。

  1. 情報収集
    攻撃者はターゲットのWordPressサイトに関する情報を収集します。これには、次のような情報が含まれます:

サイトのURL
使用されているプラグインやテーマ
管理者のユーザー名

  1. ブルートフォース攻撃
    XML-RPCのwp_xmlrpc_serverを利用して、リモートからのログイン試行を行います。特に以下の方法で行われます:

system.multicallメソッドを使用し、同時に複数のログイン試行を行うことで、短時間で多くのパスワードを試すことが可能です。

  1. 成功したログイン
    攻撃者が正しい管理者のユーザー名とパスワードを見つけると、管理者としてサイトにログインできます。
  2. 不正な操作
    ログイン後、攻撃者は次のような不正な操作を行う可能性があります:

投稿の作成や削除
プラグインのインストールや削除
サイトの設定変更
マルウェアのアップロード

  1. サイトの悪用
    攻撃者はサイトを悪用して、以下のような行為を行うことがあります:

スパム投稿の作成
フィッシングサイトへのリダイレクト
他のサイトへの攻撃のためのボットネットとして利用
対策
XML-RPCを無効化することは、これらの攻撃を防ぐ有効な手段の一つです。他にも、以下の対策が有効です:

強力なパスワードの使用
二段階認証の導入
セキュリティプラグインの使用
定期的なバックアップとセキュリティチェック
この流れを理解することで、XML-RPCに関連するリスクを把握し、適切な対策を講じることができます。もし追加の質問があれば、遠慮なくお知らせください。



Lolipop ServerMoshimo Ad x-serverMoshimo Ad

WordPress Customize Ideas | Personal WP Customization Notes (PWCN)
ログイン画面に計算問題認証機能を追加する方法(プラグインなし)