なぜ私のWordPressが狙われるのか?xmlrpc.php編


2月頃から私のWordPressにログインできない、表示できないということが発生。

これまでサーバー周りは勉強したことがなかったのでなかなか原因が特定できず、ネットの諸先輩方の情報を基にやっと、最近になって「海外からの異常アクセスがあった」ということが判明。

「異常なアクセス」とは、「通常の閲覧(訪問)ではなく、存在しないページを表示しようと短時間で試みるアクセス」のことと私は定義します。その理由は、私が利用しているレンタルサーバーでは「異常なアクセス」に関するログ(履歴)は自動で残るようになっているからです。それに対し、閲覧だけの一般の訪問者の方のログは残りません。

難解なので1つずつ解決するために、その「異常なアクセスのログ」の中から一つ「xmlrpc.php」を取り上げます。

 

一例

/home/byte/www/xmlrpc.php’ not found or unable to stat

not found なのでサーバーのステータスコードでいえば HTTP 404。後半の unable to stat は固定メッセージの模様

 

WordPressに標準装備されている「メールからの記事投稿機能」のためにあるのが「xmlrpc.php」ファイルだそうです。この「メールからの投稿」を使う人は現状のままで使うしかありません。

ですが、私のように「メールからの投稿をしない」そして「異常なアクセスを少しでも減らしたい人」は次の方法があるそうです。


参考元、謝辞:リズムファクトリー様「XMLRPC.PHPにDOS攻撃を受けた時の対処法」

https://rfs.jp/sb/wordpress/wp-lab/xmlrpc-php-ddos.html


上記より

・xmlrpc.phpがあると、DDos攻撃(wikipedia)や総当たり攻撃(wikipedia)の対象にされる

・そのページの複数の対処法から私は「xmlrpc.php にアクセスしてきたら、存在しないサイト 0.0.0.0 に飛ばす」方法にしました。

 

この一文

RewriteRule ^xmlrpc\.php$ "http\:\/\/0\.0\.0\.0\/" [R=301,L]

を、WordPressのあるフォルダ内の .htaccessファイル の下記の部分に追加する。

補足)

・ ” は半角です。全角だと機能しません。コピペ時にご注意下さい

・ここでは \ ですが実際は ¥です。文字コードによるもので意識する必要はありません。


記述例

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^xmlrpc\.php$ "http\:\/\/0\.0\.0\.0\/" [R=301,L] # twindrive
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

※” # twindrive”(# 私の名)はなくても良いです。独自に追記した文であることを明示しただけです

実際に挿入した画面 タップ(クリック)で拡大します。

 


試しに

https://私のWordPressのアドレス/xmlrpc.php

https://byte.sakura.ne.jp/twindrive/xmlrpc.php

に Microsoft-Edge でアクセスすると下のような画面になりました。

タップ(クリック)で拡大します。

 


一方で、私のWordPressでどこの国のどの企業からの異常アクセスが最も多いのか?

中国

で、企業名としては

ALISOFT

で、wikipediaによれば中国のアリババグループの企業だそうです。

 

私の推測ではアリババクラウドコンピューティングを使っている可能性があるので、犯人が「中国の企業、中国人」とは言い切れません。

その理由はそのクラウドを使えば他国、他者でも可能だからです。