Pluginurile WordPress sunt sigure de utilizat?
Publicat: 2020-04-16De-a lungul anilor, cercetările au identificat că peste 20% dintre cele mai populare 50 de plugin-uri WordPress sunt vulnerabile la atacurile web comune. Mai mult, o cercetare țintită a pluginurilor de comerț electronic a descoperit că 7 din cele mai populare 10 plugin-uri de comerț electronic conțin vulnerabilități. Din păcate, hackerii exploatează de obicei aceste aplicații vulnerabile pentru a accesa informații sensibile, cum ar fi dosarele de sănătate și detaliile financiare. În alte cazuri, vulnerabilitățile permit hackerilor să deformeze site-uri sau să le redirecționeze către alte site-uri controlate de atacatori.

În cazuri mai recente, am văzut că pluginuri WordPress rău intenționate sunt utilizate nu doar pentru a menține accesul la serverele compromise, ci și pentru a extrage criptomonede. Deci, aceasta ridică o întrebare despre cât de sigure sunt pluginurile WordPress.
În acest blog, ne vom concentra profund pe pluginurile WordPress ca surse potențiale de încălcări de securitate.
Dezvoltare Web bazată pe pluginuri.
În general, WordPress este cel mai popular sistem de management al conținutului (CMS) din lume, deoarece alimentează mai mult de 30% din Web.
Acestea fiind spuse, punctul forte al WordPress constă în capacitatea sa de a permite personalizarea site-urilor prin oferta sa extinsă de zeci de mii de plugin-uri și teme. Aceste plugin-uri variază ca tip și funcționalitate - de la adăugarea unui formular de contact pe site până la optimizarea unui blog pentru SEO sau chiar publicarea automată de noi postări pe Facebook.
Dezvoltare terță parte.
Ideea principală din spatele dezvoltării bazate pe plugin este de a oferi funcții suplimentare pentru a extinde capacitățile de bază ale unui sistem. În esență, nucleul aplicației este de obicei întreținut de un set de dezvoltatori pe termen lung, în timp ce terțe părți construiesc o serie de plugin-uri în jurul nucleului aplicației.
Acest proces este benefic atât pentru furnizorul de aplicații, cât și pentru furnizorul de plugin, deoarece furnizorul de aplicație se poate concentra mai mult pe funcționalitatea de bază, în timp ce furnizorul de plugin nu trebuie să fie preocupat de infrastructura pluginului, care este furnizată de funcționalitatea de bază a aplicației. În general, WordPress este susținut și de o comunitate globală de mii de dezvoltatori și entuziaști de software comercial și open-source.
Fără instrucțiuni de securitate
În general, deși există un set de standarde și recomandări de codificare, nu există, din punct de vedere tehnic, linii directoare de securitate sau cerințe standard pe care un dezvoltator de plugin trebuie să le respecte cu strictețe. Aceasta înseamnă că o vulnerabilitate dintr-un plugin se poate propaga pe milioane de site-uri web.
Și, deoarece WordPress este utilizat pe scară largă, este, în consecință, o țintă populară pentru atacuri. Deci, în esență, un hacker care exploatează vulnerabilitatea unui plugin poate infecta mii de site-uri. Un scenariu care a fost deja martor de mulți bloggeri.
Din păcate, vulnerabilitățile legate de plugin tind să fie, de asemenea, recurente, exploatabile și greu de detectat. Prin urmare, este nevoie să înțelegem în continuare astfel de vulnerabilități pentru a atenua orice amenințări relevante de securitate. Să săpăm mai adânc, da?

