HOMEBlog Applocker, goSecurityAppLocker – Weniger ist mehr – Teil 3 (Intune)

AppLocker – Weniger ist mehr – Teil 3 (Intune)

In meinen vorherigen Blogs zum Thema AppLocker (AppLocker – Weniger ist mehr, AppLocker – Weniger ist mehr – Teil 2 (AaronLocker)) habe ich beschrieben, wie Clients mit AppLocker in einer standardmässigen Domänenumgebung implementiert und gehärtet werden können. In diesem Beitrag möchte ich einen Schritt weiter gehen und zeigen, wie AppLocker in einer Azure-Umgebung mit Intune implementiert werden kann. Diese Kombination bietet zusätzliche Flexibilität und Verwaltungsmöglichkeiten, die besonders in modernen, cloudbasierten IT-Infrastrukturen von Vorteil sind. Allerdings ist die Implementierung nicht immer so einfach und intuitiv, wie man es sich wünschen würde.

Richtlinien erstellen

Die AppLocker-Richtlinien können wie in den beiden vorherigen Blogs manuell oder automatisch erstellt werden. Der einzige Unterschied ist, dass wir die AppLocker-Richtlinien in den Lokalen Sicherheitsrichtlinien (secpol.msc) konfigurieren und nicht mehr auf dem Domain Controller im Gruppenrichtlinien-Editor. Für die Konfiguration melden wir uns jetzt auf einen Baseline-Client an, welchen den meisten anderen Clients im Unternehmen ähnlich ist und erstellen die Richtlinien. Es gilt immer noch: desto standardisierter die Umgebung, desto einfacher die Implementierung von AppLocker.

Manuell – Lokale AppLocker-Richtlinien

Nachdem wir dir AppLocker-Richtlinien erstellt haben, können wir diese aus den Lokalen Sicherheitsrichtlinien exportieren. Dabei wird eine XML-Datei mit den Richtlinien erstellt.

Automatisch – AppLocker-Richtlinien mit AaronLocker

Wurden die AppLocker-Richtlinien mit AaronLocker erstellt, liegen die Richtlinien in XML-Format im Unterverzeichnis .\Outputs. Bei mir liegen diese Dateien aktuell unter C:\AaronLocker\AaronLocker\Outputs.

Richtlinien konvertieren

Leider können wir die erstellten XML-Dateien nicht einfach in Intune importieren. Das wäre zu einfach winking face. Für Intune benötigen wir pro Dateityp (EXE, MSI, Script, StoreApps und DLL) die Richtlinien in XML-Format. Ich habe schon mehrere Beiträge gelesen, bei denen die XML-Dateien von Hand auseinander genommen werden. Bei einer kleinen Umgebung mit wenigen Regeln ist das vermutlich möglich. Dieses Vorgehen ist aber auch sehr fehleranfällig. Daher habe ich für mich ein kleines PowerShell-Script erstellt.

