Software Whitelisting - der bessere Schutz vor Malware
Das Grundprinzip
Software Whitelisting erlaubt das Ausführen von vorher festgelegten Programmen und verhindert das Ausführen von allen Programmen, welche nicht auf einer Positivliste (Whitelist) stehen.
Im Gegensatz dazu verhindert Software Blacklisting das Ausführen von vorher festgelegten Programmen.
Ein Beispiel für die Anwendung von Software Blacklisting sind Anti-Virus-Programme. Software Blacklisting bietet leider keinen Schutz vor unbekannten Gefahren, wie z.B. 0-Day-Exploits.
Aus diesem Grund sollten Viren- und Malwarescanner lediglich als ein zusätzlicher Schutz und NICHT als Voraussetzung für ein sicheres System betrachtet werden.
Software Blacklisting bietet oft mehr gefühlte Sicherheit als wirklichen Schutz vor Angriffen.
Software Whitelisting kann dagegen wirksam die Ausführung jeglicher Software verhindern, welche nicht auf der Whitelist steht. Nur zugelassene Software kann gestartet werden.
Dadurch kann die PC-Hardware wieder vorrangig für ihre ursprünglichen Aufgabe genutzt werden: erwünschte Software auszuführen.
Software Whitelisting-Funktionalität seit Windows XP in Windows enthalten
Windows enthält seit Windows XP (2001) eine Software Whitelisting-Funktionalität namens Software Restrictions.
Mit Windows 7 (2008) wurde diese Software Whitelisting-Funktionalität von Microsoft durch Applocker um eine weitere Software Whitelisting-Lösung ergänzt.
Applocker ist im Gegensatz zu den Software Restrictions jedoch nur bei bestimmten Windows-Editionen, z.B. Windows 10 Enterprise und Windows 10 Education nutzbar, s. dazu
https://technet.microsoft.com/itpro/windows/keep-secure/requirements-to-use-applocker
Seit Windows 10 und Windows Server 2016 wird Code Integrity als Bestandteil der Device Guard-Funktionalität ausgeliefert.
Code Integrity ist die dritte Generation einer Software Whitelisting-Funktionalität von Microsoft. Code Integrity selbst wird von Microsoft seit Windows 10 (1709) als Windows Defender Application Control, kurz WDAC, bezeichnet und damit als Funktionalität der Antivirus-Lösung Microsoft Defender zugeordnet.
Wovor kann Microsoft Software Whitelisting schützen?
- Vor dem direkten oder indirekten Start von unerwünschter Software und Skript-Dateien (Viren, Trojaner, usw.) durch Benutzer und Administratoren.
- Vor 0-Day-Exploits, die unerwünschte Software und Skript-Dateien starten.
- Vor DLL-Binary-Planting Angriffen.
Wovor kann Microsoft Software Whitelisting nicht schützen?
- Vor Angriffen auf oder durch zugelassene Software wie z.B. Browsern, Mailprogrammen, Viewern, Textverarbeitungen usw.
- Vor 0-Day-Exploits, die Fehler in zugelassenen Anwendungen oder im Betriebssystem ausnutzen, um mit vorhandener und zugelassener Software unerwünschte Aktionen durchzuführen.
- Vor dem Start von beliebiger Software und beliebigen Skript-Dateien durch das built-in Benutzerkonto System außer Sie nutzen Code Integrity (WDAC).
Microsoft Software Whitelisting kann nicht für das Systemkonto aktiviert werden, s. Auswirkungen von Software Whitelisting auf das Systemkonto (built-in Benutzer "System" außer Sie nutzen Code Integrity (WDAC)!
Die Nutzung von Software Whitelisting ermöglicht die Deaktivierung von Software Blacklisting (Viren- und Malwarescanner) für die auf der Positivliste stehenden Dateien, so dass mehr Hardware-Ressourcen für erwünschte Anwendungen zur Verfügung stehen.
Software Blacklisting ist nur noch für Programme notwendig, die aktive Inhalte per Skriptsprache verarbeiten können, z.B. Webbrowser, und wenn neue ungeprüfte Software ausgeführt werden soll.
Das Ausführen von Programmen wird durch Microsoft Software Whitelisting entweder per Dateinamen und Verzeichnispfaden (Pfadregeln) oder per Hashregeln und/oder Zertifikatsregeln gesteuert.
Microsoft Software Whitelisting per Pfadregeln
Diese Form der Microsoft Software Whitelist ist am praktikabelsten, da sie sich ohne großen Konfigurationsaufwand anwenden lässt. Dabei wird für jede ausführbare Datei der Dateiname und Dateipfad gespeichert oder global ganze Verzeichnisse freigegeben.
Das Prinzip ist einfach: Arbeite als Normalnutzer und erlaube das Starten von Programmen nur aus schreibgeschützten Pfaden.
Der Nachteil besteht in der geringeren Sicherheit im Vergleich zum aufwendigeren Software Whitelisting per Hashregeln. Software Whitelisting per Pfadregeln eignet sich besondern für die Arbeit unter einem nicht administrativen Konto, bietet jedoch wenig Schutz bei der Arbeit unter einem administrativen Konto.
Beim Starten eines Programms wird der Dateiname oder der Dateipfad mit der vorher erstellten Pfadregel-Whitelist verglichen. Das Programm kann nur gestartet werden, wenn sich der Programmdateiname oder der Programmdateipfad in der Pfadregel-Whitelist befindet.
Microsoft Software Whitelisting per Hashregeln und/oder Zertifikatsregeln
Microsoft Software Whitelisting per Hashregeln bietet den besten Schutz vor unerwünschter Software und sollte auf kritischen System, wie z.B. Servern, unbedingt eingesetzt werden. Dabei wird für jede ausführbare Datei eine Regeln gebildet und in einer Software Whitelist gespeichert. Beim Starten eines Programms wird das entsprechende Programm per Software Whitelist überprüft. Das Programm kann nur gestartet werden, wenn sich in der Software Whitelist eine entsprechende Zertifikats- oder Hashregel für das zu startende Programm befindet.
Das Absichern von Systemen per Hash- und/oder Zertifikatsregeln ist besonders für die Arbeit unter administrativen Konten geeignet und daher ideal zur Absicherung von kritischen System geeignet. Anders als das Microsoft Software Whitelisting per Pfadregeln ist hierbei auch der Schutz von Administratoren vor unerwünschter Software gewährleistet. Das System wird sozusagen "versiegelt".
Mit Bordmitteln ist diese Form des Microsoft Software Whitelisting erst ab Windows 7 und Windows Server 2008 R2 offiziell einsetzbar, da in den vorherigen Windows-Versionen ein Scripting der Konfiguration von Software Restrictions durch Microsoft nicht unterstützt wird. Es war jedoch seit Windows XP möglich, Software Whitelist über Registry-Einträge automatisiert zu erstellen. Diese Form der Konfiguration nutzt ausschließlich die Registry und nicht die Gruppenrichtliniendateien, so dass die Einstellungen der Software Whitelist im Gruppenrichtlinien-Snap-In gpedit.msc nicht sichtbar sind.
Die kommerzielle Group Policy Automation Engine (GPAE) ermöglicht das Scripting der Software Restrictions über Gruppenrichtlinieneinstellungen auch für ältere Windows-Versionen.
Auswirkungen von Microsoft Software Whitelisting auf das Systemkonto (built-in Benutzer "System")
Beim Einsatz von Software Restrictions und Applocker kann Software Whitelisting NICHT für das Systemkonto aktiviert werden!
Somit ist für das Systemkonto jedes Programm unabhängig vom Status der systemweiten Software Whitelist startbar.
Dies gilt nicht beim Einsatz von Code Integrity (WDAC), da Code Integrity-Regeln unabhängig vom jeweiligen Nutzer angewendet werden.
Das Systemkonto wird für das Starten aller Prozesse des Betriebssystem einschließlich verschiedener Dienste verwendet.
Folgende Prozesse werden unter dem Systemkonto ausgeführt:
- das Betriebssystem und dazugehörige Prozesse: Kernel (ntoskrnl.exe), Session Manager (smss.exe), Client-Server-Runtime (csrss.exe), Local Security Authority (lsass.exe),TrustedInstaller.exe, etc.
- Verschiedene Systemdienste: Druckdienst (Spooler), Zeitplanungsdienst (Scheduler), etc
Es ist wichtig zusätzliche Dienste grundsätzlich unter den nicht-administrativen built-in Dienstekonten Localservice und Networkservice oder einem Normalbenutzerkonto auszuführen, um die Angriffsvektoren auf das System zu minimieren, da für alle Benutzerkonten außer dem Systemkonto Microsoft Software Whitelisting aktiviert werden kann.
Ausführungsverhalten von unerwünschter Software bei aktiviertem Software Whitelisting
Benutzer | Software Restrictions | Applocker | Code Integrity (WDAC) |
---|---|---|---|
Standardbenutzer | nicht startbar | nicht startbar | nicht startbar |
Administrativer Benutzer | nicht startbar | nicht startbar | nicht startbar |
Systemkonto | startbar | startbar | nicht startbar |
Konfiguration von Microsoft Software Whitelisting
Per Pfadregeln
Befolgen Sie die Anweisungen
- im Dokument "Schnellabsicherung von Windows". (ab Windows Vista/Windows Server 2008)
- im Dokument "Versiegeln" von Windows-Systemen mittels Applocker
- im Abschnitt "Software Whitelisting einschalten" im Dokument "Softwareeinschränkungen - Software Whitelisting und Nicht-privilegierte Anwendungen - "Application Sandboxing" (Ab Windows XP Professional oder höher)". (ab Windows XP/Windows Server 2003)
Per Hashregel
Befolgen Sie die Anweisungen in den Anleitungen
- Skriptbasierte "Versiegelung" des Systems per Software Whitelisting mittels Software Whitelisting. (ab Windows XP/Windows Server 2003)
- Manuelle "Versiegelung" von Windows-System mittels Applocker. (ab Windows 7/Windows Server 2008 R2)
Weitere Informationen
- Using Software Restriction Policies to Protect Against Unauthorized Software
- Software Restriction Policies Technical Reference (Windows XP/ Windows Server 2003)
- Applocker (Windows 7/Windows Server 2008 R2)
- Applocker Overview (Windows 8.1/Windows Server 2012 R2)
- Applocker (Windows 10)
- NSA Security Configuration Guides - Dokument "Application Whitelisting using Software Restriction Policies"
- NSA -Information Assurance Guidance
- Nation Cyber Security Center der britischen Regierung
- VirusTotal - Online Virus-Scanner
Andere Software Whitelisting-Lösungen
Bei Fragen oder Hinweisen zu diesem Dokument melden Sie sich bitte per E-Mail bei joerg.maletzky(at)uni-rostock.de.