Blogi

Auditoitko WordPressiä? Aloita laajennuksista

Lopeta WordPressin ytimen auditointi ja aloita laajennustesi auditointi: käytännönläheinen, laajennuskeskeinen tietoturva-auditointi pienille tiimeille.

Yhteenveto

Useimmat WordPress-tietoturva-auditoinnit ovat nurinkurisia: ne painottavat ydinpäivityksiä ja skanneriraportteja, vaikka todelliset haavoittuvuudet elävät laajennuksissa. SANS:n valkoinen paperi osoitti, että yli 96 % ekosysteemin haavoittuvuuksista on peräisin kolmannen osapuolen laajennuksista, ja noin 43 % ei vaadi lainkaan todennusta. Tämä artikkeli käy läpi laajennuslähtöisen auditoinnin pienelle sisäiselle markkinointitiimille käyttäen esimerkkinä sivustoa, joka hakkerointiin, koska kaikki skannasivat väärää kerrosta. Opit kartoittamaan ja luokittelemaan jokaisen laajennuksen, testaamaan todennuksesta riippumattomia hyökkäyspintoja, käymään manuaalisesti läpi käyttäjät ja lokit sekä kääntämään havainnot riskikielelle, jota ei-tekniset pomot ymmärtävät. Tuloksena on neljännesvuosittainen triagerituaali, ei ruksittava tehtävälista.

Useimmat WordPress-tietoturva-auditoinnit ovat teatteria. Käytät iltapäivän ytimen päivittämiseen, admin-salasanan vaihtamiseen ja laajennusskannerin ajamiseen, joka ylpeänä raportoi "Ei kriittisiä ongelmia". Sillä välin laajennus, joka hyväksyi tiedostojen latauksia ja jota päivitettiin viimeksi kolme vuotta sitten, istuu hiljaa uploads-hakemistossasi odottaen jotakuta, joka ei ole vieraslistalla.

Luvut tukevat tätä. SANS:n valkoinen paperi WordPress-laajennusten skannaamisesta osoitti, että yli 96 % WordPress-ekosysteemin haavoittuvuuksista on peräisin kolmannen osapuolen laajennuksista, teemojen osuus on 4 % ja ytimen alle 1 %. Noin 43 % näistä vioista voidaan hyödyntää ilman minkäänlaista todennusta. Joten kun auditointisi käyttää suurimman osan energiastaan ytimeen, tutkit puita, kun metsäpalo syttyy viereisessä laajennushakemistossa.

Tämä ei ole kehotus panikoida ytimen takia. Ytimen haavoittuvuudet, kuten wp2shell RCE-viat, joihin on hiljattain julkaistu julkisia hyökkäyksiä, tulisi paikata heti niiden ilmoittamispäivänä. Mutta ne ovat tarpeeksi harvinaisia, etteivät ne ansaitse suurinta osaa auditointitunneistasi. Suurin osa kuuluu laajennuksille, ja siitä todellinen työnkulku alkaa.

Kuvittele ennen-skenaario: sunnuntaiaamuna sivustosi uudelleenohjaa kasinosivulle ja pomosi lähettää sähköpostia: "Luulin, että meillä on tietoturva." Sinulla oli tietoturva — sinulla oli ruksittava auditointi. Jälkeen-skenaario on triage-järjestelmä, joka kohtelee laajennuksia niiden todellisena hyökkäyspintana, testaa niitä ulkopuolelta ja tarkistaa asiat, joita skannerit eivät näe.

Olet pienellä markkinointitiimillä, jolla on WordPress-sivusto, joka on ollut käytössä vuodesta 2017. Siinä on mukautettu tapahtuman rekisteröintilaajennus, jonka freelancer rakensi vuonna 2019, yhteyslomakelaajennus tiedoston latauskentällä ja liukusäädinlaajennus, joka myytiin eikä sillä ole enää julkista päivityssivua. Tämä ei ole epätavallinen pino. Tästä auditointisi alkaa.


Laajennusinventaario on tietoturvakäytäntösi

Ota inventaario jokaisesta laajennuksesta ja teemasta. Kirjaa ylös versio, viimeisin päivityspäivä, onko toimittaja edelleen elossa ja käyttääkö kukaan sitä oikeasti. Luokittele sitten jokainen ämpäriin: ylläpidetty ja käytössä, ylläpidetty ja käyttämätön, hylätty mutta käytössä, hylätty ja käyttämätön. Poista käyttämättömät välittömästi. Ohita "se on vain 50 dollaria kuukaudessa" -puolustus — käyttämätön laajennus on vastuu, ei ominaisuus. Hylätyille mutta käytössä oleville päätä: korvaa se tai hyväksy riski ja kirjaa se riskirekisteriin, jonka pomosi on nähnyt.

