ブロック `//xmlrpc.php`

ブロック `//xmlrpc.php`

Apache で数万件の (おそらく悪意のある) ヒットが発生し、サーバーがダウンしています。すべてのヒットは Apache ログで次のように表示されます。

[30/Jan/2022:21:57:41 +0000] "POST //xmlrpc.php HTTP/1.1" 200 630 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4240.193 Safari/537.36"

二重スラッシュに注意。 どういう意味か分かりません。

サーバーの負荷を軽減するために、.htaccess に以下のルールを追加しました。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} ^//xmlrpc.php
RewriteRule .* - [F,L]
</IfModule>

を実行するとcurl -kIL -X POST -H 'Host: [REDACTED]' https://127.0.0.1:443/xmlrpc.php、403 エラー コードが表示されます。

しかし、どうやらそれだけでは不十分のようです。ログによると、Apache は 2 つのスラッシュを含むリクエストに対して 200 を返し続けています。これらのリクエストをブロックするにはどうすればよいでしょうか (403 を返す)? curl / wget / etc を使用してブロックがアクティブかどうかを確認するにはどうすればよいですか?

「POST //xmlrpc.php HTTP/1.1」が 200 (HTTP OK) を返すのを防ぎ、代わりに 403 を返すルールが必要です。

答え1

できるだけ早くWordPressインストールでXML-RPCを無効にしてください。これは大きなセキュリティリスクであり、現在発生している問題はその始まりに過ぎません。たとえば、https://www.getastra.com/blog/cms/wordpress-security/wordpress-xml-rpc-exploit-everything-you-need-to-know/詳細はこちらをご覧ください。(一切関係ありません。)

関連情報