Skip to content

Dieses Tool steht in keiner Verbindung zu Amazon Web Services, Inc. oder Amazon.com, Inc. und wird von diesen weder unterstützt noch gesponsert. AWS, Amazon Web Services, CloudTrail und GuardDuty sind Marken von Amazon.com, Inc. oder seinen verbundenen Unternehmen. Andere Namen sind Marken ihrer jeweiligen Inhaber.

AWS Incident Response: vom geleakten Key zum Krypto-Mining

Ein fiktiver AWS-Vorfall, aus den Logs rekonstruiert: geleakter Key, Erkundung, Backdoor-Admin, GuardDuty gelöscht, 320 S3-Objekte, GPU-Mining in Singapur.

Veröffentlicht am 6 Min. Lesezeit

Fiktives Szenario. Alles in diesem Beitrag – das Unternehmen, die Personen, das Konto 111122223333, die Schlüssel, der Bucket – ist erfunden. Die IP-Adressen stammen aus den Dokumentationsbereichen nach RFC 5737. Es handelt sich um die Daten hinter der Schaltfläche Beispiel ausprobieren im Analyzer, sodass Sie jeden Schritt nachvollziehen können.

Kurzfassung. Am fiktiven 14. September 2026 wird der Access Key des Entwicklers dev-marco von einem VPS aus verwendet, auf dem Kali Linux läuft. Innerhalb von 48 Minuten prüft der Angreifer den Schlüssel, erkundet das Konto, legt einen Administrator-Benutzer backup-admin mit eigenem Schlüssel und Konsolenpasswort an, löscht GuardDuty in zwei Regionen, lädt 320 Objekte aus acme-customer-exports herunter und startet acht GPU-Instanzen in ap-southeast-1, die für einen Pool minen. Die Logs zeigen all das. Die Bewertung lautet Anzeichen einer Kompromittierung, und die Liste der Bereinigungsschritte muss zwei Schlüssel, einen Benutzer, eine Richtlinie, zwei Detektoren, acht Instanzen und eine Prüfung der Meldepflichten abdecken.

Die Belege

Das Beispiel-ZIP bildet echte Exporte nach:

QuelleInhalt
CloudTrail-Trail (S3-Struktur, json.gz, dazu eine Digest-Datei)449 Ereignisse vom 10. bis 14. September, darunter 325 S3-Datenereignisse
VPC Flow Logs (Auslieferung nach S3, mit Kopfzeile)2.335 Datensätze, eu-west-1 und ap-southeast-1
S3-Server-Zugriffsprotokolle324 Zeilen für acme-customer-exports
Ausgabe von GuardDuty get-findings2 Befunde, exportiert, bevor die Detektoren gelöscht wurden
IAM-Credential-Report4 Einträge, nach dem Vorfall erzeugt

Vier ruhige Tage (10. bis 13. September) liefern die Baseline: ops-julia meldet sich mit MFA von der Büroadresse 198.51.100.24 an der Konsole an; dev-marco nutzt die CLI mit seinem langfristigen Schlüssel von derselben Adresse; eine ECS-Task-Rolle wird täglich übernommen.

Zeitleiste (UTC, 14. September 2026)

