AWS - CloudTrail Enum
CloudTrail
AWS CloudTrail beleži i prati aktivnosti unutar vašeg AWS okruženja. Snima detaljne dnevničke događaje, uključujući ko je šta uradio, kada i odakle, za sve interakcije sa AWS resursima. Ovo pruža evidenciju promena i akcija, pomaže u analizi bezbednosti, reviziji usaglašenosti i praćenju promena resursa. CloudTrail je neophodan za razumevanje ponašanja korisnika i resursa, unapređenje bezbednosnih postavki i osiguravanje regulatorne usaglašenosti.
Svaki zabeleženi događaj sadrži:
Naziv pozvanog API-ja:
eventName
Pozvana usluga:
eventSource
Vreme:
eventTime
IP adresa:
SourceIPAddress
Metod agenta:
userAgent
. Primeri:Signing.amazonaws.com - Iz AWS Management konzole
console.amazonaws.com - Root korisnik naloga
lambda.amazonaws.com - AWS Lambda
Parametri zahteva:
requestParameters
Elementi odgovora:
responseElements
Dogadjaji se upisuju u novu dnevničku datoteku oko svakih 5 minuta u JSON datoteci, čuvaju se u CloudTrail-u i na kraju, dnevničke datoteke se isporučuju u S3 oko 15 minuta nakon toga. CloudTrail-ovi dnevnici mogu biti agregirani preko naloga i preko regiona. CloudTrail omogućava korišćenje celovitosti dnevničke datoteke kako bi se moglo proveriti da li su vaše dnevničke datoteke ostale nepromenjene od trenutka kada ih je CloudTrail isporučio vama. Stvara se SHA-256 heš dnevnika unutar datoteke sa digestom. SHA-256 heš novih dnevnika se kreira svakog sata. Prilikom kreiranja Traga, selektori događaja će vam omogućiti da naznačite trag za beleženje: Upravljanje, podaci ili događaji uvidi.
Dnevnici se čuvaju u S3 kanti. Podrazumevano se koristi enkripcija na strani servera (SSE-S3) tako da će AWS dešifrovati sadržaj za osobe koje imaju pristup, ali radi dodatne bezbednosti možete koristiti SSE sa KMS i svoje ključeve.
Dnevnici se čuvaju u S3 kanti sa ovim formatom imena:
BucketName/AWSLogs/AccountID/CloudTrail/RegionName/YYY/MM/DD
Gde je BucketName:
aws-cloudtrail-logs-<accountid>-<random>
Primer:
aws-cloudtrail-logs-947247140022-ffb95fe7/AWSLogs/947247140022/CloudTrail/ap-south-1/2023/02/22/
Unutar svake fascikle, svaki dnevnik će imati ime koje prati ovaj format: AccountID_CloudTrail_RegionName_YYYYMMDDTHHMMZ_Random.json.gz
Konvencija imenovanja dnevničke datoteke
Osim toga, digestne datoteke (za proveru celovitosti datoteke) će biti unutar iste kante u:
Agregiranje Dnevnika iz Više Naloga
Kreirajte Trag u AWS nalogu gde želite da se dnevničke datoteke isporuče
Primenite dozvole na odredišnoj S3 kanti omogućavajući pristup između naloga za CloudTrail i dozvolite svakom AWS nalogu koji treba pristup
Kreirajte novi Trag u drugim AWS nalozima i izaberite da koristite kreiranu kantu u koraku 1
Međutim, čak i ako možete sačuvati sve dnevnike u istoj S3 kanti, ne možete agregirati CloudTrail dnevnike iz više naloga u CloudWatch Dnevnike koji pripadaju jednom AWS nalogu.
Zapamtite da nalog može imati različite Tragove od CloudTrail-a omogućene čuvajući iste (ili različite) dnevnike u različitim kantama.
Cloudtrail iz svih org naloga u 1
Prilikom kreiranja CloudTrail-a, moguće je naznačiti da se aktivira cloudtrail za sve naloge u organizaciji i da se dnevnici dobiju u samo 1 kanti:
Na ovaj način možete lako konfigurisati CloudTrail u svim regionima svih naloga i centralizovati dnevnike u 1 nalogu (koji biste trebali da zaštitite).
Provera Dnevničkih Datoteka
Možete proveriti da li su dnevnici izmenjeni pokretanjem
Dnevnici u CloudWatch-u
CloudTrail automatski može slati dnevnike u CloudWatch tako da možete postaviti upozorenja koja vas obaveštavaju kada se izvrše sumnjive aktivnosti. Imajte na umu da je potrebno kreirati ulogu koja omogućava CloudTrail-u da šalje dnevnike u CloudWatch. Preporučuje se korišćenje AWS podrazumevane uloge za obavljanje ovih akcija. Ova uloga će omogućiti CloudTrail-u da:
CreateLogStream: Ovo omogućava kreiranje CloudWatch Logs log tokova
PutLogEvents: Isporučuje CloudTrail dnevnike u CloudWatch Logs log tok
Istorija događaja
CloudTrail Istorija događaja vam omogućava da pregledate u tabeli dnevnike koji su zabeleženi:
Uvidi
CloudTrail Uvidi automatski analiziraju upravljačke događaje pisanja iz CloudTrail tragova i obaveštavaju vas o neobičnoj aktivnosti. Na primer, ako postoji povećanje događaja TerminateInstance
koji se razlikuje od uspostavljenih osnova, videćete ga kao događaj Uvida. Ovi događaji olakšavaju pronalaženje i reagovanje na neobičnu API aktivnost više nego ikad.
Uvidi se čuvaju u istoj kanti kao i CloudTrail dnevnici u: BucketName/AWSLogs/AccountID/CloudTrail-Insight
Bezbednost
Integritet datoteka dnevnika CloudTrail |
|
Zaustavite neovlašćen pristup |
|
Spriječite brisanje datoteka dnevnika |
|
Pristupni savetnik
AWS Pristupni savetnik se oslanja na poslednjih 400 dana AWS CloudTrail dnevnika kako bi prikupio svoje uvide. CloudTrail beleži istoriju AWS API poziva i povezane događaje napravljene u AWS nalogu. Pristupni savetnik koristi ove podatke da pokaže kada su usluge poslednji put pristupane. Analizom CloudTrail dnevnika, Pristupni savetnik može odrediti koje AWS usluge je IAM korisnik ili uloga pristupila i kada se taj pristup dogodio. Ovo pomaže AWS administratorima da donesu informisane odluke o usavršavanju dozvola, jer mogu identifikovati usluge koje nisu pristupane u dužem vremenskom periodu i potencijalno smanjiti preširoke dozvole na osnovu stvarnih uzoraka korišćenja.
Stoga, Pristupni savetnik obaveštava o nepotrebnim dozvolama koje su dodeljene korisnicima tako da administrator može da ih ukloni
Akcije
Enumeracija
CSV Injection
Moguće je izvršiti CVS ubacivanje unutar CloudTrail-a koje će izvršiti proizvoljni kod ako se zapisi izvezu u CSV formatu i otvore u Excelu. Sledeći kod će generisati unos zapisa sa lošim imenom Trail-a koje sadrži payload:
Za više informacija o CSV ubacivanjima proverite stranicu:
Za više informacija o ovoj specifičnoj tehnici proverite https://rhinosecuritylabs.com/aws/cloud-security-csv-injection-aws-cloudtrail/
Bypass Detekcije
HoneyTokens bypass
HoneyTokensi su kreirani da detektuju iznošenje osetljivih informacija. U slučaju AWS-a, to su AWS ključevi čije se korišćenje prati, ako nešto pokrene akciju s tim ključem, onda je neko morao ukrasti taj ključ.
Međutim, ova monitorizacija se vrši putem CloudTrail-a, i postoje neke AWS usluge koje ne šalju logove CloudTrail-u (pronađite spisak ovde). Neke od tih usluga će odgovoriti s greškom koja sadrži ARN uloge ključa ako neovlašćena osoba (honeytoken ključ) pokuša da pristupi.
Na ovaj način, napadač može dobiti ARN ključa bez pokretanja bilo kakvog loga. U ARN-u napadač može videti AWS ID naloga i ime, lako je znati ID i imena kompanija koje koriste HoneyToken, na ovaj način napadač može identifikovati da li je token HoneyToken.
Detekcija HoneyTokena
Pacu detektuje da li ključ pripada Canarytokens, SpaceCrab, SpaceSiren:
Ako se
canarytokens.org
pojavi u imenu uloge ili ID naloga534261010715
se pojavi u poruci o grešci.Testirajući ih nedavno, koriste nalog
717712589309
i još uvek ima niskucanarytokens.com
u imenu.Ako se
SpaceCrab
pojavi u imenu uloge u poruci o grešciSpaceSiren koristi uuids za generisanje korisničkih imena:
[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}
Ako ime izgleda kao da je generisano nasumično, postoji visoka verovatnoća da je u pitanju HoneyToken.
Imajte na umu da su sve javne API-je otkrivene kao ne stvaraju CloudTrail logove sada popravljene, tako da možda trebate pronaći svoje...
Ili možete dobiti ID naloga iz enkodiranog unutar pristupnog ključa kao što je objašnjeno ovde i proveriti ID naloga sa svojom listom Honeytokens AWS naloga:
Za više informacija proverite originalno istraživanje.
Pristupanje trećoj infrastrukturi
Određene AWS usluge će pokrenuti neku infrastrukturu kao što su Baze podataka ili Kubernetes klasteri (EKS). Korisnik koji direktno komunicira sa tim uslugama (poput Kubernetes API-ja) neće koristiti AWS API, pa CloudTrail neće moći da vidi ovu komunikaciju.
Stoga, korisnik sa pristupom EKS-u koji je otkrio URL EKS API-ja može generisati token lokalno i komunicirati direktno sa API uslugom bez otkrivanja od strane CloudTrail-a.
Više informacija u:
pageAWS - EKS Post ExploitationModifikovanje CloudTrail konfiguracije
Brisanje tragova
Zaustavite staze
Onemogućavanje logovanja u više regiona
U prvom primeru, jedan događajni selektor je dat kao JSON niz sa jednim objektom. "ReadWriteType": "ReadOnly"
ukazuje da selektor događaja treba da zabeleži samo događaje samo za čitanje (tako da CloudTrail uvidi neće proveravati događaje za pisanje, na primer).
Možete prilagoditi selektor događaja prema vašim specifičnim zahtevima.
Brisanje zapisa putem S3 životnog ciklusa
Modifikacija konfiguracije kante
Obriši S3 kantu
Promeni politiku kante da odbije sve upise iz CloudTrail servisa
Dodaj politiku životnog ciklusa na S3 kantu da obriše objekte
Onemogući ključ KMS koji se koristi za šifrovanje CloudTrail zapisa
Cloudtrail ransomware
S3 ransomware
Možete generisati asimetrični ključ i naterati CloudTrail da šifruje podatke tim ključem i obrišete privatni ključ tako da CloudTrail sadržaj ne može biti povraćen. Ovo je u osnovi S3-KMS ransomware objašnjen u:
pageAWS - S3 Post ExploitationKMS ransomware
Ovo je najlakši način da se izvede prethodni napad sa različitim zahtevima dozvola:
pageAWS - KMS Post ExploitationReference
Last updated