
Limitarea suprafeței de atac a aplicațiilor web prin acțiuni rapide
Securizarea aplicațiilor web și a site-urilor este o acțiune complexă, mai greu de realizat atunci când aceasta nu a fost luată în considerare din etapa de dezvoltare a aplicației. Totuși, există și posibilitatea de a implementa ulterior unele controale de securitate care limitează suprafața de atac asupra acestora, majoritatea fiind aspecte care țin mai mult de configurarea serverului web sau aspecte de conținut.
În cele ce urmează vom folosi generic termenul de aplicații web pentru a acoperi orice fel de serviciu sau aplicație sau site care ruleaza pe un serviciu http și ne vom concentra pe problemele de securitate care pot fi ușor rezolvate prin configurații sau modificări simple ale aplicației.
OSINT și colectarea de informații
OSINT (Open Source Intelligence) este o metodă de colectare și analiză a informațiilor care sunt disponibile public în surse deschise, precum site-uri web, rețele de socializare, forumuri, bloguri, articole de știri și alte surse de informații publice.Trebuie să facem tot posibilul ca informațiile sensibile să nu fie făcute publice voluntar sau involuntar, prin metadate, meta tag-uri comentarii, etc.
Despre acest subiect am scris mai pe larg aici
Amprentarea serverului si a serviciilor web
Fingerprinting-ul este procesul de determinare a tipului și versiunilor de software folosite de serviciile serverului care sunt expuse public. Atacatorii pot folosi aceste informații pentru a identifica vulnerabilități cunoscute și a le exploata pentru a compromite serverul web și a obține acces neautorizat la date sensibile.Despre această vulnerabilitate am scris mai pe larg în articolul: Server Fingerprinting - Amprentarea serverului si a serviciilor web
HTTP Security headers
Headerele de scuritate sunt directive folosite de aplicațiile web pentru a configura elemente de protecție în browserele web. Pe baza acestor directive, browserele web fac mai greu de exploatat vulnerabilități client-side cum ar fi Cross-Site Scripting (XSS), Clickjacking, Code Injection etc. Dintre aceste headere, vom aminti:- HSTS (HTTP Strict Transport Security): forțează utilizarea de conexiuni HTTPS
- CSP (Content Security Policy): permite stabilirea unor host-uri de încredere pentru încărcarea de script-uri sau resurse. Orice în afara host-urilor stabilite vor fi blocate.
- XSS-Protection: Detectează și previne încercările de injectare de script-uri malitioase.
- Referrer-Policy: Ajută la protejarea aplicațiilor web împotriva diferitelor tipuri de atacuri, inclusiv Cross-Site Request Forgery (CSRF) și Information Leakage.
- X-Frame-Options: Ajută la protejarea aplicațiilor web împotriva atacurilor de tip clickjacking.
- X-Content-Type-Options: Ajută la protejarea aplicațiilor web împotriva atacurilor de confuzie a tipului MIME.
Puteți citi mai multe despre HTTP security headers în articolul: HTTP Security Headers: Protecția suplimentară client-side
Cookie-urile
Cookie-urile sunt fișiere de tip text cu dimensiuni reduse, care pot conține informații sensibile cum ar fi ID-ul de sesiune al utilizatorului. Cookie-urile au niște atribute numite flag-uri, care dacă sunt setate corespunzător pot împiedica atacatorii să le fure prin tehnici de atac asupra aplicației web.
Mai multe informații despre setarea cookie-urilor in articolul: Setarea corectă a cookie-urilor pentru a evita atacurile
Backup-uri vechi, changelog-uri, fișiere readme,composer.json etc
Changelog-urile sau fișierele Readme sunt documente care conțin informații despre modificările și actualizările aduse unei aplicații web. Aceste documente sunt importante pentru a urmări evoluția aplicației și pentru a ști ce probleme sau vulnerabilități au fost remediate. Cu toate acestea, aceste fișiere pot fi periculoase dacă sunt lăsate publice pe serverul web.Atacatorii pot utiliza aceste informații pentru a identifica vulnerabilități cunoscute sau probleme de securitate care au fost remediate și care ar putea fi încă prezente în versiunile mai vechi ale aplicației. De asemenea, atacatorii pot utiliza aceste informații pentru a identifica versiunea exactă a aplicației și să caute vulnerabilități specifice acelei versiuni.
Deși aceste documente sunt importante pentru dezvoltatori, ele nu ar trebui să fie lăsate publice pe serverul web, fiind recomandat să fie șterse sau accesul public să fie restricționat.
Directory listing
Serverele web sunt configurate pentru a lista automat conținutul directoarelor care nu au o pagină de index. Acest lucru poate ajuta un atacator, permițându-i să identifice rapid resursele dintr-un anumit folder și să treacă direct la analizarea și exploatarea acestor resurse.În acest aricol am descris explicit modul în care se face dezactivarea listării conținutului directoarelor

Iulian Băncău · Security Engineer
18-05-2023 · Citire în 4 min.