# AWS - CloudWatch Enum {{#include ../../../../banners/hacktricks-training.md}} ## CloudWatch **CloudWatch** **sammelt** Überwachungs- und Betriebs-**daten** in Form von Protokollen/Metriken/Ereignissen und bietet eine **einheitliche Ansicht der AWS-Ressourcen**, Anwendungen und Dienste.\ CloudWatch Log-Ereignisse haben eine **Größenbeschränkung von 256KB pro Protokollzeile**.\ Es kann **Hochauflösungsalarme** einstellen, **Protokolle** und **Metriken** nebeneinander visualisieren, automatisierte Aktionen durchführen, Probleme beheben und Erkenntnisse gewinnen, um Anwendungen zu optimieren. Sie können beispielsweise Protokolle von CloudTrail überwachen. Überwachte Ereignisse: - Änderungen an Sicherheitsgruppen und NACLs - Starten, Stoppen, Neustarten und Beenden von EC2-Instanzen - Änderungen an Sicherheitsrichtlinien innerhalb von IAM und S3 - Fehlgeschlagene Anmeldeversuche bei der AWS Management Console - API-Aufrufe, die zu fehlgeschlagener Autorisierung führten - Filter zur Suche in CloudWatch: [https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html) ## Schlüsselkonzepte ### Namespaces Ein Namespace ist ein Container für CloudWatch-Metriken. Er hilft, Metriken zu kategorisieren und zu isolieren, was die Verwaltung und Analyse erleichtert. - **Beispiele**: AWS/EC2 für EC2-bezogene Metriken, AWS/RDS für RDS-Metriken. ### Metriken Metriken sind über die Zeit gesammelte Datenpunkte, die die Leistung oder Nutzung von AWS-Ressourcen darstellen. Metriken können von AWS-Diensten, benutzerdefinierten Anwendungen oder Drittanbieter-Integrationen gesammelt werden. - **Beispiel**: CPUUtilization, NetworkIn, DiskReadOps. ### Dimensionen Dimensionen sind Schlüssel-Wert-Paare, die Teil von Metriken sind. Sie helfen, eine Metrik eindeutig zu identifizieren und bieten zusätzlichen Kontext, wobei 30 die maximale Anzahl von Dimensionen ist, die mit einer Metrik verknüpft werden können. Dimensionen ermöglichen auch das Filtern und Aggregieren von Metriken basierend auf bestimmten Attributen. - **Beispiel**: Für EC2-Instanzen könnten Dimensionen InstanceId, InstanceType und AvailabilityZone umfassen. ### Statistiken Statistiken sind mathematische Berechnungen, die auf Metrikdaten durchgeführt werden, um sie über die Zeit zusammenzufassen. Zu den gängigen Statistiken gehören Durchschnitt, Summe, Minimum, Maximum und SampleCount. - **Beispiel**: Berechnung der durchschnittlichen CPU-Auslastung über einen Zeitraum von einer Stunde. ### Einheiten Einheiten sind der Messungstyp, der mit einer Metrik verbunden ist. Einheiten helfen, Kontext und Bedeutung zu den Metrikdaten zu liefern. Gängige Einheiten sind Prozent, Bytes, Sekunden, Anzahl. - **Beispiel**: CPUUtilization könnte in Prozent gemessen werden, während NetworkIn in Bytes gemessen werden könnte. ## CloudWatch-Funktionen ### Dashboard **CloudWatch Dashboards** bieten anpassbare **Ansichten Ihrer AWS CloudWatch-Metriken**. Es ist möglich, Dashboards zu erstellen und zu konfigurieren, um Daten zu visualisieren und Ressourcen in einer einzigen Ansicht zu überwachen, indem verschiedene Metriken aus verschiedenen AWS-Diensten kombiniert werden. **Hauptmerkmale**: - **Widgets**: Bausteine von Dashboards, einschließlich Grafiken, Text, Alarme und mehr. - **Anpassung**: Layout und Inhalt können an spezifische Überwachungsbedürfnisse angepasst werden. **Beispielanwendung**: - Ein einzelnes Dashboard, das wichtige Metriken für Ihre gesamte AWS-Umgebung anzeigt, einschließlich EC2-Instanzen, RDS-Datenbanken und S3-Buckets. ### Metrikstream und Metrikdaten **Metrikstreams** in AWS CloudWatch ermöglichen es Ihnen, CloudWatch-Metriken kontinuierlich in nahezu Echtzeit an ein Ziel Ihrer Wahl zu streamen. Dies ist besonders nützlich für fortgeschrittene Überwachung, Analysen und benutzerdefinierte Dashboards mit Tools außerhalb von AWS. **Metrikdaten** innerhalb von Metrikstreams beziehen sich auf die tatsächlichen Messungen oder Datenpunkte, die gestreamt werden. Diese Datenpunkte repräsentieren verschiedene Metriken wie CPU-Auslastung, Speichernutzung usw. für AWS-Ressourcen. **Beispielanwendung**: - Echtzeitmetriken an einen Drittanbieter-Überwachungsdienst für eine erweiterte Analyse senden. - Metriken in einem Amazon S3-Bucket für die langfristige Speicherung und Compliance archivieren. ### Alarm **CloudWatch-Alarme** überwachen Ihre Metriken und führen Aktionen basierend auf vordefinierten Schwellenwerten aus. Wenn eine Metrik einen Schwellenwert überschreitet, kann der Alarm eine oder mehrere Aktionen ausführen, z. B. Benachrichtigungen über SNS senden, eine Auto-Scaling-Richtlinie auslösen oder eine AWS Lambda-Funktion ausführen. **Hauptkomponenten**: - **Schwellenwert**: Der Wert, bei dem der Alarm ausgelöst wird. - **Bewertungszeiträume**: Die Anzahl der Zeiträume, über die Daten bewertet werden. - **Datenpunkte zum Alarm**: Die Anzahl der Zeiträume mit einem erreichten Schwellenwert, die erforderlich sind, um den Alarm auszulösen. - **Aktionen**: Was passiert, wenn ein Alarmzustand ausgelöst wird (z. B. Benachrichtigung über SNS). **Beispielanwendung**: - Überwachung der CPU-Auslastung von EC2-Instanzen und Senden einer Benachrichtigung über SNS, wenn sie 80 % für 5 aufeinanderfolgende Minuten überschreitet. ### Anomalie-Detektoren **Anomalie-Detektoren** verwenden maschinelles Lernen, um automatisch Anomalien in Ihren Metriken zu erkennen. Sie können die Anomalieerkennung auf jede CloudWatch-Metrik anwenden, um Abweichungen von normalen Mustern zu identifizieren, die auf Probleme hinweisen könnten. **Hauptkomponenten**: - **Modelltraining**: CloudWatch verwendet historische Daten, um ein Modell zu trainieren und festzustellen, wie normales Verhalten aussieht. - **Anomalieerkennungsband**: Eine visuelle Darstellung des erwarteten Wertebereichs für eine Metrik. **Beispielanwendung**: - Erkennung ungewöhnlicher CPU-Auslastungsmuster in einer EC2-Instanz, die auf einen Sicherheitsvorfall oder ein Anwendungsproblem hinweisen könnten. ### Insight-Regeln und verwaltete Insight-Regeln **Insight-Regeln** ermöglichen es Ihnen, Trends zu identifizieren, Spitzen zu erkennen oder andere Muster von Interesse in Ihren Metrikdaten mithilfe **leistungsstarker mathematischer Ausdrücke** zu definieren, unter welchen Bedingungen Aktionen ergriffen werden sollten. Diese Regeln können Ihnen helfen, Anomalien oder ungewöhnliches Verhalten in der Leistung und Nutzung Ihrer Ressourcen zu identifizieren. **Verwaltete Insight-Regeln** sind vorkonfigurierte **Insight-Regeln, die von AWS bereitgestellt werden**. Sie sind darauf ausgelegt, spezifische AWS-Dienste oder gängige Anwendungsfälle zu überwachen und können ohne detaillierte Konfiguration aktiviert werden. **Beispielanwendung**: - Überwachung der RDS-Leistung: Aktivieren Sie eine verwaltete Insight-Regel für Amazon RDS, die wichtige Leistungsindikatoren wie CPU-Auslastung, Speichernutzung und Festplatten-I/O überwacht. Wenn eine dieser Metriken sichere Betriebsgrenzen überschreitet, kann die Regel einen Alarm oder eine automatisierte Minderung auslösen. ### CloudWatch-Protokolle Ermöglicht das **Aggregieren und Überwachen von Protokollen aus Anwendungen** und Systemen von **AWS-Diensten** (einschließlich CloudTrail) und **von Apps/Systemen** (**CloudWatch-Agent** kann auf einem Host installiert werden). Protokolle können **unbegrenzt gespeichert** werden (abhängig von den Einstellungen der Protokollgruppe) und können exportiert werden. **Elemente**: | Begriff | Definition | | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Protokollgruppe** | Eine **Sammlung von Protokollstreams**, die dieselben Aufbewahrungs-, Überwachungs- und Zugriffskontrolleinstellungen teilen | | **Protokollstream** | Eine Sequenz von **Protokollereignissen**, die die **gleiche Quelle** teilen | | **Abonnementfilter** | Definieren ein **Filtermuster, das Ereignisse** in einer bestimmten Protokollgruppe übereinstimmt, senden sie an Kinesis Data Firehose-Stream, Kinesis-Stream oder eine Lambda-Funktion | ### CloudWatch-Überwachung & Ereignisse CloudWatch **grundlegend** aggregiert Daten **alle 5 Minuten** (die **detaillierte** macht das **alle 1 Minute**). Nach der Aggregation **überprüft es die Schwellenwerte der Alarme**, um festzustellen, ob einer ausgelöst werden muss.\ In diesem Fall kann CloudWatch bereit sein, ein Ereignis zu senden und einige automatische Aktionen durchzuführen (AWS-Lambda-Funktionen, SNS-Themen, SQS-Warteschlangen, Kinesis-Streams). ### Agenteninstallation Sie können Agenten in Ihren Maschinen/Containern installieren, um die Protokolle automatisch an CloudWatch zurückzusenden. - **Erstellen** Sie eine **Rolle** und **hängen** Sie sie an die **Instanz** mit Berechtigungen, die es CloudWatch ermöglichen, Daten von den Instanzen zu sammeln, zusätzlich zur Interaktion mit AWS Systems Manager SSM (CloudWatchAgentAdminPolicy & AmazonEC2RoleforSSM) - **Laden** Sie den **Agenten** herunter und **installieren** Sie ihn auf der EC2-Instanz ([https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip](https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip)). Sie können ihn von innerhalb der EC2 herunterladen oder automatisch mit AWS Systems Manager installieren, indem Sie das Paket AWS-ConfigureAWSPackage auswählen. - **Konfigurieren** und **starten** Sie den CloudWatch-Agenten. Eine Protokollgruppe hat viele Streams. Ein Stream hat viele Ereignisse. Und innerhalb jedes Streams ist garantiert, dass die Ereignisse in der richtigen Reihenfolge sind. ## Enumeration ```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 # Metrics # ## Returns a list of the specified metric aws cloudwatch list-metrics [--namespace ] [--metric-name ] [--dimensions ] [--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 --start-time --end-time ## Retrieves statistics for the specified metric and namespace over a range of time aws cloudwatch get-metric-statistics --namespace --metric-name [--dimensions ] --start-time --end-time --period ## 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 ## Retrieve snapshots of the specified metric widgets aws cloudwatch get-metric-widget-image --metric-widget # Alarms # ## Retrieves the specified alarm aws cloudwatch describe-alarms [--alarm-names ] [--alarm-name-prefix ] [--alarm-types ] [--state-value ] ## Retrieves the alarms history, even for deleted alarms aws cloudwatch describe-alarm-history [--alarm-name ] [--alarm-types ] [--history-item-type ] [--start-date ] [--end-date ] ## Retrieves standard alarms based on the specified metric aws cloudwatch escribe-alarms-for-metric --metric-name --namespace [--dimensions ] # Anomaly Detections # ## Lists the anomaly detection models that you have created in your account aws cloudwatch describe-anomaly-detectors [--namespace ] [--metric-name ] [--dimensions ] ## 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 --start-time --end-time --period ## Lists managed Contributor Insights rules in your account for a specified resource aws cloudwatch list-managed-insight-rules --resource-arn # Tags # ## Lists the tags associated with the specified CloudWatch resources aws cloudwatch list-tags-for-resource --resource-arn # CloudWatch Logs # aws logs tail "" --followaws logs get-log-events --log-group-name "" --log-stream-name "" --output text > # CloudWatch Events # aws events list-rules aws events describe-rule --name aws events list-targets-by-rule --rule aws events list-archives aws events describe-archive --archive-name aws events list-connections aws events describe-connection --name aws events list-endpoints aws events describe-endpoint --name aws events list-event-sources aws events describe-event-source --name aws events list-replays aws events list-api-destinations aws events list-event-buses ``` ## Post-Exploitation / Bypass ### **`cloudwatch:DeleteAlarms`,`cloudwatch:PutMetricAlarm` , `cloudwatch:PutCompositeAlarm`** Ein Angreifer mit diesen Berechtigungen könnte die Überwachungs- und Alarmierungsinfrastruktur einer Organisation erheblich untergraben. Durch das Löschen vorhandener Alarme könnte ein Angreifer entscheidende Warnungen deaktivieren, die Administratoren über kritische Leistungsprobleme, Sicherheitsverletzungen oder Betriebsstörungen informieren. Darüber hinaus könnte der Angreifer durch das Erstellen oder Ändern von Metrik-Alarmen auch Administratoren mit falschen Warnungen in die Irre führen oder legitime Alarme zum Schweigen bringen, wodurch böswillige Aktivitäten effektiv maskiert und rechtzeitige Reaktionen auf tatsächliche Vorfälle verhindert werden. Darüber hinaus könnte ein Angreifer mit der Berechtigung **`cloudwatch:PutCompositeAlarm`** eine Schleife oder einen Zyklus von zusammengesetzten Alarmen erstellen, bei dem der zusammengesetzte Alarm A vom zusammengesetzten Alarm B abhängt und der zusammengesetzte Alarm B ebenfalls vom zusammengesetzten Alarm A abhängt. In diesem Szenario ist es nicht möglich, einen zusammengesetzten Alarm, der Teil des Zyklus ist, zu löschen, da immer noch ein zusammengesetzter Alarm existiert, der von dem Alarm abhängt, den Sie löschen möchten. ```bash aws cloudwatch put-metric-alarm --cli-input-json | --alarm-name --comparison-operator --evaluation-periods [--datapoints-to-alarm ] [--threshold ] [--alarm-description ] [--alarm-actions ] [--metric-name ] [--namespace ] [--statistic ] [--dimensions ] [--period ] aws cloudwatch delete-alarms --alarm-names aws cloudwatch put-composite-alarm --alarm-name --alarm-rule [--no-actions-enabled | --actions-enabled [--alarm-actions ] [--insufficient-data-actions ] [--ok-actions ] ] ``` Das folgende Beispiel zeigt, wie man einen Metrikalarm unwirksam macht: - Dieser Metrikalarm überwacht die durchschnittliche CPU-Auslastung einer bestimmten EC2-Instanz, bewertet die Metrik alle 300 Sekunden und erfordert 6 Bewertungsperioden (insgesamt 30 Minuten). Wenn die durchschnittliche CPU-Auslastung in mindestens 4 dieser Perioden 60 % überschreitet, wird der Alarm ausgelöst und sendet eine Benachrichtigung an das angegebene SNS-Thema. - Durch die Änderung des Schwellenwerts auf mehr als 99 %, das Setzen der Periode auf 10 Sekunden, der Bewertungsperioden auf 8640 (da 8640 Perioden von 10 Sekunden 1 Tag entsprechen) und der Datapoints to Alarm auf ebenfalls 8640, wäre es erforderlich, dass die CPU-Auslastung über 99 % alle 10 Sekunden während des gesamten 24-Stunden-Zeitraums liegt, um einen Alarm auszulösen. {{#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 }} **Potenzielle Auswirkungen**: Fehlende Benachrichtigungen für kritische Ereignisse, potenzielle unentdeckte Probleme, falsche Alarme, Unterdrückung echter Alarme und möglicherweise verpasste Erkennungen realer Vorfälle. ### **`cloudwatch:DeleteAlarmActions`, `cloudwatch:EnableAlarmActions`, `cloudwatch:SetAlarmState`** Durch das Löschen von Alarmaktionen könnte der Angreifer kritische Warnungen und automatisierte Reaktionen daran hindern, ausgelöst zu werden, wenn ein Alarmzustand erreicht wird, wie z. B. die Benachrichtigung von Administratoren oder das Auslösen von Auto-Scaling-Aktivitäten. Das unangemessene Aktivieren oder Wiederaktivieren von Alarmaktionen könnte ebenfalls zu unerwartetem Verhalten führen, entweder durch die Reaktivierung zuvor deaktivierter Aktionen oder durch die Änderung, welche Aktionen ausgelöst werden, was potenziell Verwirrung und Fehlleitungen bei der Vorfallreaktion verursachen könnte. Darüber hinaus könnte ein Angreifer mit der Berechtigung Alarmzustände manipulieren, indem er falsche Alarme erstellt, um Administratoren abzulenken und zu verwirren, oder echte Alarme zum Schweigen bringt, um laufende böswillige Aktivitäten oder kritische Systemausfälle zu verbergen. - Wenn Sie **`SetAlarmState`** für einen zusammengesetzten Alarm verwenden, ist nicht garantiert, dass der zusammengesetzte Alarm in seinen tatsächlichen Zustand zurückkehrt. Er kehrt nur dann in seinen tatsächlichen Zustand zurück, wenn einer seiner untergeordneten Alarme den Zustand ändert. Er wird auch neu bewertet, wenn Sie seine Konfiguration aktualisieren. ```bash aws cloudwatch disable-alarm-actions --alarm-names aws cloudwatch enable-alarm-actions --alarm-names aws cloudwatch set-alarm-state --alarm-name --state-value --state-reason [--state-reason-data ] ``` **Potenzielle Auswirkungen**: Fehlende Benachrichtigungen für kritische Ereignisse, potenzielle unentdeckte Probleme, falsche Alarme, Unterdrückung echter Alarme und möglicherweise verpasste Erkennungen echter Vorfälle. ### **`cloudwatch:DeleteAnomalyDetector`, `cloudwatch:PutAnomalyDetector`** Ein Angreifer könnte die Fähigkeit zur Erkennung und Reaktion auf ungewöhnliche Muster oder Anomalien in den Metrikdaten gefährden. Durch das Löschen vorhandener Anomalie-Detektoren könnte ein Angreifer kritische Alarmmechanismen deaktivieren; und durch das Erstellen oder Ändern dieser könnte er entweder Fehlkonfigurationen vornehmen oder falsche Positivmeldungen erzeugen, um die Überwachung abzulenken oder zu überwältigen. ```bash aws cloudwatch delete-anomaly-detector [--cli-input-json | --namespace --metric-name --dimensions --stat ] aws cloudwatch put-anomaly-detector [--cli-input-json | --namespace --metric-name --dimensions --stat --configuration --metric-characteristics ] ``` Das folgende Beispiel zeigt, wie man einen Metrik-Anomalie-Detektor unwirksam macht. Dieser Metrik-Anomalie-Detektor überwacht die durchschnittliche CPU-Auslastung einer bestimmten EC2-Instanz, und allein durch das Hinzufügen des Parameters „ExcludedTimeRanges“ mit dem gewünschten Zeitbereich wäre es ausreichend, um sicherzustellen, dass der Anomalie-Detektor während dieses Zeitraums keine relevanten Daten analysiert oder Alarm schlägt. {{#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="Modified Metric Anomaly Detector" }} ```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 }} **Potenzielle Auswirkungen**: Direkte Auswirkungen auf die Erkennung ungewöhnlicher Muster oder Sicherheitsbedrohungen. ### **`cloudwatch:DeleteDashboards`, `cloudwatch:PutDashboard`** Ein Angreifer könnte die Überwachungs- und Visualisierungsfähigkeiten einer Organisation gefährden, indem er deren Dashboards erstellt, ändert oder löscht. Diese Berechtigungen könnten genutzt werden, um die kritische Sichtbarkeit auf die Leistung und Gesundheit von Systemen zu entfernen, Dashboards so zu ändern, dass falsche Daten angezeigt werden, oder böswillige Aktivitäten zu verbergen. ```bash aws cloudwatch delete-dashboards --dashboard-names aws cloudwatch put-dashboard --dashboard-name --dashboard-body ``` **Potenzielle Auswirkungen**: Verlust der Überwachungsansicht und irreführende Informationen. ### **`cloudwatch:DeleteInsightRules`, `cloudwatch:PutInsightRule`, `cloudwatch:PutManagedInsightRule`** Insight-Regeln werden verwendet, um Anomalien zu erkennen, die Leistung zu optimieren und Ressourcen effektiv zu verwalten. Durch das Löschen vorhandener Insight-Regeln könnte ein Angreifer kritische Überwachungsfähigkeiten entfernen, wodurch das System blind für Leistungsprobleme und Sicherheitsbedrohungen wird. Darüber hinaus könnte ein Angreifer Insight-Regeln erstellen oder ändern, um irreführende Daten zu generieren oder böswillige Aktivitäten zu verbergen, was zu falschen Diagnosen und unangemessenen Reaktionen des Betriebsteams führen würde. ```bash aws cloudwatch delete-insight-rules --rule-names aws cloudwatch put-insight-rule --rule-name --rule-definition [--rule-state ] aws cloudwatch put-managed-insight-rules --managed-rules ``` **Potenzielle Auswirkungen**: Schwierigkeiten bei der Erkennung und Reaktion auf Leistungsprobleme und Anomalien, fehlerhafte Entscheidungsfindung und möglicherweise das Verbergen bösartiger Aktivitäten oder Systemausfälle. ### **`cloudwatch:DisableInsightRules`, `cloudwatch:EnableInsightRules`** Durch das Deaktivieren kritischer Einsichtregeln könnte ein Angreifer die Organisation effektiv blind für wichtige Leistungs- und Sicherheitsmetriken machen. Umgekehrt könnte es durch das Aktivieren oder Konfigurieren irreführender Regeln möglich sein, falsche Daten zu erzeugen, Lärm zu erzeugen oder bösartige Aktivitäten zu verbergen. ```bash aws cloudwatch disable-insight-rules --rule-names aws cloudwatch enable-insight-rules --rule-names ``` **Potenzielle Auswirkungen**: Verwirrung im Operationsteam, was zu verzögerten Reaktionen auf tatsächliche Probleme und unnötigen Maßnahmen aufgrund falscher Alarme führt. ### **`cloudwatch:DeleteMetricStream` , `cloudwatch:PutMetricStream` , `cloudwatch:PutMetricData`** Ein Angreifer mit den Berechtigungen **`cloudwatch:DeleteMetricStream`** , **`cloudwatch:PutMetricStream`** wäre in der Lage, Metrikdatenströme zu erstellen und zu löschen, was die Sicherheit, Überwachung und Datenintegrität gefährdet: - **Bösartige Streams erstellen**: Metrikstreams erstellen, um sensible Daten an unbefugte Ziele zu senden. - **Ressourcenmanipulation**: Die Erstellung neuer Metrikstreams mit übermäßigen Daten könnte viel Lärm erzeugen, was zu falschen Alarmen führt und wahre Probleme maskiert. - **Überwachungsstörung**: Durch das Löschen von Metrikstreams würden Angreifer den kontinuierlichen Fluss von Überwachungsdaten stören. Auf diese Weise wären ihre bösartigen Aktivitäten effektiv verborgen. Ähnlich wäre es mit der Berechtigung **`cloudwatch:PutMetricData`** möglich, Daten zu einem Metrikstream hinzuzufügen. Dies könnte zu einem DoS führen, aufgrund der Menge an unzulässigen Daten, die hinzugefügt werden, wodurch es völlig nutzlos wird. ```bash aws cloudwatch delete-metric-stream --name aws cloudwatch put-metric-stream --name [--include-filters ] [--exclude-filters ] --firehose-arn --role-arn --output-format aws cloudwatch put-metric-data --namespace [--metric-data ] [--metric-name ] [--timestamp ] [--unit ] [--value ] [--dimensions ] ``` Beispiel für das Hinzufügen von Daten, die 70% der CPU-Auslastung über eine gegebene EC2-Instanz entsprechen: ```bash aws cloudwatch put-metric-data --namespace "AWS/EC2" --metric-name "CPUUtilization" --value 70 --unit "Percent" --dimensions "InstanceId=i-0123456789abcdefg" ``` **Potenzielle Auswirkungen**: Störung des Flusses von Überwachungsdaten, die die Erkennung von Anomalien und Vorfällen, die Manipulation von Ressourcen und die Kostensteigerung aufgrund der Erstellung übermäßiger Metrikströme beeinträchtigt. ### **`cloudwatch:StopMetricStreams`, `cloudwatch:StartMetricStreams`** Ein Angreifer würde den Fluss der betroffenen Metrikdatenströme kontrollieren (jeder Datenstrom, wenn es keine Ressourcenbeschränkung gibt). Mit der Berechtigung **`cloudwatch:StopMetricStreams`** könnten Angreifer ihre bösartigen Aktivitäten verbergen, indem sie kritische Metrikströme stoppen. ```bash aws cloudwatch stop-metric-streams --names aws cloudwatch start-metric-streams --names ``` **Potenzielle Auswirkungen**: Störung des Flusses von Überwachungsdaten, die die Erkennung von Anomalien und Vorfällen beeinträchtigt. ### **`cloudwatch:TagResource`, `cloudwatch:UntagResource`** Ein Angreifer könnte in der Lage sein, Tags von CloudWatch-Ressourcen (derzeit nur Alarme und Contributor Insights-Regeln) hinzuzufügen, zu ändern oder zu entfernen. Dies könnte die Zugriffssteuerungsrichtlinien Ihrer Organisation, die auf Tags basieren, stören. ```bash aws cloudwatch tag-resource --resource-arn --tags aws cloudwatch untag-resource --resource-arn --tag-keys ``` **Potenzielle Auswirkungen**: Störung der tag-basierten Zugriffskontrollrichtlinien. ## Referenzen - [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}}