Cum să nu îți fie spart site-ul (WordPress și nu numai)

Am scris un articol cu măsuri fundamentale de securitate pentru un site WordPress (și nu numai). Sunt măsuri elementare, câteva ponturi și povești din tranșee. Deși sunt pași simpli, multe riscuri de securitate sunt evitate dacă îi urmezi consecvent.

7 Likes

Folosește plugin-uri de încredere și actualizate

Am avut recent un potențial client care era foarte mândru că are doar pluginuri nulled.

Afacere ce produce spre suta de mii de euro anual.

Că el folosește așa de ani de zile, că n-au fost probleme, scuzele normale.

Cu toate astea, site-ul era extrem de lent :joy: Mă întreabă: e de la hosting? Că am schimbat recent hostingul pentru că foloseam prea multe resurse :smiley:

Și nici măcar nu erau multe plugin-uri; nu cred că depășeau 2-300€…

2 Likes

Am avut feedback-ul asta după articol: să nu folosești plugin-uri nulled.

Mie mi se pare de bun simț să nu iei mizerii de pe net și să îți pui in site.

Mi s-a mai zis sa nu ai user “admin”. Da, de bun simț. Dar dacă ai parola puternica și 2FA, e secundar.

Am incercat sa țin la super minimum lista și m-am limitat la 5 elemente fundamentale. De exemplu, foarte, foarte frecvent am auzit de stații infectate. Ultima data acum 5 minute. Firma de dev, statie infectata și nenumărate site-uri ale clienților sparte pe baza parolelor salvate pe statie. Cred că securitatea statiilor e neglijata serios, deși Bitdefender costa doar in jur de 100 de lei pe an.

Altfel poți să o duci la zeci sau chiar sute de “porunci”.

1 Like

Poți avea vreun zero day exploatabil cu select * from wp_users where login = 'admin' (sau care naiba e coloana pentru user), iar un 2FA nu te ajută în mod deosebit. Și nici SSO.

Mi se pare mult mai important să blochezi execuția de cod PHP în /wp-content/ decât SSO sau 2FA, de exemplu. În 10+ ani de WP cred că pot număra pe degetele de la o mână cazurile în care am avut nevoie de a accesa direct un .php în interiorul /wp-content.

Dar nu știu cât de aplicabilă este soluția asta pentru un enduser (poate companiile de hosting ar putea face asta automat?)

Păi ce, nu poți folosi un antivirus cracked??? Știu eu un băiat… /s

1 Like

Nu te salveaza bitdefender, te salveaza common sense si atentia foarte mare la ce descarci si rulezi (in
special cu drepturi de admin, ca o aplicatie simpla nu o sa iti ia parolele si nici nu are acces la alte procese in memorie). Sunt si niste extensii de browser care pot sa iti faca probleme. (LastPass a fost spart? :slight_smile: )

Mai sunt desigur chestii foarte avansate cu 0-day-uri pe care sigur nici un antivirus nu le detecteaza, inclusiv pe Mac/Linux… De asta te salveaza doar un newsletter bun/whitehat hacker forums/zero trust la tot. Aici ma refer la lucruri precum un mesaj in Teams cu o poza care ii da atacatorului acces la procesul care decodeaza poza intr-un anumit fel si ruleaza o comanda ascunsa cu drepturi de admin…

1 Like

Ba da, sunt foarte multe situatii in care te poate salva. Si iti zic o chestie de la munca, patita de un coleg. Acum ceva ani a descarcat un rahat de fisier (nu stiu din ce motiv) si s-a trezit cu un rahat de virus. I-au fost luate toate datele din pc, primit acces la serverul pe care erau aplicatiile clientilor si sters tot. Norocul a fost ca au existat backup-uri.
Desi a fost vina lui ca nu a fost atent ce a descarcat, nu se mai intampla chestia asta daca exista un layer de protectie in plus.

Chestii d-astea banale de care razi in prima faza, dar se poate intampla oricui. Nu esti robot sa stai 100% focusat mereu… se intampla sa mai ai scapari :smiley:

3 Likes

a zis cineva de linux? :slight_smile:

În momentul în care se pot rula query-uri pe server, nu te mai salvează faptul că ți-ai redenumit userul admin. SELECT * FROM wp_users ? sau INSERT JS in tabela cu posts?

Și asta e bună cu tăiat drepturi de execuție PHP în /wp-content, dar la fel te-ai cam dus pe copcă dacă îsi uploadează ce vor ei acolo. Gen fișiere care sunt încărcate când browse-uiesti /wp-admin/.

Nu e o politică ok sa modifici chestii prin site-urile clienților. Folosim în schimb BitNinja, care are multe pattern-uri din astea, posibil să nu te lase să accesezi un URL cu .php dacă e in wp-content/.

Idee articolului e să rezolvăm lucruri de bază înainte de avioane. În condițiile astea, un antivirus face multe. De 0-day aproape nimic nu te scapă dacă întălnești un priceput ambițios chitit pe tine. :slight_smile:

Scriam și eu pentru muritori de rând. :slight_smile: Și se mai întâmplă chestii și pe stații Linux … De luat, oricum, elementele server-side din articol. :slight_smile:

1 Like

Am avut acum multi ani de facut un site in Wordpress si nu mai stiu ce tema sau plugin am folosit dar era nulled. Intr-o luna de zile a trebuit sa-l refac de tot ca avea redirecte peste tot unde dadeam click. Nu stiu cum a scapat potentialul client despre care vorbesti. :sweat_smile:

Cred ca pluginul Wordfence Security nu e mentionat destul in discutia asta.

Am devirusat wordpress-uri cu ajutorul wordfence, iti scaneaza toate pluginurile si temele si gaseste exact unde s-a bagat virusul (fie fisier js static, fie fisier php infectat).

Acum avem un client mare pe wordpress protejat cu wordfence de tot felul de incercari de atac, fie xss, sqli, flood, etc.

Primesc in fiecare zi emailuri de genu:

  • Exceeded the maximum number of login failures
  • Increased Attack Rate - Blocked because the IP is blocklisted
  • Exceeded the maximum global requests per minute for crawlers or humans
  • Blocked for Directory Traversal in query string: cpath
    etc…

Wordfence ofera 2fa, bruteforce protection, rate-limiting, firewall pentru vulnerabilitati pluginuri, IP Blocklist din reteaua lor (premium). Mi se pare un must-have pentru siteurile wordpress.

Inca un plugin foarte util e WP Hide Login, care muta pagina de login in admin pe orice link vrei. Asa scapi complet de incercari de bruteforce.

5 Likes