Lansată în 2003 ca platformă open source, WordPress este una dintre cele mai populare platforme de publicare online, găzduind 28,9% dintre toate site-urile web ale lumii și având aproximativ 60% din cota de piața globală a sistemelor de administrare a conţinutului (CMS). Totuşi, odată cu popularitatea acesteia, apare şi o mare responsabilitate, deoarece lupta pentru menţinerea securităţii platformei este o activitate neîncetată. Dar, din păcate, este adesea neglijată de către utilizatori. Proprietarii site-urilor plasează rareori securitatea pe primul loc în lista lor de priorități, până când își dau seama cât de expuși sunt de fapt.
Fără îndoială, principalul avantaj pe care îl are WordPress este calitatea de platformă open-source, care în acelaşi timp reprezintă și principala sa slăbiciune. Disponibilitatea publică a codurilor sursă originale o face vulnerabilă la hackerii care caută permanent vulnerabilităţi care le-ar acorda acces la site-uri Web construite pe acestea.
În ciuda faptului că WordPress publică în mod constant actualizări ce conțin corecţii de securitate, de multe ori acestea nu sunt suficiente.
De fapt, 83% dintre toate site-urile infectate sunt site-uri WordPress, urmate de Joomla cu 13,1% și Magento cu 6,5%.
Principalele cauze care stau în spatele acestei "performanțe" impresionante pentru WordPress sunt versiunile de CMS depășite și vulnerabilitățile pluginurilor instalate. 39,3% dintre site-urile WordPress care au solicitat curățarea, funcționau pe versiuni învechite, în timp ce 54% dintre toate vulnerabilitățile WP la nivel global sunt de fapt cauzate de pluginuri vulnerabile.
Așadar, pluginurile sunt cea mai mare slăbiciune a platformei WordPress, deși scopul lor inițial era de a o îmbunătăți cu caracteristici și funcționalități suplimentare.
Potrivit studiului realizat OWASP - Top 10 Application Security Risks - 2017 , cele mai frecvente trei riscuri de securitate ale aplicațiilor sunt:
Injection Flaws, cum ar fi SQL, NoSQL și LDAP;
Autentificarea și gestionarea slabă a sesiunilor;
Vulnerabilitatea pe care o vom aborda este autentificarea și gestionarea slabă a sesiunilor, care este, în esență, incapacitatea de a gestiona în siguranță cine, când și cum poate să obțină accesul la platformă (fie în calitate de administrator, fie ca simplu utilizator ).
OWASP definește autentificarea ca:
"Autentificarea este procesul de verificare a identității unui persoane, entități sau site web."
Un lucru este sigur, totuși:
Autentificarea nu mai aparține parolelor.
Din momentul în care atacatorii au obținut acces la nume de utilizatori sau parole valide sau ambele, a devenit clar faptul că autentificarea nu trebuie să rămână la fel. Credențialele nu mai protejează conturile utilizatorilor ca până acum. De fapt, 81% din atacurile cibernetice au avut la bază parole furate și / sau slabe. Așadar, de ce le mai folosim?
Fiindcă autentificarea bazată pe credențiale este cea mai răspândită formă de autentificare. Cele mai multe controale de identitate și de acces o utilizează.
Cum rămâne cu managementul sesiunilor? OWASP definește gestionarea sesiunilor ca:
"Managementul sesiunilor este un proces prin care un server menține starea unei entități care interacționează cu el".
Validarea identității unui utilizator, autentificarea, precum și gestionarea sesiunii, sunt esențiale pentru protecția oricărei aplicații web, în special a unei aplicații open-source, cum este WordPress.
Să vedem care sunt principalele riscuri de autentificare.
Acest tip de atac se realizează cu ajutorul unui software automatizat ce generează un număr mare de parole, care sunt apoi testate în combinație cu un username, până când atacatorul obține accesul la cont.
Persoana care încearcă să obțină acces deține o listă validă cu nume de utilizatori și parole. În mod obișnuit, acestea sunt obținute din baze de date sparte.
Din păcate, majoritatea oamenilor preferă să folosească parole ușor de memorat din motive de confort și pentru că nu sunt conștienți de riscurile reale la care se supun.
Fiind o afacere care se învârte în jurul autentificării securizate și a gestionării accesului, un pas natural pentru noi a fost să creăm un plugin WordPress de autentificare cu doi factori (2FA) care să abordeze principalele vulnerabilități legate de procesul de autentificare. Pluginul funcționează împreună cu aplicația mobilă de autentificare UNLOQ, care devine al doilea factor, generând un Time-based One-Time Password (OTP) sau o cerere de autentificare prezentată sub forma unui Push Notification. Pentru securitate suplimentară, aplicația poate fi protejată prin PIN și / sau amprentă digitală.
În câteva cuvinte, pluginul UNLOQ înlocuiește procesele de înregistrare și de autentificare ale platformei WordPress, permițând administratorului site-ului web să schimbe URL-ul paginii de autentificare (din binecunoscutul / wp-admin), să aleagă tipurile și metodele de autentificare dorite și să personalizeze aspectul paginii de autentificare. Pluginul elimină, de fapt, necesitatea instalării a cel puțin altor două pluginuri suplimentare, reducând expunerea la pluginuri potențial nesigure.
În ceea ce privește autentificarea, am ales să acordăm flexibilitate în alegerea tipului și metodei de autentificare. Acest lucru se datorează faptului că intenționăm să adăugăm un sistem de autentificare pe bază de roluri și pentru că suntem conștienți de faptul că utilizatorii obișnuiți consideră autentificarea cu doi factori anevoioasă. Prin urmare, pluginul permite trei tipuri de autentificare:
Autentificarea se face în modul clasic, cu username și parolă, dar este gestionată de pluginul nostru, verificarea credențialelor fiind efectuată printr-un canal de comunicare securizat.
Acest tip de autentificare este cel mai potrivit pentru utilizatorii obișnuiți, care nu necesită editare sau acces administrativ la platformă.
În acest caz de utilizare, autentificarea se face în doi pași. Pe lângă verificarea credențialelor, utilizatorul trebuie, de asemenea, să-și verifice identitatea fie prin aprobarea notificării push primite pe telefon, fie prin introducerea parolei unice generate de aplicația mobile (OTP).
Autentificarea se realizează astfel:
În ceea ce privește riscul în acest scenariu, chiar dacă un atacator ar putea găsi combinația corectă de username și parolă printr-unul dintre atacurile descrise mai sus, acesta nu va mai putea accesa al doilea factor, dispozitivul utilizatorului. În opinia noastră, adăugarea unui al doilea factor la procesul de autentificare este obligatorie pentru toate rolurile utilizatorilor care au drepturi de acces sporite.
În acest scenariu, autentificarea este gestionată integral de UNLOQ și devine autentificare passwordless, deoarece nu este nevoie ca utilizatorul să introducă parola. După ce un utilizator introduce adresa de e-mail pe pagina de login, el trebuie să valideze autentificarea fie prin aprobarea notificării push primite pe dispozitivul său, introducând OTP-ul generat de aplicația mobilă, fie făcând clic pe linkul de autentificare pe care îl generăm și trimitem la adresa acestuia de e-mail.
Autentificarea se realizează astfel:
Prin transformarea în autentificare passwordless, riscurile legate de credențiale sunt eliminate complet. Acest tip de autentificare este cel mai recomandat pentru editorii de site-uri, administratori sau super administratori.
Odată cu creșterea valorii datelor personale și cu apariția de noi legislații privind confidențialitatea datelor, cum ar fi GDPR, putem spune că site-urile web trebuie să ia măsuri de securitate sporite. Pe măsură ce tehnologiile open-source continuă să se dezvolte, proprietarii site-urilor web trebuie să poată ține pasul cu noile metode de atac, care permit exploatarea vulnerabilităților sistemului, inclusiv erorile umane, cum ar fi parolele slabe. Chiar dacă nivelul cunoștințelor necesare creării unui site web, cum ar fi WordPress, este în prezent redus semnificativ, mentalitatea axată pe securitate trebuie să rămână o prioritate.