Kiinalainen vesikidutus ajaa WordPress-sivustoja hulluksi
Moni on varmasti kuullut kiinalaisesta vesikidutuksesta eli toimenpiteestä, jossa kahlitun uhrin päälakeen tiputetaan hitaasti jääkylmää vettä, mikä lopulta saa hänet hulluksi. Zonen analyytikot ovat jo pitkään seuranneet verkkohyökkäyksiä, joilla on yllättäviä yhtäläisyyksiä tähän kidutusmenetelmään. Kuten vesikidutuskin, jäljempänä esitelty hyökkäystapa ei ole mitään uutta, mutta se on pelottavan tehokas.
Legacy kuin kärpäspaperi
Aloitamme avainsanasta XML-RPC (XML Remote Procedure Call eli XML-etäproseduurikutsu), joka tarkoittaa protokollaa, jonka avulla jokin sovellus voi Internetin kautta saada toisen sovelluksen suorittamaan toimintoja.
Vaikka XML-RPC-protokollan rinnalle onkin tullut nykyaikaisempia työkaluja, kuten REST (Representational State Transfer) ja gRPC (gRPC Remote Procedure Call), sitä tuetaan laajasti edelleen, erityisesti ”kypsemmissä” sovelluksissa. Historiallisesti sitä on käytetty useissa suosituissa sisällönhallinta-alustoissa, kuten WordPressissä, Drupalissa, Magentossa ja muissa.
Tällä hetkellä meitä kiinnostaa WordPressin konteksti, jossa XML-RPC on periaatteessa perintöä (legacy), mutta oletusasennuksensa vuoksi se on hyvin yleinen. Valtaosa WordPressin käyttäjistä ei kuitenkaan tiedä siitä mitään.
Valitettavasti, kuten tiedämme, kaikenlainen laajalle levinnyt ”perintöohjelmisto” on houkutteleva kohde rikollisille, jotka etsivät kyberavaruudesta uhreja.
WordPressiin oletusarvoisesti sisältyvä tiedosto xmlrpc.php tarjoaa heille hedelmällisen maaperän. Vanhentuneisiin uhkamalleihin perustuvat suunnittelupäätökset ovat tehneet tiedostosta hyökkääjien suosikin – tätä WordPressin XML-RPC-päätepistettä käytetään esimerkiksi salasanojen arvaamiseen brute force -hyökkäyksillä, palvelunestohyökkäyksiin (DoS) ja muuhun vastaavaan toimintaan.
Johdonmukaista tippumista WordPressin päälakeen
Olemme Zonessa jo vuosikausia pyrkineet lieventämään tällaisia asiakkaisiimme kohdistuvia riskejä asettamalla palomuurillamme taajuusrajoituksia yleisiin XML-RPC-tiedostoihin kohdistuville kyselyille ja toteuttamalla muita riskinhallintatoimenpiteitä.
Siitä huolimatta omat analyytikkomme ja myös ulkopuoliset toimijat, kuten CERT (Computer Emergency Response Team) ja CSIRT (Computer Security Incident Response Team) -tiimit raportoivat meille jatkuvasti onnistuneista hyökkäyksistä asiakkaidemme WordPress-pohjaisia verkkosivustoja vastaan.
Tutkittuaan asiaa tarkemmin asiantuntijamme havaitsivat metodisen toiminnan, joka on luonteeltaan samanlaista kuin edellä mainittu kiinalainen vesikidutus.
Web-palvelimien lokitietoja analysoidessaan he huomasivat, että hyökkääjät ovat alkaneet ”tiputtaa” kyselyjä WordPressin XML-RPC-päätepistettä vastaan. Tämä tarkoittaa, että kyselyjä tehdään erittäin johdonmukaisesti, mutta kyselyjen välillä on hyvin pitkä viive, joka vaihtelee puolesta tunnista useisiin tunteihin.
Tällä tavoin pelkästään Zonen asiakkaisiin kohdistuvien kyselyjen määrä voi olla yli 5 miljoonaa päivässä yli 50 000 eri IP-osoitteesta. Yli puolet näistä tiedusteluista tuli jokin aika sitten Kiinasta.
Hyökkääjien menetelmistä
Kukaan ei tiedä, missä syylliset todella ovat, ellei asiaa tutkita perusteellisemmin.
Hyökkäys tapahtuu useassa vaiheessa.
Ensimmäisessä vaiheessa haetaan luettelo WordPressin käyttäjistä XML-RPC-päätepisteen kautta, koska tämä luettelo on siellä enimmäkseen julkinen.
Toisessa vaiheessa aletaan arvailla luettelossa olevien käyttäjien salasanoja vanhoilla tutuilla menetelmillä:
- suosittujen salasanojen listat
- muualta vuotaneet salasanat
- salasanan johtamisalgoritmit käyttäjätunnuksesta (jos käyttäjätunnus on ’matti’, kokeillaan vaihtoehtoja ’matti123’, ’matti666’, ’mattiittam’ jne.)
- Viime aikoina on otettu käyttöön myös tekoälyä, joka sisällyttää mahdollisiin salasanavaihtoehtoihin verkkotunnuksen ja muut vastaavat tiedot.
Kolmannessa vaiheessa, kun salasana on arvattu, WordPress otetaan haltuun ja saadaan palvelemaan hyökkääjää.
Osaa kaapatuista WordPress-instansseista hyökkääjä hyödyntää laajentaakseen kaapattujen WordPress-sivustojen verkostoaan, eli ne alkavat etsiä seuraavia uhreja ja puolestaan ”tiputtaa” niihin haitallisia kyselyjä. Valtaosa niistä alkaa kuitenkin edistää nettikasinoita ja potenssipillerikauppaa.
Tällainen hidas, mutta johdonmukainen työ johtaa siihen, että rikolliset saavat käyttöönsä eksponentiaalisesti kasvavan verkoston vaarantuneita WordPress-instansseja.
Valitettavasti tällaisten hyökkäysten perimmäinen syy on edelleen Internetin käyttäjien tunnistautumiseen käyttämien salasanojen heikko laatu.
WordPressin ekosysteemi reagoi tällaisiin ongelmiin pääasiassa tuottamalla liitännäisiä. Näin myös tällä kertaa, ja tarjolla on valikoima muunnelmia, jotka suorittavat tiettyjä tehtäviä:
sekä monikäyttöisempiä työkaluja, kuten
- Wordfence Security – Firewall, Malware Scan, and Login Security
- Patchstack – WordPress & Plugins Security.
Ongelmana on, että sellaiset WordPressin ylläpitäjät, jotka eivät aseta itselleen tai käyttäjilleen turvallisia salasanoja, eivät asenna myöskään tietoturvaliitännäisiä.
Joitakin kyselyjä koskevat rajoitukset
Hyökkäysten laajuus tarkoittaa, että tässä tapauksessa emme voi jäädä sivuun, koska haluamme auttaa käyttäjiä ja luomaamme ekosysteemiä.
Pohdittuamme WordPressin ja XML-RPC-protokollan riskejä olemme päättäneet alkaa estää WordPressin xmlrpc.php-pyynnöt oletusarvoisesti palvelimiemme verkkosovellusten palomuurin (Web Application Firewall, WAF) tasolla.
Tämä ei tarkoita sitä, että WordPressin XML-RPC-toiminnallisuutta ei voisi enää käyttää lainkaan. Jos tämä on jostain syystä tarpeen, on ryhdyttävä yhteen lisätoimeen: poistettava käytöstä palomuurisääntö, joka estää nämä kyselyt.
Palomuurisääntö voidaan poistaa käytöstä Oma Zone -hallintakäyttöliittymästä käsin – ohjeet ovat saatavilla osoitteessa https://tuki.zone.fi/kb/xmlrpcphp-post-pyynnot-wordpress-metodeihin/.
Eston tuloksia havainnollistaa seuraava kaavio, josta näkyvät viimeisten 24 tunnin aikana estetyt kyselyt.