Este WordPress cu adevărat sigur?
În primul rând, să răspundem la această întrebare. În cea mai mare parte, WordPress ca ecosistem brut este foarte sigur atâta timp cât sunt respectate cele mai bune practici de securitate WordPress. În medie, aproximativ 30.000 de site-uri web noi sunt piratate în fiecare zi pe web. Acești hackeri tind să vizeze site-urile WordPress din cauza vulnerabilităților pluginurilor, a parolelor slabe și a software-ului învechit. Așadar, obținerea celei mai bune securități necesită un nivel de intenționalitate, ceea ce înseamnă să urmați câteva bune practici de bază de securitate WordPress pentru a vă reduce vulnerabilitatea la atac.
Citiți mai multe: 11 moduri eficiente de a vă extinde site-ul WordPress pentru un trafic ridicat
De unde vin aceste vulnerabilități?
Un raport recent al wpscan.org a dezvăluit că WordPress are aproape 4.000 de vulnerabilități de securitate cunoscute. Marea majoritate a acestor vulnerabilități au fost cauzate de pluginuri. Și în timp ce unele dintre aceste vulnerabilități legate de plugin pot avea consecințe grave, multe rămân neobservate ani de zile înainte de a fi remediate. În cele mai multe cazuri, acestea pot fi de obicei remediate cu modificări mici și localizate ale codului sursă.
Cu toate acestea, înainte de a trece înaintea noastră, să facem un pas înapoi.
Ce sunt pluginurile?
Practic, pluginurile sunt extensii software care completează aplicațiile cu noi funcționalități și comportament personalizate. În special, WordPress oferă mii de plugin-uri (mai mult de 52.000), care au fost folosite pentru a construi mii de aplicații web personalizate.
Deoarece aplicațiile web bazate pe plugin-uri au devenit mai populare, mai mulți dezvoltatori și-au îndreptat atenția spre a-și explora potențialul de a reimagina aplicațiile web prin compunerea, configurarea și extinderea diferitelor plugin-uri cu funcționalități de ultimă oră.
Implicațiile dezvoltării pluginurilor
Acestea fiind spuse, capacitatea de a exploata pluginuri pentru a extinde sistemele web cu funcționalități suplimentare și personalizate are atât implicații pozitive, cât și negative pentru dezvoltatori. În primul rând, într-o notă pozitivă, există în mod normal mai multe opțiuni de personalizare din care să aleagă, oferind dezvoltatorilor posibilitatea de a construi rapid și ușor aplicații web care sunt personalizate pentru nevoile utilizatorilor. Astfel, facilitând prototiparea și dezvoltarea rapidă.
Cu toate acestea, pe partea negativă, o aplicație web poate ajunge să fie o compoziție complexă de mai multe plugin-uri din surse diferite. Ceea ce în cele din urmă ridică preocupări legate de securitatea pluginurilor. De exemplu, TimThumb, un plugin care a fost folosit de milioane de aplicații bazate pe WordPress, a fost deschis unui exploit în care atacatorii ar putea executa în mod deliberat cod de la distanță.
De fapt, aproximativ 15% dintre vulnerabilitățile sistemelor web pot fi considerate critice conform bazei de date naționale de vulnerabilitate (NVD) a Statelor Unite, aproape 35% dintre ele fiind vulnerabilități ușor de exploatat.
Care sunt consecințele pluginurilor compromise?
Pe lângă faptul că utilizatorii își pierd informațiile financiare sau chiar au fișele lor de sănătate compromise, cu cât o vulnerabilitate este mai gravă, cu atât este mai mare impactul financiar asupra companiilor de software. În plus, acest lucru este exacerbat și mai mult dacă dezvoltatorii nu reușesc să lanseze o cale viabilă în momentul dezvăluirii. Astfel, furnizorii de pluginuri se străduiesc de obicei să creeze aplicații mai sigure
Să investigăm acum câteva vulnerabilități de securitate întâlnite de obicei în pluginuri pentru a obține o înțelegere mai largă a consecințelor și implicațiilor acestora.
Vulnerabilități de securitate
După cum am adunat, vulnerabilitățile deschid oportunități pentru potențiala utilizare greșită a sistemelor software. În cele din urmă, deoarece WordPress permite milioanelor de dezvoltatori din întreaga lume să-și creeze propriile pluginuri, este nerealist să nu ne așteptăm la un nivel de compromis în pluginuri.
În consecință, securitatea poate fi încălcată de interacțiunile neprevăzute ale pluginurilor cu sistemul de bază, ceea ce duce la vulnerabilități care pot fi potențial exploatate de atacatori. Acest lucru implică apoi că securitatea sistemelor web depinde de menținerea sub control atât a vulnerabilităților sistemului de bază, cât și a pluginurilor.
Complexitatea WordPress
Din cauza complexității WordPress, acesta tinde uneori să fie afectat de vulnerabilități. De exemplu, WordPress oferă o infrastructură intuitivă la care pluginurile pot contribui cu noi funcții modificând starea globală partajată sau rulând o funcție într-un anumit punct al execuției nucleului sistemului. În consecință, o vulnerabilitate a pluginului poate apărea atunci când pluginul trimite date de intrare rău intenționate către componentele de bază fără o igienizare sau validare adecvată a intrărilor.
Exemple de vulnerabilități ale pluginurilor
În cele din urmă, cele mai comune vulnerabilități ale pluginurilor sunt scripturile între site-uri, injecția SQL și falsificarea cererilor între site-uri. În general, cel mai periculos tip de vulnerabilitate care poate fi exploatat cu ușurință de către atacatori este SQL Injection. Cu toate acestea, există și alte vulnerabilități, surse de încălcare și compromisuri, și anume:
- Erori de prelucrare a datelor
- Validare necorespunzătoare a intrărilor
- Expunerea la informații
- Traversarea căii
- Caracteristici de securitate
- Controale de acces
- Control necorespunzător al accesului
- Autorizare necorespunzătoare
- Autentificare necorespunzătoare
- Falsificarea cererii pe mai multe site-uri
- Încărcare nerestricționată a fișierului
- Fișiere accesibile părților externe
- Link care urmează
- Deschideți Redirecționare
- Injecție de comandă
- OS Command Injection
- Cross-site Scripting
- Injecție SQL
- Injectarea codului

