Skriptbasierte "Versiegelung" des Systems mittels Software Whitelisting - keine 0-Day-Exploits mehr

Das Applocker-Toolkit dient zum automatisierten Erstellen von Windows Software Whitelists und ist Bestandteil der Konfigurations-Toolkits für Windows welche das ITMZ der Universität Rostock allen Administratoren von selbstverwalteten Windows-Systemen für Windows-Systeme zur Verfügung stellt, um diese vor aktuellen und zukünftigen Angriffsszenarien zu schützen.

Vor allem die „Schnellabsicherung von Windows - QuickWinSec.bat“ ist die Mindestvoraussetzung für ein sicheres Arbeiten als Nicht-Administrator unter einem aktuellen Windows-System und dringend jedem Anwender empfohlen, der sein System selbstverwaltet.

Die Toolkits sollen helfen das Vertrauen in die Sicherheit von Windows-Systemen zu stärken und die latenten Befürchtungen vor Hackern und unerwünschter Software zu mildern.

Eine Kurzanleitung zur Nutzung der Toolkits finden Sie unter

Vortrag „Systemsicherheit am ITMZ“ 

Die darauf einstimmenden Folien des Vortrages „Systemsicherheit am ITMZ“ vom 17.02.2011 finden Sie unter
http://www.itmz.uni-rostock.de/software/windows/sicherheit/systemsicherheit-am-itmz/

und als Download im PDF-Format unter
https://www.itmz.uni-rostock.de/storages/uni-rostock/ITMZ/Windows/Docs/SysSec.pdf

Der wichtigste Effekt dieser Konfiguration ist die Erlangung einer besseren Kontrolle über Windows-Systeme durch drei einfache Konfigurationsänderungen:

  1. Versiegelung per Software Whitelisting – nur Software auf einer Positivliste ist ausführbar, s. auch "Software Whitelisting - der bessere Virenschutz"
  2. Isolierung per Firewall – nur zugelassener Netzwerkverkehr ist erlaubt, s. auch Offene Ports einer Standard-Windows-Installation
  3. Herabstufen per UAC (Benutzerkontensteuerung) - keine automatische Nutzung von administrativen Rechten s. auch Wozu dient UAC - die Benutzerkontensteuerung von Windows?

Durch diese Konfigurationsänderungen und die strikte Einhaltung der Zwei-Benutzerregel ist unerwünschte Software (Malware) für Standardbenutzer nicht mehr ausführbar.

Systemversiegelung mittels Software Whitelisting

Software Whitelisting versiegelt ein Windows-System und schützt vor jeglicher Malware, die sich nicht auf der Liste (Whitelist/Positivliste) der zugelassenen Anwendungen befindet, einschließlich 0-Day-Exploits auf zugelassene Anwendungen und DLL-Binary-Planting, s. Software Whitelisting - der bessere Anti-Virus-Schutz.

Die skriptbasierte Erstellung von Software Whitelists ohne Gruppenrichtlinien ist durch Registry-Einträge möglich.

Ab Windows 7 Enterprise/Ultimate und Windows Server 2008 R2 enthält Windows ein Powershell Add-On für Applocker, so dass eine skriptbasierte Erstellung von gruppenrichtlinienbasierten Applocker Software Whitelists mit Windows-Bordmitteln möglich ist.

Applocker (Software Restrictions Version 2) hat gegenüber den Software Restrictions Version 1 folgende Vorteille:

  1. Getrennte Whitelists für Programmdateien (*.exe, *.com), Programmbibliotheken (*.dll, *.ocx), Skriptdateien (*.bat, *.cmd, *.js, *.ps1, *.vbs, *.wsh) und Windows Installer-Dateien (*.msi, *.msp).

  2. Verfügbarkeit von nutzerbezogenen Regeln.
  3. Einfacher Import und Export des Regelwerks über XML-Dateien.

Applocker ist die empfohlene Methode für den Einsatz von Software Whitelists unter Windows. 

