
Automatisierte Angriffssimulation in der Cloud, inklusive Erkennungs-Anwendungsfällen.
Dies ist das Repository, das Leonidas enthält, ein Framework zur Ausführung von Angreiferaktionen in der Cloud. Es bietet ein YAML-basiertes Format zur Definition von cloudbasierten Angreifertaktiken, -techniken und -verfahren (TTPs) und deren zugehörigen Erkennungseigenschaften. Diese Definitionen können dann kompiliert werden in:
Das Projekt wurde ursprünglich für den Einsatz in AWS-Umgebungen entwickelt, mit der folgenden Architektur:

Im Jahr 2024 wurde Leonidas um Unterstützung für Kubernetes-Umgebungen erweitert. Seine Ressourcen können innerhalb des Zielclusters bereitgestellt werden, entsprechend der folgenden Architektur:

Die API wird über eine AWS-native CI/CD-Pipeline in ein AWS-Konto und über automatisch generierte YAML-Manifeste in einen Kubernetes-Cluster bereitgestellt. Anleitungen für beide Umgebungen finden Sie unter Bereitstellen von Leonidas.
Die API wird über Webanfragen aufgerufen, die durch einen API-Schlüssel gesichert sind. Details zur Nutzung der API finden Sie unter Leonidas verwenden.
Um Dokumentation oder Sigma-Regeln zu erstellen, müssen Sie den Generator lokal installieren. Dies können Sie wie folgt tun:
cd generatorpoetry installSigma-Regeln können wie folgt generiert werden:
poetry run ./generator.py sigmaDie Regeln erscheinen dann in ./output/sigma.
Die Dokumentation wird wie folgt generiert:
poetry run ./generator.py docsDies erzeugt Markdown-Versionen der Dokumentation, die unter output/docs verfügbar sind. Diese können in ein bestehendes markdown-basiertes Dokumentationssystem hochgeladen werden, oder es kann Folgendes verwendet werden, um eine hübsch formatierte HTML-Version der Dokumentation zu erstellen:
cd ../outputmkdocs buildDies erstellt einen output/site-Ordner mit der HTML-Seite. Es ist auch möglich, diese lokal anzuzeigen, indem Sie im selben Ordner mkdocs serve ausführen.
Die Definitionen sind in einem YAML-basierten Format geschrieben, für das unten ein Beispiel gegeben ist. Die Dokumentation zum Schreiben dieser Definitionen finden Sie unter Definitionen schreiben.
---
name: Enumerate Cloudtrails for a Given Region
author: Nick Jones
description: |
An adversary may attempt to enumerate the configured trails, to identify what actions will be logged and where they will be logged to. In AWS, this may start with a single call to enumerate the trails applicable to the default region.
category: Discovery
mitre_ids:
- T1526
platform: aws
permissions:
- cloudtrail:DescribeTrails
input_arguments:
executors:
sh:
code: |
aws cloudtrail describe-trails
leonidas_aws:
implemented: True
clients:
- cloudtrail
code: |
result = clients["cloudtrail"].describe_trails()
detection:
sigma_id: 48653a63-085a-4a3b-88be-9680e9adb449
status: experimental
level: low
sources:
- name: "cloudtrail"
attributes:
eventName: "DescribeTrails"
eventSource: "*.cloudtrail.amazonaws.com"
Projekt erstellt und gepflegt von Nick Jones ( NJonesUK / @nojonesuk ).
Kubernetes-Unterstützung hinzugefügt von Leo Tsaousis ( @laripping ).
Besonderer Dank gilt auch Mohit Gupta ( @Skybound1 ) für seinen unschätzbaren Beitrag.
Dieses Projekt hat Ideen und Inspiration aus einer Reihe von Quellen geschöpft, darunter: