Înțelegerea și Gestionarea Metadatelor EC2
Acest articol explorează în detaliu metadatele EC2, subliniind importanța lor și modalitățile de dezactivare pentru a preveni atacurile de tip SSRF.
Amazon Web Services (AWS) oferă Amazon Elastic Compute Cloud (Amazon EC2), un serviciu de calcul scalabil. Acesta permite dezvoltarea și implementarea rapidă a aplicațiilor, eliminând necesitatea investițiilor inițiale în infrastructură hardware.
Utilizând Amazon EC2, aveți flexibilitatea de a lansa și gestiona un număr variabil de servere virtuale, adaptat nevoilor specifice. De asemenea, puteți personaliza setările de rețea și securitate și gestiona stocarea în mod eficient.
Metadatele instanței reprezintă informațiile specifice unei instanțe, configurabile și gestionabile în timp real. Acestea includ, printre altele, numele de gazdă, evenimentele și grupurile de securitate. Totodată, metadatele oferă acces la datele utilizatorului specificate la lansarea instanței.
Prin datele utilizatorului, puteți include scripturi sau specifica parametri la configurarea instanței. Acest lucru permite crearea de AMI-uri generice și modificarea fișierelor de configurare în momentul lansării.
Opțiunile de metadate ale instanțelor permit configurarea instanțelor noi sau existente pentru a realiza următoarele:
- Solicitarea ca cererile de metadate ale instanțelor să fie transmise exclusiv prin IMDSv2.
- Stabilirea limitei de salt pentru răspunsurile PUT.
- Restricționarea accesului la metadatele instanței.
Accesul la metadatele unei instanțe EC2 active se poate realiza prin două metode principale: IMDSv1 și IMDSv2.
Serviciul de metadate ale instanțelor, cunoscut sub numele de IMDS, diferă în abordare. IMDSv1 folosește un mecanism simplu de cerere/răspuns, în timp ce IMDSv2 este bazat pe sesiune.
AWS recomandă ferm utilizarea IMDSv2, considerată metoda preferată. SDK-ul AWS utilizează implicit apeluri IMDSv2, iar politicile IAM pot solicita ca noile instanțe EC2 să fie configurate cu IMDSv2 activat, prin utilizarea cheilor de condiție IAM.
Pentru a vizualiza toate tipurile de metadate ale unei instanțe active, puteți utiliza următoarele URI-uri IPv4 sau IPv6:
IPv4
curl http://169.254.169.254/latest/meta-data/
IPv6
curl http://[fd00:ec2::254]/latest/meta-data/
Adresele IP menționate sunt adrese locale, valabile doar din interiorul instanței.
Accesul la metadatele instanței se realizează prin adresa locală de legătură 169.254.169.254
. Solicitările către aceste URI-uri sunt gratuite, nefiind percepute taxe suplimentare de către AWS.
De ce este Importantă Dezactivarea Metadatelor
Atacurile de tip SSRF (Server Side Request Forgery) sunt o problemă cunoscută în mediile AWS. Mandiant, o companie specializată în securitate cibernetică, a identificat atacatori care scanează automat vulnerabilitățile și colectează acreditări IAM din aplicațiile online accesibile publicului.
Implementarea IMDSv2 pentru toate instanțele EC2 ar reduce semnificativ aceste riscuri, oferind un nivel sporit de securitate. IMDSv2 diminuează considerabil posibilitatea ca un atacator să fure acreditările IAM prin intermediul unui atac SSRF.
Exploatarea serviciului de metadate EC2 prin tehnica SSRF este una dintre metodele cel mai des întâlnite în atacurile asupra infrastructurii AWS.
Serviciul de metadate este accesibil la adresa 169.254.169.254
pentru majoritatea instanțelor EC2 și conține informații valoroase despre instanță, cum ar fi adresa IP, numele grupului de securitate și altele.
În cazul în care un rol IAM este atașat unei instanțe EC2, serviciul de metadate va include și acreditările IAM necesare pentru a se autentifica cu rolul respectiv. Aceste acreditări pot fi sustrase, în funcție de versiunea IMDS utilizată și de capacitățile SSRF.
Un alt aspect important este că un atacator cu acces shell la o instanță EC2 ar putea obține, de asemenea, aceste acreditări.
Într-un scenariu ipotetic, un server web rulează pe portul 80 al unei instanțe EC2. Serverul prezintă o vulnerabilitate SSRF care permite trimiterea cererilor GET către orice adresă. Această vulnerabilitate poate fi utilizată pentru a trimite o cerere către http://169.254.169.254
.
Cum Se Dezactivează Metadatele
Blocând endpoint-ul HTTP al serviciului de metadate ale instanței, puteți preveni accesul la aceste metadate, indiferent de versiunea serviciului utilizată.
Această modificare poate fi anulată oricând, prin reactivarea endpoint-ului HTTP. Pentru a dezactiva metadatele unei instanțe, utilizați comanda CLI modify-instance-metadata-options
și setați parametrul http-endpoint
la valoarea dezactivat
.
Comanda pentru dezactivarea metadatelor este:
aws ec2 modify-instance-metadata-options --instance-id i-0558ea153450674 --http-endpoint dezactivat
Dezactivarea metadatelor
După dezactivarea metadatelor, încercarea de a accesa serviciul va returna un mesaj de tipul „INTERZIS”.
Pentru a reactiva metadatele, utilizați următoarea comandă:
aws ec2 modify-instance-metadata-options --instance-id i-0558ea153450674 --http-endpoint activat
Reactivarea metadatelor
Concluzie
Metadatele pot fi un instrument valoros pentru extragerea informațiilor din volume mari de date. Cu toate acestea, ele pot fi abuzate pentru a obține informații despre locația sau identitatea unei persoane fără consimțământul acesteia. Deoarece metadatele înregistrează fiecare modificare, inclusiv ștergerile și comentariile, este important să fiți conștienți că acestea pot conține informații pe care nu doriți să le expuneți. Prin urmare, eliminarea metadatelor este esențială pentru a menține confidențialitatea și anonimatul online.
Explorați și alte concepte cheie AWS pentru a aprofunda înțelegerea platformei.