Cum să verificați dacă sistemul dvs. WordPress este securizat împotriva atacurilor XSS
Publicat: 2016-07-09La nivel mondial, aproape 48% din toate site-urile web sunt vulnerabile la cross-site scripting (XSS). La nivel mondial, aproape exact 25% din toate site-urile web utilizează platforma WordPress.
Rezultă că în diagrama Venn a site-urilor web care sunt vulnerabile la XSS și site-urile care rulează platforma WordPress, suprapunerea trebuie să fie destul de mare.
Aceasta nu este o lovitură pe platformă în sine. Echipa WordPress a făcut din securitate o parte integrantă a declarației sale de misiune și corectează agresiv vulnerabilitățile ori de câte ori devin cunoscute. Cu toate acestea, acest lucru nu împiedică oamenii să codifice teme nesigure sau să instaleze pluginuri nesigure. Aceste probleme sunt cele două căi de intrare principale pentru atacurile XSS pe site-urile WordPress, iar acest articol va discuta cum să le opriți.
Introducere în Cross-Site Scripting
Mai întâi, să discutăm despre cum sunt efectuate atacurile XSS. Există mai mult de un tip de atac XSS, așa că voi începe cu o definiție simplificată. În general, atacurile XSS încep cu intrări neigienizate - formulare de comentarii, casete de comentarii, bare de căutare etc. Aceste atacuri variază foarte mult în ceea ce privește sofisticarea. De fapt, cea mai simplă formă de atac XSS este văzută de utilizatorii WordPress în fiecare zi: comentariul spam. Știi despre ce vorbesc: „ Mulțumesc pentru articolul excelent. Apropo, aici este site-ul meu unde câștig 5.000 USD pe săptămână lucrând de acasă: www.only-an-idiot-would-click-this-link.co.uk. ”
Într-un fel, comentariile spam sunt exemplul perfect de atac XSS. O entitate rău intenționată subminează infrastructura site-ului tău (caseta de comentarii) pentru a-și plasa conținutul (linkul rău intenționat) pe site-ul tău. Deși acesta este un bun exemplu ilustrativ, un atac XSS mai realist va fi mult mai subtil. Pentru a crea un comentariu spam, cineva durează aproximativ cinci secunde. Un atac XSS este ceva pentru care un hacker adecvat va petrece ceva mai mult timp.
O adevărată pălărie neagră va încerca să profite de toate aspectele site-ului dvs. care trimit date către server, utilizându-le în esență ca un editor de text în miniatură. Dacă intrările dvs. sunt neapărate, asta înseamnă că pot să-și ia codul literal și să forțeze aplicația dvs. să o ruleze și să o redeze în browserul unui utilizator (și care poate include browserul dvs.). Spre deosebire de comentariile spam, doar o examinare detaliată a codului modificat al site-ului dvs. sau analizarea interacțiunilor cu site-ul web poate dezvălui o încălcare. După cum s-ar putea imagina, numărul de lucruri neplăcute care ar putea rezulta dintr-o astfel de încălcare nu are sfârșit.
Vandalismul simplu este un rezultat relativ obișnuit al atacurilor XSS, ceea ce duce la afișarea utilizatorilor dvs. de imagini grotești sau propagandă politică în locul conținutului dvs. Agenții de marketing cu puține planuri pe termen lung sau preocupări etice le vor folosi pentru a face publicitate oamenilor împotriva voinței lor. Un atac mai nuanțat și mai subtil ar putea fura acreditările de conectare ale utilizatorilor dvs. Dacă unul dintre ei are privilegii de administrator, atunci orice informații personale pe care le stocați pe site-ul dvs. pot fi la îndemână. Alternativ, ar putea folosi atacul inițial XSS ca pârghie pentru a vă deschide site-ul și a instala programe malware și mai avansate.
Oprirea atacurilor
Dacă sunteți un individ rezonabil de cunoștințe de cod și sunteți unicul proprietar al unui site WordPress relativ mic, atunci practicile de codare sigure vor fi probabil cea mai bună modalitate de a vă bloca site-ul împotriva atacurilor de scripting între site-uri. Am inclus această avertizare deoarece, dacă faci parte dintr-o organizație mai mare care rulează o aplicație mai complexă, s-ar putea să nu fie uman posibil să găsești fiecare zonă în care un atacator rău intenționat ar putea injecta cod. Site-urile web moderne pot avea o scară uriașă și ar putea fi cazul să angajezi un profesionist experimentat și să-ți petreci timpul în alte activități pentru a-ți face site-ul și mai bun pentru cititorii tăi.
Un alt avertisment este că, dacă nu sunteți foarte priceput la cod și solicitați altcineva să vă construiască site-ul, atunci nu presupuneți că a folosit practici de codificare securizate. Chiar și cei mai experimentați dezvoltatori sunt cunoscuți că lasă securitatea pe marginea drumului sau comit erori minore fără ca altcineva să-și verifice munca. Este posibil ca alți dezvoltatori pur și simplu să nu știe ce fac în ceea ce privește securitatea, iar alții încă trece peste securitate pentru a salva timp pentru ei înșiși (în ciuda lipsei de profesionalism când vine vorba de asta). În rezumat, asigurați-vă că angajați un profesionist apreciat, care nu face limitări atunci când vine vorba de dezvoltarea și protejarea site-ului dvs.
Fiind exprimată această îngrijorare, unul dintre primele și cele mai simple lucruri pe care le puteți face pentru a preveni scripturile între site-uri este validarea datelor utilizatorului.
Să presupunem că aveți un formular de înscriere pe site-ul dvs., iar acel formular îi cere utilizatorului să-și pună numele. În schimb, un utilizator rău intenționat ar putea introduce ceva de genul:
[xhtml]
<script>CoughUpYourPreciousData();</script>
[/xhtml]
Acest lucru ar putea, de exemplu, să determine următoarea persoană care vizitează pagina respectivă să trimită o copie a cookie-urilor sale unui atacator.
Puteți vedea că în acest exemplu, șirul de cod de mai sus nu seamănă deloc cu numele cuiva. Serverul tău nu știe acest lucru, dar folosind câțiva parametri setați, îl poți învăța. De exemplu, puteți spune acelui câmp să respingă caracterele speciale, cum ar fi <>, () și ; (nu sunt deosebit de necesare într-o secțiune de comentarii). Puteți spune acel câmp că numele unei persoane probabil nu are numere în el. Dacă sunteți dispus să fiți puțin draconian, puteți spune câmpului respectiv să respingă intrările care au mai mult de cincisprezece caractere (sau puteți modifica valorile după cum doriți). Luarea acestor pași va limita drastic cantitatea de daune pe care un atacator o poate face într-un anumit câmp.