Pentru mai mult context, haideți să explorăm cele mai comune atacuri și vulnerabilități.
- · Injecție SQL: injecțiile SQL au loc de obicei atunci când un atacator obține acces la baza de date WordPress a unui utilizator și la toate datele site-ului său. Injecțiile SQL pot fi, de asemenea, folosite pentru a introduce date noi într-o bază de date, inclusiv link-uri către site-uri web rău intenționate sau spam.
Injecțiile SQL permit executarea comenzilor pe serverul back-end, cum ar fi extragerea de informații sensibile. Într-un mediu găzduit, un atac SQL Injection poate fi folosit în continuare ca o piatră de temelie pentru atacuri împotriva site-urilor nevulnerabile.
- · Cross-Site Scripting: Acest atac permite rularea unui script pe client pentru a ocoli controalele de acces. De obicei, vizează toți vizitatorii unui site. Într-un mediu găzduit, un astfel de atac poate fi folosit pentru a fura cookie-urile de sesiune ale administratorului site-ului, permițând atacatorului să se prezinte ca administrator.
- · Falsificarea cererilor între site-uri: Această vulnerabilitate permite hackerului să efectueze o tranzacție la nivel de aplicație în numele victimei. Într-un mediu găzduit, un atacator se poate autentifica pe site în numele administratorului și poate efectua activități rău intenționate, cum ar fi redirecționarea utilizatorilor sau efectuarea de tranzacții de administrator.
Obișnuite în pluginurile WordPress, vulnerabilitățile de scriptare între site-uri funcționează într-o manieră ca aceasta – un atacator găsește o modalitate de a determina o victimă să încarce pagini web cu scripturi JavaScript nesigure.

Unde apar cele mai multe vulnerabilități?
Un studiu tehnic a descoperit că majoritatea vulnerabilităților (aproximativ 92%) apar în codul pluginului. În plus, conform rezultatelor, vulnerabilități precum Cross-site Scripting și Cross-site Request Forgery au fost mai frecvente în codul pluginului, în timp ce alte vulnerabilități au fost mai răspândite în codul de bază. În mod similar, studiul a arătat că calitatea pluginurilor a variat și că nu a existat nicio corelație între evaluările pluginurilor și numărul de vulnerabilități găsite în acestea.