Systemvorausetzungen

  1. Software Whitelisting mithilfe von

    Software Restrictions
    Windows XP/Windows Server 2003 oder neuer.

    Applocker (empfohlen)
    Windows 7 Enterprise/Ultimate/Windows Server 2008 R2 oder neuer.
     
  2. Vorausetzung für die Funktion von Applocker ist der Start des Windows-Dienstes AppIDSvc.
     
    Dieser Dienst ist standardmäßig auf manuelles Starten konfiguriert und muss gestart werden, bevor Applocker-Regeln aktiv werden. Weiterhin sollte dieser Dienst auf automatisches Starten rekonfiguriert werden.

    Führen Sie dazu folgende Befehle an einer administrativen Kommandozeile aus:

    sc config AppIDSvc start= auto
    sc start AppIDSvc
     
  3. PowerShell 5 (Windows 10/Windows Server 2016 enthält PowerShell 5)

    Hinweise und Download-Links unter
    Wie schränke ich In-Memory-Angriffe (Fileless Malware) mittels PowerShell ein?
     

  4. Hotfix 2532445 für Applocker unter Windows 7/Windows Server 2008 R2 zur Verhinderung der Umgehung von Applocker-DLL-Regeln sollte installiert sein.

    Download für

    Windows 7 (32-Bit)
    ftp://ftp.uni-rostock.de/pub/uni-rostock/rz/NT-Kurs/ToolKit/Fixes/Windows6.1-KB2532445-v2-x86.msu

    Windows 7/Windows Server 2008 R2 (64-Bit)
    ftp://ftp.uni-rostock.de/pub/uni-rostock/rz/NT-Kurs/ToolKit/Fixes/Windows6.1-KB2532445-v2-x64.msu
     
    Referenz:
    http://support.microsoft.com/kb/253244

Herunterladen des Applocker-Toolkits und Aktivierung von Applocker

Nachdem Sie die Systemvoraussetzungen überprüft haben, laden Sie sich die Datei ApplockerToolkit.cab von https://softsrv.uni-rostock.de/pub/uni-rostock/rz/NT-Kurs/ToolKit/ApplockerToolKit.cab  herunter und entpacken die Dateien z.B. in das Verzeichnis C:\Soft\Tools (wurde in Phase 1 der Anleitung "Wie installiere und konfiguriere ich ein sicheres und robustes Windows System?" erstellt) per GUI oder mit folgendem Befehl:

    expand ApplockerToolKit.cab -F:* C:\Soft\Tools

Anschließend können Sie Applocker mit dem Skript "SRP-Activate.bat" aktivieren.

Inhalt des Applocker-ToolKits

Skript Funktion
InstallWUs.bat Deaktiviert Software Whitlelisting, installiert Windows Updates, startet das System neu und reaktiviert Software Whitelisting.
SRP-Activate.bat Software Whitelist-Einträge für Standardverzeichnisse erstellen und Software Whitelisting aktivieren.
SRP-Check.bat Software Whitelisting Fähigkeit überprüfen
SRP-Cleanup.bat Software Whitelisting-Konfiguration löschen
SRP-Disable.bat Software Whitelisting deaktivieren
SRP-ConfigAudit.bat Applocker Logging in das Eventlog konfigurieren. Skript-Parameter: 0 - Deaktivieren 1- Aktivieren
SRP-Enable.bat Software Whitelisting aktivieren
SRP-HashObject.bat Software Whitelist-Eintrag für eine Datei erstellen.
SRP-HashObjects.bat Software Whitelist-Eintrag für den Inhalt eines Verzeichnisses erstellen.
SRP-ScheduleNextReboot.bat Software Whitelist-Einträge beim nächsten Neustart erstellen (Versiegeln des Systems).
SRP-SealSystem.bat Software Whitelist-Einträge erstellen (Versiegeln des Systems).
SRP-Status.bat Anzeige des Software Whitelisting Status.
SRPv1.ps1 Powershell-Skript für Software Restrictions Version 1 ab Windows XP/Windows Server 2003 mit kostenpflichtigem GPAE-Add-On, s. GPExpert Software Group Policy Automation Engine (GPAE).
SRPv2.ps1 Powershell-Skript für Applocker (Software Restrictions Version 2) ab Windows 7/Windows Server 2008 R2.
tail.exe Listet die letzten Zeilen von Textdateien aus.

Anpassen des Applocker-Toolkits

Die Aktionen des Applocker-Toolkits sind einfach anpassbar, indem Sie eine Datei namens srpv2.cfg im Verzeichnis der Applocker-Skripte oder im Verzeichnis C:\Logs\WinConfig erstellen und diese Datei zeilenweise mit Konfigurationsparametern aus der nachfolgenden Tabelle füllen, z.B.

$IncludeScripts=1

 Die folgende Tabelle beschreibt Variablen, die Sie nutzen können, um das Aplocker-Toolkit an Ihre Umgebung anzupassen:

Skriptvariablen des Applocker-ToolKits

