# AWS - CloudWatch Enum

{{#include ../../../../banners/hacktricks-training.md}}

## CloudWatch

**CloudWatch** **prikuplja** podatke o praćenju i operacijama 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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)

## Ključni koncepti

### Namespaces

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

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

Dimenzije su parovi ključ-vrednost koji su deo metrika. Pomažu da se jedinstveno identifikuje metrika 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.

### Statistike

Statistike 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

Jedinice su tip merenja povezan sa metrikom. Jedinice pomažu da se pruži kontekst i značenje 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 Karakteristike

### Dashboard

**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 Stream i Metric Data

**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.

### Alarm

**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 aktivira stanje alarma (npr. obaveštavanje putem SNS-a).

**Primer upotrebe**:

- Praćenje CPU upotrebe EC2 instance i slanje obaveštenja putem SNS-a ako pređe 80% tokom 5 uzastopnih minuta.

### Detektori anomalija

**Detektori anomalija** 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.
- **Opseg 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 pravila i upravljana Insight pravila

**Insight pravila** 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.

**Upravljana Insight pravila** 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.

### CloudWatch Logovi <a href="#cloudwatch-logs" id="cloudwatch-logs"></a>

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**:
| Termin                   | Definicija                                                                                                                                                 |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Log Grupa**            | **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**                                                                                                        |
| **Filteri pretplate**    | Definišu **filter obrazac koji se poklapa sa događajima** u određenoj log grupi, šalju ih u Kinesis Data Firehose stream, Kinesis stream ili Lambda funkciju |

### CloudWatch Praćenje & Događaji

CloudWatch **osnovni** agregira podatke **svakih 5 minuta** (detaljni to radi **svakih 1 minut**). 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 redovi, Kinesis Streams)

### Instalacija agenta

Možete instalirati agente unutar vaših mašina/kontejnera kako biste automatski slali logove nazad u CloudWatch.

