Emuārs

Auditējat WordPress? Sāciet ar saviem spraudņiem

Pārtrauciet auditēt WordPress kodolu un sāciet auditēt savus spraudņus: praktisks, spraudņu prioritātes drošības audits mazām komandām.

Kopsavilkums

Lielākā daļa WordPress drošības auditu ir aplami: tie uzsver kodola atjauninājumus un skeneru ziņojumus, kamēr ievainojamības, kas patiešām kaitē, dzīvo spraudņos. SANS baltā grāmata atklāja, ka vairāk nekā 96% ekosistēmas ievainojamību nāk no trešo pušu spraudņiem, un aptuveni 43% nav nepieciešama autentifikācija. Šis raksts izklāsta spraudņu prioritātes auditu mazai iekšējai mārketinga komandai, izmantojot stāstu par vietni, kuru uzlauza, jo visi skenēja nepareizo slāni. Jūs uzzināsiet, kā inventarizēt un klasificēt katru spraudni, pārbaudīt neautentificētas uzbrukuma virsmas, manuāli pārskatīt lietotājus un žurnālus, un pārvērst atklājumus riska valodā, ko saprot netehnisks priekšnieks. Rezultāts ir ceturkšņa triāžas rituāls, nevis atzīmēšanas vingrinājums.

Lielākā daļa WordPress drošības auditu ir teātris. Jūs pavadāt pēcpusdienu, atjauninot kodolu, mainot administratora paroli un palaižot spraudņu skeneri, kas lepni ziņo: "Nav kritisku problēmu." Tikmēr spraudnis, kas pieņēma failu augšupielādes un pēdējo reizi tika atjaunināts pirms trim gadiem, klusi atrodas jūsu augšupielāžu direktorijā, gaidot kādu, kurš nav viesu sarakstā.

Skaitļi to apstiprina. SANS baltā grāmata par WordPress spraudņu skenēšanu atklāja, ka vairāk nekā 96% ievainojamību WordPress ekosistēmā nāk no trešo pušu spraudņiem, tēmas veido 4% un kodols mazāk par 1%. Aptuveni 43% no šīm nepilnībām var izmantot bez jebkādas autentifikācijas. Tātad, ja jūsu audits lielāko daļu enerģijas velta kodolam, jūs pētāt kokus, kamēr blakus spraudņu direktorijā sākas meža uguns.

Tas nav aicinājums krist panikā par kodolu. Kodola ievainojamības, piemēram, wp2shell RCE nepilnības, kurām nesen parādījās publiski izmantošanas kodi, jālabo tajā pašā dienā, kad tās tiek paziņotas. Bet tās ir pietiekami retas, lai tās neprasītu lielāko daļu jūsu audita stundu. Lielākā daļa pieder spraudņiem, un tur sākas īstā darba plūsma.

Iedomājieties scenāriju pirms: svētdienas rīts, jūsu vietne pārvirza uz kazino lapu, un priekšnieks raksta e-pastu: "Es domāju, ka mums ir drošība." Jums bija drošība — jums bija atzīmēšanas audits. Pēc scenārijs ir triāžas sistēma, kas izturas pret spraudņiem kā pret reālo uzbrukuma virsmu, pārbauda tos no ārpuses un pārbauda lietas, ko skeneri nevar redzēt.

Jūs esat mazā mārketinga komandā ar WordPress vietni, kas darbojas kopš 2017. gada. Tajā ir pielāgots pasākumu reģistrācijas spraudnis, ko 2019. gadā izveidoja ārštata darbinieks, kontaktformu spraudnis ar failu augšupielādes lauku, un slīdņu spraudnis, kas tika pārdots un vairs nav publiskas atjauninājumu lapas. Šī nav neparasta tehnoloģiju kopa. Šeit sākas jūsu audits.


Spraudņu inventarizācija ir jūsu drošības politika

Veiciet katra spraudņa un tēmas inventarizāciju. Pierakstiet versiju, pēdējā atjauninājuma datumu, vai izstrādātājs vēl ir aktīvs un vai kāds to faktiski izmanto. Pēc tam klasificējiet katru noteiktā kategorijā: uzturēts un lietots, uzturēts un nelietots, pamests, bet lietots, pamests un nelietots. Nekavējoties noņemiet nelietotos. Ignorējiet aizstāvību "tas maksā tikai 50 $ mēnesī" — nelietots spraudnis ir saistības, nevis funkcija. Pamestiem, bet lietotiem spraudņiem izlemiet: nomainiet to vai pieņemiet risku un ierakstiet to riska reģistrā, ko priekšnieks ir redzējis.

