fbpx

メニュー

WordPressのxmlrpc.phpへのブルートフォースを防ぐ

高橋文樹 高橋文樹

この投稿は 8年半 前に公開されました。いまではもう無効になった内容を含んでいるかもしれないことをご了承ください。

たぶん、ここ一週間ぐらいだと思うんですけど、WordPressのXML-RPCエンドポイントへのブルートフォース攻撃が多くないですか? 僕がEC2でホスティングしているWordPressは全部やられました。

そんなにものすごい勢いでアクセスが来るわけじゃないので、大規模なサイトでは気づかないかもしれないのですが、サーバがしょぼいとCPUの利用率が100%を超えます。xml-rpc.php への認証をトライされるとDBへの接続が必ず行われてしまうからですね。

一番簡単なのは xmlrpc.php へのアクセスを遮断してしまうことなのですが、プラグインJetpackを使っている場合、そうもいかなかったりします。JetpackがXML-RPC使ってるからですね。

そこで、こんな設定をNginxの設定ファイルにこんな記述をしておくとわりとなんとかなります。

# Exclude jetpack
location ~ ^/xmlrpc\.php {
    if ( $http_user_agent !~* jetpack ) {
        return 403;
    }
}

ユーザーエージェントにJetPackが含まれていなかったら403エラーを返すという設定です。

これでわりとなんとかなると思いますが、いかがでしょうか。

雑感

JetPackってAutomatticの作ってるプラグインなわけで、ブルートフォースプロテクションとか、サイト監視とかいろんな機能をうたってはいますが、このプラグインを使うためには /xmlrpc.php を開放しておかなくてはならず、逆に他のプラグインがXML-RPC使っているかというとほぼ使っておらず、JetPackが一番のセキュリティホールなんじゃないの? と思ったり、思わなかったり。

[429] [429] Client error: `POST https://webservices.amazon.co.jp/paapi5/getitems` resulted in a `429 Too Many Requests` response: {"__type":"com.amazon.paapi5#TooManyRequestsException","Errors":[{"Code":"TooManyRequests","Message":"The request was de (truncated...)

すべての投稿を見る

高橋文樹ニュースレター

高橋文樹が最近の活動報告、サイトでパブリックにできない情報などをお伝えするメーリングリストです。 滅多に送りませんので、ぜひご登録お願いいたします。 お得なダウンロードコンテンツなども計画中です。