Tapahtuman rekisteröintilaajennus kuuluu hylätty-mutta-käytössä -ämpäriin. Se vastaanottaa maksuja ja lähettää vahvistussähköposteja, ja sen korvaaminen on projekti, joten pidät sen toistaiseksi. Mutta kirjoitat muistiinpanon, jossa lukee: "tämä on todennäköisin tulevan tietomurron lähde", ja lisäät sen testilistan kärkeen.

HyökkäyspintaOsuus WordPressin tunnetuista haavoittuvuuksistaAuditoinnin prioriteetti
Kolmannen osapuolen laajennuksetYli 96%Korkein — inventoi, skannaa, testaa, korvaa
TeematNoin 4%Keskitaso — vain jos mukautettu tai vanhentunut
WordPressin ydinAlle 1%Matala — pidä paikattuna, jatka eteenpäin

Kun SecurityWeek laski yli 8 000 uutta WordPress-haavoittuvuutta vuonna 2024, valtaosa oli tällaisia: laajennusongelmia, ei ydinpaikkauksia. Skanneri kertoo sinulle niistä, jotka on julkistettu ja saaneet CVE-tunnuksen. Se ei kerro sinulle mukautetusta freelancer-koodista ilman CVE:tä, koska kukaan ei ole koskaan katsonut sitä huolellisesti. Se manuaalinen katsaus on sinun tehtäväsi. Saat perusteellisemman katsauksen laajennuskohtaisiin tarkistuksiin tästä oppaasta: laajennustesi haavoittuvuuksien auditoiminen WordPressissä.


Testaa kuin vieras: se 43 %, joka ei tarvitse salasanaa

Skannerisi on jo kertonut, ettei mikään ole vialla. Tee nyt se, mihin se ei pysty: tutki sivustoa ulkopuolelta ilman kirjautumista. Aloita jokaisesta tiedoston latauskentästä, jokaisesta POST-pyynnön käsittelevästä lomakkeesta ja jokaisesta admin-ajax-päätepisteestä. Tarkistaako lataus todella tiedoston sisällön vai vain tiedostopäätteen? Minne ladatut tiedostot menevät, ja voiko verkkopalvelin suorittaa PHP:tä siinä hakemistossa? Se 43 % laajennusvioista, jotka eivät vaadi todennusta, sijaitsee yleensä juuri näissä paikoissa: todennuksetta käytettävä tallennettu XSS, mielivaltainen tiedoston lataus ja PHP-objektin injektio.

Yhteyslomakelaajennus antaa kävijöiden liittää ansioluettelon. Se nimeää tiedoston uudelleen käyttäjän alkuperäisen tiedostonimen mukaan, joten lataat "resume.php" ja se tallennetaan /uploads/contact/-kansioon, joka on suunnitellusti kirjoitettavissa. Jos palvelin sallii myös PHP:n suorittamisen kyseisessä hakemistossa, hyökkääjä sai juuri webshellin. Fastly on dokumentoinut todennuksetta käytettävän tallennetun XSS:n aktiivista hyödyntämistä WordPress-laajennuksissa — tämä ei ole marginaalinen diasarjan riski. Testisi on yksinkertainen: luo tiedosto, jonka sisällön tiedät, lataa se ja katso, palaako se alkuperäisellä nimellä ja tyypillä. Yritä sitten ladata .php-tiedosto. Jos se palaa .php-tiedostona, olet juuri löytänyt hyödynnettävän aukon.

Tässä kohtaa myös "mutta meidän tietoturvalaajennuksellamme on WAF" -argumentti kaatuu. WAF voi estää tunnetun hyökkäysdatapaketin, mutta sen käyttämät polun normalisointisäännöt poikkeavat usein siitä, mitä palvelin todellisuudessa tekee. OWASP:n Web Security Testing Guide on parempi viite kuin mikään kojelauta: se kuvaa, miten tiedoston latausvirheitä ja tallennettua XSS:ää testataan järjestelmällisesti. Ja jos huomaat laajennuksen olevan hylätty, on aika soveltaa siivousprotokollaa: hylättyjen WordPress-laajennusten piilevä vaara selittää, miksi kuolleen laajennuksen jättäminen paikalleen on pahempaa kuin sen poistaminen ja työnkulkusi säätäminen.


Mitä skanneri ei näe: käyttäjät, lokit ja vanha koodi

Dynaamiset testit paljastavat sen, mikä on altistettuna juuri nyt. Manuaalinen katsaus paljastaa sen, mikä on jo sisällä. Aloita käyttäjätileistä: avaa ylläpitäjälista ja etsi tilejä, joita et ole luonut. Ylläpitäjä nimeltä "support" ilmaisella sähköpostiosoitteella ja ilman ihmistä sen takana on takaovi, ei kollega. Tarkista wp-content/uploads-tiedostojen aikaleimat mahdollisten äskettäin muokattujen tiedostojen varalta, jotka eivät ole sinun sisältöäsi. Tarkista palvelimen pääsyloki pyyntöjen varalta, jotka näyttävät botin curl-komennolta eikä ihmisen selaimelta.