UhrzeitEreignisPrincipalBefund
09:02:11sts:GetCallerIdentity von 203.0.113.77, User-Agent enthält kalidev-marco (AKIA3EXAMPLEMARCO123)Key von neuer IP verwendet (hoch), offensive Tools (hoch), GetCallerIdentity (niedrig)
09:03–09:0748 List-/Describe-/Get-Aufrufe über IAM, S3, EC2, Lambda, RDS, KMS, Organizations …, davon 14 mit AccessDenieddev-marcoHäufung von API-Enumerationen (mittel), Häufung von AccessDenied-Fehlern (mittel)
09:07GuardDuty: Discovery:IAMUser/AnomalousBehavior, PenTest:IAMUser/KaliLinux—GuardDuty-Befund ×2 (mittel)
09:08:40iam:CreateUser backup-admindev-marcoIAM-Benutzer erstellt (niedrig)
09:08:52AttachUserPolicy AdministratorAccess → backup-admindev-marcoAdministratorrichtlinie angehängt (hoch)
09:09:05CreateAccessKey für backup-admin → AKIA3EXAMPLEBKUP4567dev-marcoKey für einen anderen Benutzer erstellt (hoch)
09:09:20CreateLoginProfile für backup-admin, ohne erzwungenes Zurücksetzendev-marcoKonsolenpasswort gesetzt (mittel)
09:12:12 / 09:12:43guardduty:DeleteDetector in us-east-1 und eu-west-1 (Boto3)backup-adminGuardDuty deaktiviert ×2 (hoch)
09:15:00–09:36:02ListObjects, dann 320 GetObject auf acme-customer-exportsbackup-adminMassen-Download aus S3 – Datenereignisse (hoch) und Zugriffsprotokolle (hoch)
09:41:10CreateKeyPair ops-maint in ap-southeast-1backup-adminSchlüsselpaar erstellt (niedrig)
09:42:05Sicherheitsgruppe für 0.0.0.0/0 auf Port 22 geöffnetbackup-adminSicherheitsgruppe geöffnet (mittel)
09:43:10Kontingenterhöhung für „Running On-Demand P instances“backup-adminKontingenterhöhung (mittel)
09:44:10 / 09:46:10RunInstances 4× p3.8xlarge, 4× g4dn.12xlargebackup-adminGPU-Instanzen (hoch), neue Region (mittel)
09:50:31ConsoleLogin backup-admin, MFAUsed: No, Firefox unter Linuxbackup-adminKonsolenanmeldung ohne MFA (mittel)
09:52 → 12:018 Schnittstellen halten Verbindungen zu 192.0.2.150 auf den Ports 3333 und 14444—Mining-Pool-Ports (hoch), 1.040 Datensätze

Der Credential-Report ergänzt einen Befund zur Sicherheitslage: backup-admin hat ein Konsolenpasswort, aber kein MFA.

Wie die Untersuchung verläuft

1. Die Bewertung. Dreiundzwanzig Befunde, mehrere davon mit hohem Schweregrad und mit Signalen auf Angreiferseite (Zugriffsanomalie, Umgehung von Abwehrmaßnahmen, Exfiltration, Auswirkung): Die Bewertung lautet „Anzeichen einer Kompromittierung“. Als Hauptgründe werden der offensive User-Agent, der von einer neuen IP verwendete Schlüssel, die Administratorrichtlinie, der für einen anderen Benutzer erstellte Schlüssel und die beiden GuardDuty-Löschungen aufgeführt.

2. Der Einstiegspunkt. Pivotieren Sie im Tab „Entitäten“ auf AKIA3EXAMPLEMARCO123: vier Tage lang 198.51.100.24 mit einer macOS-CLI, dann ab 09:02 203.0.113.77 mit einer Kali-Build-Kennung. Der allererste Aufruf von der neuen Adresse ist GetCallerIdentity – der Lehrbuch-Auftakt bei einem geleakten Access Key. Wie der Schlüssel geleakt ist (laut Szenario über ein öffentliches Repository), liegt außerhalb der AWS-Logs.

3. Der zweite Schlüssel. Pivotieren Sie auf 203.0.113.77: Neben dem Schlüssel von dev-marco hat diese Adresse AKIA3EXAMPLEBKUP4567 verwendet, den um 09:09:05 für backup-admin erzeugten Schlüssel. Ab 09:12 nutzt der Angreifer den geleakten Schlüssel nie wieder. Nur den Schlüssel von dev-marco zu deaktivieren, hätte nichts geändert. Das ist das Muster der IAM-Persistenz in seiner einfachsten Form.

4. Umgehung von Abwehrmaßnahmen. Beide Detektoren werden innerhalb einer Minute gelöscht, drei Minuten nachdem die Backdoor existiert. CloudTrail selbst bleibt aktiv – kein StopLogging –, weshalb der Rest der Geschichte sichtbar ist. Die GuardDuty-Befunde überleben nur, weil sie zuvor exportiert worden waren; siehe den Beitrag zur Umgehung von Abwehrmaßnahmen.