Variable Mögliche Werte Standard Bedeutung
$AVDirs Komma getrennte Liste von Verzeichnissen s. FAQ Liste von Verzeichnissen für Anti-Virus Programm Pfadregelausnahmen
$AVEngine Wert ist "MS" oder "SOPHOS" MS Anti-Virus Software Microsoft Security Essentials oder Sophos Anti-Virus
$AVExceptions 0 oder 1 1 Aktiviere Pfadregelausnahmen für Anti-Virus Programm
$BINExceptions 0 oder 1 0 Aktiviere Pfadregelausnahmen für Verzeichnisse in der Variable $ExeDirs
$Dirs Komma getrennte Liste von Verzeichnissen s.FAQ Liste der Verzeichnisse, die nach Programmdateien für den Aufbau einer hash-basierten Software Whitelist durchsucht werden
$DLLDirs Komma getrennte Liste von Verzeichnissen -, s. auch FAQ Liste der Verzeichnisse, aus denen DLL-Dateien geladen werden dürfen
$DLLFiles Komma getrennte Liste von Programm-Dlls -, s. auch FAQ Liste von Programmdateien, welche per Pfadregel geladen werden dürfen (z.B. Programm-Dlls für die kein Hash generiert werden kann)
$EnableBlockRules 0 oder 1 1 Aktiviere Block-Regeln
$EXEDirs Komma getrennte Liste von Verzeichnissen -, s. auch FAQ Liste von Verzeichnissen, aus denen alle EXE-Dateien gestartet werden dürfen
$EXEFiles Komma getrennte Liste von Programmdateien -, s. auch FAQ Liste von Programmdateien, welche per Pfadregel gestartet werden dürfen (z.B. Programmdateien für die kein Hash generiert werden kann)
$ExcludedScriptExtensions Komma getrennte Liste von Skript-dateierweiterungen .ps1xml,".psd1",".psm1" Liste von Skriptdateierweiterungen, die ohne Überprüfung ausgeführt werden
$IncludeDLLs 0 oder 1 0 für Systeme mit Applocker, 0 für Systeme ohne Applocker Generiere auch für Dll-Dateien hash-basierte oder Publisher Regeln
$IncludeScripts 0 oder 1 0 für Systeme mit Applocker, 1 für Systeme ohne Applocker Generiere auch für Skriptdateien hash-basierte Regeln
$ScriptDirs Liste von Verzeichnissen -, s. auch FAQ Komma getrennte Liste der Verzeichnisse, aus denen Skript-Dateien geladen werden dürfen

Skriptvariablen des Applocker-ToolKits (Applocker-Only)

Variable Mögliche Werte Standard Bedeutung
$AllowCMDScriptFiles 0 oder 1 0 Erlaube alle Skripte der CMD.exe (*.bat und *.cmd)
$AllowFullLanguageMode 0 oder 1 0 Erlaube Full Language Mode innerhalb interaktiver PowerShell für bestimmte Nutzer (festgelegt über Skriptvariable $FullLanguageModeUsers)
$AllowPsScriptFiles 0 oder 1 0 Erlaube alle Skripte der PowerShell (*.ps1)
$AllowWSHScriptFiles 0 oder 1 0 Erlaube alle Skripte des Windows Scripting Host (*.js und *.vbs)
$BlockedFiles Komma getrennte Liste von Programmdateien s. FAQ Liste von Programmdateien, deren Ausführung geblockt wird.
$ExcludedDirs Komma getrennte Liste von Verzeichnissen s. FAQ Liste von Verzeichnissen, für die keine Whitelist-Regeln erstellt werden
$FullLanguageModeUsers Windows Benutzer oder Gruppen S-1-5-32-544 Liste von Nutzern, die den Full Language Mode in einer interaktiven PowerShell nutzen können
$PathRulesExceptions Komma getrennte Liste von Verzeichnissen - Verzeichnisse aus denen keine Dateien geladen werden können, um das Umgehen des Software Whitelistings zu verhindern, sinnvoll bei $ProtectionLevel="Medium" und $IncludeDLLs=1
$ProtectionLevel Wert ist "Medium" oder "High" High Erstellt vorrangig zertifikatsbasierte Publisher-Regeln (Medium) oder nur Hash-Regeln (High)
$ShowHashedFiles 0 oder 1 0 Zeige whitelisted Verzeichnisse und Dateien
$SupplementalDLLDirs Komma getrennte Liste von Verzeichnissen - Verzeichnisse aus denen DLLs geladen werden dürfen, sinnvoll bei $ProtectionLevel="Medium" und $IncludeDLLs=1
$SRPV1Only 0 oder 1 0 Erstelle immer Software Whitelists Version 1 anstatt Version 2 (Applocker)
$WindirPublisherRules 0 oder 1 1 Erstellt vorrangig zertifikatsbasierte Publisher-Regeln (1) oder hash-basierte Regeln (0) für das Windows-Verzeichnis

