Kas teid rünnatakse? Võtke ühendust intsidentidele reageerimise meeskonnaga

info@angelforce.eu
WordPress

WordPressi turvalisuse praktiline kontrollnimekiri

Kaksteist WordPressi karmistamise sammu mõistlikus järjekorras: uuendused, hüljatud pluginad, 2FA, XML-RPC, varukoopiad, failide terviklus ja WAF.

Saadaval ka:EnglishTürkçeDeutschFrançaisEspañolItalianoPolskiNederlands

Illustratsioon: WordPressi turvalisuse praktiline kontrollnimekiri

WordPressi sait on täpselt nii tugev, kui on selle nõrgim plugin, konto või varukoopia. WordPressi tuum saab regulaarselt turvauuendusi; see, mida te sellele lisate ja kuidas saiti käitate, on teie otsustada. See kontrollnimekiri hõlmab kõige olulisemaid meetmeid ligikaudu selles järjekorras, milles meie neid rakendaksime.

1. Hoidke tuum, pluginad ja teemad ajakohased

Tuuma automaatsed taustauuendused on olemas alates WordPress 3.7-st ja vaikimisi hõlmavad need väiksemaid väljalaseid. Alates WordPress 5.5-st saate halduslehtedel lülitada automaatsed uuendused sisse ka iga plugina ja teema jaoks eraldi.

  • Lülitage automaatsed uuendused sisse usaldusväärsete arendajate pluginatele ja vaadake ülejäänud üle iga nädal.
  • Automaatsed uuendused tuginevad WP-Cronile. Kontrollige vigu jaotises Tööriistad > Saidi tervis, sest katkine cron tähendab, et uuendused peatuvad vaikselt.
  • Enne automaatsetele uuendustele tuginemist veenduge, et saate muudatused tagasi pöörata. Sama soovitab ka WordPressi dokumentatsioon.

2. Eemaldage hüljatud ja kasutamata pluginad

WordPressi karmistamise juhend on otsekohene: hoidke pluginad ajakohased ja kustutage need, mida te ei kasuta. Desaktiveerimisest ei piisa, sest kood jääb serverisse.

WordPress.org-i pluginakataloog annab kaks ohumärki:

  • Kollane teade, et pluginat „ei ole testitud WordPressi kolme viimase suurema väljalaskega“.
  • Punane teade, et plugin on suletud ega ole enam allalaadimiseks saadaval. 60 päeva pärast näidatakse põhjust ja üks loetletud põhjustest on „turvaprobleem“.

Suletud plugin ei saa WordPress.org-i kaudu uuendusi. Asendage see. Ärge kunagi paigaldage tasuliste pluginate „nullitud“ (piraat)koopiaid ja paigaldage pluginaid ainult WordPress.org-ist või usaldusväärsetelt tootjatelt.

3. Auditeerige administraatorikontod

Loetlege kõik administraatori (Administrator) rolliga kontod ja eemaldage need, mille olemasolu keegi selgitada ei oska. WP-CLI-ga:

wp user list --role=administrator --fields=ID,user_login,user_email,user_registered

Andke igale inimesele oma nimeline konto, mitte kunagi jagatud admin kasutajat. Kasutage madalaimat rolli, millega töö tehtud saab: enamik sisutoimetajaid ei vaja administraatori rolli. Nõudke tugevaid unikaalseid paroole, mida hoitakse eelistatavalt paroolihalduris.

4. Lülitage sisse kaheastmeline autentimine

Lülitage kaheastmeline autentimine (2FA) sisse igale administraatorile. WordPressi tuumas 2FA-d ei ole, seega on vaja pluginat või ühekordse sisselogimise teenusepakkujat, mis seda jõustab. Eelistage meetodeid nagu turvavõtmed või pääsuvõtmed, kui teie plugin neid toetab, ja hoidke taastekoode turvalises kohas.

5. Piirake sisselogimiskatseid ja otsustage XML-RPC üle

