ce este OWASP?Proiectul Open Web Application Security, sau OWASP, este o organizație internațională non-profit dedicată securității aplicațiilor web. Unul dintre principiile de bază ale OWASP este ca toate materialele lor să fie disponibile gratuit și ușor accesibile pe site-ul lor web, făcând posibil pentru oricine să-și îmbunătățească propria securitate a aplicațiilor web. Materialele pe care le oferă includ documentație, instrumente, videoclipuri și forumuri. Poate cel mai cunoscut proiect al lor este OWASP Top 10.
care este OWASP Top 10?,
OWASP Top 10 este un raport actualizat în mod regulat care prezintă probleme de securitate pentru securitatea aplicațiilor web, concentrându-se pe cele mai critice 10 riscuri. Raportul este realizat de o echipă de experți în securitate din întreaga lume. OWASP se referă la Top 10 ca un „document de conștientizare” și recomandă ca toate companiile să includă raportul în procesele lor pentru a minimiza și/sau a atenua riscurile de securitate.
mai jos sunt riscurile de securitate raportate în raportul OWASP Top 10 2017:
1., Injection
atacurile Injection se întâmplă atunci când datele de încredere sunt trimise către un interpretor de cod printr-o intrare de formular sau o altă transmitere de date către o aplicație web. De exemplu, un atacator ar putea introduce codul bazei de date SQL într-un formular care așteaptă un nume de utilizator plaintext. În cazul în care formularul de intrare nu este securizat în mod corespunzător, acest lucru ar duce la faptul că codul SQL fiind executat. Acest lucru este cunoscut ca un atac de injecție SQL.atacurile prin injectare pot fi prevenite prin validarea și / sau igienizarea datelor trimise de utilizatori., (Validarea înseamnă respingerea datelor cu aspect suspect, în timp ce igienizarea se referă la curățarea părților suspecte ale datelor.) În plus, un administrator de baze de date poate seta controale pentru a minimiza cantitatea de informații pe care un atac de injecție le poate expune.
2. Autentificarea ruptă
vulnerabilitățile în sistemele de autentificare (autentificare) pot oferi atacatorilor acces la conturile de utilizator și chiar posibilitatea de a compromite un întreg sistem folosind un cont de administrator., De exemplu, un atacator poate lua o listă care conține mii de combinații cunoscute de nume de utilizator/parolă obținute în timpul unei încălcări a datelor și poate folosi un script pentru a încerca toate aceste combinații pe un sistem de conectare pentru a vedea dacă există vreo lucrare.unele strategii de atenuare a vulnerabilităților de autentificare necesită autentificare cu doi factori (2FA), precum și limitarea sau întârzierea încercărilor repetate de conectare folosind limitarea ratei.
3., Expunerea datelor sensibile
dacă aplicațiile web nu protejează datele sensibile, cum ar fi informațiile financiare și parolele, atacatorii pot avea acces la aceste date și le pot utiliza în scopuri nefaste. O metodă populară pentru furtul informațiilor sensibile este utilizarea unui atac pe cale.riscul de expunere a datelor poate fi minimizat prin criptarea tuturor datelor sensibile, precum și prin dezactivarea memoriei cache* a oricăror informații sensibile. În plus, dezvoltatorii de aplicații web ar trebui să aibă grijă să se asigure că nu stochează inutil date sensibile.,* Caching-ul este practica stocării temporare a datelor pentru reutilizare. De exemplu, browsere web adesea va cache pagini web, astfel încât, dacă un utilizator reviziteaza thosepages într-un interval de timp fix, browser-ul nu trebuie să-i aducă paginile de pe web.
4. XML External Entities (XEE)
acesta este un atac împotriva unei aplicații web care analizează XML* input. Această intrare poate face referire la o entitate externă, încercând să exploateze o vulnerabilitate în parser. O „entitate externă” în acest context se referă la o unitate de stocare, cum ar fi un hard disk., Un parser XML poate fi înșelat în trimiterea de date către o entitate externă neautorizată, care poate transmite date sensibile direct unui atacator.cele mai bune metode de a preveni atacurile XEE sunt ca aplicațiile web să accepte un tip de date mai puțin complex, cum ar fi JSON**, sau cel puțin să corecteze analizoarele XML și să dezactiveze utilizarea entităților externe într-o aplicație XML.
*XML sau Extensible Markup Language este un limbaj de marcare destinat să fie atât lizibil de om, cât și lizibil de mașină. Datorită complexității și vulnerabilităților sale de securitate, Acesta este acum eliminat din utilizare în multe aplicații web.,
**JavaScript Object Notation (JSON) este un tip de notație simplă, care poate fi citită de om, adesea folosită pentru a transmite date pe internet. Deși a fost creat inițial pentru JavaScript, JSON este agnostic și poate fi interpretat de multe limbaje de programare diferite.
5. Controlul accesului rupt
controlul accesului se referă la un sistem care controlează accesul la informații sau funcționalitate. Controalele de acces sparte permit atacatorilor să ocolească autorizarea și să îndeplinească sarcini ca și cum ar fi utilizatori privilegiați, cum ar fi administratorii., De exemplu, o aplicație web ar putea permite unui utilizator să schimbe contul în care este conectat prin simpla schimbare a unei părți a unei adrese url, fără nicio altă verificare.
controalele de acces pot fi securizate prin asigurarea faptului că o aplicație web utilizează token-uri de autorizare* și stabilește controale stricte asupra lor.
*multe servicii emit jetoane de autorizare atunci când utilizatorii se conectează. Fiecare solicitare privilegiată pe care o face un utilizator va necesita prezența simbolului de autorizare. Aceasta este o modalitate sigură de a vă asigura că utilizatorul este cine spun că este, fără a fi nevoie să introduceți în mod constant datele de conectare.
6., Configurarea greșită a securității
Configurarea greșită a securității este cea mai frecventă vulnerabilitate din listă și este adesea rezultatul utilizării configurațiilor implicite sau afișării erorilor excesiv de detaliate. De exemplu, o aplicație ar putea afișa un utilizator erori excesiv de descriptive care pot dezvălui vulnerabilități în aplicație. Acest lucru poate fi atenuat prin eliminarea oricăror caracteristici neutilizate din cod și asigurarea faptului că mesajele de eroare sunt mai generale.
7., Vulnerabilitățile de scripturi încrucișate apar atunci când aplicațiile web permit utilizatorilor să adauge cod personalizat într-o cale url sau pe un site web care va fi văzut de alți utilizatori. Această vulnerabilitate poate fi exploatată pentru a rula cod JavaScript rău intenționat pe browserul unei victime. De exemplu, un atacator ar putea trimite un e-mail unei victime care pare a fi de la o bancă de încredere, cu un link către site-ul băncii respective. Acest link ar putea avea un cod JavaScript rău intenționat etichetat pe sfârșitul adresei url., Dacă site-ul băncii nu este protejat corespunzător împotriva scripturilor încrucișate, atunci acel cod rău intenționat va fi rulat în browserul web al victimei atunci când fac clic pe link.
strategiile de atenuare a scripturilor între site-uri includ scăparea cererilor HTTP care nu sunt de încredere, precum și validarea și/sau igienizarea conținutului generat de utilizatori. Folosind cadre moderne de dezvoltare web, cum ar fi ReactJS și Ruby on Rails oferă, de asemenea, unele built-in cross-site scripting de protecție.
8. Această amenințare vizează numeroasele aplicații web care serializează și deserializează frecvent datele., Serializarea înseamnă preluarea obiectelor din codul aplicației și transformarea lor într-un format care poate fi utilizat în alt scop, cum ar fi stocarea datelor pe disc sau transmiterea acestora. Deserializarea este exact opusul: conversia datelor serializate înapoi în obiecte pe care aplicația le poate utiliza. Serializarea este un fel de ambalare a mobilierului în cutii înainte de o mișcare, iar deserializarea este ca despachetarea cutiilor și asamblarea mobilierului după mutare. Un atac de deserializare nesigur este ca și cum ar fi ca mutatorii să manipuleze conținutul cutiilor înainte de a fi despachetați.,
un exploit de deserializare nesigur este rezultatul deserializării datelor din surse de încredere și poate avea consecințe grave, cum ar fi atacurile DDoS și atacurile de executare a codului la distanță. În timp ce se pot lua măsuri pentru a încerca să prindă atacatorii, cum ar fi monitorizarea deserializării și implementarea verificărilor de tip, singura modalitate sigură de a proteja împotriva atacurilor de deserializare nesigure este interzicerea deserializării datelor din surse de încredere.
9., Utilizarea componentelor cu vulnerabilități cunoscute
mulți dezvoltatori web moderni folosesc componente precum biblioteci și cadre în aplicațiile lor web. Aceste componente sunt componente software care ajută dezvoltatorii să evite munca redundantă și să ofere funcționalitatea necesară; exemple comune includ cadre front-end precum React și biblioteci mai mici care au folosit pentru a adăuga pictograme de partajare sau testare a/B. Unii atacatori caută vulnerabilități în aceste componente pe care le pot utiliza apoi pentru a orchestra atacurile., Unele dintre cele mai populare componente sunt utilizate pe sute de mii de site-uri; un atacator găsi o gaură de securitate în una dintre aceste componente ar putea lăsa sute de mii de site-uri vulnerabile de a exploata.
dezvoltatorii de componente oferă adesea corecții de securitate și actualizări pentru a conecta vulnerabilitățile cunoscute, dar dezvoltatorii de aplicații web nu au întotdeauna versiunile patch sau cele mai recente ale componentelor care rulează pe aplicațiile lor., Pentru a minimiza riscul de a rula componente cu vulnerabilități cunoscute, dezvoltatorii ar trebui să elimine componentele neutilizate din proiectele lor, precum și să se asigure că primesc componente dintr-o sursă de încredere și să se asigure că sunt actualizate.
10. Logare insuficientă și monitorizare
multe aplicații web nu iau suficiente măsuri pentru a detecta încălcări ale datelor. Timpul mediu de descoperire pentru o încălcare este de aproximativ 200 de zile după ce sa întâmplat. Acest lucru oferă atacatorilor mult timp pentru a provoca daune înainte de a exista vreun răspuns., OWASP recomandă dezvoltatorilor web să implementeze jurnalizarea și monitorizarea, precum și planurile de răspuns la incidente pentru a se asigura că sunt conștienți de atacurile asupra aplicațiilor lor.
pentru o privire mai tehnică și mai aprofundată asupra OWASP Top 10, consultați raportul oficial .