AWS - CloudWatch Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
CloudWatch prikuplja monitoring i operativne podatke u obliku logova/metrika/događaja pružajući ujedinjeni pregled AWS resursa, aplikacija i usluga. CloudWatch Log Event ima ograničenje veličine od 256KB po svakoj log liniji. Može postaviti alarme visoke rezolucije, vizualizovati logove i metrike jedan pored drugog, preduzeti automatske akcije, rešavati probleme i otkrivati uvide za optimizaciju aplikacija.
Možete pratiti, na primer, logove iz CloudTraila. Događaji koji se prate:
Promene u sigurnosnim grupama i NACL-ima
Pokretanje, zaustavljanje, ponovo pokretanje i gašenje EC2 instanci
Promene u sigurnosnim politikama unutar IAM i S3
Neuspešni pokušaji prijave na AWS Management Console
API pozivi koji su rezultirali neuspešnom autorizacijom
Filteri za pretragu u cloudwatch: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html
Namespace je kontejner za CloudWatch metrike. Pomaže u kategorizaciji i izolaciji metrika, olakšavajući njihovo upravljanje i analizu.
Primeri: AWS/EC2 za EC2 povezane metrike, AWS/RDS za RDS metrike.
Metrike su podaci prikupljeni tokom vremena koji predstavljaju performanse ili korišćenje AWS resursa. Metrike se mogu prikupljati iz AWS usluga, prilagođenih aplikacija ili integracija trećih strana.
Primer: CPUUtilization, NetworkIn, DiskReadOps.
Dimenzije su parovi ključ-vrednost koji su deo metrika. Pomažu u jedinstvenom identifikovanju metrike i pružaju dodatni kontekst, pri čemu je 30 maksimalan broj dimenzija koje se mogu povezati sa metrikom. Dimenzije takođe omogućavaju filtriranje i agregaciju metrika na osnovu specifičnih atributa.
Primer: Za EC2 instance, dimenzije mogu uključivati InstanceId, InstanceType i AvailabilityZone.
Statistika su matematičke kalkulacije izvršene na podacima metrika kako bi ih sažele tokom vremena. Uobičajene statistike uključuju Prosečno, Zbir, Minimum, Maksimum i Broj uzoraka.
Primer: Izračunavanje prosečne CPU upotrebe tokom perioda od jednog sata.
Jedinice su tip merenja povezan sa metrikom. Jedinice pomažu u pružanju konteksta i značenja podacima metrika. Uobičajene jedinice uključuju Procenat, Bajti, Sekunde, Broj.
Primer: CPUUtilization može biti meren u Procentima, dok NetworkIn može biti meren u Bajtima.
CloudWatch Dashboards pružaju prilagodljive poglede na vaše AWS CloudWatch metrike. Moguće je kreirati i konfigurisati dashboarde za vizualizaciju podataka i praćenje resursa u jednom pogledu, kombinujući različite metrike iz raznih AWS usluga.
Ključne karakteristike:
Widgeti: Građevinski blokovi dashboarda, uključujući grafike, tekst, alarme i još mnogo toga.
Prilagođavanje: Raspored i sadržaj mogu se prilagoditi kako bi odgovarali specifičnim potrebama praćenja.
Primer upotrebe:
Jedan dashboard koji prikazuje ključne metrike za celo vaše AWS okruženje, uključujući EC2 instance, RDS baze podataka i S3 kante.
Metric Streams u AWS CloudWatch omogućavaju vam da kontinuirano strimujete CloudWatch metrike na odredište po vašem izboru u skoro realnom vremenu. Ovo je posebno korisno za napredno praćenje, analitiku i prilagođene dashboarde koristeći alate van AWS-a.
Metric Data unutar Metric Streams odnosi se na stvarna merenja ili podatke koji se strimuju. Ovi podaci predstavljaju različite metrike kao što su CPU upotreba, korišćenje memorije itd., za AWS resurse.
Primer upotrebe:
Slanje real-time metrika trećoj strani za naprednu analizu.
Arhiviranje metrika u Amazon S3 kanti za dugoročno skladištenje i usklađenost.
CloudWatch Alarms prate vaše metrike i preduzimaju akcije na osnovu unapred definisanih pragova. Kada metrika prekorači prag, alarm može izvršiti jednu ili više akcija kao što su slanje obaveštenja putem SNS-a, pokretanje politike automatskog skaliranja ili pokretanje AWS Lambda funkcije.
Ključne komponente:
Prag: Vrednost na kojoj se alarm aktivira.
Periodi evaluacije: Broj perioda tokom kojih se podaci ocenjuju.
Podaci za alarm: Broj perioda sa dostignutim pragom potreban za aktiviranje alarma.
Akcije: Šta se dešava kada se stanje alarma aktivira (npr. obaveštavanje putem SNS-a).
Primer upotrebe:
Praćenje CPU upotrebe EC2 instance i slanje obaveštenja putem SNS-a ako premaši 80% tokom 5 uzastopnih minuta.
Anomaly Detectors koriste mašinsko učenje za automatsko otkrivanje anomalija u vašim metrikama. Možete primeniti detekciju anomalija na bilo koju CloudWatch metriku kako biste identifikovali odstupanja od normalnih obrazaca koja mogu ukazivati na probleme.
Ključne komponente:
Obuka modela: CloudWatch koristi istorijske podatke za obuku modela i utvrđivanje kako izgleda normalno ponašanje.
Traka detekcije anomalija: Vizuelna reprezentacija očekivanog opsega vrednosti za metriku.
Primer upotrebe:
Otkrivanje neobičnih obrazaca CPU upotrebe u EC2 instanci koji mogu ukazivati na bezbednosni proboj ili problem sa aplikacijom.
Insight Rules omogućavaju vam da identifikujete trendove, detektujete skokove ili druge obrasce od interesa u vašim podacima metrika koristeći moćne matematičke izraze za definisanje uslova pod kojima bi se trebale preduzeti akcije. Ova pravila mogu vam pomoći da identifikujete anomalije ili neobično ponašanje u performansama i korišćenju vaših resursa.
Managed Insight Rules su unapred konfigurisana insight pravila koja pruža AWS. Dizajnirana su za praćenje specifičnih AWS usluga ili uobičajenih slučajeva korišćenja i mogu se omogućiti bez potrebe za detaljnom konfiguracijom.
Primer upotrebe:
Praćenje RDS performansi: Omogućite upravljano insight pravilo za Amazon RDS koje prati ključne indikatore performansi kao što su CPU upotreba, korišćenje memorije i disk I/O. Ako bilo koja od ovih metrika premaši sigurne operativne pragove, pravilo može aktivirati upozorenje ili automatsku akciju ublažavanja.
Omogućava agregaciju i praćenje logova iz aplikacija i sistema iz AWS usluga (uključujući CloudTrail) i iz aplikacija/sistema (CloudWatch Agent može biti instaliran na hostu). Logovi se mogu čuvati neodređeno (u zavisnosti od podešavanja Log Grupe) i mogu se eksportovati.
Elementi:
Log Group
Kolekcija log stream-ova koji dele iste postavke zadržavanja, praćenja i kontrole pristupa
Log Stream
Sekvenca log događaja koji dele isti izvor
Subscription Filters
Definišu filter obrazac koji odgovara događajima u određenoj log grupi, šalju ih u Kinesis Data Firehose stream, Kinesis stream ili Lambda funkciju
CloudWatch osnovni agregira podatke svakih 5 minuta (dok detaljni to radi svake 1 minute). Nakon agregacije, proverava pragove alarma u slučaju da treba da aktivira jedan. U tom slučaju, CloudWatch može biti spreman da pošalje događaj i izvrši neke automatske akcije (AWS lambda funkcije, SNS teme, SQS redove, Kinesis Streams)
Možete instalirati agente unutar vaših mašina/kontejnera kako biste automatski slali logove nazad u CloudWatch.
Kreirajte ulogu i priključite je na instancu sa dozvolama koje omogućavaju CloudWatch-u da prikuplja podatke iz instanci pored interakcije sa AWS sistem menadžerom SSM (CloudWatchAgentAdminPolicy & AmazonEC2RoleforSSM)
Preuzmite i instalirajte agenta na EC2 instancu (https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip). Možete ga preuzeti iznutra EC2 ili ga automatski instalirati koristeći AWS System Manager birajući paket AWS-ConfigureAWSPackage
Konfigurišite i pokrenite CloudWatch Agent
Log grupa ima mnogo stream-ova. Stream ima mnogo događaja. I unutar svakog stream-a, događaji su zagarantovani da budu u redosledu.
cloudwatch:DeleteAlarms
,cloudwatch:PutMetricAlarm
, cloudwatch:PutCompositeAlarm
Napadač sa ovim dozvolama mogao bi značajno oslabiti infrastrukturu za praćenje i obaveštavanje organizacije. Brisanjem postojećih alarma, napadač bi mogao onemogućiti ključne obaveštenja koja obaveštavaju administratore o kritičnim problemima sa performansama, bezbednosnim povredama ili operativnim neuspesima. Pored toga, kreiranjem ili modifikovanjem metrik alarmi, napadač bi takođe mogao da obmanjuje administratore lažnim obaveštenjima ili utiša legitimne alarme, efikasno prikrivajući zlonamerne aktivnosti i sprečavajući pravovremene reakcije na stvarne incidente.
Pored toga, sa dozvolom cloudwatch:PutCompositeAlarm
, napadač bi mogao da kreira petlju ili ciklus kompozitnih alarma, gde kompozitni alarm A zavisi od kompozitnog alarma B, a kompozitni alarm B takođe zavisi od kompozitnog alarma A. U ovom scenariju, nije moguće obrisati nijedan kompozitni alarm koji je deo ciklusa jer uvek postoji kompozitni alarm koji zavisi od alarma koji želite da obrišete.
The following example shows how to make a metric alarm ineffective:
Ovaj metrik alarm prati prosečnu CPU upotrebu specifične EC2 instance, procenjuje metriku svake 300 sekundi i zahteva 6 evaluacionih perioda (ukupno 30 minuta). Ako prosečna CPU upotreba premaši 60% u najmanje 4 od ovih perioda, alarm će se aktivirati i poslati obaveštenje na određenu SNS temu.
Modifikovanjem Threshold na više od 99%, postavljanjem Period na 10 sekundi, Evaluation Periods na 8640 (pošto 8640 perioda od 10 sekundi jednako 1 dan), i Datapoints to Alarm na 8640 takođe, bilo bi potrebno da CPU upotreba bude preko 99% svake 10 sekundi tokom celog 24-satnog perioda da bi se aktivirao alarm.
Potencijalni uticaj: Nedostatak obaveštenja za kritične događaje, potencijalni neotkriveni problemi, lažni alarmi, potiskivanje stvarnih alarma i potencijalno propuštene detekcije stvarnih incidenata.
cloudwatch:DeleteAlarmActions
, cloudwatch:EnableAlarmActions
, cloudwatch:SetAlarmState
Brisanjem akcija alarma, napadač bi mogao sprečiti kritične obaveštenja i automatske odgovore da budu aktivirani kada se dostigne stanje alarma, kao što je obaveštavanje administratora ili pokretanje automatskih aktivnosti skaliranja. Neprikladno omogućavanje ili ponovo omogućavanje akcija alarma takođe može dovesti do neočekivanih ponašanja, bilo ponovnim aktiviranjem prethodno onemogućenih akcija ili modifikovanjem koje akcije se aktiviraju, potencijalno uzrokujući konfuziju i pogrešne smernice u odgovoru na incidente.
Pored toga, napadač sa dozvolom mogao bi manipulisati stanjima alarma, imajući mogućnost da kreira lažne alarme kako bi odvratio i zbunio administratore, ili da utiša stvarne alarme kako bi sakrio tekuće zlonamerne aktivnosti ili kritične sistemske kvarove.
Ako koristite SetAlarmState
na kompozitnom alarmu, kompozitni alarm nije garantovan da se vrati u svoje stvarno stanje. Vraća se u svoje stvarno stanje samo kada se bilo koji od njegovih alarmnih podređenih promeni stanje. Takođe se ponovo procenjuje ako ažurirate njegovu konfiguraciju.
Potencijalni uticaj: Nedostatak obaveštenja za kritične događaje, potencijalni neotkriveni problemi, lažne alarme, potiskivanje stvarnih alarma i potencijalno propuštene detekcije pravih incidenata.
cloudwatch:DeleteAnomalyDetector
, cloudwatch:PutAnomalyDetector
Napadač bi mogao da kompromituje sposobnost detekcije i odgovora na neobične obrasce ili anomalije u metrikama podataka. Brisanjem postojećih detektora anomalija, napadač bi mogao da onemogući kritične mehanizme za obaveštavanje; a kreiranjem ili modifikovanjem, mogao bi ili da pogrešno konfiguriše ili stvara lažne pozitivne rezultate kako bi skrenuo pažnju ili preplavio monitoring.
Sledeći primer pokazuje kako učiniti detektor anomalija metrika neefikasnim. Ovaj detektor anomalija metrika prati prosečnu CPU upotrebu specifične EC2 instance, i samo dodavanjem parametra “ExcludedTimeRanges” sa željenim vremenskim opsegom, bilo bi dovoljno da se osigura da detektor anomalija ne analizira ili ne upozorava na bilo koje relevantne podatke tokom tog perioda.
Potencijalni uticaj: Direktan efekat na detekciju neobičnih obrazaca ili bezbednosnih pretnji.
cloudwatch:DeleteDashboards
, cloudwatch:PutDashboard
Napadač bi mogao da kompromituje mogućnosti praćenja i vizualizacije organizacije kreiranjem, modifikovanjem ili brisanjem svojih kontrolnih tabla. Ove dozvole bi mogle biti iskorišćene za uklanjanje kritične vidljivosti u performansama i zdravlju sistema, menjanje kontrolnih tabla da prikazuju netačne podatke ili skrivanje zlonamernih aktivnosti.
Potencijalni uticaj: Gubitak vidljivosti nadzorom i obmanjujuće informacije.
cloudwatch:DeleteInsightRules
, cloudwatch:PutInsightRule
,cloudwatch:PutManagedInsightRule
Insight pravila se koriste za otkrivanje anomalija, optimizaciju performansi i efikasno upravljanje resursima. Brisanjem postojećih insight pravila, napadač bi mogao ukloniti kritične mogućnosti nadzora, ostavljajući sistem slepim na probleme sa performansama i bezbednosne pretnje. Pored toga, napadač bi mogao kreirati ili modifikovati insight pravila kako bi generisao obmanjujuće podatke ili sakrio zlonamerne aktivnosti, što bi dovelo do netačnih dijagnostika i neprimerenih odgovora operativnog tima.
Potencijalni uticaj: Teškoće u otkrivanju i reagovanju na probleme sa performansama i anomalijama, pogrešno informisano donošenje odluka i potencijalno skrivanje zlonamernih aktivnosti ili kvarova sistema.
cloudwatch:DisableInsightRules
, cloudwatch:EnableInsightRules
Onemogućavanjem kritičnih pravila uvida, napadač bi mogao efikasno da zaslepi organizaciju za ključne metrike performansi i bezbednosti. S druge strane, omogućavanjem ili konfigurisanjem obmanjujućih pravila, moglo bi biti moguće generisati lažne podatke, stvoriti šum ili sakriti zlonamerne aktivnosti.
Potencijalni uticaj: Zbunjenost među operativnim timom, što dovodi do kašnjenja u odgovorima na stvarne probleme i nepotrebnih akcija zasnovanih na lažnim upozorenjima.
cloudwatch:DeleteMetricStream
, cloudwatch:PutMetricStream
, cloudwatch:PutMetricData
Napadač sa cloudwatch:DeleteMetricStream
, cloudwatch:PutMetricStream
dozvolama mogao bi da kreira i briše tokove metrika, ugrožavajući bezbednost, nadzor i integritet podataka:
Kreiranje zlonamernih tokova: Kreirati tokove metrika za slanje osetljivih podataka na neovlašćene destinacije.
Manipulacija resursima: Kreiranje novih tokova metrika sa prekomernim podacima moglo bi proizvesti mnogo šuma, uzrokujući netačna upozorenja, prikrivajući prave probleme.
Prekid nadzora: Brisanjem tokova metrika, napadači bi prekinuli kontinuirani tok podataka za nadzor. Na taj način, njihove zlonamerne aktivnosti bi bile efikasno skrivene.
Slično tome, sa dozvolom cloudwatch:PutMetricData
, bilo bi moguće dodati podatke u tok metrika. To bi moglo dovesti do DoS-a zbog količine nepravilnih podataka koji su dodati, čineći ga potpuno beskorisnim.
Primer dodavanja podataka koji odgovaraju 70% iskorišćenosti CPU-a na datom EC2 instancu:
Potencijalni uticaj: Poremećaj u protoku podataka za praćenje, što utiče na otkrivanje anomalija i incidenata, manipulaciju resursima i povećanje troškova zbog kreiranja prekomernih tokova metrika.
cloudwatch:StopMetricStreams
, cloudwatch:StartMetricStreams
Napadač bi kontrolisao protok podataka o metrikama koji su pogođeni (svaki tok podataka ako nema ograničenja resursa). Sa dozvolom cloudwatch:StopMetricStreams
, napadači bi mogli da sakriju svoje zlonamerne aktivnosti zaustavljanjem kritičnih tokova metrika.
Potencijalni uticaj: Poremećaj u protoku podataka o nadzoru, što utiče na otkrivanje anomalija i incidenata.
cloudwatch:TagResource
, cloudwatch:UntagResource
Napadač bi mogao da doda, izmeni ili ukloni oznake sa CloudWatch resursa (trenutno samo alarma i pravila za Contributor Insights). Ovo bi moglo poremetiti politike kontrola pristupa vaše organizacije zasnovane na oznakama.
Potencijalni uticaj: Poremećaj politika pristupa zasnovanih na oznakama.
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)