Das Skript liest die angegebene AppLocker-XML-Datei ein und erstellt in einem Outputverzeichnis pro Dateityp eine XML-Datei. Diese können dann anschliessend in Intune kopiert werden. Das Skript kann auf GitHub (https://github.com/gosecurity-ag/AppLockerXML2Intune) heruntergeladen werden.

Um die Richlinien für Intune bereitzumachen, geben wir folgenden Befehl ein.

.\AppLockerXML2Intune.ps1 -XMLFile C:\AaronLocker\AaronLocker\Outputs\AppLockerRules-20240829-1559-Audit.xml

Richtlinien in Intune erstellen

Bei Microsoft Intune müssen die AppLocker-Richtlinien über eine Benutzerdefinierte Konfiguration erstellt werden. Pro Dateityp muss hier wieder eine eigene Richtlinie erstellt werden.

Hier ist eine Übersicht über die Dateitypen und die dazugehörigen OMA-URIs für die Richtlinien:

Name Beschreibung OMA-URI
EXE Executable Rules ./Vendor/MSFT/AppLocker/ApplicationLaunchRestrictions/apps/EXE/Policy
MSI Windows Installer Rules ./Vendor/MSFT/AppLocker/ApplicationLaunchRestrictions/apps/MSI/Policy
Script Script Rules ./Vendor/MSFT/AppLocker/ApplicationLaunchRestrictions/apps/Script/Policy
StoreApps Packaged app Rules ./Vendor/MSFT/AppLocker/ApplicationLaunchRestrictions/apps/StoreApps/Policy
DLL DLL Rules ./Vendor/MSFT/AppLocker/ApplicationLaunchRestrictions/apps/DLL/Policy

Um die AppLocker-Richtlinien in Intune zu erstellen, gehen wir wie folgt vor:

1. In Microsoft Intune admin center auf Devices\Windows\Configuration gehen und mit Create eine neue Richtlinie erstellen

2. Unter Create a profile wählen wir die Platform Windows 10 and later, Profile type Templates und Template name Custom aus.

3. Bei Basics geben wir einen Namen und ggf. eine Beschreibung ein.

4. Als nächstes können wir die Richtlinien für die Dateitypen erstellen. Dazu klicken wir auf Add und füllen die Felder Name, Description und OMA-URI, wie oben in der Tabelle angegeben. Als Data type wählen wir String aus.

Mit dem folgenden Befehl in PowerShell kopieren wir die EXE-Richtlinie. Diese fügen wir in das Feld Value ein.

Get-Content C:\Users\MariusHamborgstrøm\Desktop\AppLocker\AppLockerXML2Intune-AppLockerRules-20240829-1559-Audit-Exe.xml | Set-Clipboard

Diesen Schritt wiederholen wir für alle Dateitypen. Anschliessend sollte die Liste mit den Einstellungen wie folgt aussehen:

5. Als nächstes müssen wir die Richtlinien einer Gruppe zuordnen.

Jetzt heisst es nur noch warten, bis die Richtlinie auf den Clients verteilt wird. Um dies zu beschleunigen, kann auf dem Client auch eine Synchronisation angestossen werden. Dazu gehen wir zu den Settings unter Accounts\Access work or school und klicken auf Info. Im unteren Bereich der Seite gibt es einen Sync-Button.

Richtlinien prüfen

Live

Wenn die AppLocker-Richtlinien geladen sind, können wir einfach eine explizit freigegebene Datei, in unserem Fall putty.exe, öffnen. Diese wird geblockt.

Eventlog

Eine weitere Möglichkeit ist das Eventlog zu überprüfen. Für AppLocker werden die Events unter Applications and Services Logs\Microsoft\Windows\AppLocker abgelegt. Werden die Logs nach Event level Critical, Warning und Error gefiltert, ist ersichtlich, welche Zugriffe blockiert wurden.

Es ist auch mit PowerShell wie folgt abrufbar.

Get-AppLockerFileInformation -EventLog -EventType Denied -Statistics

Speicherorte

Bei aktivierten AppLocker mit Gruppenrichtlinien, konnten die Richtlinien in der Registry unter den folgenden Zweigen ausgelesen werden. Das geht bei dieser Variante nicht.

HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\SrpV2

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Policies\Microsoft\Windows\SrpV2

Der PowerShell-Befehl Get-AppLockerPolicy gibt ebenfalls keine sinnvolle Ausgabe.

Werden die AppLocker-Richtlinien mit Microsoft Intune verteilt, werden die Richtlinien in dem Unterverzeichnis unter C:\Windows\System32\AppLocker\MDM abgelegt. Diese XML-Dateien können beispielsweise wie folgt mit PowerShell ausgelesen werden:

Get-ChildItem -Recurse -Path C:\Windows\System32\AppLocker\MDM -File Policy | Get-Content -ErrorAction SilentlyContinue

Fazit

Die Implementierung von AppLocker in einer Azure-Umgebung mit Intune bringt einige Herausforderungen mit sich. Mit den richtigen Tools und einem klaren Plan lassen sich jedoch auch komplexe Sicherheitsrichtlinien erfolgreich umsetzen.

Das PowerShell-Skript, das im Blog vorgestellt wurde, hilft dabei, die XML-Dateien für Intune vorzubereiten und macht den Prozess effizienter und weniger fehleranfällig. Sobald die Richtlinien in Intune erstellt und den Geräten zugewiesen sind, können sie einfach verwaltet und überprüft werden.

Ich hoffe, dieser Blog hat Ihnen wertvolle Einblicke und praktische Tipps für die Implementierung von AppLocker mit Intune gegeben. Viel Erfolg bei der Umsetzung und bleiben Sie sicher!

Quellen

https://github.com/gosecurity-ag/AppLockerXML2Intune

https://www.gosecurity.ch/applocker-weniger-ist-mehr/

https://www.gosecurity.ch/applocker-weniger-ist-mehr-teil-2-aaronlocker/

Informationen zum Autor: Marius Hamborgstrøm

Im Jahre 2014 ist es mir gelungen goSecurity von meinem Talent zu überzeugen. Als Experte für Penetration Tests konnte ich schon viele Schwachstellen aufdecken, bevor dies einem Hacker gelungen ist. Zudem bin ich für die Gestaltung und die Durchführung unserer goTraining-Kurse Hack to PROTECT (H2P), Hack to PROTECT [ADVANCED] (H2PA) und Windows Server Hardening (WSH) verantwortlich. Durch meine jahrelange Erfahrung als IT-Leiter einer mittelständischen Bank, kenne ich auch die Seite des Administrators und des IT-Managers in einer Umgebung mit hohen Sicherheitsanforderungen. Aus dieser Erfahrungskiste kann ich die Anforderungen unserer Kunden auch bei Audits und umfassenden Beratungen schnell verstehen und Sie zielgerichtet und praxisnah beraten. Jede Sicherheitslücke bei Ihnen zu finden, bevor dies jemand anderem gelingt, ist leider nicht immer realistisch. Und dennoch ist es mein Antrieb und mein Anspruch.