WordPressのセキュリティ対策として、xmlrpc.phpを無効化する方法をまとめました。
xmlrpc.phpファイルとは
xmlrpc.phpファイルは、XML-RPCと呼ばれる遠隔からWordPressのシステムと通信できる機能をもつプログラムです。
「スマホアプリからのリモート投稿」「ピンバック」「トラックバック」に使用されます。
しかしながら、DoS攻撃に悪用されてしまう可能性があるため、リモート投稿等することがなければ、無効することがおすすめです。
ちなみに、XML-RPC後発で同じく遠隔通信機能をもつREST APIというものがあり、最近のスマホアプリはRESTAPIを使用するものが増えてきていますが、こちらも特に使用しないのであれば無効化しておくのが無難です。
ピンバックを悪用したDDoS攻撃
ピンバック(トラックバック)は他のサイトから被リンクが発生したときに通知する機能です。
つまり、他のサイト上で自分のサイトのURLが貼られたことをがわかる便利機能ですが、DDos攻撃の踏み台に悪用される恐れがあります。
XML-RPCを利用したブルートフォースアタック
XML-RPCに対して適当なログイン情報(ユーザー名・パスワード)を投げ続けて、ログインできる情報を不正に入手しようとする事例がありました。
ブルートフォースアタックとは、すべての組み合わせを試してユーザー名やパスワード等の情報を得ようとする攻撃です。総当たり攻撃とも呼ばれます。
XML-RPCが有効になっているか確認
「xmlrpc.php」ファイルにブラウザで直接アクセスすることで確認できます。
「サイトURL/xmlrpc.php」にアクセスし、もし「XML-RPC server accepts POST requests only. 」と表示されていれば有効化されている状態です。
「Forbidden」や「403サーバーエラー」と表示されていれば無効になっています。
本ブログもWordPressで作られていますが、「https://linux.joho.info/xmlrpc.php」にアクセスすると「**403サーバーエラー**」が表示され、無効化でされていることがわかります。
なお、xmlrpc.phpファイル自体を削除する方法は、WordPressの本体のバージョンアップをしたときに削除したファイルが復活してしまうため、あまり意味がありません。
XML-RPCを無効化する方法(SiteGuard WP Pluginを利用)
SiteGuard WP Pluginは、WordPressはセキュリティを強化するプラグインです。
XML-RPC無効化だけでなく、ログイン画面のURLを変更したり、ログイン履歴を保存したり、ログイン時にメール通知するなどの機能があります。
SiteGuard WP Pluginをインストール後、管理画面の左サイドメニューに「SiteGuard」と表示されるのでクリックします。
「XMCRPC防御」という項目があるので、クリックして「XMCRPC無効化」を選択し、「変更を保存」をクリックします。
「サイトURL/xmlrpc.php」にアクセスし、「Forbidden」や「403サーバーエラー」と表示されていれば無効化成功です。
XML-RPCを無効化する方法(htaccessファイルを直接編集・・・上級者向け)
プラグインを利用せずにXML-RPCを無効化するには「.htaccess」を編集する方法があります。
ただし、「.htaccess」は編集に失敗するとサイトが見れなくなったりするので、「.htaccess」ファイルとはなんぞや?という人は素直にSiteGuard WP Pluginなどのプラグインを利用するのがおすすめです。
自身がないけどやってみたいという人は編集前にバックアップを取っておきましょう。
htaccessファイルでXMLRPCを無効化する場合は、以下を記述します。
WordPressのインストールしたディレクトリの直下に「.htaccess」がある場合、以下を追記します。
<Files xmlrpc.php> Order Deny,Allow Deny from All </Files>
上記は、すべての人に対してxmlrpc.phpへのアクセスを拒否するという設定です。
もし、htaccessファイルがない場合は、隠しファイルが見れない状態の可能性があります。
利用しているFTPソフトの設定を見直し、隠しファイルが見れる状態にしてみましょう。
本当にhtaccessファイルがない場合は、WordPress管理画面の「設定」→「パーマリンク」にある「変更を保存」ボタンを押すと生成されます。
コメント