Nutzung des Toolkits

Achtung!

Die Batchdateien müssen in einer administrativen Kommandozeile ausgeführt werden. 

  • Software Whitelist Status anzeigen
     
    SRP-Status.bat
     
  • Software Whitelist löschen
     
    SRP-Cleanup.bat
     
  • Software Whitelist deaktivieren
     
    SRP-Disable.bat
       
  • Software Whitelist aktivieren
     
    SRP-Enable.bat
     
  • System "versiegeln"
     
    SRP-SealSystem.bat
     
  • Programm in die Software Whitelist aufnehmen
     
    SRP-Hashobject.bat C:\Soft\Apps\SuperEditor\supereditor.exe
     
  • Verzeichnisinhalt in die Software Whitelist aufnehmen
     
    SRP-Hashobjects.bat C:\Soft\Apps\SuperTools
     
  • Applocker Logging in die Ereignisanzeige aktivieren
     
    SRP-ConfigAudit.bat 1
     
  • Applocker Logging in die Ereignisanzeige deaktivieren
     
    SRP-ConfigAudit.bat 0

Weitere Hinweise

  1. Für Veränderungen von Programmdateien des Systems, wie z.B. Updates oder Software-Installationen ist ein Deaktivieren des Software Whitelistings, eine Installation der Software oder von Updates und anschließend ein erneutes Versiegeln des Systems erforderlich. 

    Standardmäßig werden für das Windows-Verzeichnis vorrangig zertifikatsbasierte Publisher-Regeln erstellt. Dadurch bleibt die Benutzbarkeit des Systems nach dem Einspielen von Windows Udpates und einem Neustart gewährleistet, auch wenn die Applocker-Regeln nicht aktualisiert wurden, da die benutzten Zertifikate für das Code-Signing von Dateien in der Regel durch Windows Updates nicht verändert werden.

    Die Skriptvariable $WindirPublisherRules steuert, ob für das Windows- Verzeichnis vorrangig zertifikatsbasierte ($WindirPublisherRules=1) oder hash-basierte ($WindirPublisherRules=0) Regeln erstellt werden.

    Das Skript InstallWUs.bat installiert fehlende Windows Updates. Mit dem Schalter "reboot" kann ein Neustart mit anschließender Neuversiegelung des Systems initiiert werden:

    installwus.bat reboot
        

  2. Die Skripts nehmen standardmäßig nur Binärprogrammdateien in die Software Whitelist auf, d.h MSI-Installer Pakete und beliebige Skripte (bei Applocker jedoch nur aus zugelassenen Pfaden) sind ausführbar!

    Die Ausführung von beliebigen Skripten mit den Endungen *.bat, *.cmd, *.js, *.ps1, *.vbs und das Laden von beliebigen DLLs ist bei

    Software Whitelists Version 1
     
    aus beliebigen Pfaden erlaubt, da es nur eine Software Whitelist für alle Dateitypen gibt.

    Software Whitelists Version 2 (Applocker)
     
    nur aus festgelegten Pfaden erlaubt,

    s. dazu weiter unten Punkt 7 der FAQ.

    Nicht-Microsoft Skript-Engines lassen sich nicht über Skriptregeln einschränken, d.h. sobald die die dazugehörige Programmdatei per Software Whitelist zugelassen ist, sind alle Skripte der jeweiligen Skript-Engine ausführbar.
       
    Seit PowerShell Version 5 werden standardmäßig ALLE PowerShell-Skripte ausgeführt unabhängig von den Verzeichnispfaden der Software Whitelist und dies im Constrained Language Mode außer die Skripte befinden sich in den Verzeichnispfaden der Software Whitelist, dann werden die PowerShell-Skripte im Full Language Mode ausgeführt.
    Im interaktiven Modus wird die PowerShell immer im Constrained Language Mode ausgeführt.

    Dieses Verhalten wird durch die Skriptvariable $AllowFullLanguageMode wie folgt verändert:

    $AllowFullLanguageMode = 0 - Standardverhalten, s. vorheriger Absatz.
    $AllowFullLanguageMode = 1 - Die in der Skriptvariable $FullLanguageModeUsers angegebenen Benutzer oder Gruppen können alle PowerShell-Skripte im Full Language Mode ausführen und daher können sie PowerShell-Skripte nur aus Verzeichnispfaden der Software Whitelist ausführen. Die Ausführung von PowerShell-Skripten aus allen anderen Verzeichnispfaden wird für diese Benutzer verweigert.
    Im interaktiven Modus wird die PowerShell für diese Benutzer im Full Language Mode ausgeführt.
    Für alle anderen Benutzer gilt das Standardverhalten, s. vorheriger Absatz.
       

  3. Die oben angebotenen Skripte enthalten generische nicht hashbasierte Ausnahmen für Microsoft Defender, da sich die Binaries bei eingeschaltetem automatischem Update fortlaufend ändern.

    Diese Ausnahmen können Sie entweder deaktivieren oder Sie passen den Pfad an Ihren Virenscanner an. Lesen Sie dazu Punkt 7. und 8. der nachfolgenden FAQ.

