AWS - CloudWatch Enum
CloudWatch
CloudWatch sammelt Überwachungs- und Betriebsdaten in Form von Protokollen/Metriken/Ereignissen und bietet eine einheitliche Ansicht der AWS-Ressourcen, Anwendungen und Dienste. CloudWatch-Protokollereignisse haben eine Größenbeschränkung von 256 KB pro Protokollzeile. Es können Hochauflösungsalarme festgelegt, Protokolle und Metriken nebeneinander visualisiert, automatisierte Aktionen durchgeführt, Probleme behoben und Erkenntnisse zur Optimierung von Anwendungen gewonnen werden.
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 an der AWS Management Console
API-Aufrufe, die zu fehlgeschlagener Autorisierung geführt haben
Filter zum Suchen in CloudWatch: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html
Schlüsselkonzepte
Namensräume
Ein Namespace ist ein Container für CloudWatch-Metriken. Er hilft dabei, Metriken zu kategorisieren und zu isolieren, was das Verwalten und Analysieren erleichtert.
Beispiele: AWS/EC2 für EC2-bezogene Metriken, AWS/RDS für RDS-Metriken.
Metriken
Metriken sind im Laufe der Zeit gesammelte Datenpunkte, die die Leistung oder Auslastung von AWS-Ressourcen darstellen. Metriken können von AWS-Diensten, benutzerdefinierten Anwendungen oder Integrationen von Drittanbietern gesammelt werden.
Beispiel: CPU-Auslastung, Netzwerkeingang, Festplatten-Lesevorgänge.
Dimensionen
Dimensionen sind Schlüssel-Wert-Paare, die Teil von Metriken sind. Sie helfen dabei, eine Metrik eindeutig zu identifizieren und zusätzlichen Kontext bereitzustellen. Es können bis zu 30 Dimensionen mit einer Metrik verknüpft werden. Dimensionen ermöglichen es auch, Metriken basierend auf spezifischen Attributen zu filtern und zu aggregieren.
Beispiel: Für EC2-Instanzen könnten Dimensionen InstanceId, InstanceType und AvailabilityZone umfassen.
Statistiken
Statistiken sind mathematische Berechnungen, die an Metrikdaten durchgeführt werden, um sie im Laufe der Zeit zusammenzufassen. Häufige Statistiken umfassen Durchschnitt, Summe, Minimum, Maximum und Stichprobenanzahl.
Beispiel: Berechnung der durchschnittlichen CPU-Auslastung über einen Zeitraum von einer Stunde.
Einheiten
Einheiten sind der mit einer Metrik verbundene Messungstyp. Einheiten helfen dabei, Kontext und Bedeutung für die Metrikdaten bereitzustellen. Häufige Einheiten sind Prozent, Bytes, Sekunden, Anzahl.
Beispiel: CPU-Auslastung könnte in Prozent gemessen werden, während Netzwerkeingang 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.
Hauptfunktionen:
Widgets: Bausteine von Dashboards, einschließlich Diagrammen, Text, Alarmen und mehr.
Anpassung: Layout und Inhalt können angepasst werden, um spezifische Überwachungsanforderungen zu erfüllen.
Beispiel-Anwendungsfall:
Ein einzelnes Dashboard, das wichtige Metriken für Ihre gesamte AWS-Umgebung anzeigt, einschließlich EC2-Instanzen, RDS-Datenbanken und S3-Buckets.
Metrik-Stream und Metrikdaten
Metrik-Streams in AWS CloudWatch ermöglichen es Ihnen, kontinuierlich CloudWatch-Metriken in Echtzeit an ein Ziel Ihrer Wahl zu streamen. Dies ist besonders nützlich für erweiterte Überwachung, Analytik und benutzerdefinierte Dashboards unter Verwendung von Tools außerhalb von AWS.
Metrikdaten in Metrik-Streams beziehen sich auf die tatsächlichen Messungen oder Datenpunkte, die gestreamt werden. Diese Datenpunkte repräsentieren verschiedene Metriken wie CPU-Auslastung, Speicherauslastung usw. für AWS-Ressourcen.
Beispiel-Anwendungsfall:
Senden von Echtzeitmetriken an einen Überwachungsdienst eines Drittanbieters für eine fortgeschrittene Analyse.
Archivierung von Metriken in einem Amazon S3-Bucket für Langzeit-Speicherung und Compliance.
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, wie z.B. Benachrichtigungen über SNS senden, eine automatische Skalierungsrichtlinie auslösen oder eine AWS Lambda-Funktion ausführen.
Hauptkomponenten:
Schwellenwert: Der Wert, bei dem der Alarm ausgelöst wird.
Auswertungszeiträume: Die Anzahl der Zeiträume, über die Daten ausgewertet 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 senden).
Beispiel-Anwendungsfall:
Überwachung der CPU-Auslastung einer EC2-Instanz 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 festzulegen, wie normales Verhalten aussieht.
Anomalieerkennungsband: Eine visuelle Darstellung des erwarteten Wertebereichs für eine Metrik.
Beispiel-Anwendungsfall:
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, Spitzen oder andere interessante Muster in Ihren Metrikdaten zu identifizieren, indem Sie leistungsstarke mathematische Ausdrücke verwenden, um die Bedingungen festzulegen, unter denen Aktionen ausgeführt werden sollen. Diese Regeln können Ihnen helfen, Anomalien oder ungewöhnliches Verhalten in der Leistung und Auslastung Ihrer Ressourcen zu identifizieren.
Verwaltete Insight-Regeln sind vorab konfigurierte Insight-Regeln, die von AWS bereitgestellt werden. Sie sind darauf ausgelegt, spezifische AWS-Dienste oder häufige Anwendungsfälle zu überwachen und können ohne detaillierte Konfiguration aktiviert werden.
Beispiel-Anwendungsfall:
Überwachung der RDS-Performance: Aktivieren einer verwalteten Insight-Regel für Amazon RDS, die wichtige Leistungsindikatoren wie CPU-Auslastung, Speicherauslastung und Festplatten-I/O überwacht. Wenn einer dieser Metriken sicheren Betriebsgrenzen überschreitet, kann die Regel einen Alarm auslösen oder eine automatisierte Maßnahme ergreifen.
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:
Protokollgruppe | Eine Sammlung von Protokollströmen, die dieselben Aufbewahrungs-, Überwachungs- und Zugriffskontrolleinstellungen teilen |
Protokollstrom | Eine Sequenz von Protokollereignissen, die dieselbe Quelle teilen |
Abonnementfilter | Definieren eines Filtermusters, das Ereignisse in einer bestimmten Protokollgruppe übereinstimmt, senden sie an einen Kinesis Data Firehose-Stream, Kinesis-Stream oder eine Lambda-Funktion |
### CloudWatch Überwachung & Ereignisse |
CloudWatch basic aggregiert Daten alle 5 Minuten (die detaillierte Version macht das alle 1 Minute). Nach der Aggregation überprüft es die Schwellenwerte der Alarme, falls einer ausgelöst werden muss. In diesem Fall kann CloudWatch so konfiguriert werden, dass es ein Ereignis sendet und automatische Aktionen ausführt (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 fügen Sie sie dem Instanz hinzu, mit Berechtigungen, die es CloudWatch ermöglichen, Daten von den Instanzen zu sammeln, zusätzlich zur Interaktion mit dem AWS-System-Manager SSM (CloudWatchAgentAdminPolicy & AmazonEC2RoleforSSM)
Herunterladen und installieren Sie den Agenten auf der EC2-Instanz (https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip). Sie können ihn von innerhalb der EC2 herunterladen oder ihn automatisch mit AWS System 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 sind die Ereignisse garantiert in der richtigen Reihenfolge.
Post-Exploitation / Umgehung
cloudwatch:DeleteAlarms
,cloudwatch:PutMetricAlarm
, cloudwatch:PutCompositeAlarm
cloudwatch:DeleteAlarms
,cloudwatch:PutMetricAlarm
, cloudwatch:PutCompositeAlarm
Ein Angreifer mit diesen Berechtigungen könnte die Überwachungs- und Alarminfrastruktur einer Organisation erheblich untergraben. Durch das Löschen bestehender Alarme könnte ein Angreifer wichtige Benachrichtigungen deaktivieren, die Administratoren über kritische Leistungsprobleme, Sicherheitsverletzungen oder Betriebsausfälle informieren. Darüber hinaus könnte der Angreifer durch das Erstellen oder Ändern von Metrikalarmen auch Administratoren mit falschen Alarmen täuschen oder legitime Alarme zum Schweigen bringen, um bösartige Aktivitäten zu verschleiern und zeitnahe Reaktionen auf tatsächliche Vorfälle zu verhindern.
Darüber hinaus könnte ein Angreifer mit der Berechtigung cloudwatch:PutCompositeAlarm
eine Schleife oder einen Zyklus von Verbundalarmen erstellen, bei dem Verbundalarm A von Verbundalarm B abhängt und Verbundalarm B auch von Verbundalarm A abhängt. In diesem Szenario ist es nicht möglich, einen Verbundalarm zu löschen, der Teil des Zyklus ist, da immer noch ein Verbundalarm vorhanden ist, der von dem Alarm abhängt, den Sie löschen möchten.
Die folgende Beispiel zeigt, wie man einen Metrik-Alarm unwirksam macht:
Dieser Metrik-Alarm überwacht die durchschnittliche CPU-Auslastung einer bestimmten EC2-Instanz, bewertet die Metrik alle 300 Sekunden und erfordert 6 Auswertungszeiträume (insgesamt 30 Minuten). Wenn die durchschnittliche CPU-Auslastung für mindestens 4 dieser Zeiträume über 60% liegt, wird der Alarm ausgelöst und eine Benachrichtigung an das angegebene SNS-Thema gesendet.
Durch Ändern des Schwellenwerts auf mehr als 99%, Einstellen des Zeitraums auf 10 Sekunden, der Auswertungszeiträume auf 8640 (da 8640 Zeiträume von 10 Sekunden einem Tag entsprechen) und der Datenpunkte für den Alarm ebenfalls auf 8640, müsste die CPU-Auslastung während des gesamten 24-Stunden-Zeitraums alle 10 Sekunden über 99% liegen, um einen Alarm auszulösen.
Potenzielle Auswirkungen: Fehlende Benachrichtigungen über kritische Ereignisse, potenziell unentdeckte Probleme, falsche Alarme unterdrücken und möglicherweise echte Vorfälle übersehen.
cloudwatch:DeleteAlarmActions
, cloudwatch:EnableAlarmActions
, cloudwatch:SetAlarmState
cloudwatch:DeleteAlarmActions
, cloudwatch:EnableAlarmActions
, cloudwatch:SetAlarmState
Durch das Löschen von Alarmaktionen könnte der Angreifer verhindern, dass kritische Warnungen und automatisierte Reaktionen ausgelöst werden, wenn ein Alarmpunkt erreicht wird, z. B. Benachrichtigung von Administratoren oder Auslösen von automatischen Skalierungsaktivitäten. Das unangemessene Aktivieren oder Wiederaktivieren von Alarmaktionen könnte auch zu unerwartetem Verhalten führen, entweder durch Reaktivierung zuvor deaktivierter Aktionen oder durch Änderung der ausgelösten Aktionen, was potenziell Verwirrung und Fehlleitung in der Vorfallreaktion verursachen könnte.
Darüber hinaus könnte ein Angreifer mit den entsprechenden Berechtigungen Alarmzustände manipulieren, um falsche Alarme zu erzeugen, um Administratoren abzulenken und zu verwirren, oder echte Alarme zum Schweigen zu bringen, um laufende bösartige Aktivitäten oder kritische Systemausfälle zu verbergen.
Wenn Sie
SetAlarmState
bei einem Verbundalarm verwenden, ist nicht garantiert, dass der Verbundalarm zu seinem tatsächlichen Zustand zurückkehrt. Er kehrt nur zu seinem tatsächlichen Zustand zurück, sobald einer seiner Kinderalarme den Zustand ändert. Er wird auch neu bewertet, wenn Sie seine Konfiguration aktualisieren.
Potenzielle Auswirkungen: Fehlende Benachrichtigungen über kritische Ereignisse, potenziell unentdeckte Probleme, falsche Alarme, echte Alarme unterdrücken und potenziell verpasste Erkennung von echten Vorfällen.
cloudwatch:DeleteAnomalyDetector
, cloudwatch:PutAnomalyDetector
cloudwatch:DeleteAnomalyDetector
, cloudwatch:PutAnomalyDetector
Ein Angreifer könnte die Fähigkeit zur Erkennung und Reaktion auf ungewöhnliche Muster oder Anomalien in Metrikdaten kompromittieren. Durch Löschen vorhandener Anomalieerkennungen könnte ein Angreifer kritische Alarmmechanismen deaktivieren; und durch Erstellen oder Modifizieren von ihnen könnte entweder eine falsche Konfiguration vorgenommen oder falsche Positivmeldungen erstellt werden, um das Monitoring abzulenken oder zu überlasten.
Das folgende Beispiel zeigt, wie man einen Metrikanomalie-Detektor unwirksam macht. Dieser Metrikanomalie-Detektor überwacht die durchschnittliche CPU-Auslastung einer bestimmten EC2-Instanz, und allein durch das Hinzufügen des Parameters "ExcludedTimeRanges" mit dem gewünschten Zeitraum wäre es ausreichend, um sicherzustellen, dass der Anomalie-Detektor keine relevanten Daten während dieses Zeitraums analysiert oder Alarme auslöst.
Potenzielle Auswirkungen: Direkte Auswirkung auf die Erkennung ungewöhnlicher Muster oder Sicherheitsbedrohungen.
cloudwatch:DeleteDashboards
, cloudwatch:PutDashboard
cloudwatch:DeleteDashboards
, cloudwatch:PutDashboard
Ein Angreifer könnte die Überwachungs- und Visualisierungsfähigkeiten einer Organisation kompromittieren, indem er deren Dashboards erstellt, modifiziert oder löscht. Diese Berechtigungen könnten genutzt werden, um die kritische Sichtbarkeit in die Leistung und Gesundheit von Systemen zu entfernen, Dashboards zu ändern, um falsche Daten anzuzeigen oder bösartige Aktivitäten zu verbergen.
Potenzielle Auswirkungen: Verlust der Überwachungssichtbarkeit und irreführende Informationen.
cloudwatch:DeleteInsightRules
, cloudwatch:PutInsightRule
,cloudwatch:PutManagedInsightRule
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 bestehender Insight-Regeln könnte ein Angreifer kritische Überwachungsfunktionen entfernen, sodass 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ösartige Aktivitäten zu verbergen, was zu falschen Diagnosen und unangemessenen Reaktionen des Betriebsteams führen könnte.
Potenzielle Auswirkungen: Schwierigkeiten bei der Erkennung und Reaktion auf Leistungsprobleme und Anomalien, fehlerhafte Entscheidungsfindung und möglicherweise das Verbergen von bösartigen Aktivitäten oder Systemausfällen.
cloudwatch:DisableInsightRules
, cloudwatch:EnableInsightRules
cloudwatch:DisableInsightRules
, cloudwatch:EnableInsightRules
Durch Deaktivieren kritischer Einsichtsregeln könnte ein Angreifer die Organisation effektiv blind für wichtige Leistungs- und Sicherheitsmetriken machen. Umgekehrt könnte es durch Aktivieren oder Konfigurieren irreführender Regeln möglich sein, falsche Daten zu generieren, Lärm zu erzeugen oder bösartige Aktivitäten zu verbergen.
Potenzielle Auswirkungen: Verwirrung im Betriebsteam, was zu verzögerten Reaktionen auf tatsächliche Probleme und unnötigen Aktionen aufgrund falscher Alarme führen kann.
cloudwatch:DeleteMetricStream
, cloudwatch:PutMetricStream
, cloudwatch:PutMetricData
cloudwatch:DeleteMetricStream
, cloudwatch:PutMetricStream
, cloudwatch:PutMetricData
Ein Angreifer mit den Berechtigungen cloudwatch:DeleteMetricStream
, cloudwatch:PutMetricStream
könnte Metrikdatenströme erstellen und löschen, was die Sicherheit, Überwachung und Datenintegrität gefährden würde:
Erstellen von bösartigen Strömen: Erstellen von Metrikdatenströmen, um sensible Daten an nicht autorisierte Ziele zu senden.
Ressourcenmanipulation: Das Erstellen neuer Metrikdatenströme mit übermäßigen Daten könnte viel Lärm verursachen, falsche Alarme auslösen und echte Probleme maskieren.
Überwachungsstörung: Durch Löschen von Metrikdatenströmen würden Angreifer den kontinuierlichen Datenfluss der Überwachung unterbrechen. Auf diese Weise könnten ihre bösartigen Aktivitäten effektiv verborgen werden.
Ebenso wäre es mit der Berechtigung cloudwatch:PutMetricData
möglich, Daten zu einem Metrikdatenstrom hinzuzufügen. Dies könnte zu einem DoS führen, aufgrund der Menge an falschen Daten, die hinzugefügt werden, was den Datenstrom vollständig nutzlos machen würde.
Beispiel für das Hinzufügen von Daten, die einer CPU-Auslastung von 70% über einer bestimmten EC2-Instanz entsprechen:
Potenzielle Auswirkungen: Störung des Datenüberwachungsflusses, Beeinträchtigung der Erkennung von Anomalien und Vorfällen, Ressourcenmanipulation und Kostensteigerung aufgrund der Erstellung übermäßiger Metrikstreams.
cloudwatch:StopMetricStreams
, cloudwatch:StartMetricStreams
cloudwatch:StopMetricStreams
, cloudwatch:StartMetricStreams
Ein Angreifer könnte den Fluss der betroffenen Metrikdatenströme kontrollieren (jeden Datenstrom, wenn keine Ressourcenbeschränkung vorliegt). Mit der Berechtigung cloudwatch:StopMetricStreams
könnten Angreifer ihre bösartigen Aktivitäten verbergen, indem sie kritische Metrikstreams stoppen.
Potenzielle Auswirkungen: Störung des Datenüberwachungsflusses, was sich auf die Erkennung von Anomalien und Vorfällen auswirken könnte.
cloudwatch:TagResource
, cloudwatch:UntagResource
cloudwatch:TagResource
, cloudwatch:UntagResource
Ein Angreifer könnte Tags zu CloudWatch-Ressourcen hinzufügen, ändern oder entfernen (derzeit nur Alarme und Contributor Insights-Regeln). Dies könnte die Zugriffskontrollrichtlinien Ihrer Organisation stören, die auf Tags basieren.
Potenzielle Auswirkungen: Störung von zugriffsbasierten Richtlinien zur Tag-Steuerung.
Referenzen
Last updated