AppLocker im DATEV Umfeld

AppLocker im DATEV Umfeld
AppLocker im DATEV Umfeld

Kurz und schmerzlos: Hier gibt es ein Powershell Script, welches Applocker im DATEV Umfeld relativ restriktiv inkl. einer Reihe an AppLocker Bypass Mitigations vorbereitet.

Vorweg evtl. ein wenig zum Lesen vom Hersteller zum Thema AppLocker: AppLocker (Windows) | Microsoft Learn

Ansonsten findet sich hier das PowerShell Script samt dem Gruppenrichtlinien Export sowie der vorbereiteten AppLocker XMLs:

Was ist zu tun?

  1. In Zeile 11 sollte nach einem Test im Audit-Modus die Variable auf „false“ gesetzt werden, um AppLocker scharf zu schalten.
    # Audit-Mode an (Empfohlen für erste Tests)
    $AuditOnly = $true
    # Audit-Mode aus (nach erfolgreichen Tests)
    $AuditOnly = $false

    (ACHTUNG: Eigene Änderungen im Audit-Modus würden beim erneuten Ausführen des Scriptes wieder gelöscht. Daher sollte der Enforced-Modus ggfs. in allen erstellten Policies von Hand aktiviert werden)
  2. In Zeile 15 muss der Distinguished Name (DN) der Organisationseinheit (OU) angepasst werden, wo die Gruppen zur Steuerung angelegt werden sollen.
    $GroupOU = "OU=<OU mit den Gruppen>,OU=<Pfad zur OU>,DC=<Domain>,DC=<FQDN>,DC=<TLD>"
  3. Alle Accounts der Benutzer müssen in die Gruppe „G-AppLocker_Users“ aufgenommen werden
  4. Die administrativen Accounts müssen in die Gruppe „G-AppLocker_Admins“ aufgenommen werden

Das wars dann auch schon. 😉 Jetzt müssen die erstellten Policies nur noch an die Organisationseinheiten mit den Terminalservern bzw. Workern (GETPATHS.CMD wird am Remote Desktop Session Host / Virtual Delivery Agent geblockt? (GETPATHS.CMD und AppLocker am WTS – Jans Cloud)) oder eben der Client PCs (Da es derzeit (noch) funktioniert: Applocker auf Windows 11 / 10 Professional) verlinkt werden:

Verlinkung der vorbereiteten, importierten Policies
Verlinkung der vorbereiteten, importierten AppLocker Policies

Wo ist die „Magie“ bzw. warum funktioniert das „recht einfach“ und beinahe out of the Box mit dem AppLocker im DATEV Umfeld? Da die DATEV Software sich seit längerer Zeit bereits in %ProgramFiles(x86)% installiert. Daher greifen hier bereits die empfohlenen AppLocker (EXE, DLL, Script und MSI) Standardregeln „(Standardregel) Alle Dateien im Ordner „Programme““ für die Gruppe „Jeder“ / „Everyone“ (SID: S-1-1-0). Zusätzlich gibt es dann noch eine benutzerdefinierte Herausgeberregel („Signiert von O=DATEV EG, L=NÜRNBERG, S=BAYERN, C=DE“), welche von der DATEV signierte ausführbare Dateien (EXE) / DLLs ebenfalls erlaubt.

Administrativ muss hier ebenfalls – dank der AppLocker Standardregeln – nichts bedacht werden, da die „VORDEFINIERT\Administratoren“ / „BUILTIN\Administrators“ (SID: S-1-5-32-544) alles in den Bereichen „DLL, EXE, Script, MSI“ dürfen. Da es mit den vordefinierten Gruppen hin und wieder Probleme im Bereich AppLocker gibt, erstellt das Script zusätzlich eine eigene AppLocker-Amin-Gruppe (G-AppLocker_Admins), welche ebenfalls einen Freifahrtschein zur Ausführung bekommt.

Was ist ggfs. noch zu beachten:

  • In der „C_Applocker_Block_Publisher_EXE“ wird die „CMD.EXE“ in der vordefinierten XML erlaubt. In einer einmonatigen Testphase gab es allerdings – in meinen Umgebungen – keinerlei Probleme, wenn die „CMD.EXE“ verboten wurde.
  • In der „C_Applocker_Block_Publisher_DLL“ wird die „ADVPACK.DLL“ ebenfalls erlaubt. Hier kam es beim Start des DATEV Arbeitsplatz zu einer Hinweismeldung in Richtung „DATEV Connection Setter“ (oder so ähnlich). Daher wird die „ADVPACK.DLL“ derzeit erlaubt.
  • Ggfs. sollte in der „C_Applocker_Block_Publisher_EXE“ noch die „RUNDLL32.EXE“ erlaubt werden. Allerdings habe ich hier in den Testphasen ebenfalls keinerlei Probleme gehabt, sofern die „RUNDLL32.EXE“ geblockt wurde.