Procesul de scriere a codului PHP
Procesul de scriere a codului ar putea fi geneza oricărei vulnerabilități sau compromisuri. În general, PHP este binecunoscut pentru că sprijină execuția de cod arbitrar pe partea serverului fără a invoca direct sistemul de operare gazdă. Acestea fiind spuse, ori de câte ori dezvoltatorii sunt neglijenți în timpul procesului de scriere a codului, ridică posibilitatea introducerii unor vulnerabilități Cross-site Scripting în codul pluginului.
Pe de altă parte, în ceea ce privește SQL Injection este o vulnerabilitate comună, deoarece poate fi ușor detectată și exploatată. În mod ironic, chiar și un site web cu o bază mică de utilizatori este probabil supus unei încercări de atac de injecție SQL.
O parte din expunerea la vulnerabilități provine din cauza dezvoltatorilor care folosesc resurse nesigure. În mod similar, validarea corectă a intrărilor este încă o provocare majoră pentru dezvoltatorii de pluginuri, deoarece multe dintre pluginurile dezvoltate recent au fost create de dezvoltatori nu atât de calificați.
Sunt vulnerabilitățile cauzate de pluginurile WordPress critice?
Luând în considerare toate lucrurile; o vulnerabilitate poate influența negativ sistemul web în mai multe moduri. De exemplu, exploatarea cu succes a unei vulnerabilități poate duce la o pierdere completă a confidențialității, deși fără pierderea disponibilității.
După cum s-a menționat, SQL Injection pare a fi cel mai periculos tip de vulnerabilitate, deși afectează doar parțial integritatea, disponibilitatea și confidențialitatea sistemului. Cu toate acestea, o astfel de vulnerabilitate are potențialul de a permite atacatorilor acces nerestricționat la fișiere sau informații.
Deci, din neatenție, majoritatea vulnerabilităților pot duce la încălcări ale datelor, în timp ce câteva vulnerabilități nu expun neapărat aplicația web la riscuri serioase de securitate. Oricum, este important să evitați riscul cu astfel de cote.
Cât timp poate supraviețui o vulnerabilitate în codul unui plugin WordPress?
De obicei, vulnerabilitățile din cod tind să tranziteze prin stări distincte, variind de la introducere, trecând prin dezvăluire, până la lansarea unui patch care remediază amenințarea de securitate.
De obicei, o vulnerabilitate este dezvăluită atunci când descoperitorul dezvăluie detaliile amenințării de securitate unui public mai larg. În cele din urmă, vulnerabilitatea este remediată atunci când dezvoltatorul lansează un patch care corectează amenințarea de securitate subiacentă. Cu toate acestea, uneori, o vulnerabilitate rămâne neobservată într-o aplicație web ani de zile înainte de a fi identificată și apoi remediată.
Posibile atenuări și metode de detectare
Prevenirea este mai bună decât vindecarea, așa cum spun majoritatea oamenilor. Deci, dacă dezvoltatorii de pluginuri pot înțelege pe deplin, detecta și elimina Cross-site Scripting, SQL Injection și Cross-site Request Forgery, este posibil să avem plugin-uri cu 75% mai puține vulnerabilități.
Cu toate acestea, este de remarcat faptul că aceste trei vulnerabilități nu sunt singurele vulnerabilități care pot fi exploatate de atacatori. Ci mai degrabă, sunt cele mai comune vulnerabilități.
Deci, deși aceste strategii de atenuare propuse nu garantează că un anumit plugin va fi pe deplin sigur, ele, totuși, stabilesc principii bune pentru prevenirea vulnerabilităților. De exemplu:
- Înțelegeți cum sunt utilizate datele și codificarea așteptată de părțile principale ale WordPress. În acest caz, dezvoltatorii ar trebui să asume întotdeauna toate intrările ca fiind rău intenționate și să respingă orice intrare care nu este strict conformă cu modelul de codificare cerut sau să o transforme într-o intrare validă.
- Pentru a proteja bazele de date împotriva injectării SQL, dezvoltatorii ar trebui să utilizeze instrucțiuni SQL parametrizate, separând codul de manipularea datelor. De asemenea, verificați întotdeauna anteturile pentru a verifica dacă cererea este de aceeași origine. În plus, ar putea fi util să evitați expunerea datelor unor atacatori neautentificați.
- O bună practică este evitarea metodei GET pentru orice solicitare care declanșează o schimbare de stare.
Detectarea vulnerabilităților
Din păcate, nu există o metodă consecventă pentru a detecta cele mai comune slăbiciuni ale codului cu 100% de precizie și acoperire. Din păcate, chiar și tehnicile moderne care folosesc analiza fluxului de date pentru a detecta Cross-site Scripting, uneori dau rezultate false pozitive.
În schimb, metodele de analiză manuală, cum ar fi revizuirea codului, tind să fie mai eficiente decât metodele complet automatizate, în special pentru vulnerabilitățile legate de proiectare. De exemplu, falsificarea cererilor între site-uri este deosebit de greu de detectat în mod fiabil folosind metode automate, deoarece fiecare aplicație are propria sa politică de securitate și modalitate de a indica ce cereri necesită o încredere puternică că utilizatorul intenționează să facă cererea.
Cu toate acestea, pe de altă parte, analiza manuală poate fi utilă pentru a găsi SQL Injection, deși s-ar putea să nu atingă acoperirea dorită a codului în limite de timp limitate. Acest lucru poate deveni dificil pentru punctele slabe care trebuie luate în considerare pentru toate intrările, deoarece suprafața de atac poate fi prea mare.
În consecință, unele organizații subliniază importanța unei abordări echilibrate care să includă atât revizuiri manuale, cât și analize automate care să cuprindă toate fazele procesului de dezvoltare a sistemului web.
Cele mai bune practici pentru a vă proteja aplicația WordPress
- Descărcați pluginuri numai din surse reputate, cum ar fi WordPress.org: deoarece oricine poate dezvolta un plugin WordPress, hackerii exploatează în mod notoriu această vulnerabilitate pentru a-și ascunde propriile plugin-uri rău intenționate. Este posibil ca o piață de renume să nu garanteze accesul la pluginuri inofensive, dar este recomandată ca practică de atenuare.
- Asigurați-vă întotdeauna că toate pluginurile dvs. sunt actualizate: utilizatorii WordPress primesc de obicei e-mailuri de notificare pe care adesea le ignoră. Asigurați-vă că vă setați pluginurile să se actualizeze automat sau cel puțin să le actualizați manual.
- Verificați starea de securitate a pluginului scanându-l pentru probleme de securitate: majoritatea pluginurilor sunt open-source, ceea ce înseamnă că codul lor sursă este disponibil. Așadar, asigurați-vă că utilizați un instrument static de analiză a codului sursă, care vă va oferi „factura de sănătate” a pluginului. Unele scanere avansate vă pot indica chiar și cele mai bune și rapide recomandări de remediere.
- Eliminați toate pluginurile neutilizate: din păcate, codul pluginurilor vechi, neutilizate, rămâne de obicei pe server – chiar și atunci când pluginurile sunt inactive. Prin urmare, asigurați-vă că eliminați întotdeauna pluginurile neutilizate ca parte a întreținerii site-ului dvs. WordPress
Recomandări pentru dezvoltatorii de pluginuri
- Încorporați întotdeauna securitatea în timpul dezvoltării pluginului: vulnerabilitățile implică un cost mai mare pentru a fi remediate mai târziu, așa că, integrați întotdeauna securitatea în dezvoltarea pluginului ca parte a procesului dumneavoastră securizat ciclului de viață al dezvoltării software (SDLC).
- Rulați pluginul printr-un scanner de cod pentru a vă asigura că respectă cele mai recente standarde de securitate. Asigurați-vă că efectuați un test complet de analiză a codului sursă în timpul dezvoltării și înainte de lansare.
Dezvoltarea de pluginuri securizate
După cum s-a menționat, dezvoltatorii de pluginuri trebuie să se străduiască să scrie cod securizat. Din păcate, mulți dezvoltatori încă nu știu cum să facă, deoarece nu sunt atât de pricepuți. În special, având în vedere natura celor mai frecvente vulnerabilități citate mai sus, este clar că mulți dezvoltatori nu înțeleg atacurile obișnuite, funcțiile de securitate oferite de limbajul și platforma pe care le folosesc și cum să folosească practicile aplicabile pentru a atenua problemele de securitate.
Prin urmare, recomandarea noastră de la Creole Studios este că poate ar trebui dezvoltate noi metodologii adaptate dezvoltatorilor de pluginuri. Astfel de metodologii ar trebui să promoveze securitatea în cerințele și fazele de proiectare, deoarece dezvoltatorii sunt cele mai importante entități în securitatea software-ului.
Gânduri finale
Pentru a rezuma subiectul, pluginurile WordPress pot fi compromise, cele mai comune vulnerabilități fiind Cross-site Scripting, SQL Injection și Cross-site Request Forgery.
Din păcate, cercetările par să sugereze că frecvența cu care apar aceste vulnerabilități nu pare să scadă în timp. Este sigur să presupunem că motivul principal pentru aceasta este că majoritatea dezvoltatorilor de pluginuri WordPress rămân oarecum sub-calificați în ceea ce privește programarea securizată.
Acestea fiind spuse, prima linie de apărare ar trebui să fie echipa de dezvoltare! Și credem că, odată ce cele mai bune practici de securitate sunt efectuate, atunci utilizatorii pot dormi mai bine noaptea, știind că sunt protejați de infractorii cibernetici.
Pentru mai multe informații despre practicile noastre de securitate WordPress, asigurați-vă că vă rugăm să contactați pentru o consultație.