5. Die Daten. 320 GetObject in 21 Minuten, von einem Principal auf einem Bucket, doppelt belegt: in den CloudTrail-Datenereignissen und in den Server-Zugriffsprotokollen. Die Objektschlüssel (exports/2026/customers/customers-0001.csv.gz bis -0320) bilden das Inventar für die Meldung. Beachten Sie, dass die VPC Flow Logs hier nichts zeigen: Der Download lief über das Internet von S3 zum Host des Angreifers und nie durch die VPC – genau die Grenze, die im Beitrag über Belege für S3-Datenexfiltration beschrieben ist.

6. Die Kosten. Eine Region ohne Aktivität während der Baseline, eine Kontingenterhöhung, ein Schlüsselpaar, SSH offen für die ganze Welt und acht GPU-Instanzen; ab 09:52 sprechen deren Schnittstellen jede Minute mit einer einzigen Adresse auf Pool-Ports. Der Beitrag zu Krypto-Mining behandelt diese Phase.

7. Die Konsolensitzung. Um 09:50 meldet sich der Angreifer ohne MFA als backup-admin an. Alles, was ab dann in der Konsole geschieht, würde mit sessionCredentialFromConsole erscheinen; in diesem Datensatz endet die Geschichte mit dieser Sitzung.

Die daraus erzeugte Liste der Bereinigungsschritte

Eindämmung zuerst, mit den Werten aus den Logs:

  1. Deaktivieren Sie AKIA3EXAMPLEMARCO123 und AKIA3EXAMPLEBKUP4567; ersetzen Sie den Schlüssel von dev-marco und entfernen Sie ihn aus dem Repository.
  2. Sichern und löschen Sie anschließend backup-admin (Richtlinie, Schlüssel, Login-Profil).
  3. Lösen Sie AdministratorAccess von backup-admin und prüfen Sie, wer diese Richtlinie sonst noch hat.
  4. Blockieren Sie API-Aufrufe von 203.0.113.77, solange die Untersuchung läuft.
  5. Erstellen Sie einen Snapshot einer Instanz, beenden Sie die acht Instanzen in ap-southeast-1 und prüfen Sie jede andere Region; löschen Sie das Schlüsselpaar ops-maint und die offene Sicherheitsgruppe; ziehen Sie die Kontingentanfrage L-417A185B zurück.
  6. Aktivieren Sie GuardDuty in us-east-1 und eu-west-1 wieder (idealerweise überall).
  7. Behandeln Sie acme-customer-exports als exfiltriert: Listen Sie die 320 Objekte auf und prüfen Sie die Meldepflichten.
  8. Eröffnen Sie einen Fall beim AWS Support wegen der unbefugten Nutzung.

Was dieses Beispiel nicht zeigt

Echte Vorfälle sind unordentlicher: laute CI-Rollen, mehrere Angreifer-IPs, Role Chaining, Aktivität verteilt über Wochen und Logs, die genau dort fehlen, wo Sie sie brauchen. Das Beispiel ist bewusst sauber gehalten, damit die Methode sichtbar wird. Lesen Sie den Beitrag über die Grenzen einer rein logbasierten Untersuchung, bevor Sie echte Daten mit derselben Gewissheit bewerten, und folgen Sie für den Ablauf der Schritt-für-Schritt-Anleitung zur CloudTrail-Log-Analyse.

Verwandte Artikel

GPU-Instanzen, explodierende Rechnung, eine ungenutzte Region: Krypto-Mining in AWS per CloudTrail und Flow Logs bestätigen, eindämmen, Einstiegspunkt finden.
S3-Datendiebstahl belegen oder ausschließen: CloudTrail-Datenereignisse, S3-Server-Zugriffsprotokolle, öffentliche Bucket-Richtlinien, geteilte Snapshots.
Ein AWS Access Key ist geleakt: deaktivieren und dann in CloudTrail klären, wo er genutzt wurde, was er auflistete, was er anlegte, welche Daten er erreichte.

Dieses Tool steht in keiner Verbindung zu Amazon Web Services, Inc. oder Amazon.com, Inc. und wird von diesen weder unterstützt noch gesponsert. AWS, Amazon Web Services, CloudTrail und GuardDuty sind Marken von Amazon.com, Inc. oder seinen verbundenen Unternehmen. Andere Namen sind Marken ihrer jeweiligen Inhaber.