Wördpress-ALARM des tages

So eine pingback-funkzjon ist schon toll, vor allem für böswillige häcker, die ein wördpress-blog aus dem netz kegeln wollen. Dazu sucht man sich einfach eine liste von wördpress-blogs zusammen — zur vereinfachung dieses vorgangs steht ja (fast) immer schön <meta name="generator" ... im kwelltext — und sendet jedem dieser wördpress-blogs so dreihundert bytes XML-daten, dass die zielseite des angriffs einen link gesetzt hat und gibt dazu eine URI der verlinkenden seite an. Das wördpress-blog sendet daraufhin einen rekwest nach der URI, der in diesem gefälschten pingback angegeben wurde. Natürlich hängt man da immer ein paar hübsche parameter dran, so dass kein caching möglich ist, und schon hat man es mit (leicht in einer sekunde zu versendenden) rd. 20.000 bytes geschaft, eine zielseite mit hundert rekwests zu beschäftigen. Da freut sich das moppelchen wördpress, wenn es dafür jedesmal seine zwanzig SQL-abfragen macht, weil caching verhindert man ja.

Dass es möglich ist, als einzeltäter ganz ohne botnetz mit handelsüblichen progrämmchen wie… sagen wir mal… curl und einem kleinen shellskript ein blog aus dem web zu kegeln, ist vermutlich die wördpress-sicherheitskatastrofe des jahres. Jeder vierjährige, auf dem pisspott sitzende nachwuxhäcker kann das. Da man nicht allzuviel datendurchsatz benötigt, hängt man noch sein TOR als socks-sörver dazwischen, so dass die bei den missbrauchten wördpress-blogs geloggten IP-adressen keine einfache identifikazjon zulassen. Auch dazu dürfte jedes kind imstande sein.

Abhilfe ist gar nicht so einfach. Alle anfragen kommen von völlig unverdächtigen adressen, auf rDNS würde ich mich niemals verlassen wollen. Man kann natürlich die pingbacks abstellen… das geht (in einem deutschen wördpress) unter „Einstellungen ▷ Diskussion“ durch enfernen des häkchens vor „Erlaube Link-Benachrichtigungen von anderen Weblogs“. Das problem dabei ist, dass diese einstellungen nicht pro blog gelten, sondern pro beitrag, dass also alle bisherigen einträge bearbeitet werden müssten, was unerfreulich ist. Wer keine softwäjhr (wie wpcmd) zum bloggen benutzt, kann natürlich einfach seine xmlrpc.php umbenennen und ist dann gegen den einfachen angriff etwas sicherer, der websörver muss sich dann nur noch um die vielen 404er-fehler kümmern — die übrigens auch über wördpress ausgeliefert werden. Etwas radikaler ist eine rewrite-rule in der .htaccess (achtung, das ist völlig ungetestet und ohne blick in die dokumentazjon formuliert!):

RewriteEngine On
RewriteCond %{THE_REQUEST} "POST /xmlrpc.php HTTP/1.0" [NC] 
RewriteRule (.*) - [F]

Letztlich werden sich die wördpress-entwickler etwas gegen dieses problem einfallen lassen müssen. Ich sage der zeit, in der sich blogs einfach untereinander ihre verlinkungen mitteilen konnten, schon leise tschüss — es bleibt ja immer noch der handbetrieb im kommentarbereich. Der automatismus führt zurzeit leider nur zu einer echokammer für destruktive idjoten.

Nachtrag:Disable XML-RPC Pingback“ sollte helfen. 😉