AWS - CloudWatch Enum
CloudWatch
CloudWatch zbiera dane monitorujące i operacyjne w postaci logów/metryk/wydarzeń, zapewniając spójny widok zasobów AWS, aplikacji i usług. Wydarzenia dziennika CloudWatch mają limit wielkości 256 KB na każdą linię dziennika. Można ustawić alarmy o wysokiej rozdzielczości, wizualizować logi i metryki obok siebie, podejmować działania automatyczne, rozwiązywać problemy i odkrywać wskazówki do optymalizacji aplikacji.
Można monitorować na przykład logi z CloudTrail. Wydarzenia, które są monitorowane:
Zmiany w grupach zabezpieczeń i NACL
Uruchamianie, zatrzymywanie, restartowanie i usuwanie instancji EC2
Zmiany w politykach zabezpieczeń w IAM i S3
Nieudane próby logowania do Konsoli Zarządzania AWS
Wywołania interfejsu API, które skutkowały nieudaną autoryzacją
Filtry do wyszukiwania w CloudWatch: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html
Kluczowe pojęcia
Przestrzenie nazw
Przestrzeń nazw to kontener na metryki CloudWatch. Pomaga kategoryzować i izolować metryki, ułatwiając ich zarządzanie i analizę.
Przykłady: AWS/EC2 dla metryk związanych z EC2, AWS/RDS dla metryk RDS.
Metryki
Metryki to punkty danych zbierane w czasie, które reprezentują wydajność lub wykorzystanie zasobów AWS. Metryki mogą być zbierane z usług AWS, aplikacji niestandardowych lub integracji z firm trzecich.
Przykład: CPUUtilization, NetworkIn, DiskReadOps.
Wymiary
Wymiary to pary klucz-wartość, które są częścią metryk. Pomagają one jednoznacznie zidentyfikować metrykę i dostarczyć dodatkowego kontekstu, przy czym 30 to maksymalna liczba wymiarów, które można powiązać z metryką. Wymiary pozwalają również filtrować i agregować metryki na podstawie określonych atrybutów.
Przykład: Dla instancji EC2 wymiary mogą obejmować InstanceId, InstanceType i AvailabilityZone.
Statystyki
Statystyki to obliczenia matematyczne wykonywane na danych metrycznych w celu ich podsumowania w czasie. Powszechne statystyki obejmują Średnią, Sumę, Minimum, Maksimum i Liczbę próbek.
Przykład: Obliczanie średniego zużycia CPU w okresie jednej godziny.
Jednostki
Jednostki to rodzaj pomiaru powiązany z metryką. Jednostki pomagają dostarczyć kontekst i znaczenie danych metrycznych. Powszechne jednostki obejmują Procent, Bajty, Sekundy, Liczbę.
Przykład: CPUUtilization może być mierzone w procentach, podczas gdy NetworkIn może być mierzone w bajtach.
Funkcje CloudWatch
Panel
Panele CloudWatch zapewniają dostosowane widoki metryk AWS CloudWatch. Możliwe jest tworzenie i konfigurowanie paneli, aby wizualizować dane i monitorować zasoby w jednym widoku, łącząc różne metryki z różnych usług AWS.
Główne funkcje:
Widgety: Bloki konstrukcyjne paneli, w tym wykresy, tekst, alarmy i inne.
Dostosowanie: Układ i zawartość mogą być dostosowane do konkretnych potrzeb monitorowania.
Przykładowe zastosowanie:
Jeden panel pokazujący kluczowe metryki dla całego środowiska AWS, w tym instancje EC2, bazy danych RDS i kubełki S3.
Strumień metryk i dane metryk
Strumienie metryk w AWS CloudWatch umożliwiają ciągłe przesyłanie metryk CloudWatch do docelowego miejsca według własnego wyboru w czasie rzeczywistym. Jest to szczególnie przydatne do zaawansowanego monitorowania, analizy i niestandardowych paneli za pomocą narzędzi spoza AWS.
Dane metryk wewnątrz Strumieni metryk odnoszą się do rzeczywistych pomiarów lub punktów danych, które są przesyłane. Te punkty danych reprezentują różne metryki, takie jak zużycie CPU, użycie pamięci, itp., dla zasobów AWS.
Przykładowe zastosowanie:
Wysyłanie metryk w czasie rzeczywistym do usługi monitorowania firm trzecich w celu zaawansowanej analizy.
Archiwizowanie metryk w kubełku Amazon S3 w celu długoterminowego przechowywania i zgodności.
Alarm
Alarmy CloudWatch monitorują twoje metryki i podejmują działania na podstawie zdefiniowanych progów. Gdy metryka przekroczy próg, alarm może wykonać jedno lub więcej działań, takich jak wysyłanie powiadomień za pomocą SNS, uruchamianie polityki automatycznego skalowania lub uruchamianie funkcji AWS Lambda.
Główne składniki:
Próg: Wartość, przy której alarm się wyzwala.
Okresy oceny: Liczba okresów, w których dane są oceniane.
Punkty danych do alarmu: Liczba okresów z osiągniętym progiem potrzebna do wyzwolenia alarmu.
Działania: Co się dzieje, gdy stan alarmu jest wyzwalany (np. powiadomienie za pomocą SNS).
Przykładowe zastosowanie:
Monitorowanie zużycia CPU instancji EC2 i wysyłanie powiadomienia za pomocą SNS, jeśli przekroczy 80% przez 5 kolejnych minut.
Detektory anomalii
Detektory anomalii wykorzystują uczenie maszynowe do automatycznego wykrywania anomalii w twoich metrykach. Możesz zastosować detekcję anomalii do dowolnej metryki CloudWatch, aby zidentyfikować odstępstwa od normalnych wzorców, które mogą wskazywać na problemy.
Główne składniki:
Trenowanie modelu: CloudWatch używa danych historycznych do trenowania modelu i ustalenia, jak wygląda normalne zachowanie.
Pasmo detekcji anomalii: Wizualna reprezentacja zakresu wartości oczekiwanych dla metryki.
Przykładowe zastosowanie:
Wykrywanie nietypowych wzorców zużycia CPU w instancji EC2, które mogą wskazywać na naruszenie bezpieczeństwa lub problem z aplikacją.
Zasady Insight i zarządzane zasady Insight
Zasady Insight pozwalają identyfikować trendy, wykrywać szpilki lub inne interesujące wzorce w danych metrycznych za pomocą potężnych wyrażeń matematycznych, aby zdefiniować warunki, w których należy podjąć działania. Te zasady mogą pomóc zidentyfikować anomalie lub nietypowe zachowania w wydajności i wykorzystaniu zasobów.
Zarządzane zasady Insight to prekonfigurowane zasady Insight dostarczane przez AWS. Zostały zaprojektowane do monitorowania określonych usług AWS lub powszechnych przypadków użycia i mogą być włączone bez konieczności szczegółowej konfiguracji.
Przykładowe zastosowanie:
Monitorowanie wydajności RDS: Włącz zarządzoną zasadę Insight dla Amazon RDS, która monitoruje kluczowe wskaźniki wydajności, takie jak zużycie CPU, użycie pamięci i operacje wejścia/wyjścia dysku. Jeśli którykolwiek z tych wskaźników przekroczy bezpieczne progi operacyjne, zasada może wywołać alert lub zautomatyzowane działanie naprawcze.
Logi CloudWatch
Pozwala na agregowanie i monitorowanie logów z aplikacji i systemów z usług AWS (w tym CloudTrail) i z aplikacji/systemów (Agent CloudWatch może być zainstalowany na hoście). Logi mogą być przechowywane czas nieokreślony (w zależności od ustawień grupy dzienników) i mogą być eksportowane.
Elementy:
Grupa dzienników | Zbiór strumieni dzienników, które mają te same ustawienia retencji, monitorowania i kontroli dostępu |
Strumień dzienników | Sekwencja wydarzeń dziennika, które mają ten sam źródło |
Filtry subskrypcji | Definiują wzorzec filtru, który pasuje do wydarzeń w określonej grupie dzienników, wysyłają je do strumienia Kinesis Data Firehose, strumienia Kinesis lub funkcji Lambda |
### Monitorowanie i zdarzenia CloudWatch |
CloudWatch podstawowy agreguje dane co 5 minut (ten szczegółowy robi to co 1 minutę). Po agregacji sprawdza progi alarmów, w przypadku konieczności ich uruchomienia. W takim przypadku CloudWatch może być przygotowany do wysłania zdarzenia i wykonania automatycznych akcji (funkcje AWS Lambda, tematy SNS, kolejki SQS, strumienie Kinesis)
Instalacja agenta
Możesz zainstalować agenty wewnątrz swoich maszyn/kontenerów, aby automatycznie wysyłać dzienniki z powrotem do CloudWatch.
Utwórz rolę i dołącz ją do instancji z uprawnieniami umożliwiającymi CloudWatch zbieranie danych z instancji oraz interakcję z menedżerem systemów AWS SSM (CloudWatchAgentAdminPolicy & AmazonEC2RoleforSSM)
Pobierz i zainstaluj agenta na instancji EC2 (https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip). Możesz pobrać go z wewnątrz EC2 lub zainstalować automatycznie za pomocą AWS System Manager, wybierając pakiet AWS-ConfigureAWSPackage
Skonfiguruj i uruchom agenta CloudWatch
Grupa dzienników ma wiele strumieni. Strumień ma wiele zdarzeń. Wewnątrz każdego strumienia zdarzenia są gwarantowane w kolejności.
Wyliczenie
Post-Eksploatacja / Ominięcie
cloudwatch:DeleteAlarms
,cloudwatch:PutMetricAlarm
, cloudwatch:PutCompositeAlarm
cloudwatch:DeleteAlarms
,cloudwatch:PutMetricAlarm
, cloudwatch:PutCompositeAlarm
Atakujący posiadający te uprawnienia mógłby znacząco osłabić monitorowanie i infrastrukturę alarmową organizacji. Poprzez usuwanie istniejących alarmów, atakujący mógłby wyłączyć istotne alerty informujące administratorów o krytycznych problemach wydajności, naruszeniach bezpieczeństwa lub awariach operacyjnych. Ponadto, poprzez tworzenie lub modyfikowanie alarmów metryk, atakujący mógłby wprowadzić w błąd administratorów fałszywymi alarmami lub wyciszyć prawidłowe alerty, efektywnie maskując złośliwe działania i uniemożliwiając szybką reakcję na rzeczywiste incydenty.
Dodatkowo, dzięki uprawnieniom cloudwatch:PutCompositeAlarm
, atakujący byłby w stanie stworzyć pętlę lub cykl alarmów złożonych, gdzie alarm złożony A zależy od alarmu złożonego B, a alarm złożony B również zależy od alarmu złożonego A. W tym scenariuszu nie jest możliwe usunięcie żadnego alarmu złożonego będącego częścią cyklu, ponieważ zawsze istnieje alarm złożony, który zależy od tego alarmu, który chcesz usunąć.
Poniższy przykład pokazuje, jak uczynić alarm metryczny nieskutecznym:
Ten alarm metryczny monitoruje średnie wykorzystanie CPU określonej instancji EC2, ocenia metrykę co 300 sekund i wymaga 6 okresów oceny (łącznie 30 minut). Jeśli średnie wykorzystanie CPU przekroczy 60% przez co najmniej 4 z tych okresów, alarm zostanie uruchomiony i wyśle powiadomienie do określonego tematu SNS.
Zmieniając Próg na wartość większą niż 99%, ustawiając Okres na 10 sekund, Liczbę okresów oceny na 8640 (ponieważ 8640 okresów po 10 sekund równa się 1 dniu), a także Liczbę punktów danych do alarmu na 8640, konieczne byłoby, aby wykorzystanie CPU przekraczało 99% co 10 sekund przez cały 24-godzinny okres, aby uruchomić alarm.
Potencjalne skutki: Brak powiadomień o istotnych zdarzeniach, potencjalne niewykryte problemy, fałszywe alarmy, wyciszenie prawdziwych alarmów i potencjalne pominięcie wykrycia rzeczywistych incydentów.
cloudwatch:DeleteAlarmActions
, cloudwatch:EnableAlarmActions
, cloudwatch:SetAlarmState
cloudwatch:DeleteAlarmActions
, cloudwatch:EnableAlarmActions
, cloudwatch:SetAlarmState
Poprzez usunięcie działań alarmowych, atakujący może zapobiec wywołaniu krytycznych alarmów i automatycznych reakcji, gdy stan alarmowy zostanie osiągnięty, takich jak powiadamianie administratorów lub uruchamianie działań automatycznego skalowania. Włączenie lub ponowne włączenie działań alarmowych w niewłaściwy sposób może również prowadzić do nieoczekiwanych zachowań, zarówno poprzez ponowne aktywowanie wcześniej wyłączonych działań, jak i poprzez modyfikację wywoływanych działań, co potencjalnie może powodować zamieszanie i błędne kierowanie w odpowiedzi na incydent.
Ponadto atakujący posiadający uprawnienia może manipulować stanami alarmowymi, tworząc fałszywe alarmy, aby rozproszyć i zdezorientować administratorów, lub wyciszyć prawdziwe alarmy, aby ukryć trwające działania złośliwe lub krytyczne awarie systemu.
Jeśli użyjesz
SetAlarmState
na alarmie złożonym, alarm złożony nie jest gwarantowany, że wróci do swojego rzeczywistego stanu. Wraca do swojego rzeczywistego stanu tylko wtedy, gdy którykolwiek z jego alarmów potomnych zmieni stan. Jest również ponownie oceniany, jeśli zaktualizujesz jego konfigurację.
Potencjalny wpływ: Brak powiadomień o istotnych zdarzeniach, potencjalne niewykryte problemy, fałszywe alarmy, tłumienie prawdziwych alarmów i potencjalnie pominięcie wykrycia rzeczywistych incydentów.
cloudwatch:DeleteAnomalyDetector
, cloudwatch:PutAnomalyDetector
cloudwatch:DeleteAnomalyDetector
, cloudwatch:PutAnomalyDetector
Atakujący byłby w stanie naruszyć zdolność do wykrywania i reagowania na nietypowe wzorce lub anomalie w danych metrycznych. Poprzez usuwanie istniejących detektorów anomalii, atakujący mógłby wyłączyć krytyczne mechanizmy alarmowania; a poprzez tworzenie lub modyfikowanie ich, byłby w stanie albo źle skonfigurować, albo tworzyć fałszywe pozytywy w celu rozproszenia lub przytłoczenia monitoringu.
Poniższy przykład pokazuje, jak sprawić, aby detektor anomalii metryk był nieskuteczny. Ten detektor anomalii metryk monitoruje średnie wykorzystanie procesora przez określoną instancję EC2, i wystarczy dodać parametr „ExcludedTimeRanges” z pożądanym zakresem czasowym, aby zapewnić, że detektor anomalii nie analizuje ani nie alarmuje o żadnych istotnych danych w tym okresie.
Potencjalne skutki: Bezpośredni wpływ na wykrywanie nietypowych wzorców lub zagrożeń bezpieczeństwa.
cloudwatch:DeleteDashboards
, cloudwatch:PutDashboard
cloudwatch:DeleteDashboards
, cloudwatch:PutDashboard
Atakujący mógłby naruszyć zdolności monitorowania i wizualizacji organizacji poprzez tworzenie, modyfikowanie lub usuwanie jej pulpitów nawigacyjnych. Te uprawnienia mogą być wykorzystane do usunięcia kluczowej widoczności wydajności i stanu zdrowia systemów, zmiany pulpitów nawigacyjnych w celu wyświetlania nieprawidłowych danych lub ukrywania złośliwych działań.
Potencjalny wpływ: Utrata widoczności monitorowania i wprowadzanie w błąd.
cloudwatch:DeleteInsightRules
, cloudwatch:PutInsightRule
,cloudwatch:PutManagedInsightRule
cloudwatch:DeleteInsightRules
, cloudwatch:PutInsightRule
,cloudwatch:PutManagedInsightRule
Zasady Insight są używane do wykrywania anomalii, optymalizacji wydajności i efektywnego zarządzania zasobami. Poprzez usunięcie istniejących zasad Insight, atakujący mógłby usunąć krytyczne zdolności monitorowania, pozostawiając system ślepy na problemy wydajnościowe i zagrożenia bezpieczeństwa. Dodatkowo, atakujący mógłby tworzyć lub modyfikować zasady Insight w celu generowania mylących danych lub ukrywania złośliwych działań, co prowadziłoby do nieprawidłowych diagnoz i nieodpowiednich reakcji ze strony zespołu operacyjnego.
Potencjalny wpływ: Trudność w wykrywaniu i reagowaniu na problemy wydajnościowe i anomalie, podejmowanie decyzji na podstawie błędnych informacji oraz potencjalne ukrywanie złośliwych działań lub awarii systemu.
cloudwatch:DisableInsightRules
, cloudwatch:EnableInsightRules
cloudwatch:DisableInsightRules
, cloudwatch:EnableInsightRules
Poprzez wyłączenie krytycznych reguł Insight, atakujący mógłby skutecznie oślepić organizację w zakresie kluczowych metryk dotyczących wydajności i bezpieczeństwa. W przeciwnym razie, poprzez włączenie lub konfigurowanie mylących reguł, możliwe byłoby generowanie fałszywych danych, tworzenie szumu lub ukrywanie złośliwej aktywności.
Potencjalne skutki: Dezorientacja wśród zespołu operacyjnego, prowadząca do opóźnionych reakcji na rzeczywiste problemy i niepotrzebnych działań opartych na fałszywych alertach.
cloudwatch:DeleteMetricStream
, cloudwatch:PutMetricStream
, cloudwatch:PutMetricData
cloudwatch:DeleteMetricStream
, cloudwatch:PutMetricStream
, cloudwatch:PutMetricData
Atakujący posiadający uprawnienia cloudwatch:DeleteMetricStream
, cloudwatch:PutMetricStream
mógłby tworzyć i usuwać strumienie danych metrycznych, naruszając bezpieczeństwo, monitorowanie i integralność danych:
Tworzenie złośliwych strumieni: Tworzenie strumieni metrycznych do przesyłania poufnych danych do nieautoryzowanych miejsc docelowych.
Manipulacja zasobami: Tworzenie nowych strumieni metrycznych z nadmiernymi danymi mogłoby generować dużo szumu, powodując błędne alerty, maskując prawdziwe problemy.
Zakłócenie monitoringu: Usuwając strumienie metryczne, atakujący zakłóciliby ciągły przepływ danych monitorujących. W ten sposób ich złośliwe działania zostałyby skutecznie ukryte.
Podobnie, posiadając uprawnienia cloudwatch:PutMetricData
, możliwe byłoby dodawanie danych do strumienia metrycznego. Mogłoby to prowadzić do ataku typu DoS ze względu na ilość nieprawidłowych danych dodanych, sprawiając, że byłby całkowicie bezużyteczny.
Przykład dodawania danych odpowiadających 70% wykorzystania CPU dla określonej instancji EC2:
Potencjalny wpływ: Zakłócenie przepływu danych monitorujących, wpływające na wykrywanie anomalii i incydentów, manipulację zasobami oraz wzrost kosztów związany z tworzeniem nadmiernych strumieni metryk.
cloudwatch:StopMetricStreams
, cloudwatch:StartMetricStreams
cloudwatch:StopMetricStreams
, cloudwatch:StartMetricStreams
Atakujący mógłby kontrolować przepływ dotkniętych strumieni danych metrycznych (każdy strumień danych, jeśli nie ma ograniczenia zasobów). Dzięki uprawnieniom cloudwatch:StopMetricStreams
, atakujący mogliby ukryć swoje złośliwe działania poprzez zatrzymywanie krytycznych strumieni metryk.
Potencjalny wpływ: Zakłócenie przepływu danych monitorujących, wpływające na wykrywanie anomalii i incydentów.
cloudwatch:TagResource
, cloudwatch:UntagResource
cloudwatch:TagResource
, cloudwatch:UntagResource
Atakujący mógłby dodać, zmodyfikować lub usunąć tagi z zasobów CloudWatch (obecnie tylko alarmów i reguł Contributor Insights). Może to zakłócić polityki kontroli dostępu organizacji oparte na tagach.
Potencjalny wpływ: Zakłócenie polityk kontroli dostępu opartych na tagach.
Odnośniki
Last updated