WordPressi dokumentatsioon kirjeldab faile wp-login.php ja xmlrpc.php kui jõurünnakute levinud sihtmärke. See soovitab piirata sisselogimiskatsete sagedust võrgu servas (WAF või CDN) või veebiserveris. Ka turvaplugin saab sisselogimisi piirata, kuid see töötab PHP-s, seega peab serveritaseme lahendus suure liikluse korral paremini vastu.

Kui te XML-RPC-d ei kasuta, lülitage see välja. Mõned mobiilirakendused ja teenused, näiteks Jetpack, vajavad seda, seega kontrollige enne. Pange tähele, et filter xmlrpc_enabled keelab ainult autentimist nõudvad meetodid. Pingbackid ja muud autentimiseta meetodid töötavad edasi. Täielikuks väljalülitamiseks blokeerige fail veebiserveris. Nginxi puhul:

location = /xmlrpc.php {
    deny all;
}

6. Lülitage sisseehitatud failiredaktor välja

Halduspaneeli teema- ja pluginaredaktor võimaldab igaühel, kellel on administraatori seanss, PHP-koodi muuta. Lülitage see failis wp-config.php välja:

define( 'DISALLOW_FILE_EDIT', true );

wp-config.php dokumentatsiooni järgi läheb DISALLOW_FILE_MODS veelgi kaugemale ja blokeerib halduspaneelist ka pluginate ja teemade paigaldamise ja uuendamise. Kasutage seda ainult siis, kui juurutate muudatusi muul viisil, näiteks Giti või WP-CLI kaudu.

7. Hoidke varukoopiaid serverist väljas ja veebijuurest eemal

Karmistamise juhend soovitab regulaarselt varundada nii faile kui ka andmebaasi, hoida mitut hetktõmmist ja kasutada usaldusväärset salvestuskohta. Kaitske nende terviklust krüpteerimise, salvestatud räside või kirjutuskaitstud andmekandjatega.

Sellest tulenevad kaks praktilist reeglit. Veebijuures olevat varukoopiat, näiteks zip-faili kaustas wp-content, saab alla laadida igaüks, kes selle nime ära arvab. Samas serveris olevat varukoopiat saab kustutada sama ründaja. Hoidke vähemalt üht koopiat kohas, kuhu saidi kasutajatunnustega ligi ei pääse, ja testige täielikku taastamist.

8. Kontrollige failide terviklust

WP-CLI suudab võrrelda teie faile WordPress.org-i ametlike kontrollsummadega ilma WordPressi laadimata:

wp core verify-checksums --include-root
wp plugin verify-checksums --all

Esimene käsk märgib ära muudetud tuumafailid ja --include-root hoiatab juurkaustas olevate ootamatute failide eest. Teine võrdleb pluginaid WordPress.org-i kontrollsummadega, seega aitab see ainult seal majutatud pluginate puhul. Otsige ka PHP-faile kaustast wp-content/uploads, kus peaks tavaliselt olema ainult meediafaile.

9. Kasutage vähimate õigustega andmebaasikasutajat

Andke igale saidile oma andmebaas ja oma andmebaasikasutaja, kellel on õigused ainult sellele andmebaasile. Ärge kunagi looge ühendust andmebaasi root-kasutajana.

Karmistamise juhend märgib, et igapäevaseks tööks on vaja ainult õigusi SELECT, INSERT, UPDATE ja DELETE. See ei soovita õigusi DROP, ALTER ja GRANT ära võtta, sest pluginad ja suured uuendused võivad vajada andmebaasi skeemi muutmist. Kui eemaldate need siiski, hoidke testitud varukoopiaid.

10. Määrake failiõigused

Juhendi lähtepunkt on kaustadele 755 ja failidele 644. Tuumafailid, wp-admin ja wp-includes peaksid olema kirjutatavad ainult teie kasutajakontole, mitte veebiserverile. Erand on wp-content: veebiserver peab saama sinna üleslaadimiste jaoks kirjutada. Failile wp-config.php soovitab juhend õigusi 400 või 440.

find /var/www/example -type d -exec chmod 755 {} \;
find /var/www/example -type f -exec chmod 644 {} \;
chmod 440 /var/www/example/wp-config.php

Enne nende käskude käivitamist kohandage teed ja omanikud oma majutuse seadistusele.

