www.morihi-soc.net

誰もが安心して使える、安全なインターネットを目指して

WordPress の Pingback 対策

WordPress の Pingback を悪用した攻撃が流行っているようです.

参考

More Than 162,000 WordPress Sites Used for Distributed Denial of Service Attack

DoSの踏み台にされているJPドメインのWordPressをまとめてみた

もし WordPress ユーザで,Pingback を利用していない人は,次の方法で Pingback が悪用されないように対策しておきましょう.

  • xmlrpc.php へのアクセス制限をする.(.htaccess 等で原則アクセス拒否し,指定の IP アドレスのみ許可する)
  • 「Disable XML-RPC Pingback」プラグインを追加して,pingback に関するメソッドを無効化する.

Pingback 機能は XML-RPC の中の1つの API として提供されています.Pingback 先としては,HTTP ヘッダの X-Pingback というヘッダに XML-RPC へのアクセス先が含まれます.

(WordPress の場合は xmlrpc.php が指定されていることが多い)

 

WordPress を利用している人は,この X-Pingback ヘッダのファイルにアクセスできるかどうか確認してみてはいかがでしょうか.

ブラウザでアクセスできる場合は次のようなメッセージが表示されると思います.

ブラウザで,xmlrpc.php にアクセスしたときのレスポンス例↓


XML-RPC server accepts POST requests only.

この Pingback 機能を悪用した外部サイトに対する DoS 攻撃という手法の有効性については不明ですが(*1),第三者により勝手に外部サイトへアクセスされるのは気持ち悪いです.詳細な攻撃方法については省略します.

さて対策方法ですが,XML-RPC API の利用有無によって変わります.

ブログ記事のリモート投稿やその他の API を利用しないなど,そもそも XML-RPC API を提供する xmlrpc.php に対するアクセスが必要無いのであれば,アクセス制限してしまいましょう.

例えば,.htaccess ファイルに下記のような記述をします.

<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>

※もし xmlrpc.php に対してアクセスを許可したい IP アドレスがある場合は,Deny 行の次に Allow を追加し特定の IP アドレスのみ許可しておきましょう.

 

XML-RPC API を利用している場合や,.htaccess の設置などが自由にできない場合などは WordPress のプラグインを利用して,Pingback 機能を無効化することができます.

Pingback 機能を無効化するプラグイン:Disable XML-RPC Pingback

http://wordpress.org/plugins/disable-xml-rpc-pingback/

利用する手順は以下のとおりです.

  1. プラグインのファイル(disable-xml-rpc-pingback.1.0.zip)をダウンロードする.
  2. zip ファイルを展開する.
  3. disable-xml-rpc-pingback.php を WordPress の /wp-content/plugins ディレクトリにアップロードする.
  4. WordPress に管理者権限のアカウントでログインし,プラグインの管理項目から,「Disable XML-RPC Pingback」を有効化する.

 

これで Pingback の対策は完了です.

なお上記の対策をしても,HTTP ヘッダに X-Pingback のヘッダは入ってしまいます.

この X-Pingback ヘッダも表示させたくない場合は,利用しているテーマの functions.php に次を追加します.

function remove_x_pingback($headers) {
unset($headers[‘X-Pingback’]);
return $headers;
}
add_filter(‘wp_headers’, ‘remove_x_pingback’);

 

以上で,WordPress の Pingback 機能を悪用した攻撃は防げるようになったと思います.

なお Pingback 機能自体は利用している XML-RPC の API として実装されているかどうかに依存すると思いますので,Movable Type のようなその他の CMS や自作の XML-RPC API を利用している人は,個別に対策をしてください.

 

*1 個人的にこの攻撃は本当に DoS になるのか疑問視しています.大量アクセスするのに効率が良くない気がする.DNS/NTP amp のように増幅率が高いわけでもないし(´・ω・)??

Written by 森久

3月 31st, 2014 at 7:37 pm

Posted in Security