web-dev-qa-db-ja.com

wp.​​getUsersBlogs XMLRPCのブルートフォース攻撃/脆弱性

休日の週末以降、私が管理している大規模なサイトの1つが、ブルートフォース攻撃を受けました。攻撃者はwp.getUsersBlogs関数と一般的なユーザー名とパスワードのリストを使用しようとしていました。ちょっと調べてみると、試みが成功した後、この関数はユーザーが管理者であるかどうかにかかわらず戻ることがわかります。

セキュリティの一部としてIPブラックリストクラウドプラグインを使用して攻撃を記録しましたが、この攻撃方法では通常のログイン方法を使用していないため、実際のブラックリストは発生しません。いずれにしても、攻撃者は新しいIP(これまでに合計15000以上のIP)を使用したため(2回目の攻撃で20,000以上)、これはいずれにしても役に立ちません。

XML-RPC(API)を完全に無効にするプラグインを見つけましたが、それが他の問題を引き起こさないかどうかはわかりません。これは地方自治体のためのライブウェブサイトです、従って私はあまり実験する余裕がありません。

これは、IP Blacklist Cloudにログインした例です。

"1.0" encoding = "iso-8859-1"?> wp.getUsersBlogsusernamepassword

usernamepassword は、一般的なユーザー名とパスワードの巨大なリストからのものに置き換えられます。

この攻撃は人気が高まっているように思われるので、それがさらに解決策を生み出すことを願っています。

更新20140728:

もう1つの私のサイトが週末にこの攻撃の犠牲となった。これまでのところ強力なパスワードによって私の安全は守られていますが、それ以外の人はそれほど幸運ではないかもしれません。私は上記の解決策を試していますが、それは私が今まで見つけた中で最高の解決策のようです。

より多くの研究へのリンク:

WordPress XML RPC用のAPI http://codex.wordpress.org/XML-RPC_WordPress_API

これまでのところ最も侵入型の解決策 http://www.cryptobells.com/more-wordpress-xmlrpc-brute-force-attacks/ /

WordPressサポートフォーラム http://wordpress.org/support/topic/recent-new-xmlrpcphp-brute-force-password-guessing-attack-details

4
KnightHawk

これは、攻撃されている単一の機能のみを無効にするため、私が見つけることができる最も具体的な解決策です。

functions.php:

function Remove_Unneeded_XMLRPC( $methods ) {
    unset( $methods['wp.getUsersBlogs'] );
    return $methods;
}
add_filter( 'xmlrpc_methods', 'Remove_Unneeded_XMLRPC' );

http://www.cryptobells.com/more-wordpress-xmlrpc-brute-force-attacks/

より広範な解決策として、 "Disable XML-RPC"と呼ばれるWordPressプラグインがあります。これは正確にそれを行い、XML-RPC機能全体を無効にします。

1
KnightHawk