Versijas, spraudņi, atklāti faili, administrācijas panelis, galvenes un rezerves kopijas — desmit pārbaudes, kuras vari izdarīt no ārpuses vienā stundā.
WordPress vietnes reti uzlauž kāds, kurš tieši tevi izvēlējās. Gandrīz vienmēr tas ir automāts, kas apstaigā tūkstošiem adrešu un meklē vienu no dažiem desmitiem zināmu trūkumu. Tas nozīmē divas labas ziņas: uzbrukumu saraksts ir īss un paredzams, un lielākā daļa pārbaužu ir izdarāmas no ārpuses, bez piekļuves serverim.
Šeit ir desmit pārbaudes, kuras aģentūra var izdarīt vienā stundā uz vienas vietnes — vai automatizēt visām klientu vietnēm reizē. Kārtība ir pēc tā, cik bieži tieši šis punkts izrādās vainīgais.
1. Kodola versija
Sāc ar acīmredzamo: kāda WordPress versija darbojas un cik tā ir sena. Drošības atjauninājumi iznāk regulāri, un vietne, kas atpaliek par diviem mazajiem laidieniem, gandrīz vienmēr atpaliek arī par kaut ko citu. Ja automātiskie atjauninājumi ir izslēgti, uzzini, kāpēc — parasti iemesls ir viens spraudnis, kas kādreiz salūza.
2. Spraudņi un tēmas
Vairums reālo incidentu sākas nevis kodolā, bet spraudnī. Trīs jautājumi katram: vai tas ir aktuālā versijā, vai to vēl uztur, un vai tas vispār ir vajadzīgs. Trešais ir svarīgākais. Deaktivizēts spraudnis, kas paliek serverī, joprojām ir failu kopums, kuru var izsaukt tieši. Ja funkcija vairs netiek lietota, spraudnis ir jādzēš, ne jāizslēdz.
3. Versijas atklāšana
WordPress pēc noklusējuma izliek versiju generator meta tagā, un /readme.html to pasaka vēlreiz. Tā nav ievainojamība, bet tā ir norāde: automāts, kas redz konkrētu veco versiju, zina, ko mēģināt tālāk. Abus var noņemt dažās minūtēs.
4. Lietotājvārdu uzskaitīšana
Atver /wp-json/wp/v2/users un pamēģini /?author=1. Ja atbildē ir lietotājvārdi vai pāradresācija uz autora lapu ar lietotājvārdu adresē, puse no paroles minēšanas darba ir padarīta — atliek tikai parole. Šo aizver vai nu spraudnis, vai dažas rindas servera konfigurācijā.
5. xmlrpc.php
Vecais XML-RPC saskarnes fails joprojām ir ieslēgts daudzās vietnēs. Tas ir gan paroļu minēšanas kanāls, kas apiet parastos pieteikšanās ierobežojumus, gan pingback ļaunprātīgas izmantošanas vektors. Ja neizmanto WordPress mobilo lietotni vai Jetpack, to var droši aizvērt. Pārbaude ir vienkārša: ja adrese atbild ar 200 vai 405, tas ir aktīvs.
6. Faili, kuriem nav jābūt publiskiem
Šī ir kategorija, kur atradumi ir visnepatīkamākie, jo tie ir tieši lietojami. Pārbaudi vismaz:
/wp-content/debug.log— atkļūdošanas žurnāls ar ceļiem un dažkārt vaicājumiem.wp-config.php.bak,.old,.saveunwp-config.php~— redaktora atstātās kopijas, kuras serveris pasniedz kā vienkāršu tekstu. Tajās ir datubāzes parole.- Saknē atstātie
.zip,.sqlunbackupfaili. - Atvērts direktoriju saraksts
/wp-content/uploads/.
Ja atrodi wp-config kopiju, uzskati datubāzes paroli par nopludinātu un nomaini to, nevis tikai izdzēs failu.
7. Administrācijas panelis
Pats /wp-admin nav jāslēpj — slēpšana maz ko dod. Vērtīgākas ir trīs lietas: pieteikšanās mēģinājumu ierobežojums, divu faktoru autentifikācija vismaz administratoriem un lietotāju revīzija. Pēdējā ir tā, ko izlaiž visbiežāk: vietnē mēdz palikt bijušā darbinieka konts ar administratora tiesībām un paroli, kas nav mainīta kopš 2019. gada. Pārej sarakstu un noņem visu, kam vairs nav pamata.
8. Drošības galvenes un HTTPS
Pārbaudi, vai visa vietne strādā uz HTTPS bez jauktā satura, vai sertifikāts nav tuvu beigām un vai atbildē ir pamata galvenes: HSTS, X-Frame-Options vai attiecīgā Content-Security-Policy direktīva pret ietveršanu rāmī, X-Content-Type-Options un Referrer-Policy. Neviena no tām neaptur uzlaušanu, bet tās aptur vairākas vienkāršas uzbrukuma metodes, un tās var pievienot bez koda izmaiņām.
9. Failu atļaujas un rakstāmība
Ja ir piekļuve serverim, pārbaudi wp-config.php atļaujas — 644 vai stingrāk. Pārbaudi arī, vai tēmas faili ir rakstāmi no WordPress puses: iespēja rediģēt PHP tieši administrācijas panelī nozīmē, ka viens uzlauzts administratora konts uzreiz kļūst par koda izpildi. Konstante DISALLOW_FILE_EDIT to izslēdz vienā rindā.
10. Rezerves kopijas — un atjaunošana
Pēdējais punkts ir tas, kas joprojām glābj tad, kad pārējie deviņi ir nokavēti. Trīs jautājumi: vai kopijas tiek veidotas, vai tās glabājas ārpus tā paša servera, un kad pēdējo reizi kāds no tām kaut ko atjaunoja. Kopija, kas nekad nav pārbaudīta, ir cerība, ne rezerves plāns.
Kā to izdarīt trīsdesmit vietnēm
Vienai vietnei šis saraksts ir stunda. Trīsdesmit vietnēm tas ir nedēļa, tāpēc tas netiek darīts. Tieši šī iemesla dēļ mēs uzrakstījām WordPress skenējumu: tas no ārpuses atpazīst WordPress, nolasa kodola un spraudņu versijas un pārbauda tieši šos tipiskos punktus — versijas atklāšanu, xmlrpc, lietotājvārdu uzskaitīšanu, debug.log un konfigurācijas kopijas. Rezultāts ir vērtējums un saraksts, ko var likt priekšā klientam.
Godīga piezīme par to, ko šāda pārbaude neredz. Tā skatās no ārpuses, tāpēc tā nezina, kāda ir tava paroļu politika, vai kopijas tiešām darbojas un vai serverī jau atrodas kāda sveša datne. Tas ir pirmais slānis, ne viss.
Pārbaudi vienu vietni tagad
Bezmaksas WordPress tests — ievadi domēnu un saņem šo pašu pārbaužu sarakstu ar vērtējumu. Bez konta; rezultātu var nosūtīt klientam. Ja to pašu vajag visām klientu vietnēm reizi nedēļā, tas ir viens no servisiem Bugzio panelī.