AWS - CloudWatch Enum
CloudWatch
CloudWatch raccoglie dati di monitoraggio e operativi sotto forma di log/metriche/eventi fornendo una visualizzazione unificata delle risorse AWS, delle applicazioni e dei servizi. Gli eventi dei log di CloudWatch hanno un limite di dimensione di 256KB su ogni riga di log. Può impostare allarmi ad alta risoluzione, visualizzare log e metriche affiancati, intraprendere azioni automatizzate, risolvere problemi e scoprire informazioni per ottimizzare le applicazioni.
È possibile monitorare ad esempio i log di CloudTrail. Eventi che vengono monitorati:
Modifiche ai gruppi di sicurezza e NACL
Avvio, arresto, riavvio e terminazione delle istanze EC2
Modifiche alle policy di sicurezza all'interno di IAM e S3
Tentativi di accesso non riusciti alla Console di gestione AWS
Chiamate API che hanno comportato un'autorizzazione non riuscita
Filtri per la ricerca in cloudwatch: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html
Concetti chiave
Namespace
Uno spazio dei nomi è un contenitore per le metriche di CloudWatch. Aiuta a categorizzare e isolare le metriche, facilitando la gestione e l'analisi.
Esempi: AWS/EC2 per le metriche correlate a EC2, AWS/RDS per le metriche di RDS.
Metriche
Le metriche sono punti dati raccolti nel tempo che rappresentano le prestazioni o l'utilizzo delle risorse AWS. Le metriche possono essere raccolte da servizi AWS, applicazioni personalizzate o integrazioni di terze parti.
Esempio: CPUUtilization, NetworkIn, DiskReadOps.
Dimensioni
Le dimensioni sono coppie chiave-valore che fanno parte delle metriche. Aiutano a identificare in modo univoco una metrica e forniscono contesto aggiuntivo, essendo 30 il numero massimo di dimensioni che possono essere associate a una metrica. Le dimensioni consentono anche di filtrare e aggregare le metriche in base ad attributi specifici.
Esempio: Per le istanze EC2, le dimensioni potrebbero includere InstanceId, InstanceType e AvailabilityZone.
Statistiche
Le statistiche sono calcoli matematici eseguiti sui dati delle metriche per riassumerli nel tempo. Le statistiche comuni includono Media, Somma, Minimo, Massimo e Conteggio campioni.
Esempio: Calcolare l'utilizzo medio della CPU in un periodo di un'ora.
Unità
Le unità sono il tipo di misurazione associato a una metrica. Le unità aiutano a fornire contesto e significato ai dati della metrica. Le unità comuni includono Percentuale, Byte, Secondi, Conteggio.
Esempio: CPUUtilization potrebbe essere misurato in Percentuale, mentre NetworkIn potrebbe essere misurato in Byte.
Funzionalità di CloudWatch
Dashboard
I Dashboard di CloudWatch forniscono visualizzazioni personalizzabili delle metriche di AWS CloudWatch. È possibile creare e configurare dashboard per visualizzare dati e monitorare risorse in una singola visualizzazione, combinando diverse metriche da vari servizi AWS.
Caratteristiche principali:
Widget: Blocchi di costruzione dei dashboard, inclusi grafici, testo, allarmi e altro.
Personalizzazione: Layout e contenuto possono essere personalizzati per adattarsi alle esigenze di monitoraggio specifiche.
Esempio di caso d'uso:
Un singolo dashboard che mostra le metriche chiave per l'intero ambiente AWS, inclusi le istanze EC2, i database RDS e i bucket S3.
Flusso di metriche e Dati delle metriche
I Flussi di metriche in AWS CloudWatch consentono di trasmettere continuamente le metriche di CloudWatch a una destinazione a scelta in tempo quasi reale. Questo è particolarmente utile per il monitoraggio avanzato, l'analisi e i dashboard personalizzati utilizzando strumenti al di fuori di AWS.
I Dati delle metriche all'interno dei Flussi di metriche si riferiscono alle misurazioni effettive o ai punti dati che vengono trasmessi. Questi punti dati rappresentano varie metriche come utilizzo della CPU, utilizzo della memoria, ecc., per le risorse AWS.
Esempio di caso d'uso:
Invio di metriche in tempo reale a un servizio di monitoraggio di terze parti per un'analisi avanzata.
Archiviazione delle metriche in un bucket Amazon S3 per l'archiviazione a lungo termine e la conformità.
Allarme
Gli Allarmi di CloudWatch monitorano le tue metriche e eseguono azioni in base a soglie predefinite. Quando una metrica supera una soglia, l'allarme può eseguire una o più azioni come inviare notifiche tramite SNS, attivare una policy di ridimensionamento automatico o eseguire una funzione AWS Lambda.
Componenti chiave:
Soglia: Il valore a cui scatta l'allarme.
Periodi di valutazione: Il numero di periodi durante i quali i dati vengono valutati.
Punti dati per l'allarme: Il numero di periodi con una soglia raggiunta necessari per attivare l'allarme.
Azioni: Cosa succede quando viene attivato uno stato di allarme (ad esempio, notifica tramite SNS).
Esempio di caso d'uso:
Monitoraggio dell'utilizzo della CPU dell'istanza EC2 e invio di una notifica tramite SNS se supera l'80% per 5 minuti consecutivi.
Rilevatori di anomalie
I Rilevatori di anomalie utilizzano l'apprendimento automatico per rilevare automaticamente anomalie nelle tue metriche. È possibile applicare il rilevamento delle anomalie a qualsiasi metrica di CloudWatch per identificare deviazioni dai modelli normali che potrebbero indicare problemi.
Componenti chiave:
Addestramento del modello: CloudWatch utilizza dati storici per addestrare un modello e stabilire quale sia l'aspetto normale del comportamento.
Banda di rilevamento delle anomalie: Una rappresentazione visiva dell'intervallo di valori attesi per una metrica.
Esempio di caso d'uso:
Rilevamento di modelli insoliti di utilizzo della CPU in un'istanza EC2 che potrebbero indicare una violazione della sicurezza o un problema dell'applicazione.
Regole Insight e Regole Insight gestite
Le Regole Insight ti consentono di identificare tendenze, rilevare picchi o altri modelli di interesse nei tuoi dati delle metriche utilizzando espressioni matematiche potenti per definire le condizioni in cui dovrebbero essere intraprese azioni. Queste regole possono aiutarti a identificare anomalie o comportamenti insoliti nelle prestazioni e nell'utilizzo delle risorse.
Le Regole Insight gestite sono regole Insight preconfigurate fornite da AWS. Sono progettate per monitorare servizi AWS specifici o casi d'uso comuni e possono essere abilitate senza necessità di configurazioni dettagliate.
Esempio di caso d'uso:
Monitoraggio delle prestazioni di RDS: Abilita una regola Insight gestita per Amazon RDS che monitora indicatori chiave delle prestazioni come utilizzo della CPU, utilizzo della memoria e I/O del disco. Se una di queste metriche supera le soglie operative sicure, la regola può attivare un avviso o un'azione di mitigazione automatizzata.
Log di CloudWatch
Consente di aggregare e monitorare i log dalle applicazioni e dai sistemi dei servizi AWS (incluso CloudTrail) e dagli app/sistemi (l'Agente CloudWatch può essere installato su un host). I log possono essere archiviati indefinitamente (a seconda delle impostazioni del Gruppo di log) e possono essere esportati.
Elementi:
Gruppo di log | Una raccolta di flussi di log che condividono le stesse impostazioni di conservazione, monitoraggio e controllo dell'accesso |
Flusso di log | Una sequenza di eventi di log che condividono la stessa origine |
Filtri di sottoscrizione | Definiscono un modello di filtro che corrisponde agli eventi in un particolare gruppo di log, li inviano a uno stream Kinesis Data Firehose, a uno stream Kinesis o a una funzione Lambda |
### Monitoraggio ed eventi di CloudWatch |
CloudWatch base aggrega i dati ogni 5 minuti (quello dettagliato lo fa ogni 1 minuto). Dopo l'aggregazione, controlla le soglie degli allarmi nel caso in cui sia necessario attivarne uno. In tal caso, CloudWatch può essere preparato per inviare un evento e eseguire alcune azioni automatiche (funzioni AWS Lambda, argomenti SNS, code SQS, flussi Kinesis)
Installazione dell'agente
È possibile installare degli agenti all'interno delle proprie macchine/container per inviare automaticamente i log a CloudWatch.
Creare un ruolo e collegarlo all'istanza con le autorizzazioni che consentono a CloudWatch di raccogliere dati dalle istanze oltre che interagire con il gestore di sistemi AWS SSM (CloudWatchAgentAdminPolicy & AmazonEC2RoleforSSM)
Scaricare e installare l'agente sull'istanza EC2 (https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip). È possibile scaricarlo dall'interno dell'EC2 o installarlo automaticamente utilizzando AWS System Manager selezionando il pacchetto AWS-ConfigureAWSPackage
Configurare e avviare l'agente di CloudWatch
Un gruppo di log ha molti flussi. Un flusso ha molti eventi. E all'interno di ciascun flusso, gli eventi sono garantiti di essere in ordine.
Enumerazione
Post-Esploitation / Bypass
cloudwatch:DeleteAlarms
,cloudwatch:PutMetricAlarm
, cloudwatch:PutCompositeAlarm
cloudwatch:DeleteAlarms
,cloudwatch:PutMetricAlarm
, cloudwatch:PutCompositeAlarm
Un attaccante con queste autorizzazioni potrebbe compromettere significativamente il monitoraggio e l'infrastruttura di allerta di un'organizzazione. Eliminando gli allarmi esistenti, un attaccante potrebbe disattivare avvisi cruciali che notificano agli amministratori problemi di prestazioni critici, violazioni della sicurezza o guasti operativi. Inoltre, creando o modificando allarmi metrici, l'attaccante potrebbe anche ingannare gli amministratori con falsi avvisi o silenziare allarmi legittimi, mascherando efficacemente attività dannose e impedendo risposte tempestive a incidenti reali.
Inoltre, con l'autorizzazione cloudwatch:PutCompositeAlarm
, un attaccante sarebbe in grado di creare un loop o ciclo di allarmi compositi, dove l'allarme composito A dipende dall'allarme composito B e l'allarme composito B dipende anche dall'allarme composito A. In questo scenario, non è possibile eliminare alcun allarme composito che fa parte del ciclo perché c'è sempre ancora un allarme composito che dipende da quell'allarme che si desidera eliminare.
Il seguente esempio mostra come rendere inefficace un allarme metrico:
Questo allarme metrico monitora l'utilizzo medio della CPU di una specifica istanza EC2, valuta la metrica ogni 300 secondi e richiede 6 periodi di valutazione (totale di 30 minuti). Se l'utilizzo medio della CPU supera il 60% per almeno 4 di questi periodi, l'allarme verrà attivato e invierà una notifica al topic SNS specificato.
Modificando la Soglia per essere superiore al 99%, impostando il Periodo a 10 secondi, i Periodi di Valutazione a 8640 (poiché 8640 periodi di 10 secondi equivalgono a 1 giorno), e i Punti Dati per l'Allarme a 8640 anche, sarebbe necessario che l'utilizzo della CPU fosse superiore al 99% ogni 10 secondi per l'intero periodo di 24 ore per attivare un allarme.
Impatto Potenziale: Mancanza di notifiche per eventi critici, potenziali problemi non rilevati, falsi allarmi, soppressione di allarmi autentici e possibili mancate rilevazioni di incidenti reali.
cloudwatch:DeleteAlarmActions
, cloudwatch:EnableAlarmActions
, cloudwatch:SetAlarmState
cloudwatch:DeleteAlarmActions
, cloudwatch:EnableAlarmActions
, cloudwatch:SetAlarmState
Eliminando le azioni di allarme, l'attaccante potrebbe impedire che vengano attivate notifiche critiche e risposte automatizzate quando uno stato di allarme viene raggiunto, come ad esempio notificare agli amministratori o attivare attività di ridimensionamento automatico. Abilitare o riabilitare in modo inappropriato le azioni di allarme potrebbe anche portare a comportamenti inaspettati, sia riattivando azioni precedentemente disabilitate o modificando quali azioni vengono attivate, causando potenzialmente confusione e deviazione nella risposta agli incidenti.
Inoltre, un attaccante con le autorizzazioni potrebbe manipolare gli stati di allarme, potendo creare falsi allarmi per distrarre e confondere gli amministratori, o silenziare allarmi autentici per nascondere attività dannose in corso o fallimenti critici di sistema.
Se si utilizza
SetAlarmState
su un allarme composito, non è garantito che l'allarme composito torni al suo stato effettivo. Torna al suo stato effettivo solo una volta che uno qualsiasi dei suoi allarmi figlio cambia stato. Viene inoltre rivalutato se si aggiorna la sua configurazione.
Impatto Potenziale: Mancanza di notifiche per eventi critici, potenziali problemi non rilevati, falsi allarmi, soppressione di avvisi genuini e possibili mancate rilevazioni di incidenti reali.
cloudwatch:DeleteAnomalyDetector
, cloudwatch:PutAnomalyDetector
cloudwatch:DeleteAnomalyDetector
, cloudwatch:PutAnomalyDetector
Un attaccante potrebbe compromettere la capacità di rilevare e rispondere a modelli o anomalie insolite nei dati metrici. Eliminando i rilevatori di anomalie esistenti, un attaccante potrebbe disattivare meccanismi critici di allerta; e creandoli o modificandoli, sarebbe in grado di configurarli in modo errato o creare falsi positivi per distrarre o sovraccaricare il monitoraggio.
L'esempio seguente mostra come rendere inefficace un rilevatore di anomalie metriche. Questo rilevatore di anomalie metriche monitora l'utilizzo medio della CPU di una specifica istanza EC2 e semplicemente aggiungendo il parametro "ExcludedTimeRanges" con l'intervallo di tempo desiderato, sarebbe sufficiente per garantire che il rilevatore di anomalie non analizzi o segnali su dati rilevanti durante quel periodo.
Impatto Potenziale: Effetto diretto nella rilevazione di modelli insoliti o minacce alla sicurezza.
cloudwatch:DeleteDashboards
, cloudwatch:PutDashboard
cloudwatch:DeleteDashboards
, cloudwatch:PutDashboard
Un attaccante potrebbe compromettere le capacità di monitoraggio e visualizzazione di un'organizzazione creando, modificando o eliminando i suoi cruscotti. Queste autorizzazioni potrebbero essere sfruttate per rimuovere una visibilità critica sulle prestazioni e sulla salute dei sistemi, modificare i cruscotti per visualizzare dati incorretti o nascondere attività dannose.
Impatto Potenziale: Perdita di visibilità del monitoraggio e informazioni fuorvianti.
cloudwatch:DeleteInsightRules
, cloudwatch:PutInsightRule
,cloudwatch:PutManagedInsightRule
cloudwatch:DeleteInsightRules
, cloudwatch:PutInsightRule
,cloudwatch:PutManagedInsightRule
Le regole Insight sono utilizzate per rilevare anomalie, ottimizzare le prestazioni e gestire le risorse in modo efficace. Eliminando le regole Insight esistenti, un attaccante potrebbe rimuovere capacità di monitoraggio critiche, lasciando il sistema cieco rispetto ai problemi di prestazioni e alle minacce alla sicurezza. Inoltre, un attaccante potrebbe creare o modificare regole Insight per generare dati fuorvianti o nascondere attività dannose, portando a diagnosi errate e risposte inadeguate da parte del team operativo.
Impatto Potenziale: Difficoltà nel rilevare e rispondere ai problemi di performance e anomalie, decisioni errate e potenziale occultamento di attività maligne o guasti di sistema.
cloudwatch:DisableInsightRules
, cloudwatch:EnableInsightRules
cloudwatch:DisableInsightRules
, cloudwatch:EnableInsightRules
Disabilitando regole di insight critiche, un attaccante potrebbe accecare efficacemente l'organizzazione rispetto a metriche chiave di performance e sicurezza. Al contrario, abilitando o configurando regole fuorvianti, potrebbe essere possibile generare dati falsi, creare rumore o nascondere attività maligne.
Impatto Potenziale: Confusione tra il team delle operazioni, che porta a risposte ritardate a problemi reali e azioni non necessarie basate su falsi allarmi.
cloudwatch:DeleteMetricStream
, cloudwatch:PutMetricStream
, cloudwatch:PutMetricData
cloudwatch:DeleteMetricStream
, cloudwatch:PutMetricStream
, cloudwatch:PutMetricData
Un attaccante con i permessi cloudwatch:DeleteMetricStream
, cloudwatch:PutMetricStream
sarebbe in grado di creare ed eliminare flussi di dati metrici, compromettendo la sicurezza, il monitoraggio e l'integrità dei dati:
Creazione di flussi dannosi: Creare flussi metrici per inviare dati sensibili a destinazioni non autorizzate.
Manipolazione delle risorse: La creazione di nuovi flussi metrici con dati eccessivi potrebbe generare molto rumore, causando allarmi errati, mascherando problemi reali.
Disruzione del monitoraggio: Eliminando flussi metrici, gli attaccanti interromperebbero il flusso continuo dei dati di monitoraggio. In questo modo, le loro attività dannose sarebbero efficacemente nascoste.
Allo stesso modo, con il permesso cloudwatch:PutMetricData
, sarebbe possibile aggiungere dati a un flusso metrico. Ciò potrebbe portare a un attacco DoS a causa della quantità di dati impropri aggiunti, rendendolo completamente inutile.
Esempio di aggiunta di dati corrispondenti al 70% di utilizzo della CPU su una determinata istanza EC2:
Impatto Potenziale: Disruzione nel flusso dei dati di monitoraggio, impattando la rilevazione di anomalie e incidenti, manipolazione delle risorse e aumento dei costi dovuto alla creazione di flussi metrici eccessivi.
cloudwatch:StopMetricStreams
, cloudwatch:StartMetricStreams
cloudwatch:StopMetricStreams
, cloudwatch:StartMetricStreams
Un attaccante potrebbe controllare il flusso dei flussi di dati metrici interessati (ogni flusso di dati se non vi è restrizione delle risorse). Con il permesso cloudwatch:StopMetricStreams
, gli attaccanti potrebbero nascondere le loro attività dannose fermando i flussi metrici critici.
Impatto Potenziale: Interruzione nel flusso dei dati di monitoraggio, influenzando la rilevazione di anomalie e incidenti.
cloudwatch:TagResource
, cloudwatch:UntagResource
cloudwatch:TagResource
, cloudwatch:UntagResource
Un attaccante potrebbe essere in grado di aggiungere, modificare o rimuovere tag dalle risorse CloudWatch (attualmente solo allarmi e regole Contributor Insights). Ciò potrebbe interrompere le politiche di controllo degli accessi dell'organizzazione basate sui tag.
Impatto Potenziale: Interruzione delle politiche di controllo degli accessi basate su tag.
Riferimenti
Last updated