Sigur ca Fort Knox: Cum să securizezi un site web de hackeri
Publicat: 2021-10-05În acest articol, oferim un ghid despre cum să protejați un site web de a fi piratat și utilizat pentru activități ilegale.
Siguranța online este un steag roșu imens pe cerul albastru infinit al internetului. Și, deși cuvintele „siguranță online” pot aduce mai întâi în minte hărțuirea și protecțiile online pentru utilizatori, daunele pe care le poate avea o lipsă de securitate a site-ului web asupra unei companii sunt, de asemenea, semnificative. Proprietarii de site-uri web care reduc cheltuielile cu securitatea plătesc cu reputația lor și, în consecință, suferă pierderi financiare.
Conținut:
- De ce fiecare proprietar de site web trebuie să investească în securitate
- Despre ce vulnerabilități vorbim?
- Defecte de injecție
- Expunere la date sensibile
- Atacuri de tip cross-site scripting (XSS)
- Autentificare defectă
- Configurare greșită de securitate
- Controlul accesului întrerupt
- Deserializare nesigură
- Logare și monitorizare insuficiente
- Entități externe XML (XXE)
- Utilizarea componentelor cu vulnerabilități cunoscute
- Cum să creați un site web sigur
- Cât costă securizarea unui site web?
De ce FIECARE proprietar de site trebuie să investească în securitate
Unii proprietari de site-uri web au astfel de gânduri: Nu există nimic de furat pe site-ul meu. Nu păstrez date de utilizator sau detalii de plată. Nu am nevoie de securitate scumpă de top.
Cu toate acestea, este pur și simplu naiv. Există o serie de motive pentru care site-ul dvs. web poate fi piratat chiar dacă nu găzduiește date personale sau financiare. Iată o listă de utilizări pe care hackerii le-ar putea avea pentru aproape orice server neprotejat:
- Pentru a cere o răscumpărare. Chiar dacă nu păstrați date de utilizator pe serverele dvs., hackerii le pot prelua și vă pot cere bani pentru a le recupera.
- Pentru a utiliza ca releu SMTP (protocol simplu de transfer de e-mail). SMTP este un protocol utilizat pentru a livra e-mailuri în bloc - de exemplu, buletine informative. Hackerii pot folosi serverele dvs. pentru a trimite spam sau ransomware.
- Pentru a mea Bitcoins.
- A fi utilizat în atacurile DDoS ca parte a unei rețele bot.
- Pentru a modifica sau șterge datele de pe site-ul dvs. web. Motivele pentru care doriți să faceți acest lucru pot varia.
Și asta doar zgârie suprafața. Pe lângă amenințările prezentate de terți (hackeri și alți infractori), există și amenințări reprezentate de posibile greșeli din partea angajaților care gestionează site-ul dvs. web, de exemplu. De fapt, securitatea internă este la fel de importantă ca și cea externă, dacă nu chiar mai mult.
Deci, cum îmi pot proteja site-ul web de hackeri? tu intrebi.
Ei bine, trebuie să țineți cont și să faceți față mai multor vulnerabilități.
Despre ce vulnerabilități vorbim?
Una dintre cele mai reputate entități din industrie care se preocupă de securitatea cibernetică este Open Web Application Security Project, pe scurt OWASP. Fundația OWASP monitorizează și își actualizează în mod regulat lista cu probleme de securitate web răspândite. Următoarele sunt probleme de securitate obișnuite pe lista lor (fără o ordine specială) din ziua redactării acestui articol și câteva sfaturi despre cum să reduceți pericolul pentru site-ul dvs. web.
Defecte de injecție
Defectele injecției se referă la baze de date și sunt cauzate de o validare slabă a intrării. Atunci când sistemul dvs. acceptă introducerea utilizatorului, dar nu reușește să filtreze corect acea intrare, sistemul îl face vulnerabil - hackerii pot exploata acest lucru pentru a injecta codul lor în sistemul dvs. (de aici și numele). Acest cod injectat poate duce la efectuarea de comenzi pe care site-ul dvs. web nu le intenționați, făcându-l să afișeze date sensibile sau chiar să renunțe la controlul site-ului către hacker.
Cel mai popular tip de vulnerabilitate la injecție implică baze de date SQL, dar vulnerabilitățile la injecție nu se limitează la ele. Interogările XPath, instrucțiunile LDAP și scripturile XML pot fi, de asemenea, vulnerabile la injecție.
Cum să protejați un site web de defectele de injecție? Două dintre cele mai bune practici includ utilizarea igienizării interogărilor SQL și interogărilor parametrizate. Există API-uri care vă permit să faceți acest lucru.
Dacă nu doriți să implementați aceste lucruri manual, puteți utiliza un instrument ORM (mapare obiect-relațională) pentru limbajul de programare preferat. Folosim ActiveRecord deoarece este strâns legat de ecosistemul Rails.
Niciuna dintre opțiunile de mai sus nu este complet rezistentă la prostie, dar este la fel de aproape pe cât ajunge la o protecție solidă în zilele noastre.
Expunere la date sensibile
Datele sensibile sunt orice date care pot fi utilizate pentru a exploata o persoană într-un fel sau altul:
- Nume
- Cod numeric personal
- Numărul permisului de conducere
- Informații despre cardul de credit
- Numele de utilizator și parolele
- Data de nastere
- Informație despre sănătate
- Nume de fată
- Numele parintilor
Poate include chiar și orice informații care răspund la o întrebare de securitate, să zicem pentru contul dvs. bancar. Cine ar fi crezut că numele primului tău animal de companie ar putea fi considerat date sensibile, nu?
Securizarea site-urilor web de expunerea la date sensibile este dificilă, deoarece această expunere este dificil de previzionat și detectat. Există însă măsuri preventive pe care le puteți lua. Datele sensibile, dacă sunt stocate pe un site web, nu trebuie stocate niciodată ca text simplu ; trebuie să fie criptat cu cea mai recentă tehnologie și transmis numai prin canale sigure.
Dacă site-ul dvs. web facilitează orice tranzacție sau, în general, tratează date sensibile, trebuie să utilizeze criptarea SSL. Aceasta este cea mai recentă și cea mai bună tehnologie de criptare disponibilă. Criptarea SSL vă ajută să transferați datele în siguranță între un browser și un server sau între servere. Mai mult, mulți utilizatori vor căuta HTTPS la adresa site-ului dvs. web pentru a vedea dacă este sigur. Acest antet este ceea ce obțineți atunci când obțineți un certificat SSL.
De asemenea, se recomandă, în general, stocarea datelor în cloud. Cu toate acestea, nu presupuneți că simpla stocare a acestora în cloud va face automat datele în siguranță. Cu toate acestea, toate măsurile de protecție trebuie puse în aplicare și trebuie să monitorizați și să actualizați în mod regulat securitatea.
Atacuri de tip cross-site scripting (XSS)
Vulnerabilitățile XSS sunt, într-un fel, similare cu defectele de injecție, deoarece permit hackerilor să afecteze paginile site-ului dvs. web prin injectarea de cod non-nativ. În cazul XSS, vorbim despre injecția JavaScript. JavaScript injectat de un hacker poate modifica conținutul paginii, poate insera linkuri către site-uri web rău intenționate și poate trimite datele ascunse inițial înapoi către hacker, rezultând expunerea la date sensibile.
Ruby on Rails și React au protecție XSS încorporată. O altă opțiune pentru măsurile anti-XSS și anti-injecție ar fi utilizarea antetului de răspuns HTTP Content-Security-Policy.
Autentificare defectă
Denumit inițial „Autentificare defectă și gestionarea sesiunii”, acest defect tratează vulnerabilitățile din timpul autentificării utilizatorilor și gestionării sesiunii, după cum reiese din nume. Aceasta include expunerea acreditării de conectare și o serie de probleme cu ID-urile de sesiune:
- ID-uri de sesiune slabe
- ID-uri de sesiune afișate în adrese URL
- ID-uri de sesiune care nu se schimbă între conectări
- Transmiterea ID-urilor sesiunii prin conexiuni nesecurizate
ID-urile de sesiune sunt conectate direct la identitatea unui utilizator, la fel ca acreditările și, prin urmare, interceptarea acestora poate duce la deturnarea contului unui utilizator. Acest lucru duce la tot felul de daune pentru utilizatorii dvs., de la cele financiare și de reputație la cele legate de sănătate.
Pentru a vă proteja site-ul web de atacurile de autentificare, aveți nevoie de autentificare cu mai mulți factori : de exemplu, aveți nevoie de o parolă constantă și o parolă unică livrate pe dispozitivul mobil al utilizatorului.
Google folosește o opțiune de autentificare cu doi factori : pentru a vă deschide contul Google într-un browser web, trebuie să introduceți mai întâi parola. Dacă este corect, trebuie să deschideți aplicația Google de pe telefon și să alegeți numărul afișat în browserul web.
Metode mai evidente de protecție a site-ului web pentru autentificarea defectă includ:
- aplicarea complexității parolei - „Parola dvs. trebuie să aibă cel puțin 8 caractere și să includă cel puțin un număr, o literă mare și o literă minusculă.”
- limitarea încercărilor de conectare înainte de care contul este suspendat (pentru un anumit timp sau până când utilizatorul contactează administratorii site-ului) și alertarea administratorilor
Configurare greșită de securitate
Configurarea greșită a securității este un subiect larg, deoarece acest lucru se poate întâmpla în orice etapă și cu orice parte a site-ului dvs. web: o bază de date, o rețea, un server, un cadru, stocare sau aproape orice altceva. Deficiențele de configurare pot fi exploatate pentru a avea acces la funcționalitatea sistemului. În funcție de locul în care se află vulnerabilitatea, un astfel de acces poate fi parțial sau complet. Exemple de configurare greșită:

- Nu ați dezactivat conturile / parolele implicite.
- Există caracteristici inutile și neutilizate.
- Permisiunile de acces în cloud nu sunt configurate în siguranță.
- Mesajele dvs. de eroare afișează informații sensibile precum nume de utilizator, parole sau adrese de e-mail.
Primul lucru pe care trebuie să îl faceți pentru a evita configurarea greșită este să eliminați tot ceea ce nu este utilizat - caracteristici, mostre, cadre etc. O arhitectură bine gândită este o necesitate.
Controlul accesului întrerupt
Controlul accesului este controlul asupra a ceea ce utilizatorii pot și nu pot face. Când nu este pus în aplicare în mod corespunzător, înseamnă că utilizatorii pot efectua acțiuni care vă pot afecta site-ul în moduri imprevizibile. O modalitate de a exploata controlul accesului defect este vizualizarea și editarea profilurilor și datelor altor utilizatori. Un altul este accesarea funcțiilor premium fără a le plăti sau a le câștiga. Un altul este accesarea paginilor de administrator dintr-un cont care nu este administrator (sau mai rău, fără un cont deloc).
Cel mai bun mod de a vă asigura că funcționează controlul accesului site-ului dvs. web este testarea manuală. Nici un instrument automat de testare nu poate garanta că controlul accesului funcționează conform intenției.
Controlul accesului întrerupt poate rezulta și din abuzul mecanismului de partajare a resurselor încrucișate (CORS), care poate oferi acces la API-uri altfel restricționate. Din acest motiv, se recomandă utilizarea CORS cât mai puțin posibil.
Deserializare nesigură
Serializarea este procesul de transformare a unui obiect într-un cod binar. Deserializarea este, logic, opusul. Ambele sunt procese efectuate în mod regulat în dezvoltarea web, ceea ce face importantă implementarea protecțiilor împotriva angajării acestora în atacuri.
Vestea bună este că deserializarea nu este un lucru pe care un utilizator obișnuit sau angajatul dvs. îl poate face accidental . Aceasta este, în parte, vestea proastă - atacurile de deserializare sunt întotdeauna deliberate și, prin urmare, vicioase. De asemenea, rezultă cele mai grave probleme, cum ar fi rularea codului de la distanță, intrarea pe site-ul web fără autentificare și inițierea atacurilor DoS (denial of service).
Cel mai simplu mod de a vă proteja site-ul web de acest tip de atac este să interzice obiectele serializate generate de utilizator. Dacă acest lucru nu se poate face, următoarea cea mai bună opțiune este utilizarea semnăturilor criptografice pentru verificările de integritate.
Utilizarea JSON, YAML sau XML poate face exploatarea punctelor slabe de deserializare mai dificile pentru hackeri, deoarece aceste formate nu sunt binare.
Logare și monitorizare insuficiente
Această vulnerabilitate pare destul de evidentă: dacă nu vă monitorizați site-ul și nu înregistrați toate erorile și încercările nereușite de a vă conecta sau de a executa funcționalitatea de control al accesului , sunteți practic tentanți ca hackerii să vă atace site-ul. În orice tip de război, digital sau din viața reală, primul atac nu este de obicei despre a câștiga, ci pentru a vedea cu ce te confrunți. Și dacă există o cale ușoară, o folosești. Eșecul înregistrării și monitorizării unei astfel de sondaje va duce la pierderea completă a atacului de către sistemul dvs. sau la detectarea acestuia odată ce a avut loc deja și daunele sunt făcute.
Logarea este deosebit de importantă pentru site-urile de comerț electronic, deoarece acestea se ocupă cu banii utilizatorilor și acreditările financiare.
Pentru a vă face site-ul web mai sigur, înregistrați corect toate încercările eșuate și asigurați-vă că aceste jurnale sunt stocate și efectuate în afara serverelor locale. Folosiți sisteme automate de alertă pentru astfel de defecțiuni și, dacă este posibil, suspendați conturile care generează în mod continuu astfel de defecțiuni. Este vital să aveți sisteme de alertă în timp real, astfel încât să puteți reacționa imediat la o posibilă încălcare.
Entități externe XML (XXE)
Am menționat deja XML (Extensible Markup Language) de câteva ori. Este un limbaj flexibil, care îl face ușor de utilizat și răspândit. Procesoarele XML analizează datele din documentele XML. Dacă site-ul dvs. web este bazat pe XML și acceptă încărcări XML fără validare, acesta poate fi susceptibil la atacuri.
Pentru a proteja integritatea site-ului dvs. web, se recomandă următorul set de acțiuni:
- Dezactivați procesarea DTD (definirea tipului de document).
- Limitați sau preveniți încărcările XML sau, dacă acest lucru nu se poate face, aplicați lista albă - validare pozitivă a intrării pe partea de server.
- Actualizați în mod regulat procesoarele și bibliotecile XLM.
- Preveni serializarea datelor sensibile.
- Dacă este cazul, utilizați JSON sau formate simple similare.
- Implementați firewall-uri pentru aplicații web (WAF) și gateway-uri de securitate API.
Utilizarea componentelor cu vulnerabilități cunoscute
Nimic nu este perfect și orice componentă pe care o utilizați în software-ul dvs. va avea o anumită vulnerabilitate, cunoscută sau necunoscută. Ca răspuns la vulnerabilitățile descoperite și recunoscute, software-ul este actualizat pentru a acoperi aceste vulnerabilități sau pentru a atenua orice daune care ar putea fi cauzate de exploatarea lor. Unele puncte slabe provoacă daune minore, dar altele ar putea fi dăunătoare pentru afacerea dvs.
Pentru a preveni pirateria site-ului web din cauza vulnerabilităților cunoscute, este important să verificați periodic actualizări și să actualizați toate componentele utilizate pe site-ul dvs. web. Aceasta poate fi o sarcină plictisitoare în software-ul și site-urile web cu conținut ridicat de componente. De aceea, experții în securitate recomandă verificarea și eliminarea regulată a bibliotecilor, caracteristicilor, fișierelor și altor componente inutile și neutilizate. Și, desigur, utilizați doar componente din surse oficiale. Nu vă lăsați sedus de site-urile web care distribuie software de obicei plătit gratuit - acesta poate fi modificat pentru a vă pirata site-ul web.
Cum să creați un site web sigur: linia de jos
Pentru a pune toate informațiile tehnologice în termeni simpli, iată sfaturile de securitate pe care trebuie să le urmați dacă doriți să creați un site web sigur:
- Găsiți o gazdă web de încredere.
- Actualizați periodic toate software-urile, cadrele și bibliotecile utilizate pe site-ul dvs. web.
- Eliminați orice caracteristici și componente inutile de pe site-ul dvs. web.
- Configurați sisteme pentru a valida intrările atât pe browser, cât și pe server.
- Monitorizați informațiile afișate în mesajele de eroare.
- Configurați un verificator de intensitate a parolei pentru utilizatori.
- Utilizați întotdeauna parole puternice pentru serverele și paginile de administrare și schimbați-le în mod regulat.
- Investiți într-un certificat SSL / utilizați protocolul HTTPS.
- Configurați înregistrarea corespunzătoare pentru erori și erori.
- Înregistrați tranzacțiile de audit (mai ales dacă a dvs. este un site de comerț electronic).
- Monitorizați îndeaproape jurnalele.
- Folosiți servere cloud, dar vă protejați datele.
- Criptați întotdeauna datele sensibile folosind cele mai noi tehnologii.
- Puneți echipa dvs. de securitate să urmărească actualizările de securitate emergente, precum și noile amenințări pentru a putea reacționa la atacuri în timp util.
Cât costă securizarea unui site web?
Aceasta este o întrebare la care nu există un răspuns clar. Costul securității depinde în mare măsură de stiva tehnică pe care o folosește site-ul dvs. În plus, există costul actualizărilor, care va depinde de câte componente trebuie să actualizați, de cât de des le actualizați și de cât costă actualizarea fiecăreia dintre ele. Aceste costuri trebuie calculate individual de către dezvoltatorii dvs.
Recomandăm cu tărie luarea în considerare a securității încă de la începutul dezvoltării . Dacă lăsați problema securității până la sfârșit, s-ar putea (și cel mai probabil, va rezulta) necesitatea introducerii unor modificări în centrul site-ului dvs., care pot fi chiar mai scumpe decât construirea securității din start.
Concluzie
Dacă sunteți singur dezvoltator, dețineți o companie de dezvoltare sau aveți o echipă de dezvoltare internă, puteți seta toate aceste sarcini înaintea lor. Cu toate acestea, dacă nu aveți deja specialiști tehnici de partea dvs. și doriți să știți cum să creați un site web sigur cu un furnizor de externalizare, vă recomandăm să găsiți o companie de dezvoltare care nu numai că poate construi un site web, ci îl poate susține. Este aproape imposibil să se prevadă fiecare vulnerabilitate, dar capacitatea de a reacționa la orice încălcare în timp util vă poate salva site-ul web de cel mai rău destin.
Dezvoltatorii de la Mind Studios au experiență în cele mai bune practici de securitate și țin pasul cu cele mai noi tendințe. Dacă aveți întrebări despre cum să vă protejați site-ul web de hackeri, contactați-ne pentru o consultație gratuită .
Scris de Svitlana Varaksina și Artem Chervichnik