ein flexibles open-source Angriffs- und Simulations-Framework

Aktuelles

Die Bedrohungsanalyse wird sowohl bei der Anwendungsentwicklung als auch bei der Systemanalyse immer häufiger eingesetzt. Die meisten Ansätze zur Bedrohungsmodellierung sind jedoch nach wie vor stark manuell geprägt. Das heißt, Sie müssen herausfinden, wie das zu analysierende System aussieht und welche Arten von Bedrohungen abgewehrt werden müssen. Für kleinere, in der Entwicklung befindliche Anwendungen kann dies eine praktikabler Weg sein, aber für größere Systeme skaliert sie nicht.

Um ein Modell eines bestehenden Systems zu erstellen, empfiehlt es sich, dies auf der Grundlage verfügbarer Datenquellen zu tun, z.B. Netzwerk- und Schwachstellen-Scans, Firewall-Regeln und Bestandaufnahmen von Anlagen. Auf diese Weise erhalten Sie ein genaues Modell, dass das gesamte System so widerspiegelt, wie es tatsächlich implementiert ist, und nicht die Traumvorstellung des Modellierers davon. Und Sie können Ihr Modell kontinuierlich auf dem neuen Stand halten.

Mit diesem neuen, genauen Modell Ihres Systems ist es nun an der Zeit, herauszufinden, ob es sicher ist oder nicht. Und wenn Sie feststellen, dass es viele Schwachstellen gibt, die von Angreifern ausgenutzt werden können, müssen Sie entscheiden, was die beste Abhilfestrategie ist. Hierfür hat sich die Community der Bedrohungsmodellierer auf Sicherheitsexperten verlassen. Parallel wurden Angriffsgraphen entwickelt, um Simulationen durchzuführen, die diese Art von Frage beantworten. Die Herausforderung bei den Angriffsgraphen war ebenfalls die Erstellung der Graphen im Modell. Da die Systeme groß und komplex sind, wird auch der Graph groß und komplex. Es ist also schwierig, zeitaufwändig und fehleranfällig, einen solchen zu erstellen, und das Ergebnis ist nicht sehr vertrauenswürdig.

Die daraus entstandene Idee ist, die Bedrohungsmodelle mit Angriffssimulation zu kombinieren. Hierfür wurde die Meta Attack Language (MAL) [1] entwickelt. Dies ist ein Open-Source-Framework [2], mit dem man domänenspezifische Modellierungs-Sprachen (DSL) erstellen kann. Mit MAL beschreiben Sie, für welche Assets Sie sich interessieren, z.B. Computer, Netzwerk, Software, welchen Angriffen diese Assets ausgesetzt sein könnten und welche Verteidigungsmaßnahmen diese Angriffe abschwächen könnten. Mit MAL haben Sie die volle Freiheit, Ihre eigene Sprache zur Bedrohungsmodellierung und Angriffssimulation zu erstellen. Der Cloud dabei ist, wenn Sie Ihre Assets beschreiben, z.B. Ihr MacBook Air mit macOS Big Sur v.11.2.3, erhalten Sie auch einen zugrundeliegenden Angriffs- und Verteidigungsgraphen dafür. Wenn Sie Ihr Bedrohungsmodell haben (Assets und wie diese miteinander verbunden sind), können Sie automatisch eine Simulation laufen lassen, die genau gezeigt, wo Ihre Schwachstellen sind, und auch Vorschläge machen, welche Abhilfemaßnahmen hinzugefügt werden könnten, um die Risiken zu verringern.

Im Folgenden wird ein kleines Beispiel für MAL-Code vorgestellt, das auf Techniken und Verbesserungen der MITRE Enterprise ATT&CK Matrix basiert, die aus einem Forschungspapier [3] entnommen wurde.

In diesem Beispiel sehen wir zwei Kategorien von Assets, Konten und Software. Wir haben UserAccounts und AdminAccounts, wobei WindowsAdmin vom generalAdminAccount erbt. Für die Software-Kategorie gibt es Windows und Services, und für jedes Asset sind Angriffsschritte definiert. Wenn ein Angreifer z.B. Benutzerrechte auf einem UserAccount erhält, könnte dies zu einem UserAccessTokenManipulation-Angriff auf einem Windows-Rechner führen. Den Assets können auch Verteidigungsmaßnahmen zugeordnet sein. Für den UserRights-Angriff besteht eine mögliche Verteidigung darin, über ein korrektes UserAccountManagement zu verfügen. Die Verknüpfungen zwischen den Assets werden ebenfalls definiert, z.B. führt ein Windows-Rechner mehrere Dienste aus.

