KUSANAGI専用プラグイン 1.3.8 セキュリティ機能強化アップデート詳説

大曲仁

4/15(火)にリリースされたKUSANAGI専用プラグイン1.3.8では、下記2点のセキュリティを強化する機能を追加しています。

  1. XML-RPCのアクセス制限
  2. WP REST API usersエンドポイントの無効化

これに伴い管理画面では「セキュリティ」タブが追加され、この機能に関する設定変更が可能となっています。
基本的に、追加された2機能については、デフォルトで機能を無効化する設定となっていますので、プラグインのアップデートを行った場合は、運用に影響がないか確認してください。

WordPressにおけるXML-RPC

XML-RPCは、他のシステムからアプリケーションを操作するための規格であり、WordPressもこの規格をサポートしています。
WordPressのXML-RPCは、xmlrpc.phpを介して行われ、投稿・ページやカテゴリー、コメント、ユーザーの追加、編集に加え、設定の変更も可能な仕様となっています。
ログイン画面である wp-login.php はユーザーの目に止まりやすく、保護するという意識もはたらくのですが、xmlrpc.phpは普段目にすることもなく、またその存在を知らずに利用されている方も多いはずです。
このため、xmlrpc.phpに意識が向かずに対応がおろそかになっているケースもあり、このような背景から、WordPressへの攻撃者は、普通のログイン画面よりもxmlrpc.phpを狙ってくるケースが多くなっています。

xmlrpc.php への攻撃リクエスト例
0.000 - - xxx.xxx.xxx.xxx - - [17/Apr/2025:05:21:31 +0900] "POST /xmlrpc.php HTTP/1.1" 403 117 "-" "python-requests/2.32.3" "-"
0.001 - - xxx.xxx.xxx.xxx - - [17/Apr/2025:05:21:32 +0900] "POST /xmlrpc.php HTTP/1.1" 403 117 "-" "python-requests/2.32.3" "-"
0.000 - - xxx.xxx.xxx.xxx - - [17/Apr/2025:05:21:32 +0900] "POST /xmlrpc.php HTTP/1.1" 403 117 "-" "python-requests/2.32.3" "-"
0.001 - - xxx.xxx.xxx.xxx - - [17/Apr/2025:05:21:33 +0900] "POST /xmlrpc.php HTTP/1.1" 403 117 "-" "python-requests/2.32.3" "-"
0.000 - - xxx.xxx.xxx.xxx - - [17/Apr/2025:05:21:33 +0900] "POST /xmlrpc.php HTTP/1.1" 403 117 "-" "python-requests/2.32.3" "-"
0.000 - - xxx.xxx.xxx.xxx - - [17/Apr/2025:05:21:34 +0900] "POST /xmlrpc.php HTTP/1.1" 403 117 "-" "python-requests/2.32.3" "-"
0.000 - - xxx.xxx.xxx.xxx - - [17/Apr/2025:05:21:34 +0900] "POST /xmlrpc.php HTTP/1.1" 403 117 "-" "python-requests/2.32.3" "-"
0.001 - - xxx.xxx.xxx.xxx - - [17/Apr/2025:05:21:35 +0900] "POST /xmlrpc.php HTTP/1.1" 403 117 "-" "python-requests/2.32.3" "-"
0.000 - - xxx.xxx.xxx.xxx - - [17/Apr/2025:05:21:35 +0900] "POST /xmlrpc.php HTTP/1.1" 403 117 "-" "python-requests/2.32.3" "-"
0.000 - - xxx.xxx.xxx.xxx - - [17/Apr/2025:05:21:36 +0900] "POST /xmlrpc.php HTTP/1.1" 403 117 "-" "python-requests/2.32.3" "-"

WP REST API のusersエンドポイント

制限されていないサイトにおいては、/wp-json/wp/v2/users へのリクエストを行うと、登録されているユーザーの一覧が表示されるようになっています。
ここで露見する情報は、必ずしもログインIDと一致するわけではありません1が、しばしばセキュリティ検査で指摘されるポイントでもあるため、秘匿しておいたほうが良いことには代わりありません。

  1. ログインIDにURLでは使用できない文字を使うとスラッグは代替文字となります。また、ユーザーのスラッグを編集できるプラグインを利用することで一致を防ぐことも可能です。 ↩︎

XML-RPC、WP REST API usersエンドポイントを利用するには

「セキュリティ」タブの各チェックを外して設定を変更すれば、XML-RPC、WP REST API usersエンドポイントともに利用できるようになります。

マルチサイト機能を利用している場合は、少し注意が必要となります。
マルチサイトの場合は、サイトネットワークの管理画面と各サイトの管理画面のいずれにも設定画面が表示されますが、サイトネットワークの管理画面で無効化の設定が行われている場合は、全サイトで強制的に無効となります。
サイト個別に有効化する場合は、サイトネットワーク管理画面での無効化は行わず、各サイトの管理画面で無効化のチェックを外してください。

KUSANAGI専用プラグインのアップデート方法

KUSANAGI専用プラグインをアップデートするには、プラグインがふくまれているKUSANAGIのモジュールをアップデートを行った後に、KUSANAGI コマンドで各プロファイルのプラグインをアップデートする必要があります。

モジュールのアップデートは、サーバのコンソールで下記コマンドを実行します。

# dnf upgrade kusanagi kusanagi-wp-plugins

各プロファイルのプラグインをアップデートするには、モジュールのアップデート完了後に下記コマンドを実行してください。

# kusanagi update plugin プロファイル

kusanagi update plugin コマンドについては、公式ドキュメントに詳細な解説も掲載していますので、不明な点がある場合にはあわせて確認してください。

update plugin
https://kusanagi.tokyo/document/commands/update-plugin

また、KUSANAGI専用プラグインには自動更新の制御や高速化などの機能が搭載されています。詳しい機能や利用方法については公式ドキュメントを参照してください。
KUSANAGI 専用プラグイン : https://kusanagi.tokyo/document/kusanagi-plugin/

<< KUSANAGIプラグインでWordPressプラグイン、テーマ自動更新を制御する方法

関連記事

Webサイト運用の課題解決事例100選 プレゼント

Webサイト運用の課題を弊社プロダクトで解決したお客様にインタビュー取材を行い、100の事例を108ページに及ぶ事例集としてまとめました。

・100事例のWebサイト運用の課題と解決手法、解決後の直接、間接的効果がわかる

・情報通信、 IT、金融、メディア、官公庁、学校などの業種ごとに事例を確認できる

・特集では1社の事例を3ページに渡り背景からシステム構成まで詳解