Tapahtumalaajennuksessa on "puhujan kuva" -lataus, joka tallentaa uploads/event-headshots/-kansioon. Testin aikana löydät tiedoston, joka ei ole sinun — pienen PHP-tiedoston, jolla on satunnainen nimi. Se on webshellisi. Se pääsi sinne saman latausvian kautta, jota testasit kaksi viikkoa sitten, eikä skanneri vieläkään "näe" sitä, koska se ei ole laajennushaavoittuvuus; se on todiste sellaisesta. Manuaalinen katsaus löytää sen, poistaa sen ja tarkistaa lokista IP-osoitteen, joka sen sinne laittoi. Invicti on huomauttanut, että PHP-objektin injektio laajennuksissa on yleistymässä, ja se on lähes näkymätön musta laatikko -skannauksille, koska haitallinen objekti materialisoituu vasta suorituksen aikana. Ainoa tapa huomata se on lukea koodia vaarallisten kaavojen varalta, kuten unserialize()-kutsun tekeminen käyttäjän syötteellä. Muutaman sadan rivin lukeminen mukautetusta laajennuksesta on halvempaa kuin tietoturvakonsultin valmiuspalkkio.

Tässä kohtaa myös standardineuvo "asenna vain lisää tietoturvalaajennuksia" saavuttaa rajansa. Kolmen tietoturvalaajennuksen pinoaminen tuo mukanaan päällekkäisiä WAF-sääntöjä, jotka estävät toisiaan, tulvan päällekkäisiä lokisähköposteja ja satunnaisen "sinut on estetty" -virheen omassa ylläpitäjässä sisäänkirjautumisessa. Yksi hyvin määritetty aktiivinen tietoturvalaajennus riittää. Lue lisää siitä, miksi liian monet tietoturvalaajennukset kostautuvat ennen kuin lisäät mitään muuta kasaan.


Totuuden kertominen pomollesi ilman paniikkia

Pomoasi eivät kiinnosta CVSS-pisteet tai PHP-objektin injektio. Häntä kiinnostaa sivuston kaatuminen, kaupan tilausten lakkaaminen ja IT-budjetti. Käännös on yksinkertainen: "Tässä laajennuksessa on tunnettu todennukseton etäkoodin suorituksen haavoittuvuus. Tuntematon voi poistaa sivustomme sisältöä tai asentaa takaoven. Meidän on korvattava se tämän neljänneksen aikana." Näytä sitten prioriteettilista: korvaa tapahtumalaajennus, poista yhteyslomakkeen tiedoston lataus käytöstä, kunnes se asianmukaisesti vahvistaa tiedostotyypit, vaihda kaikki ylläpitäjän tunnistetiedot ja ajoita seuraava neljännesvuosikatsaus.

Sinulla on myös kielellinen etu: CISA ylläpitää tunnettujen hyödynnettyjen haavoittuvuuksien luetteloa, joka kertoo tarkalleen, mitä julkaistuja vikoja käytetään aktiivisesti hyväksi. Jos jokin laajennuksistasi esiintyy siellä, argumentti ei ole enää teoreettinen — tunnettu hyökkäys on olemassa ja kello tikittää. Jos niitä ei ole, käytä sitä silti standardina sille, mitä "kiireellinen" tarkoittaa. CISA:n seuranta tekee helpommaksi vakuuttaa ei-teknisen pomon, ettei tämä ole tietojenkalasteluviesti; se on julkinen tietokanta siitä, mitä hyökkääjät tekevät juuri nyt. Kun vuosineljännes päättyy, sinulla on korjausmenetelmä, ei kertaluonteinen ruksittava harjoitus. Työnkulku haavoittuvuuksien muuttamiseksi korjauskierrokseksi pitää tavan elossa.


Ennen oli rikkinäinen sivusto, kiihkeä sähköposti ja puhdas skanneriraportti, jonka mukaan mikään ei ollut vialla. Jälkeen on neljännesvuosittainen rituaali: inventoi, luokittele, testaa ulkopuolelta, käy läpi käyttäjät ja lokit sekä kirjaa tekemäsi päätökset ja hyväksymäsi riskit. Skannerista tulee kartta siitä, mistä kannattaa etsiä, ei terveystodistus. Laajennuksista tulee lista, jonka tunnet nimeltä. Ja seuraavan kerran kun pomosi kysyy auditoinnista, sinulla on vastaus, joka ei vaadi sormien ristimistä.

Sources (5)