WordPressのxmlrpc.phpはウェブサイト攻撃の「踏み台」に使われているそうです。
WordPressの16万サイトが大規模攻撃の踏み台に、「Pingback」機能悪用
私の手持ちサイトも妙な不正アクセスが発生して、参りました。
xmlrpc.phpにはリンクが張られたことを通知する機能があります。
これを「Pinback」と呼びます。
自分が何の悪意も無くとも、このPinbackの仕組みを使って他のサイトを攻撃する「踏み台」に使われかねません。
xmlrpc.phpを削除してもWordPress本体のバージョンアップで復活してしまいます。
なのでxmlrpc.phpそのものを無効にしておきましょう。
ちなみにxmlrpc.phpを無効にすると、メールアドレスを送信して記事投稿する機能も失われます。
functions.phpを書き換える必要があります。
以下の記述をfunctions.phpに追加します。
add_filter(‘xmlrpc_enabled’, ‘__return_false’);
xmlrpcを無効にするプラグインもありますが、
Disable XML-RPC Pingback
このプラグインを利用する場合は、GETにしか対応してないので、POSTで攻撃されると効果が無いとのこと。
GETメソッドはURLにパラメータが付く送信方法。
POSTメソッドはURLにパラメータが付かない送信方法とのことですが、私も詳しくはわかりません。
ちなみにこのプラグインで以下の記述がfunctions.phpに追加されるとのこと。
add_filter( ‘xmlrpc_methods’, ‘Remove_Pingback_Method’ );
function Remove_Pingback_Method( $methods ) {
unset( $methods[‘pingback.ping’] );
unset( $methods[‘pingback.extensions.getPingbacks’] );
return $methods;
}
.htaccessで無効化する方法もありますが、
<Files xmlrpc.php>
Deny from all
</Files>
この場合は攻撃者が諦めない内はサーバー負荷は続くらしいです。
最も負荷がかからないのは以下の方法とのこと。
wordpressのxmlrpc.phpに対するブルートフォースアタックを防ぐ
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^xmlrpc\.php$ “http\:\/\/0\.0\.0\.0\/” [R=301,L]
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
7
RewriteCond %{REQUEST_FILENAME} !-d
8
RewriteRule . /index.php [L]
</IfModule>
xmlrpc.phpにアクセスすると自動的に「http://0.0.0.0/」にリダイレクトします。
にほんブログ村
Tweet
この記事のショートリンク