Securizarea platformelor WordPress
Ca de inceput
Securizarea in WordPress a fost intotdeauna supusa speculatiei hackerilor, scammerilor si a tututor „oamenilor” din acest cerc vicios.
Incercam sa luminam persoanele amatoare de aceasta platforma, dar poate sa ajutam si developerii juniori sau celor ce le „scapa ceva”.
Ce inseamna securizare?
Securizarea sta in eliminarea posibilitatii de patrundere neautorizata in datele platformei dumnevoastra sau injectarea platformei cu diferite coduri cu scopul de a prelua controlul platformei.
Rolul de securizare este cu atat mai important in perioada post GDPR pentru ca bresele de securitate inseamna si acces la posibile date cu caracter personal in cazul magazinelor online.
Reguli principale de securizare
Ca sa putem afisa regulile principale, trebuie sa intelegem ca WordPress se actualizeaza des pentru a inlatura potentiale brese de securitate, bug-uri sau de actualizare a unor functii depreciate.
Cum obtin hackerii controlul platformei:
- Prin forta bruta (wow, urat suna in romana – brute-force n.r. engleza) prin fie software-uri de linux, fie de windows. Ce fac aceste programe? Incearca un set de parole predefinite sau fraze predefinite in scopul de a gasi parola exacta;
- Prin module (addons) nesecurizate sau care folosesc functii ce permit injectarea altor comenzi prin browser;
- Prin teme (themes) ce sunt piratate si prin urmare cu siguranta au coduri preinstalate pentru accesul facil al hackerilor. Acest caz este cu mult mai frecvent in cazul celor ce vor o tema „gratuita” si care poate avea repercusiuni grave pe termen lung.
Acestea sunt cele mai importante elemente ce vor fi luate in considerare in scopul imbunatatirii securitatii platformei. Niciodata nu vom fi 100% siguri ca platforma este invicibila, insa eliminam o mare parte din hackeri.
Hackeri vs. scammeri
Mai avem o categorie de hackeri, asta cred ei ca sunt, denumiti in continuare scammeri.
Acesti scammeri profita de pe urma breselor de securitate raportate in online, cauta solutia optima pentru versiunea respectiva de WordPress si injecteaza coduri sau fragmente de coduri in scopul clar de spam.
Aici, spam-ul poate fi in scopul de a instala trojani sau spam in scop financiar.
Din pacate, cu toata tevatura criptomonedelor, spam-ul in principal se face pentru a instala trojani, a infecta cat mai multe dispozitive in scopul de a mina aceste criptomonede.
Sunt si scammeri ce au nevoie de datele financiare ale persoanelor, mai rari zilele acestea, dar ei inca exista.
Vom explica mai jos diferite scenarii.
De ce mi-au hackerit site-ul?
Asa cum am precizat mai sus, fiecare tip de infractor are un scop anume:
- Informatico-tehnic: sa vada el ca poate sa faca asta sau sa rada de proprietarul site-ului si sa isi „atribuie o victorie” asupra internetului;
- Pentru minat criptomonede;
- Financiar in scopul de a dobandi sume de bani.
Prima categorie sunt acei oameni ce pur si simplu cauta informatie, uneori chiar le distrug pentru ca atat ii duce capul, fara niciun scop financiar. Pur si simplu as FUN.
Cea de a doua categorie si ultima categorie vizeaza un singur scop: acela de a face un ban „cinstit”.
De ce tu si nu altu? Exceptand prima categorie, ceilalati nu vizeaza anumite site-uri ci au nevoie de cat mai multe victime. Una este sa minezi de pe un calculator, alta este sa minezi de pe 30-3000.
Securizare, pas cu pas (+informatii tehnice)
Care sunt pasii necesari unei securizari aproape perfecte?
- Este absolut necesar sa putem lasa WordPress sa isi faca actualizarile automat. Atentie insa, orice modificare in codul sursa va fi inlocuita cu un update viitor.
- Niciodata nu folosim teme sau module piratate sau descarcate din surse dubioase. Recomandam folosirea partenerilor WordPress si/sau instalarea modulelor direct din platforma WordPress, astfel eliminandu-se posibilitatea de cod malitios.
Sunt de mentionat si urmatoarele elemente:
- X-XSS-Protection – Conform Mozilla, „Antetul de răspuns HTTP X-XSS-Protection este o caracteristică a Internet Explorer, Chrome și Safari, care oprește încărcarea paginilor atunci când detectează atacuri reflectate de scripturi cross-site (XSS)”, adica nu va permite rularea unor scripturi introduse cross-site pe platforma dumnevoastra.
In cazul de fata, se va folosi:
<IfModule mod_headers.c>
Header set X-XSS-Protection "1; mode=block"
</IfModule>
astfel, orice atac survenit sub forma XSS va fi sanitizat si evident blocat.
- HSTS – Conform Mozilla, „Antetul de răspuns HTTP Strict-Transport-Security (adesea prescurtat ca HSTS) permite unui site web să spună browserelor că ar trebui accesat numai folosind HTTPS, în loc să utilizeze HTTP.” – astfel ca se elimina posibiltatea de accesare a platformei de pe versiunea nesecurizata si injectarea unui cod cu scopul de a redirectiona utilizatorul catre un website malitios.
Ce face mai exact HSTS? Obliga la utilizare stricata a versiunii securizata HTTPS, fara a mai functiona in regim dual.
Codul necesar implementarii, de asemenea in fisierul .htaccess din folder public_html:
<IfModule mod_headers.c>
Header set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" env=HTTPS
</IfModule>
Se poate testa functionalitatea, in sensul de implementarea corecta, pe site-ul hstspreload.org.
- X-Content-Type-Options – conform Mozilla, „Antetul HTTP de răspuns X-Content-Type-Options este un marker utilizat de server pentru a indica faptul că tipurile MIME anunțate în anteturile Content-Type nu trebuie modificate și trebuie intotdeauna urmate. Acesta este un mod de a renunța la sniffing de tip MIME sau, cu alte cuvinte, de a spune că tipurile MIME sunt configurate în mod deliberat.
Codul necesar implementarii va fi introdus tot in fisierul .htaccess din folder public_html:
<IfModule mod_headers.c>
Header set X-Content-Type-Options "nosniff"
</IfModule>
- Content-Security-Policy – poate unul din cei mai importanti pasi, conform Mozilla, „Antetul de răspuns HTTP Content-Security-Policy permite administratorilor de site-uri web să controleze resursele pe care agentul utilizatorului îi sunt permise să le încarce pentru o anumită pagină. Cu câteva excepții, politicile implică în principal specificarea originilor serverului și a punctelor finale ale scriptului. Acest lucru ajută la prevenirea atacurilor de scriptare între site-uri (Cross-site_scripting).
Un efect mare il are acest CSP, insa configurat neadecvat poate sa nu consolideze securitatea platformei dumnevoastra, ci sa o faca nefunctionala.
Pasul musai pentru configurarea acestui CSP este sa nu avem CSS sau Javascript inline, adica in codul sursa HTML, ci doar preluat prin import, astfel incat sa putem proteja in totalitate sursa din care executam scripturile.
Din pacate, majoritatea temelor WordPress folosesc inline.
Ca exemplu, puteti testa functionalitatea lui twitter din punct de vedere CSP cu evaluatorul gazduit de Google. Click aici.
Module de securitate
Putem imbunatati felul in care ne securizam platforma si prin diverse module de securitate, care, in varianta free ofera functii limitate, insa utile.
Daca aveti un site de ecommerce, va recomandam sa achizitionati versiunea premium sau platita astfel incat sa beneficiati de suport tehnic si functionalitate garantata.
- Loginizer – este unul din modulele gratuite, dar si cu functii premium, care in varianta free blocheaza accesul robotilor in partea de login, dar si incercarile repetate de autentificare (si esuate).
In versiunea premium, Loginizer ofera niste facilitati precum redenumirea fisierului de logare, recaptcha impotriva robotilor (autentificare, inregistrare, checkout, comentarii, etc).
- Wordfence, desi noi nu il utilizam, putem regasi numeroase voci online pro si contra.
Rezumat
- Instalam doar teme si module compatibile si oficiale (fie de pe platforma WordPress, fie de la partenerii WordPress);
- Configuram headerele de securitate prin codurile prezentate mai sus;
- Instalam un modul de securitate care sa ascunda pagina de login, blocheze prin captcha, blocheze autentificarile esuate. Aici ramane la decizia fiecarui utilizator sa citeasca descrierea modulului ca sa inteleaga daca se pliaza pe nevoile sale;
- Achizitionam un certificat SSL pentru criptarea informatiilor primite/trimise inspre si dinspre website.
Daca aveti nevoie de mai multe informatii sau un mod particular pentru o problema specifica, nu ezita sa ne contactezi prin formularul de contact.