FAQ

  1. Welche Dateiendungen beachtet
     
    Software Restrictions Version 1:

    *.ade,*.adp,*.bas,*.bat,*.chm,*.cmd,*.com,*.cpl,*.crt,*.exe,*.hlp,*.hta,*.inf,*.ins,*.isp,*.js,*.jse,*.lnk,
    *.mdb,*.mde,*.msc,*.msi,*.msp,*.mst,*.pcd,*.pif,*.reg,*.scr,*.sct,*.shs,*.url,*.vb,*.vbe,*.vbs,*.wsc,
    *.wsf,*.wsh


    Software Restrictions Version 2 (Applocker):

    Programmdateien: *.exe, *.com

    Programmbibliotheken: *.dll, *.ocx

    Skriptdateien: *.bat, *.cmd, *.js, *.ps1, *.vbs

    Windows Installer-Dateien: *.msi, *.msp


    Referenz:

    http://technet.microsoft.com/en-us/library/ee424367(WS.10).aspx
     

  2. Welche Verzeichnisse werden standardmäßig für den Aufbau der Software Whitelist nach Programmdateien (*.exe, *.com, *.dll, *.ocx) und Skripten durchsucht?

    Alle Windows-Systeme:
    "C:\Soft\Apps","C:\Soft\Tools","C:\Program Files" ,"C:\Windows","C:\ProgramData\Microsoft\Windows Defender"

    Zusätzlich bei 64-Bit Windows-Systeme:
    "C:\Program Files (x86)" 

    Zusätzlich bei Active Directory-Umgebungen:
    \\AD-DNS-Name\NETLOGON \\DC-Name\NETLOGON

  3. Welche Verzeichnisse werden standardmäßig bei der Erstellung der Whitelist-Regeln ignoriert?

    C:\Windows\CbsTemp
    C:\Windows\Debug
    C:\Windows\Logs
    C:\Windows\PCHEALTH
    C:\Windows\Registration
    C:\Windows\ServiceProfiles
    C:\Windows\Servicing\LCU
    C:\Windows\Servicing\Packages
    C:\Windows\SoftwareDistribution\Download
    C:\Windows\System32\BioAPIFFDB
    C:\Windows\system32\CatRoot
    C:\Windows\System32\catroot2
    C:\Windows\System32\Com\dmp
    C:\Windows\System32\config\systemprofile
    C:\Windows\System32\FxsTmp
    C:\Windows\System32\LogFiles
    C:\Windows\System32\Microsoft
    C:\Windows\System32\spool\drivers\color
    C:\Windows\System32\Spool\Printers
    C:\Windows\System32\Spool\Servers
    C:\Windows\System32\Tasks
    C:\Windows\SysWOW64\Com\dmp
    C:\Windows\SysWOW64\config\systemprofile
    C:\Windows\SysWOW64\FxsTmp
    C:\Windows\SysWOW64\Tasks
    C:\Windows\Tasks
    C:\Windows\TEMP
    C:\Windows\Tracing
    C:\Windows\WinSxS

    Dies wird durch die Skriptvariable $ExcludedDirs konfiguriert.
      

  4. Welche Programmdateien werden standardmäßig blockiert und wie kann ich die Liste der blockierten Dateien anpassen?

    Die Ausführung folgender Programmdateien wird über Block-Regeln verhindert:
     
    addinprocess.exe
    addinprocess32.exe
    addinutil.exe
    bash.exe
    bginfo.exe
    cdb.exe
    csi.exe
    dbghost.exe
    dbgsvc.exe
    dnx.exe
    fsi.exe
    fsiAnyCpu.exe
    kd.exe
    ntkd.exe
    lxssmanager.dll
    msbuild.exe
    mshta.exe
    ntsd.exe
    rcsi.exe
    system.management.automation.dll
    windbg.exe
    wmic.exe

    Diese Liste ist einer Microsoft-Empfehlung entnommen, s. dazu
    https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-application-control/microsoft-recommended-block-rules

    Sie können die Liste der blockierten Programmdateien anpassen, indem Sie die Skriptvariable $BlockedFiles anpassen.
      

  5. Wie kann ich die Verzeichnisliste für den Aufbau der Software Whitelist für Programme verändern?

    Passen Sie die Skriptvariable $Dirs für die Skripte SRPv1.ps1 und/oder SPRv2.ps1 an.

    Dazu gehen Sie wie folgt vor:

    1. Legen Sie eine leere Datei namens SRPv1.cfg (alle Betriebssysteme vor Windows 7/Windows Server 2008 R2) oder SRPv2.cfg (nur Windows 7 Enterprise/Ultimate/Windows Server 2008 R2) im Verzeichnis der Skripte SRPv1.ps1/SRPv2.ps1 (standardmäßig in C:\Soft\Tools) oder im Pfad C:\Logs\WinConfig an.

    2. Fügen Sie folgende Zeile in die entsprechende cfg-Datei ein, um
     
    a) die Variable $Dirs zu überschreiben:

    $Dirs="D:\Soft\Apps","D:\Soft\Tools","D:\Program Files","D:\Windows"

    b) die Variable $Dirs zu erweitern:

    $Dirs+="C:\MyApps" 
     

  6. Wie kann ich zusätzliche EXE-Dateien in die Software Whitelist aufnehmen ohne Hashes zu generieren?

    Passen Sie die Variablen $BINEXCEPTIONS und $EXEDirs und/oder $EXEFiles für die Skripte SRPv1.ps1 und/oder SPRv2.ps1 an.

    Dazu gehen Sie wie folgt vor:

    1. Legen Sie eine leere Datei namens SRPv1.cfg (alle Betriebssysteme vor Windows 7/Windows Server 2008 R2) oder SRPv2.cfg (nur Windows 7 Enterprise/Ultimate/Windows Server 2008 R2) im Verzeichnis der Skripte SRPv1.ps1/SRPv2.ps1 (standardmäßig in C:\Soft\Tools) oder im Pfad C:\Logs\WinConfig an.

    2. Aktivieren Sie die Pfadausnahmen für Programmdateien in dem Sie folgende Zeile in die entsprechende cfg-Datei einfügen:

    $BINEXCEPTIONS=1

    3. Fügen Sie folgende Zeile in die entsprechende cfg-Datei ein, um z.B. alle Programmdateien von Laufwerk Q und die Datei C:\Programme\SuperApp\superprog.exe zu whitelisten:

    $EXEDirs+="Q:","C:\Trusted"
    $EXEFiles+="C:\Programme\SuperApp\superprog.exe" 


    4. Versiegeln Sie das System mit dem Skript SRP-SealSystem.bat erneut.

    Achtung! Bei Software Whitelists Version 1 gelten die  $EXEDirs-Variablenausnahmen für alle Programme, Programbibliotheken und Skripte!
     

  7. Wie kann ich die Pfadregeln der Software Whitelist für Skripte anpassen?

    Für Software Restriction Version 1 (alle Windows Version ab Windows XP) ist es nur möglich Skripte in die hash-basierte Software Whitelists aufzunehmen, s. Punkt 12.

    Für Applocker (nur Windows 7 Enterprise/Ultimate/Windows Server 2008 R2):

    Passen Sie die Variable $ScriptDirs für das SPRv2.ps1 an.

    Dazu gehen Sie wie folgt vor:

    1. Legen Sie eine leere Datei namens SRPv2.cfg (nur Windows 7 Enterprise/Ultimate/Windows Server 2008 R2) im Verzeichnis der Skripte SRPv1.ps1/SRPv2.ps1 (standardmäßig in C:\Soft\Tools) oder im Pfad C:\Logs\WinConfig an.

    2. Fügen Sie folgende Zeile in die entsprechende cfg-Datei ein, um
     
    a) die Variable $ScriptDirs zu überschreiben:

    $ScriptDirs="D:\Soft\Apps","D:\Soft\Tools","D:\Program Files","D:\Windows"

    b) die Variable $ScriptDirs zu erweitern:

    $ScriptDirs+="C:\MyApps"
     

    3. Versiegeln Sie das System mit dem Skript SRP-SealSystem.bat erneut.
     

  8. Wie kann ich die Pfadregeln der Whitelist für DLL-Dateien anpassen.

    Für Software Restriction Version 1 (alle Windows Version ab Windows XP) ist dies nicht möglich.

    Für Applocker (nur Windows 7 Enterprise/Ultimate/Windows Server 2008 R2):

    Passen Sie die Variable $DLLDirs für das Skript SPRv2.ps1 an.

    Dazu gehen Sie wie folgt vor:

    1. Legen Sie eine leere Datei SRPv2.cfg (nur Windows 7 Enterprise/Ultimate/Windows Server 2008 R2) im Verzeichnis der Skripte SRPv1.ps1/SRPv2.ps1 (standardmäßig in C:\Soft\Tools) oder im Pfad C:\Logs\WinConfig an.

    2. Fügen Sie folgende Zeile in die entsprechende cfg-Datei ein, um:
       
    a) die Variable $DLLDirs zu erweitern:

    $DLLDirs+="C:\MyApps"
       

    b) die Variable $DLLDirs zu überschreiben:

    $DLLDirs="D:\Soft\Apps","D:\Soft\Tools","D:\Program Files","D:\Windows"
        
    3. Versiegeln Sie das System mit dem Skript SRP-SealSystem.bat erneut.

  9. Wie kann ich die Pfadregeln der Whitelist für den Virenscanner deaktivieren.

    Passen Sie die Variable $AVEXCEPTIONS  für die Skripte SRPv1.ps1 und/oder SPRv2.ps1 an.

    Dazu gehen Sie wie folgt vor:

    1. Legen Sie eine leere Datei namens SRPv1.cfg (alle Betriebssysteme vor Windows 7/Windows Server 2008 R2) oder SRPv2.cfg (nur Windows 7 Enterprise/Ultimate/Windows Server 2008 R2) im Verzeichnis der Skripte SRPv1.ps1/SRPv2.ps1 (standardmäßig in C:\Soft\Tools) oder im Pfad C:\Logs\WinConfig an.

    2. Fügen Sie folgende Zeile in die entsprechende cfg-Datei ein, um den Software Whitelist-Schutz auch auf Skriptdateien auszuweiten:

    $AVEXCEPTIONS=0

    3. Versiegeln Sie das System mit dem Skript SRP-SealSystem.bat erneut.
     
  10. Wie kann ich die Pfadregeln der Software Whitelist für den Virenscanner anpassen.

    Passen Sie die Variable $AVDirs für die Skripte SRPv1.ps1 und/oder SPRv2.ps1 an.

    Dazu gehen Sie wie folgt vor:

    1. Legen Sie eine leere Datei namens SRPv1.cfg (alle Betriebssysteme vor Windows 7/Windows Server 2008 R2) oder SRPv2.cfg (nur Windows 7 Enterprise/Ultimate/Windows Server 2008 R2) im Verzeichnis der Skripte SRPv1.ps1/SRPv2.ps1 (standardmäßig in C:\Soft\Tools) oder im Pfad C:\Logs\WinConfig an.

    2. Fügen Sie folgende Zeile in die entsprechende cfg-Datei ein, um den Software Whitelist-Schutz auch auf Skriptdateien auszuweiten:

    $AVDirs= "C:\AV\Dir1","C:\AV\Dir2"

    3. Versiegeln Sie das System mit dem Skript SRP-SealSystem.bat erneut.
     

  11. Wie kann ich die Sophos Anti-Virus AutoUpdate-Adresse im SRP-Enable.bat/SRP-Disable-Skript konfigurieren?
     
    Passen Sie die Variable SOPHOSCID für die Skripte SRP-Enable.bat und/oder SRP-Disable.bat an.

    Dazu gehen Sie wie folgt vor:

    1. Legen Sie eine leere Datei namens SRP-Enable.cfg und/oder SRP-Disable.cfg  im Verzeichnis der Skripte SRP-Enable.bat und SRP-Disable.bat (standardmäßig in C:\Soft\Tools)  der im Pfad C:\Logs\WinConfig an.

    2. Fügen Sie folgende Zeile in die entsprechende cfg-Datei ein, um die Sophos AutoUpdate-Adresse auf  http://softsrv.uni-rostock.de/sophos/intern/latestdef zu konfigurieren:

    SOPHOSCID=http://softsrv.uni-rostock.de/sophos/intern/latestdef
     

  12. Wie kann ich das Abschalten/Einschalten des On-Access-Scanners von Sophos Anti-Virus durch das SRP-Enable.bat/SRP-Disable-Skript aktivieren?
     
    Passen Sie die Variable ConfigAV für die Skripte SRP-Enable.bat und/oder SRP-Disable.bat an.

    Dazu gehen Sie wie folgt vor:

    1. Legen Sie eine leere Datei namens SRP-Enable.cfg und/oder SRP-Disable.cfg  im Verzeichnis der Skripte SRP-Enable.bat und SRP-Disable.bat (standardmäßig in C:\Soft\Tools) oder im Pfad C:\Logs\WinConfig an.

    2. Fügen Sie folgende Zeile in die entsprechende cfg-Datei ein, um eine Rekonfiguration des Sophos On-Access Scanners zu unterbinden:

    ConfigAV=1 
     

  13. Warum wird die Ausführung beliebiger Skripte standardmäßig nicht unterbunden?

    Bei Software Restrictions Version 1 ist führt dies bei einer hohen Anzahl von Skripten zu einer weiteren Vergrößerung der Gruppenrichtliniendatei %Systemroot%\system32\GroupPolicy\Machine\registry.pol und weiteren Verlangsamung der Gruppenrichtlinienverarbeitung und ist daher aus Performancegründen abgeschaltet.

    Bei Applocker und eingeschaltetem UAC (Standard ab Windows Vista und dringend empfohlen) werden alle Prozesse, welche ein Administrator startet, mit Standardbenutzerechten ausgeführt und bei Bedarf per Zustimmungsabfrage mit administrativen Rechten versehen, s. Wozu dient UAC?. Dies gilt auch für Skripte.

    Das Skript SRPv2.ps1, welches Applocker-Regeln erstellt, erlaubt standardmäßig jegliche Skripte aus der Verzeichnisliste, die für den Aufbau der Software Whitelist nach Programmen durchsucht wird. Da ein Administrator, bedingt durch UAC, in diese Verzeichnisse erst nach einer Zustimmungsabfrage schreiben darf, ist es nicht möglich in diese Verzeichnisse unbemerkt Skripte abzulegen.

    Ein unerwünschtes Skript muss also 1. in eines der Verzeichnisse der Software Whitelist Verzeichnisliste kopiert werden und 2. die Zustimmungsabfrage beim Start überwinden, um mit administrativen Rechten ausgeführt zu werden.
     

  14. Wie kann ich den hash-basierten Software Whitelist-Schutz für auch Skriptdateien aktivieren?

    Passen Sie die Variable $INCLUDESCRIPTS für die Skripte SRPv1.ps1 und/oder SPRv2.ps1 an.

    Dazu gehen Sie wie folgt vor:

    1. Legen Sie eine leere Datei namens SRPv1.cfg (alle Betriebssysteme vor Windows 7/Windows Server 2008 R2) oder SRPv2.cfg (nur Windows 7 Enterprise/Ultimate/Windows Server 2008 R2) im Verzeichnis der Skripte SRPv1.ps1/SRPv2.ps1 (standardmäßig in C:\Soft\Tools) oder im Pfad C:\Logs\WinConfig an.

    2. Fügen Sie folgende Zeile in die entsprechende cfg-Datei ein, um den hashbasierten Software Whitelist-Schutz auch auf Skriptdateien auszuweiten:

    $INCLUDESCRIPTS=1

    Versiegeln Sie das System mit dem Skript SRP-SealSystem.bat erneut, um auch für Skriptdateien Hash-Regeln zu erstellen.
     

  15. Fehler: Get-AppLockerFileInformation : The process cannot access the file because it is being used by another process. (Exception from HRESULT: 0x80070020)

    Das System durchläuft gerade den Gruppenrichtlinienupdatezyklus und benutzt die Gruppenrichtliniendateien, daher können diese nicht vom Powershell-Skript aktualisiert werden. Dies kann ignoriert werden. Das Powershell-Skript wiederholt den Zugriff auf die Gruppenrichtliniendatei, bis der Zugriff erfolgreich war.
     

  16. Fehler: WARNING: The following directories cannot be searched: C:\Windows\System32\LogFiles\WMI\RtBackup

    Der Zugriff auf das angebene Verzeichnis wird dem Powershell-Skript verweigert. Befinden sich in diesem Verzeichnis Programmdateien für die Software Whitelist, dann müssen Sie die Zugriffsrechte anpassen, um dem Powershelll-Skript den Zugriff zu erlauben.

 

Bei Fragen oder Hinweisen zu diesem Dokument melden Sie sich bitte per E-Mail bei joerg.maletzky(at)uni-rostock.de.