Chiar și cu validarea datelor, ar putea exista formulare sau câmpuri în care nu puteți limita în mod realist tipul de caractere utilizate, cum ar fi într-un formular de contact sau un câmp de comentariu. Ce poți face este să igienizezi datele. Acest proces face imposibil ca HTML să fie executat într-un anumit câmp, transformând tot ceea ce ar putea fi recunoscut ca o bucată de cod executabil în caractere necodificate. De exemplu, un hyperlink nu va apărea acolo unde altfel ar putea fi unul.
În cele din urmă, există cazuri în care site-ul dvs. ar putea ajunge să afișeze date nesigure pentru utilizatori. Să presupunem că cineva scrie un comentariu rău intenționat pe una dintre paginile tale, care este ulterior indexat de funcția de căutare a site-ului tău web. Ori de câte ori unul dintre utilizatorii dvs. efectuează o căutare, acel cod rău intenționat este executat atunci când browserul lor încarcă rezultatele căutării. Acest lucru este prevenit prin evadarea datelor, ceea ce asigură că atunci când site-ul dvs. furnizează date unui utilizator, singurul cod care rulează este codul pe care doriți să îl rulați.
Pentru mai multe despre validarea datelor, igienizarea datelor și evadarea datelor, WordPress Codex are o resursă excelentă. Acesta va explica conceptele de mai sus în detaliu și va oferi mai multe exemple care pot fi aplicate universal.
Alte Metode
Companiile mari au site-uri web mai mari; este un fapt. Poate mii de oameni folosesc site-ul dvs. pe zi. Poate în loc de formulare și câmpuri standard, există și animații, diverse portaluri, părți scrise în Java și așa mai departe. Chiar dacă ține cont de toate acestea, poate că există o zi zero într-una dintre aplicațiile tale și nu ai cum să te aperi.
Într-o situație ca aceasta, dacă aveți influența și bugetul de dolari pentru a face acest lucru, v-aș recomanda să investiți într-un Web Application Firewall (WAF). Un WAF bun va avea reguli de corelare care identifică și blochează automat șirurile HTML care sunt cel mai frecvent asociate cu atacurile de injectare de cod. De asemenea, ei vă pot notifica când aplicațiile încep să exfiltreze date atunci când nu trebuie sau fac acest lucru într-un volum neobișnuit, ajutând astfel la apărarea împotriva atacurilor zero-day și a altor amenințări avansate. Un WAF nu este un glonț de argint, dar este un instrument de neprețuit pentru profesioniștii în securitate și proprietarii de site-uri web care speră să protejeze aplicațiile complexe.
Există, de asemenea, o serie de pluginuri care pretind să se apere împotriva atacurilor XSS. De fapt nu le recomand pe astea. În loc să reducă riscul, multe dintre aceste plugin-uri reprezintă doar o altă suprafață de atac pe care un hacker o poate exploata. Chiar și unul dintre cele mai cunoscute și utilizate pluginuri de securitate, Akismet, s-a dovedit a fi vulnerabil la atacurile XSS anul trecut. Când vine vorba de deviarea atacurilor XSS, nu vă bazați pe jumătate de măsură. Dezvoltați abilitățile necesare și utilizați setul adecvat de instrumente pentru a vă menține site-ul în siguranță.
Alte aplicații practice
Această informație poate fi puțin complexă pentru cei neinițiați, dar nu mi-ar plăcea ca oamenii să fie descurajați de potențialele complexități ale acestor informații. În cazul în care apare un atac XSS, puteți fi sigur că curățarea după un astfel de eveniment va fi mult mai complexă decât efectuarea modificărilor pe site-ul dvs. Curățarea costurilor reputaționale pentru site-ul dvs. (cititorii obișnuiți vor părăsi site-ul dvs. destul de ușor) va fi o problemă suplimentară pentru care nu doriți să vă faceți griji.
Chiar dacă cereți pe altcineva să se ocupe de dezvoltarea și securitatea site-ului dvs. web în locul dvs., faceți tot ce puteți pentru a putea măcar să răspundeți la o urgență și să știți unde vă sunt punctele slabe. A ști cum să vă verificați sistemul va fi o abilitate vitală pe termen lung și va constitui fundamentul pentru alte subiecte de securitate și proiecte de dezvoltare a site-urilor web. Totul este interconectat online și, deși atacurile XSS ar putea fi un lucru din ultimii ani (oricât de puțin probabil ar fi acest lucru), cunoașterea dezavantajelor site-ului dvs. nu va fi niciodată depășită.
Gânduri finale
Peisajul securității pe internet se schimbă în mod constant. Nu poți fi niciodată pe deplin sigur cum ar putea apărea un atac XSS sau cum ar putea fi utilizat împotriva ta, dar îți datorezi ție și cititorilor tăi să te asiguri că faci tot ce îți stă în putere pentru a-i opri. Continuați să vă informați despre această amenințare și verificați în mod regulat (recomand cel puțin lunar) pentru orice evoluție relevantă în lumea securității cibernetice.
De asemenea, acest lucru nu înseamnă că puteți ignora alte amenințări. Accesul la rețeaua publică necesită încă utilizarea VPN pentru a fi în siguranță. Nu puteți neglija securitatea oricărui computer pe care îl utilizați pentru a vă accesa site-ul web. Informațiile de conectare trebuie să fie schimbate des și să fie protejate de atacurile cu forță brută. Atacurile XSS sunt brutale, dar nu sunt singura amenințare la care trebuie să fiți atenți.
De asemenea, ar putea fi cazul să împărtășiți aceste informații (sau chiar acest articol) colegilor și părților interesate pentru a răspândi rezistența împotriva acestor tipuri de atacuri. Deși s-ar putea să nu puteți face prea multe de unul singur, dacă destui oameni se protejează corespunzător, s-ar putea să vedem o scădere generală a acestor tipuri de atacuri, deoarece hackerii încearcă să găsească o modalitate diferită de a profita de utilizatorii săraci de internet.
Aveți vreo idee despre cum să verificați atacurile XSS și să vă apărați împotriva lor în viitor? Există alte strategii de detectare și eliminare pe care le utilizați pentru a combate această amenințare? Există instrumente pe care le-ați recomanda colegilor dvs. cititori? Dacă da, vă rugăm să lăsați un comentariu mai jos și să continuați această conversație importantă cu colegii dvs. cititori.