CloudTrail Insights i integralność plików dziennika
Włączać CloudTrail Insights w celu wykrywania nietypowej aktywności API oraz używać plików skrótów do weryfikowania integralności plików dziennika na potrzeby analiz kryminalistycznych.
CloudTrail Insights i integralność plików dziennika to bezpłatna lekcja AWS Solutions Architect na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AWS Solutions Architect, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AWS Solutions Architect zawiera 4 lekcji w sumie.
Czym jest CloudTrail Insights?
CloudTrail Insights to opcjonalna funkcja wykorzystująca uczenie maszynowe do automatycznego wykrywania nietypowej aktywności API na koncie AWS. Ustala ona punkt odniesienia dla normalnej liczby wywołań API i liczby zapisujących zdarzeń zarządzania dla każdego API, a następnie wysyła alert, gdy aktywność znacznie odbiega od tego punktu odniesienia. Zdarzenia Insights są dostarczane do tego samego zasobnika S3 co dzienniki ścieżki i mogą także uruchamiać reguły EventBridge w celu automatycznej reakcji.
Włączanie CloudTrail Insights
CloudTrail Insights włącza się dla każdej ścieżki osobno. Można wybrać wykrywanie anomalii częstotliwości wywołań API (nietypowej liczby zapisujących zdarzeń zarządzania na sekundę) lub anomalii częstotliwości błędów API (nietypowej liczby błędów odmowy dostępu lub ograniczenia przepustowości). Insights wymaga aktywnej ścieżki z włączonymi zdarzeniami zarządzania. AWS pobiera opłaty za zdarzenia Insights niezależnie od standardowych opłat za zdarzenia ścieżki. Insights potrzebuje od 24 do 36 godzin na ustalenie początkowego punktu odniesienia, zanim zacznie wykrywać anomalie.
# Enable CloudTrail Insights for API call rate and error rate anomalies
aws cloudtrail put-insight-selectors \
--trail-name OrgAuditTrail \
--insight-selectors \
InsightType=ApiCallRateInsight \
InsightType=ApiErrorRateInsight
# Verify insights configuration
aws cloudtrail get-insight-selectors \
--trail-name OrgAuditTrailZrozumienie zdarzeń Insights
Zdarzenie Insights składa się ze zdarzenia początkowego i zdarzenia końcowego. Zdarzenie początkowe jest generowane, gdy zaczyna się anomalia — na przykład przy nietypowym wzroście liczby wywołań TerminateInstances — a zdarzenie końcowe jest generowane, gdy częstotliwość wywołań API wraca do normy. Każde zdarzenie Insights zawiera informacje o użytym API, normalnej częstotliwości bazowej, zaobserwowanej częstotliwości szczytowej i czasie trwania. Pomaga to ustalić, czy anomalia była długotrwałym atakiem, czy krótkim wzrostem aktywności.
# Search for Insights events in the last 30 days
aws cloudtrail lookup-events \
--lookup-attributes AttributeKey=EventCategory,AttributeValue=insight \
--start-time $(date -u -d '30 days ago' +%Y-%m-%dT%H:%M:%SZ) \
--query 'Events[].{Time:EventTime,Name:EventName,Source:EventSource}' \
--output tableCo Insights wykrywa w praktyce
Typowe anomalie oznaczane przez CloudTrail Insights to: przejęcie danych uwierzytelniających, gdy atakujący używa skradzionych kluczy do szybkiego wyliczenia wszystkich zasobników S3, nieprawidłowo skonfigurowany skrypt wdrożeniowy, który wykonuje pętlę i tysiące razy wywołuje API EC2, zagrożenie wewnętrzne polegające na usuwaniu zasobów szybciej niż zwykle, lub atak na łańcuch dostaw, w ramach którego funkcja Lambda nagle wykonuje nietypowe wywołania STS. Insights zapewnia krótszy czas wykrycia niż ręczne przeglądanie dzienników CloudTrail.
Integracja z EventBridge na potrzeby automatycznej reakcji
Zdarzenia CloudTrail Insights są automatycznie dostarczane do Amazon EventBridge, co umożliwia automatyczną reakcję. Można utworzyć regułę EventBridge uruchamiającą funkcję Lambda po wykryciu zdarzenia Insights — na przykład w celu wysłania wiadomości Slack, utworzenia zgłoszenia w Jira, a nawet automatycznego unieważnienia kluczy dostępu użytkownika IAM, jeśli anomalia odpowiada znanemu wzorcowi ataku. Tworzy to działający w czasie rzeczywistym potok automatyzacji zabezpieczeń oparty na ustaleniach Insights.
# EventBridge rule to trigger Lambda when a CloudTrail Insights event fires
aws events put-rule \
--name CloudTrailInsightsAlert \
--event-pattern '{
"source": ["aws.cloudtrail"],
"detail-type": ["AWS Insight via CloudTrail"]
}' \
--state ENABLED
# Add Lambda as the target
aws events put-targets \
--rule CloudTrailInsightsAlert \
--targets Id=LambdaTarget,Arn=arn:aws:lambda:us-east-1:111122223333:function:SecurityResponderWeryfikacja integralności plików dziennika
Weryfikacja integralności plików dziennika gwarantuje, że pliki dziennika CloudTrail nie zostały zmodyfikowane, usunięte ani sfałszowane po dostarczeniu do S3. Po włączeniu tej funkcji (za pomocą --enable-log-file-validation) CloudTrail co godzinę tworzy plik skrótów zawierający skróty SHA-256 wszystkich plików dziennika dostarczonych w tej godzinie oraz skrót poprzedniego pliku skrótów. Sam plik skrótów jest podpisywany kluczem prywatnym CloudTrail. Dzienniki można weryfikować za pomocą polecenia validate-logs interfejsu AWS CLI.
# Enable log file validation when creating or updating a trail
aws cloudtrail update-trail \
--name OrgAuditTrail \
--enable-log-file-validation
# Validate log file integrity for a specific time range
aws cloudtrail validate-logs \
--trail-arn arn:aws:cloudtrail:us-east-1:111122223333:trail/OrgAuditTrail \
--start-time 2024-01-01T00:00:00Z \
--end-time 2024-01-02T00:00:00Z \
--verboseJak działają pliki skrótów
Co godzinę CloudTrail dostarcza do S3 plik skrótów w ścieżce oddzielnej od plików dziennika (s3://bucket/CloudTrail-Digest/...). Plik skrótów zawiera skrót SHA-256 każdego pliku dziennika dostarczonego w ciągu ostatniej godziny, identyfikator URI S3 każdego pliku oraz skrót poprzedniego pliku skrótów (tworząc łańcuch skrótów). Jeśli atakujący zmodyfikuje plik dziennika po jego dostarczeniu, skrót w pliku skrótów przestanie się zgadzać — weryfikacja zakończy się niepowodzeniem i wskaże pliki, przy których wykryto manipulację.
# View the structure of a CloudTrail digest file (JSON)
# {
# "digestStartTime": "2024-01-01T00:00:00Z",
# "digestEndTime": "2024-01-01T01:00:00Z",
# "logFiles": [
# {
# "s3Bucket": "my-cloudtrail-logs",
# "s3Object": "AWSLogs/.../CloudTrail/.../2024/01/01/file.json.gz",
# "hashValue": "sha256:abc123...",
# "hashAlgorithm": "SHA-256"
# }
# ],
# "previousDigestHashValue": "sha256:xyz789..."
# }Ochrona śladu audytowego przed manipulacją
Integralność plików dziennika jest użyteczna tylko wtedy, gdy chronione są także same pliki skrótów i pliki dziennika. Najlepsze praktyki obejmują: włączenie S3 MFA Delete w zasobniku CloudTrail, aby plików nie można było usuwać bez MFA, zastosowanie zasad zasobnika zabraniających usuwania, aby uniemożliwić dowolnemu podmiotowi usuwanie obiektów, włączenie S3 Object Lock (tryb Compliance) w celu zapewnienia niezmiennego przechowywania dzienników oraz użycie ścieżki organizacji, aby konta członkowskie nie mogły wyłączyć rejestrowania. Te mechanizmy wspólnie sprawiają, że osobie mającej dostęp wewnętrzny niezwykle trudno jest usunąć dowody audytowe.
# Deny-delete policy on the CloudTrail S3 bucket
# {
# "Sid": "DenyDeleteCloudTrailLogs",
# "Effect": "Deny",
# "Principal": {"AWS": "*"},
# "Action": [
# "s3:DeleteObject",
# "s3:DeleteObjectVersion"
# ],
# "Resource": "arn:aws:s3:::my-cloudtrail-logs-111122223333/*"
# }Insights a GuardDuty: uzupełniające się usługi
CloudTrail Insights i Amazon GuardDuty uzupełniają się, a nie dublują. Insights koncentruje się na anomaliach liczby wywołań API — nagłych wzrostach liczby określonych wywołań zarządzających API. GuardDuty analizuje szerszy zestaw źródeł danych, w tym zdarzenia CloudTrail, VPC Flow Logs i dzienniki DNS, aby wykrywać wzorce zagrożeń, takie jak przejęte dane uwierzytelniające, wydobywanie kryptowalut, eksfiltracja danych i znane złośliwe adresy IP. W ramach obrony warstwowej należy włączyć obie usługi — Insights do wykrywania anomalii opartych na liczbie wywołań, a GuardDuty do wykrywania zagrożeń na podstawie informacji o zagrożeniach.
Wyświetlanie Insights w konsoli CloudTrail
W konsoli CloudTrail karta Insights zawiera listę wszystkich wykrytych anomalii wraz z godzinami rozpoczęcia i zakończenia, nazwą API oraz wykresem porównującym częstotliwość bazową z zaobserwowaną częstotliwością podczas anomalii. Kliknięcie zdarzenia Insights prowadzi bezpośrednio do powiązanych zdarzeń zarządzania w Event History dla tego samego przedziału czasu, co pomaga powiązać „wystąpiła anomalia” z „oto konkretne wywołania API, które ją spowodowały”. Ta możliwość szczegółowej analizy sprawia, że Insights można skutecznie wykorzystywać w praktyce.
Przypadki użycia związane ze zgodnością
Weryfikacja integralności plików dziennika jest wymagana przez wiele standardów zgodności: PCI-DSS wymaga dowodu, że dzienniki audytowe nie zostały zmienione; HIPAA nakazuje stosowanie odpornych na manipulacje mechanizmów kontroli audytowej dla danych medycznych; SOC 2 wymaga mechanizmów kontroli integralności dzienników zabezpieczeń. Połączenie weryfikacji plików dziennika CloudTrail, S3 Object Lock i ścieżek organizacji spełnia te wymagania i jest często przywoływane w dokumentacji zgodności AWS. Gdy pytanie egzaminacyjne wspomina o „udowodnieniu, że dzienniki nie zostały zmanipulowane”, odpowiedzią jest weryfikacja integralności plików dziennika.
Szybkie sprawdzenie
Sprawdź swoją znajomość zagadnień AWS Solutions Architect (SAA-C03) z tej lekcji.
Podsumowanie lekcji
W tej lekcji poznali Państwo: CloudTrail Insights wykorzystuje uczenie maszynowe do wykrywania nietypowych anomalii częstotliwości wywołań API i błędów, używając zdarzeń początkowych i końcowych, weryfikacja integralności plików dziennika wykorzystuje pliki skrótów SHA-256 połączone w łańcuch skrótów do wykrywania manipulacji plikami dziennika lub ich usunięcia, a S3 Object Lock w połączeniu z zasadami zabraniającymi usuwania chroni integralność śladu audytowego. Następnie omówimy reguły AWS Config i automatyczne korygowanie niezgodności.
Często zadawane pytania
Czy lekcja „CloudTrail Insights i integralność plików dziennika” jest bezpłatna?
Tak — pełny tekst „CloudTrail Insights i integralność plików dziennika” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AWS Solutions Architect, przejdź na CoddyKit PRO. Kurs AWS Solutions Architect zawiera 4 lekcji w sumie.
Co nauczysz się w „CloudTrail Insights i integralność plików dziennika”?
Włączać CloudTrail Insights w celu wykrywania nietypowej aktywności API oraz używać plików skrótów do weryfikowania integralności plików dziennika na potrzeby analiz kryminalistycznych. Ćwiczysz AWS Solutions Architect z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć AWS Solutions Architect?
Nie wymagamy żadnego doświadczenia. AWS Solutions Architect w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „CloudTrail Insights i integralność plików dziennika”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji AWS Solutions Architect?
Tak. Każda lekcja AWS Solutions Architect zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Ścieżki CloudTrail i historia zdarzeń
- CloudTrail Insights i integralność plików dziennika
- Reguły AWS Config i remediacja
- Pakiety zgodności i ścieżki organizacji