category Account {
        asset UserAccount {
        | userRights
                -> windows.userAccessTokenManipulation
        # userAccountManagement
                -> windows.userAccessTokenManipulation
}
asset AdminAccount {
        | adminRights
        # privilegedAccountManagement
}
asset WindowsAdmin extends AdminAccount {
        | adminRights
                +> windows.adminAccessTokenManipulation
        # privilegedAccountManagement
                +> windows.adminAccessTokenManipulation
        }
}
category Software {
        asset Windows {
                & userAccessTokenManipulation
                info: "Adversaries may use access tokens to operate           under a different user or system security context to perform actions and evade detection."                       -> service.exploitationForPrivilegeEscalation
                & adminAccessTokenManipulation
                       -> service.exploitationForPrivilegeEscalation
}
        asset Service {
                | exploitationForPrivilegeEscalation
        }
}
associations {UserAccount [userAccount] * <--Accesses--> 1 [windows] WindowsAdminAccount [adminAccount] * <--Accesses--> 1 [windows] WindowsWindows [windows] 1 <--Runs--> * [service] Service}

Jede MAL-basierte DSL kann mit dem securiCAD-Tool von foreseeti [4] ausgeführt werden. Dadurch erhalten Sie erweitere Funktionen, z.B. Graphen-Darstellungen, Mehrbenutzer-Umgebungen, APIs für den Datenimport, Matriken und Berichte. Foreseeti hat DSLs und Produkte, die auf MAL basieren. Darunter befinden sich unter anderem DLSs für AWS (securiCAD vanguard) [5], Azure [6], und On-Prem-IT [7]. Es gibt auch DSLs für Fahrzeugsysteme [8] und Energiesysteme [9]. Wenn Sie diese nicht von der Stange verwenden möchten, können Sie sie entweder an Ihre Bedürfnisse anpassen oder von Grund auf selbst erstellen. Die meisten DSLs sind Open-Source und können über das MAL GitHub Repository erreicht werden. Stellen Sie sich ein Tool vor, mit dem Sie mit einem Klick eine Cybersicherheitsanalyse Ihrer gesamten Infrastruktur erhalten. Ganz so weit sind wir noch nicht. Aber mit MAL sind wir nicht mehr allzu viele Klicks davon entfernt, dies zu realisieren.

[1] MAL
https://doi.org/10.1145/3230833.3232799 Pontus Johnson, Robert Lagerström, and Mathias Ekstedt. 2018. A Meta Language for Threat Modeling and Attack Simulations. In Proceedings of the 13th International Conference on Availability, Reliability and Security (ARES 2018).

[2] MAL as open-source
https://mal-lang.org

Foreseeti
[3] https://foreseeti.com.
securiCAD Vertrieb Deutschland, Österreich, Schweiz: CYBEResilenz GmbH https://cyberesilienz.de

DSLs
[4] AWS — https://foreseeti.com/securicad-vanguard-for-aws/
[5] Azure — https://foreseeti.com/securicad-enterprise/
[6] coreLang — https://doi.org/10.1007/978-3-030-62230-5_4
Katsikeas S. et al. (2020) An Attack Simulation Language for the IT Domain. In Graphical Models for Security. GraMSec 2020. Lecture Notes in Computer Science, vol 12419. Springer.
[7] vehicleLang — https://www.scitepress.org/Link.aspx?doi=10.5220/0007247901750182
Katsikeas, S.; Johnson, P.; Hacks, S. and Lagerström, R. (2019). Probabilistic Modeling and Simulation of Vehicular Cyber Attacks: An Application of the Meta Attack Language. In Proceedings of the 5th International Conference on Information Systems Security and Privacy — ICISSP.
[8] powerLang — https://doi.org/10.1186/s42162-020-00134-4
Hacks, S., Katsikeas, S., Ling, E. et al. powerLang: a probabilistic attack simulation language for the power domain. Energy Inform 3, 30 (2020)

Vorheriger Beitrag
SuccessStory: Resilienz-Überprüfung für das Herzstück der Informationsverarbeitung
Nächster Beitrag
Der Blick aufs große Ganze

Aktuelles von CYBEResilienz

Hier lesen Sie Aktuelles rund um Themen zu Cyber-Attacken, wie man sich schützen kann und wie CYBEResilienz Ihnen hilft, Ihre Systemlandschaft sicherer zu machen.

Kategorien