- **Kreirajte** **ulogu** i **prikač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](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.

## Enumeracija
```bash
# Dashboards #

## Returns a list of the dashboards of your account
aws cloudwatch list-dashboards

## Retrieves the details of the specified dashboard
aws cloudwatch get-dashboard --dashboard-name <value>

# Metrics #

## Returns a list of the specified metric
aws cloudwatch list-metrics [--namespace <value>] [--metric-name <value>] [--dimensions <value>] [--include-linked-accounts | --no-include-linked-accounts]

## Retrieves metric data (this operation can include a CloudWatch Metrics Insights query, and one or more metric math functions)
aws cloudwatch get-metric-data --metric-data-queries <value> --start-time <value> --end-time <value>

## Retrieves statistics for the specified metric and namespace over a range of time
aws cloudwatch get-metric-statistics --namespace <value> --metric-name <value> [--dimensions <value>] --start-time <value> --end-time <value> --period <value>

## Returns a list of the metric streams of your account
aws cloudwatch list-metric-streams

## Retrieves information about the specified metric stream
aws cloudwatch get-metric-stream --name <value>

## Retrieve snapshots of the specified metric widgets
aws cloudwatch get-metric-widget-image --metric-widget <value>

# Alarms #

## Retrieves the specified alarm
aws cloudwatch describe-alarms [--alarm-names <value>] [--alarm-name-prefix <value>] [--alarm-types <value>] [--state-value <value>]

## Retrieves the alarms history, even for deleted alarms
aws cloudwatch describe-alarm-history [--alarm-name <value>] [--alarm-types <value>] [--history-item-type <ConfigurationUpdate | StateUpdate | Action>] [--start-date <value>] [--end-date <value>]

## Retrieves standard alarms based on the specified metric
aws cloudwatch escribe-alarms-for-metric --metric-name <value> --namespace <value> [--dimensions <value>]

# Anomaly Detections #

## Lists the anomaly detection models that you have created in your account
aws cloudwatch describe-anomaly-detectors [--namespace <value>] [--metric-name <value>] [--dimensions <value>]

## Lists all the Contributor Insight rules in your account
aws cloudwatch describe-insight-rules

## Retrieves the data collected over a time range for a given Contributor Insight rule
aws cloudwatch get-insight-rule-report --rule-name <value> --start-time <value> --end-time <value> --period <value>

## Lists managed Contributor Insights rules in your account for a specified resource
aws cloudwatch list-managed-insight-rules --resource-arn <value>

# Tags #

## Lists the tags associated with the specified CloudWatch resources
aws cloudwatch list-tags-for-resource --resource-arn <value>

# CloudWatch Logs #
aws logs tail "<log_group_name>" --followaws logs get-log-events --log-group-name "<log_group_name>" --log-stream-name "<log_stream_name>" --output text > <output_file>

# CloudWatch Events #
aws events list-rules
aws events describe-rule --name <name>aws events list-targets-by-rule --rule <name>aws events list-archives
aws events describe-archive --archive-name <name>aws events list-connections
aws events describe-connection --name <name>aws events list-endpoints
aws events describe-endpoint --name <name>aws events list-event-sources
aws events describe-event-source --name <name>aws events list-replays
aws events list-api-destinations
aws events list-event-buses
```
## Post-Exploitation / Bypass

### **`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 alarmâ, napadač bi takođe mogao da obmanjuje administratore lažnim obaveštenjima ili da 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 alarmâ, 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.
```bash
aws cloudwatch put-metric-alarm --cli-input-json <value> | --alarm-name <value> --comparison-operator <value> --evaluation-periods <value> [--datapoints-to-alarm <value>] [--threshold <value>] [--alarm-description <value>] [--alarm-actions <value>] [--metric-name <value>] [--namespace <value>] [--statistic <value>] [--dimensions <value>] [--period <value>]
aws cloudwatch delete-alarms --alarm-names <value>
aws cloudwatch put-composite-alarm --alarm-name <value> --alarm-rule <value> [--no-actions-enabled | --actions-enabled [--alarm-actions <value>] [--insufficient-data-actions <value>] [--ok-actions <value>] ]
```
Sledeći primer pokazuje kako učiniti metrik alarm neefikasnim:

- Ovaj metrik alarm prati prosečnu CPU upotrebu specifične EC2 instance, ocenjuje 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 Praga na više od 99%, postavljanjem Perioda na 10 sekundi, Evaluacionih Perioda 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.

{{#tabs }}
{{#tab name="Original Metric Alarm" }}
```json
{
"Namespace": "AWS/EC2",
"MetricName": "CPUUtilization",
"Dimensions": [
{
"Name": "InstanceId",
"Value": "i-01234567890123456"
}
],
"AlarmActions": ["arn:aws:sns:us-east-1:123456789012:example_sns"],
"ComparisonOperator": "GreaterThanThreshold",
"DatapointsToAlarm": 4,
"EvaluationPeriods": 6,
"Period": 300,
"Statistic": "Average",
"Threshold": 60,
"AlarmDescription": "CPU Utilization of i-01234567890123456 over 60%",
"AlarmName": "EC2 instance i-01234567890123456 CPU Utilization"
}
```
{{#endtab }}

{{#tab name="Modified Metric Alarm" }}
```json
{
"Namespace": "AWS/EC2",
"MetricName": "CPUUtilization",
"Dimensions": [
{
"Name": "InstanceId",
"Value": "i-0645d6d414dadf9f8"
}
],
"AlarmActions": [],
"ComparisonOperator": "GreaterThanThreshold",
"DatapointsToAlarm": 8640,
"EvaluationPeriods": 8640,
"Period": 10,
"Statistic": "Average",
"Threshold": 99,
"AlarmDescription": "CPU Utilization of i-01234567890123456 with 60% as threshold",
"AlarmName": "Instance i-0645d6d414dadf9f8 CPU Utilization"
}
```
{{#endtab }}
{{#endtabs }}

**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 se akcije 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 podstanja promeni. Takođe se ponovo procenjuje ako ažurirate njegovu konfiguraciju.
```bash
aws cloudwatch disable-alarm-actions --alarm-names <value>
aws cloudwatch enable-alarm-actions --alarm-names <value>
aws cloudwatch set-alarm-state --alarm-name <value> --state-value <OK | ALARM | INSUFFICIENT_DATA> --state-reason <value> [--state-reason-data <value>]
```
**Potencijalni uticaj**: Nedostatak obaveštenja za kritične događaje, potencijalni neotkriveni problemi, lažne alarme, potiskivanje stvarnih alarma i potencijalno propuštene detekcije stvarnih 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.
```bash
aws cloudwatch delete-anomaly-detector [--cli-input-json <value> | --namespace <value> --metric-name <value> --dimensions <value> --stat <value>]
aws cloudwatch put-anomaly-detector [--cli-input-json <value> | --namespace <value> --metric-name <value> --dimensions <value> --stat <value> --configuration <value> --metric-characteristics <value>]
```
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.

{{#tabs }}
{{#tab name="Original Metric Anomaly Detector" }}
```json
{
"SingleMetricAnomalyDetector": {
"Namespace": "AWS/EC2",
"MetricName": "CPUUtilization",
"Stat": "Average",
"Dimensions": [
{
"Name": "InstanceId",
"Value": "i-0123456789abcdefg"
}
]
}
}
```
{{#endtab }}

{{#tab name="Modifikovani Detektor Anomalija Metričkih Podataka" }}
```json
{
"SingleMetricAnomalyDetector": {
"Namespace": "AWS/EC2",
"MetricName": "CPUUtilization",
"Stat": "Average",
"Dimensions": [
{
"Name": "InstanceId",
"Value": "i-0123456789abcdefg"
}
]
},
"Configuration": {
"ExcludedTimeRanges": [
{
"StartTime": "2023-01-01T00:00:00Z",
"EndTime": "2053-01-01T23:59:59Z"
}
],
"Timezone": "Europe/Madrid"
}
}
```
{{#endtab }}
{{#endtabs }}

**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.
```bash
aws cloudwatch delete-dashboards --dashboard-names <value>
aws cloudwatch put-dashboard --dashboard-name <value> --dashboard-body <value>
```
**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 neadekvatnih odgovora operativnog tima.
```bash
aws cloudwatch delete-insight-rules --rule-names <value>
aws cloudwatch put-insight-rule --rule-name <value> --rule-definition <value> [--rule-state <value>]
aws cloudwatch put-managed-insight-rules --managed-rules <value>
```
**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.
```bash
aws cloudwatch disable-insight-rules --rule-names <value>
aws cloudwatch enable-insight-rules --rule-names <value>
```
**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 podataka o metriki, ugrožavajući bezbednost, nadzor i integritet podataka:

- **Kreiranje zlonamernih tokova**: Kreirati tokove metrike za slanje osetljivih podataka na neovlašćene destinacije.
- **Manipulacija resursima**: Kreiranje novih tokova metrike sa prekomernim podacima moglo bi proizvesti mnogo šuma, uzrokujući netačna upozorenja, prikrivajući prave probleme.
- **Prekid nadzora**: Brisanjem tokova metrike, 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 metrike. To bi moglo dovesti do DoS-a zbog količine nepravilnih podataka koji su dodati, čineći ga potpuno beskorisnim.
```bash
aws cloudwatch delete-metric-stream --name <value>
aws cloudwatch put-metric-stream --name <value> [--include-filters <value>] [--exclude-filters <value>] --firehose-arn <value> --role-arn <value> --output-format <value>
aws cloudwatch put-metric-data --namespace <value> [--metric-data <value>] [--metric-name <value>] [--timestamp <value>] [--unit <value>] [--value <value>] [--dimensions <value>]
```
Primer dodavanja podataka koji odgovaraju 70% iskorišćenosti CPU-a na datom EC2 instanci:
```bash
aws cloudwatch put-metric-data --namespace "AWS/EC2" --metric-name "CPUUtilization" --value 70 --unit "Percent" --dimensions "InstanceId=i-0123456789abcdefg"
```
**Potencijalni uticaj**: Poremećaj u protoku podataka o nadzoru, š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 pogođenih tokova podataka o metrikama (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.
```bash
aws cloudwatch stop-metric-streams --names <value>
aws cloudwatch start-metric-streams --names <value>
```
**Potencijalni uticaj**: Poremećaj u protoku podataka za praćenje, š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 da poremeti politike kontrole pristupa vaše organizacije zasnovane na oznakama.
```bash
aws cloudwatch tag-resource --resource-arn <value> --tags <value>
aws cloudwatch untag-resource --resource-arn <value> --tag-keys <value>
```
**Potencijalni uticaj**: Poremećaj politika kontrole pristupa zasnovanih na oznakama.

## Reference

- [https://cloudsecdocs.com/aws/services/logging/cloudwatch/](https://cloudsecdocs.com/aws/services/logging/cloudwatch/#general-info)
- [https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatch.html](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatch.html)
- [https://docs.aws.amazon.com/es_es/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Metric](https://docs.aws.amazon.com/es_es/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Metric)

{{#include ../../../../banners/hacktricks-training.md}}