Pasākumu reģistrācijas spraudnis ietilpst pamests, bet lietots kategorijā. Tas pieņem maksājumus un nosūta apstiprinājuma e-pastus, un tā nomaiņa ir projekts, tāpēc pagaidām to paturat. Bet jūs pierakstāt piezīmi: "tas ir visticamākais nākotnes drošības pārkāpuma avots," un pievienojat to testa saraksta augšgalā.

Uzbrukuma virsmaWordPress zināmo ievainojamību daļaAudita prioritāte
Trešo pušu spraudņiVairāk nekā 96%Augstākā — inventarizēt, skenēt, testēt, nomainīt
TēmasAptuveni 4%Vidēja — tikai ja pielāgota vai novecojusi
WordPress kodolsMazāk par 1%Zema — uzturēt atjauninātu, doties tālāk

Kad SecurityWeek 2024. gadā saskaitīja vairāk nekā 8000 jaunu WordPress ievainojamību, lielākā daļa bija tieši šāda veida: spraudņu problēmas, nevis kodola atjauninājumi. Skeneris jums pastāstīs par tām, kas ir atklātas un saņēmušas CVE. Tas nepastāstīs par pielāgoto ārštata kodu bez CVE, jo neviens to nekad rūpīgi nav apskatījis. Šī manuālā apskate ir jūsu darbs. Lai iegūtu dziļāku ieskatu par spraudņu specifiskām pārbaudēm, skatiet šo ceļvedi par savu WordPress spraudņu auditēšanu ievainojamību atklāšanai.


Testējiet to kā svešinieks: tie 43%, kuriem nav nepieciešama parole

Jūsu skeneris jau ir teicis, ka viss ir kārtībā. Tagad dariet to, ko tas nevar: izpētiet vietni no ārpuses, bez pieteikšanās. Sāciet ar katru failu augšupielādes lauku, katru veidlapu, kas apstrādā POST pieprasījumus, katru admin-ajax galapunktu. Vai augšupielāde patiešām pārbauda faila saturu vai tikai paplašinājumu? Kur nonāk augšupielādētie faili, un vai tīmekļa serveris var izpildīt PHP šajā direktorijā? Tie 43% spraudņu nepilnību, kurām nav nepieciešama autentifikācija, parasti atrodas tieši šajās vietās: neautentificēta saglabāta XSS, patvaļīga failu augšupielāde un PHP objektu ievadīšana.

Kontaktformu spraudnis ļauj apmeklētājiem pievienot CV. Tas pārdēvē failu, izmantojot apmeklētāja sākotnējo faila nosaukumu, tāpēc jūs augšupielādējat "resume.php" un tas tiek saglabāts mapē /uploads/contact/, kas pēc dizaina ir rakstāma. Ja serveris arī ļauj izpildīt PHP šajā direktorijā, uzbrucējs tikko ieguva tīmekļa čaulu. Fastly ir dokumentējusi aktīvu neautentificētas saglabātas XSS izmantošanu WordPress spraudņos — tas nav nišas, slaidu prezentācijas risks. Jūsu tests ir vienkāršs: izveidojiet failu ar zināmu saturu, augšupielādējiet to un pārbaudiet, vai tas atgriežas ar sākotnējo nosaukumu un tipu. Pēc tam mēģiniet augšupielādēt .php failu. Ja tas atgriežas kā .php, jūs tikko atradāt izmantojamu robu.

Šeit arī sabrūk arguments "bet mūsu drošības spraudnim ir WAF". WAF var bloķēt zināmu kravu, bet ceļa normalizācijas noteikumi, uz kuriem tas paļaujas, bieži atšķiras no tā, ko serveris faktiski dara. OWASP Web drošības testēšanas ceļvedis ir labāka atsauce nekā jebkurš informācijas panelis: tas apraksta, kā metodiski pārbaudīt failu augšupielādes nepilnības un saglabātu XSS. Un, ja atklājat, ka spraudnis ir pamests, ir pienācis laiks piemērot tīrīšanas protokolu: pamesto WordPress spraudņu slēptās briesmas izskaidro, kāpēc atstāt mirušu paplašinājumu vietā ir sliktāk nekā to noņemt un pielāgot savu darba plūsmu.


Ko skeneris nevar redzēt: lietotāji, žurnāli un vecais kods

Dinamiskie testi atklāj to, kas ir pakļauts tieši tagad. Manuālā pārskatīšana atklāj to, kas jau ir iekšā. Sāciet ar lietotāju kontiem: atveriet administratoru sarakstu un meklējiet kontus, kurus neesat izveidojuši. Administrators ar nosaukumu "support" ar bezmaksas e-pasta adresi un bez cilvēka aiz tā ir aizmugures durvis, nevis kolēģis. Pārbaudiet failu laika zīmogus wp-content/uploads, vai nav kaut kas nesen modificēts, kas nav jūsu saturs. Pārbaudiet servera piekļuves žurnālu, vai nav pieprasījumu, kas izskatās pēc robota curl komandas, nevis cilvēka pārlūka.

