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:
- Versiegelung per Software Whitelisting – nur Software auf einer Positivliste ist ausführbar, s. auch "Software Whitelisting - der bessere Virenschutz"
- Isolierung per Firewall – nur zugelassener Netzwerkverkehr ist erlaubt, s. auch Offene Ports einer Standard-Windows-Installation
- 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:
Getrennte Whitelists für Programmdateien (*.exe, *.com), Programmbibliotheken (*.dll, *.ocx), Skriptdateien (*.bat, *.cmd, *.js, *.ps1, *.vbs, *.wsh) und Windows Installer-Dateien (*.msi, *.msp).
- Verfügbarkeit von nutzerbezogenen Regeln.
Einfacher Import und Export des Regelwerks über XML-Dateien.
Applocker ist die empfohlene Methode für den Einsatz von Software Whitelists unter Windows.
Systemvorausetzungen
- 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.
- 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
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?
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 | 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 | Erlaube alle Skripte der CMD.exe (*.bat und *.cmd) | |
$AllowFullLanguageMode | 0 oder 1 | Erlaube Full Language Mode innerhalb interaktiver PowerShell für bestimmte Nutzer (festgelegt über Skriptvariable $FullLanguageModeUsers) | |
$AllowPsScriptFiles | 0 oder 1 | Erlaube alle Skripte der PowerShell (*.ps1) | |
$AllowWSHScriptFiles | 0 oder 1 | 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 | 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 | 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
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
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.
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
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
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\NETLOGONWelche 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.
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.
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"
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!
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.
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.- 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.
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.
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
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
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.
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.
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.
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.