11. Saatke turvapäiseid

Päised nagu Strict-Transport-Security, Content-Security-Policy, X-Content-Type-Options ja Referrer-Policy lisavad brauseripoolset kaitset. Võimaluse korral määrake need veebiserveris või CDN-is, mitte plugina kaudu. Alustage report-only-režiimis sisuturbepoliitikaga, sest teemad ja lehekoostajad võivad tugineda tekstisisestele skriptidele.

12. Pange ette WAF

WordPressi dokumentatsioon kirjeldab kolme taset: turvapluginad, mis filtreerivad päringuid WordPressi sees, serveritaseme tulemüür nagu ModSecurity ja pöördpuhverserveri teenused, mis filtreerivad liiklust enne, kui see teie serverisse jõuab. Mida kaugemal filtreerimine toimub, seda vähem koormust jõuab PHP-ni. WAF ei asenda uuendusi. See annab aega haavatavuse avalikustamise ja teie paikamise vahel.

Lühidalt

ValdkondMiinimum
UuendusedTuuma väiksemate väljalasete automaatuuendused sees, pluginad vaadatakse üle iga nädal
PluginadSuletud, hüljatud ega kasutamata pluginaid pole paigaldatud
KontodNimelised kontod, vähe administraatoreid, kõigil neil 2FA
SisselogimineKatsete piiramine serveris või võrgu servas, XML-RPC blokeeritud, kui seda ei kasutata
KoodimuudatusedDISALLOW_FILE_EDIT määratud
VarukoopiadServerist väljas, veebijuurest eemal, taastamine testitud
TerviklusKontrollsummad kontrollitud, üleslaadimiste kaustas pole PHP-faile
AndmebaasÜks kasutaja saidi kohta, õigused ainult oma andmebaasile
BrauserHSTS ja testitud CSP
PerimeeterEes WAF või pöördpuhverserver

Kust alustada

Alustage esimesest neljast punktist. Need võtavad vähe aega ega nõua majutuses muudatusi. Seejärel kontrollige oma praeguseid päiseid meie turvapäiste skanneriga.

Kui soovite, et seda kontrollitaks teie eest, skannib SecAudit WordPressi pahavara ja veebishellide suhtes, kontrollib failide terviklust ametlike kontrollsummade alusel ja seob paigaldatud pluginad teadaolevate haavatavustega.

Kuidas saame aidata

SecAudit

Meie oma toode. SecAudit otsib WordPressi saitidelt pahavara, haavatavat koodi, muudetud faile ja teadaolevaid haavatavusi ning koostab tulemustest aruanded, mis on vastendatud OWASPi, IKÜMi ja NIS2 nõuetega.

Turvapäiste skanner

Hinnake veebisaidi HTTP-turvapäiseid, küpsiseid ja TLS-sertifikaati ning saage iga leiu kohta parandus.

Kirjutage meile
AngelForce’i meeskond

Kirjutanud AngelForce’i meeskond: CEH-, LPT Masteri ja CISA-sertifikaadiga turvakonsultandid, kes testivad, jälgivad ja kaitsevad organisatsioonide süsteeme kogu Euroopas ja Türgis.

Artikkel on kirjutatud tehisintellekti abil allpool loetletud avalike allikate põhjal ning AngelForce’i meeskond vaatas selle enne avaldamist üle.

Allikad

  1. developer.wordpress.org/advanced-administration/security/hardening/
  2. developer.wordpress.org/advanced-administration/security/brute-force/
  3. developer.wordpress.org/plugins/wordpress-org/alerts-and-warnings/
  4. developer.wordpress.org/reference/hooks/xmlrpc_enabled/
  5. developer.wordpress.org/cli/commands/core/verify-checksums/
  6. wordpress.org/documentation/article/plugins-themes-auto-updates/

Artiklid teemal „WordPress“

Rääkige meile, mida soovite kaitsta

Kirjeldage oma keskkonda ja seda, mida soovite saavutada. Vastame e-posti teel.

Kirjutage meile
info@angelforce.eu

AngelForce OÜ · Tallinn, Eesti