Pasākumu spraudnim ir "runātāja foto" augšupielāde, kas saglabā failus mapē uploads/event-headshots/. Testa laikā jūs atrodat failu, kas nav jūsu — mazu PHP failu ar izlases veida nosaukumu. Tā ir jūsu tīmekļa čaula. Tas tur nokļuva caur to pašu augšupielādes nepilnību, kuru pārbaudījāt pirms divām nedēļām, un līdz šim skeneris joprojām to "neredzētu", jo tā nav spraudņa ievainojamība; tas ir pierādījums tādai. Manuālā pārskatīšana to atrod, izdzēš un pārbauda žurnālā IP adresi, kas to tur ievietojusi. Invicti ir atzīmējusi, ka PHP objektu ievadīšana spraudņos pieaug, un tā ir gandrīz neredzama melnās kastes skenēšanai, jo ļaunprātīgais objekts materializējas tikai izpildes laikā. Vienīgais veids, kā to pamanīt, ir lasīt kodu, meklējot bīstamus modeļus, piemēram, unserialize() izsaukšanu uz lietotāja ievadītiem datiem. Dažu simtu rindiņu lasīšana pielāgotajā spraudnī ir lētāka nekā incidenta reaģēšanas maksa.

Šeit arī standarta padoms "vienkārši instalējiet vairāk drošības spraudņu" sasniedz savu robežu. Trīs drošības spraudņu sakraušana dod jums pārklājošus WAF noteikumus, kas bloķē viens otru, dublikātu žurnāla e-pastu straumi un ik pa laikam "jūs esat aizliegts" kļūdu jūsu pašu administratora pieteikumā. Viens aktīvs drošības spraudnis, pareizi konfigurēts, ir pietiekams. Izlasiet par kāpēc pārāk daudz drošības spraudņu atgriežas ar pretēju efektu, pirms pievienojat kaut ko citu kaudzei.


Sakot priekšniekam patiesību, neizraisot paniku

Jūsu priekšnieku neinteresē CVSS rādītāji vai PHP objektu ievadīšana. Viņš rūpējas par vietnes dīkstāvi, veikala pasūtījumu nepieņemšanu un IT budžetu. Tulkojums ir vienkāršs: "Šim spraudnim ir zināma neautentificēta attālā koda izpildes nepilnība. Svešinieks var izdzēst mūsu vietnes saturu vai instalēt aizmugures durvis. Mums tas jānomaina šajā ceturksnī." Pēc tam parādiet prioritāšu sarakstu: nomainiet pasākumu spraudni, atspējojiet kontaktformas failu augšupielādi, līdz tā pareizi validē failu tipus, nomainiet visus administratora akreditācijas datus un ieplānojiet nākamo ceturkšņa pārskatu.

Jums ir arī valodas priekšrocība: CISA uztur Known Exploited Vulnerabilities katalogu, kas precīzi norāda, kuras publicētās nepilnības tiek aktīvi izmantotas reālajā pasaulē. Ja kāds no jūsu spraudņiem tur parādās, arguments vairs nav teorētisks — ir zināms izmantošanas veids, un jūsu laiks ir ierobežots. Ja nē, izmantojiet to tik un tā kā standartu tam, ko nozīmē "steidzami". CISA izsekošana atvieglo pārliecināt netehnisku priekšnieku, ka tas nav pikšķerēšanas e-pasts; tā ir publiska datubāze par to, ko uzbrucēji dara tieši tagad. Kad ceturksnis beigsies, jums būs novēršanas darba plūsma, nevis vienreizējs atzīmēšanas vingrinājums. Darba plūsma ievainojamību pārvēršanai ielāpu ciklā uztur ieradumu dzīvu.


Pirms bija salauzta vietne, izmisīgs e-pasts un tīrs skenera ziņojums, kas teica, ka viss ir kārtībā. Pēc ir ceturkšņa rituāls: inventarizēt, klasificēt, testēt no ārpuses, pārskatīt lietotājus un žurnālus, un pierakstīt pieņemtos lēmumus un uzņemtos riskus. Skeneris kļūst par karti, kur skatīties, nevis veselības sertifikātu. Spraudņi kļūst par sarakstu, ko pazīstat pēc nosaukuma. Un nākamreiz, kad priekšnieks jautās par auditu, jums būs atbilde, kas nav saistīta ar pirkstu krustošanu.

Sources (5)