Wie werte ich im Audit-Modus aus, was im Enforced-Modus geblockt worden wäre? Hier gilt es als erstes zu beachten, dass die Größe des AppLocker Eventlogs mit 1 MB sehr klein bemessen ist. Daher sollte das AppLocker Eventlog vergrößert (AppLocker Event Log vergrößern – Jans Cloud) werden – was hier im beiliegenden GPO Export allerdings bereits enthalten ist. Sobald dies erledigt ist, kann man auf den Clients in der AppLocker Ereignisanzeige auf die Suche nach Warnungen (Audit-Modus) bzw. Fehlern (Enforced-Modus) gehen:

  • Microsoft-Windows-AppLocker/EXE and DLL
  • Microsoft-Windows-AppLocker/MSI and Script
  • Microsoft-Windows-AppLocker/Packaged app-Deployment
  • Microsoft-Windows-AppLocker/Packaged app-Execution

Warnungen / Warnings:

8003 – Warning – * * was allowed to run but would have been prevented from running if the AppLocker policy was enforced. – Applied only when the Audit only enforcement mode is enabled. Specifies that the .exe or .dll file would be blocked if the Enforce rules enforcement mode were enabled.
8006 – Warning – * * was allowed to run but would have been prevented from running if the AppLocker policy was enforced. – Applied only when the Audit only enforcement mode is enabled. Specifies that the script or .msi file would be blocked if the Enforce rules enforcement mode were enabled.
8025 – Warning – Packaged app installation disabled. – Added in Windows Server 2012 and Windows 8.
8027 – Warning – No Packaged app rule configured. – Added in Windows Server 2012 and Windows 8.
8028 – Warning – * was allowed to run but would have been prevented if the Config CI policy was enforced. – Added in Windows Server 2016 and Windows 10.
8033 – Warning – ManagedInstaller check FAILED during Appid verification of * . Allowed to run due to Audit AppLocker Policy. – Added in Windows Server 2016 and Windows 10.
8039 – Warning – * passed Config CI policy and was allowed to run – Added in Windows Server 2016 and Windows 10.

Fehler / Errors:

8004 – Error – * * was not allowed to run. – Access to is restricted by the administrator. Applied only when the Enforce rules enforcement mode is set either directly or indirectly through Group Policy inheritance. The .exe or .dll file can’t run.
8007 – Error – * * was not allowed to run. – Access to is restricted by the administrator. Applied only when the Enforce rules enforcement mode is set either directly or indirectly through Group Policy inheritance. The script or .msi file can’t run.
8029 – Error – * was prevented from running due to Config CI policy. – Added in Windows Server 2016 and Windows 10.
8032 – Error – ManagedInstaller check FAILED during Appid verification of * – Added in Windows Server 2016 and Windows 10.
8035 – Error – ManagedInstaller Script check SUCCEEDED during Appid verification of * – Added in Windows Server 2016 and Windows 10.
8036 – Error – * was prevented from running due to Config CI policy – Added in Windows Server 2016 and Windows 10.
8040 – Error – Package family name * version * was prevented from installing or updating due to Config CI policy – Added in Windows Server 2016 and Windows 10.

Using Event Viewer with AppLocker (Windows) | Microsoft Learn

Aus aktuellem Anlass noch ein Nachtrag zu einer weiteren AppLocker Bypass Möglichkeit, die gar nicht mal so neu ist und hier beschrieben ist (Rootsec.inf – Keine Ordner auf C:\ erstellen – Gruppenrichtlinien):

Warum sollte ich das Erstellen von Ordnern auf C:\ verhindern? SECURITY! SECURITY!

Microsoft kann „C:\Windows“ nicht von „C:\Windows “ (mit Leerzeichen unterscheiden). Das führt dazu, das ich einen vertrauenswürdigen Pfad bauen kann die in euren Software Restriction Policies und/oder Applocker als ERLAUBT deklariert ist. C:\Windows, C:\Program Files, Program Files (x86) werden meist pauschal erlaubt, da dort nur Software von einem Administrator oder vom System durch ein Software Deployment abgelegt werden kann. Die Order mit Leerzeichen am Ende können aber von einem Benutzer erzeugt werden, wenn die Berechtigungen auf C: nicht korrigiert wurden.

Sicherheitsvorlage – Rootsec.inf

Import in den Gruppenrichtlinien Editor

  1. Öffnen der gewünschten Gruppenrichtlinie
  2. Computerkonfiguration \ Windows-Einstellungen \ Sicherheitseinstellungen
  3. Kontextmenü -> Richtlinie importieren

[Unicode]
Unicode=yes
[Version]
signature="$CHICAGO$"
Revision=1
[File Security]
"%SystemDrive%\",0,"D:AR(A;;0x1200a9;;;WD)(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICI;0x1200a9;;;BU)"

https://www.gruppenrichtlinien.de/artikel/rootsecinf-keine-ordner-auf-c-erstellen


Die gesuchte Lösung noch nicht gefunden oder benötigen Sie Hilfe bei anderen Themen aus meinem Blog? Nehmen Sie gerne Kontakt mit mir bzw. meinem Unternehmen Jan Mischo IT auf. Ich freue mich auf Ihre Anfrage: https://janmischo.it/kontakt/


+49 2801 7004300

info@janmischo.it

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.