Best Practice Windows Sicherheitskonfiguration - Wie installiere und konfiguriere ich ein sicheres und robustes Windows-System?
Dieser Anleitung liegt die Überzeugung zugrunde, dass sich die Sicherheitsbarrieren eines Betriebssystems mit Bordmitteln des Betriebssystems ungleich schwerer überwinden lassen, als mit Hilfe einer unendlichen Anzahl von Programmen, welche zum Teil ausschließlich zur Kompromittierung der Sicherheit von Systemen geschaffen wurden.
Aus diesem Grund konzentriert sich diese Anleitung vorrangig auf die Verhinderung der Ausführung von unerwünschten Programmen aus nicht vertrauenswürdigen Quellen.
An dieser Stelle sei als allgegenwärtige nicht vertrauenswürdige Quelle von Software zuerst das Internet genannt.
Die Anleitung richtet sich vor allem an Administratoren, dient der Einrichtung eines sicheren und robusten Windows-Systems und ist auf alle Windows-Systeme ab Windows 10/Windows Server 2016 anwendbar.
Immunisierung von Windows gegen Malware-Angriffe
Die Immunisierung von Windows reduziert den Wirtscharakter von Windows-Systemen für Malware auf die reinen Bordmittel des Betriebssystems und zugelassene Anwendungen.
Folgende von Malware benutzte Windows-Eigenschaften werden durch die Immunisierung von Windows deaktiviert:
- Beliebige Software ist ausführbar.
- Beliebiger ausgehender Netzwerkverkehr ist erlaubt. Beliebiger eingehender Netzwerkverkehr auf alle standardmäßig geöffneten Ports ist erlaubt.
- Administrative Schreibzugriffe sind für Administratoren automatisch ohne Zustimmungsabfrage erlaubt. (Dies gilt ab Windows Vista/Server 2008 nur noch für die built-in Administratoren.)
Drei grundlegende Konfigurationsänderungen
Ziel ist es, durch drei grundlegende Konfigurationsänderungen die Kontrolle über das Betriebssystem zu erlangen:
- Versiegeln: Das Starten von Programmen ist standardmäßig verboten und nur für zugelassene Programme erlaubt.
Programme können nur starten, wenn sie auf einer Whitelist stehen. Unbekannte Programme sind nicht vertrauenswürdig und dürfen nicht starten.
- Isolieren: Ausgehender und eingehender Netzwerkverkehr ist grundsätzlich verboten und nur für festgelegte Ausnahmen erlaubt.
Unbekannter ausgehender und eingehender Netzwerkverkehr ist nicht vertrauenswürdig und wird unterbunden.
- Herabstufen: Die automatische Nutzung von administrativen Rechten für administrativen Konten ist deaktiviert.
Administrative Rechte werden immer erst nach einer Zustimmungsabfrage gewährt. Dies verhindert ungewollte Änderungen am System, wie z.B. Installation von Malware oder Fehlkonfigurationen.
Diese drei einfachen Konfigurationsänderungen unterbinden wirksam diverse Angriffsszenarien unter denen standardmäßig eingerichtete Windows-Systeme leiden.
Vor allem und zuerst profitieren alle Internetanwendungen von der Versiegelung des Systems, welche das unerwünschte Starten von unbekannten Programmen unterbindet.
Für eine Schnellumsetzung der drei o.g. Konfigurationsänderungen könnnen Sie das Skript "QuickWinSec.bat" nutzen. Dieses Skript finden Sie unter "Schnellabsicherung von Windows". Damit besitzt Ihr Windows-System einen Minmalschutz gegen Malware-Angriffe.
Einen umfassenderen Schutz bietet diese Anleitung, vor allem für Server-Systeme an denen als Administrator gearbeitet werden muss.
Vier Konfigurationsprinzipien
Diese Anleitung beruht auf folgenden grundlegenden Prinzipien:
- Beschränke die Zugriffsrechte auf das erforderliche Maß.
Arbeite als Administrator|root|Supervisor nur wenn es unbedingt notwendig ist und wenn, dann nicht mit automatischer Rechtegewährung, s. dazu "Wozu dient UAC - die Benutzerkontensteuerung von Windows?".
- Beschränke die beliebige Ausführung von Programmen.
Erlaube nur Programme, die benötigt werden, s. auch "Software Whitelisting - der bessere Anti-Virus-Schutz".
- Beschränke zufälligen Netzwerkverkehr.
Erlaube nur notwendigen ausgehenden und eingehenden Netzwerkverkehr.
- Benutze möglichst wenige Programme und vermeide die Duplizierung von Funktionalitäten.
Konzentriere Dich auf das zu erreichende Ergebnis.
Beachte: Je mehr Programme, je mehr potentielle Sicherheitsprobleme.
Sicheres Arbeiten als Administrator
Die Konfiguration ist besonders geeignet, um das Arbeiten mit administrativen Rechten unter Windows abzusichern.
Ein "unbreakable" Windows-System
Die Anleitung zeigt eine Konfiguration mit Windows-Bordmitteln, die zu einem "unbreakable" System führt, solange es keine Fehler (Bugs) im Betriebssystems gibt und kein Bruch der Sicherheit durch Kompromittierung des Administrator Passwortes existiert.
Das System kann jetzt nur noch mit einer eingeschränkten Anzahl an Programmen, bestenfalls nur mit den Bordmitteln des Betriebssystems, angegriffen werden. Dadurch wird ein erfolgreicher Angriff auf das System unwahrscheinlich, vor allem im Vergleich mit der Standardkonfiguration eines Windows-Systems.
Ein Windows-System nach dieser Anleitung konfiguriert, ist außerdem weniger für 0-Day-Exploits anfällig.
Jeder, der die Sicherheit eines nach dieser Anleitung konfigurierten Systems brechen kann, wird gebeten, seine Erkenntnisse mit dem Verfasser dieser Anleitung (joerg.maletzky(at)uni-rostock.de) zu teilen. Dies gilt natürlich auch für Hinweise zur Anleitung oder gefundene Fehler.
Langfristige Sicherheitsstrategie
Weiterhin ist diese Anleitung Ausdruck der Überzeugung, dass es langfristig sinnvoller ist, Zeit in die Sicherheit der Endsysteme zu investieren, als sich alleinig auf Netzwerkfirewalls zu verlassen. Netzwerkfirewalls können allgemein die Sicherheit erhöhen, aber letztendlich sehr viele Angriffsszenarien nicht verhindern.
Es ist von grundlegender Bedeutung zu verstehen, dass jedes System in der Lage sein muss, sich selbst zu schützen. Ein isolierter Einsatz von Netzwerkfirewalls zum Schutz vor Sicherheitsproblemen ohne Beachtung der Konfiguration der Endsysteme ist langfristig nicht erfolgversprechend.
Netzwerkfirewalls sind lediglich ein Baustein einer Sicherheitsstrategie, die darauf abzielt einen störungsfreien Betrieb der Endsysteme zu gewährleisten. Das Hauptaugenmerk muss auf der sicheren Konfiguration der Endsysteme liegen!
Konfiguration beruht auf der Anwendung von Standard-Windows-Funktionalitäten
Die Sicherheit eines nach dieser Anleitung konfigurierten Systems baut auf folgende Standard-Windows-Funktionalitäten:
- Software Whitelisting (verfügbar ab Windows XP) - Einschränkung der Ausführbarkeit von Programmen mittels Software Whitelisting.
Die Gundidee ist einfach: Verbiete das Ausführen von beliebigen Programmen und erlaube nur noch das Ausführen von autorisierten Programmen.
Lesen Sie dazu "Software Whitelisting - der bessere Anti-Virus-Schutz" und Skriptbasierte "Versiegelung" des System mittels Applocker - Keine 0-Day-Exploits mehr.
- Firewall (verfügbar ab Windows 2000) - Isolierung des Systems vom Internet mittels Windows Firewall und/oder IPsec-Paketfilter.
Die Windows Firewall und/oder der built-in Paketfilter von IPsec werden so konfiguriert, dass eingehender und ausgehender Netzwerkverkehr nur mit zugelassenen Netzen und IP-Adressen erlaubt ist, s. dazu auch "Nutzung von IPsec als Paketfilter zur Isolierung vom Internet" im Dokument "IPSEC - Verschlüsselung und Paketfilter".
- UAC (verfügbar ab Windows Vista) - striktes Herabstufen jedes administrativen Tokens mittels Mandatory Integrity Control (MIC) und Deaktivierung automatischer Rechtegewährung für administrative Konten, s. auch "Wozu dient UAC - die Benutzerkontensteuerung von Windows?".
Dies wird sehr einfach durch folgende Kommandozeilen erreicht:
reg.exe add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0x1 /f
reg.exe add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v FilterAdministratorToken /t REG_DWORD /d 0x1 /f
reg.exe add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v ConsentPromptBehaviorAdmin /t REG_DWORD /d 0x2 /f
reg.exe add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v PromptOnSecureDesktop /t REG_DWORD /d 0x1 /f
- Zwei-Faktor-Authentifizierung (verfügbar ab Windows 2000) - durch Einschränkung der Reichweite eines Kontos mittels Windows-Nutzerverwaltung und Windows Firewall-Regeln.
Der zweite Faktor für die erfolgreiche Anmeldung mit einem administrativen Konto ist neben dem Administrator-Passwort (erster Faktor - Wissen) der Zugang zu den zugelassenen Systemen (zweiter Faktor- Besitz).
Dies lässt sich sehr einfach erreichen durch
a) Einschränken der erlaubten Systeme an denen sich das zu schützende Konto anmelden darf; per Kommandozeile "net user Kontoname /workstation:TrustedSystem1,TrustedSystem2" oder auch per GUI pro Benutzer in "Active Diectory Benutzer und Computer"-Snap-In.
b) Einschränken des Zugriffs auf den Remote Desktop-Port 3389 per IP-ACL der Windows Firewall und/oder IPsec.
c) Deaktivieren aller betriebssystemfremden Add-Ons, welche eine interaktive Anmeldung erlauben, wie z.B. sshd, VNC usw.
Ausführlichere Konfigurationsanweisungen finden Sie in diesem Dokument weiter unten im Abschnitt "Phase1 - Installation und "Härten" des Systems" in Punkt 4, 5 und 6.
Auswirkungen der Konfiguration
- Deaktivierung aller Angriffsvektoren, welche den Start von unerwünschter Software für Systemangriffe voraussetzen durch die Aktivierung von Software Whitelisting.
Angriffe können nur noch mit zugelassener vertrauenswürdiger Software erfolgen.
- Einschränkung der Benutzung des Administrator-Kontos auf bestimmte Systeme durch die Aktivierung der Zwei-Faktor-Authentifizierung für administrative Konten per net user-workstation-Schalter und IP-ACL für den Remote-Desktop-TCP-Port.
- Alle Angriffsvektoren die Netzwerkverkehr voraussetzen, werden durch die Isolierung des Systems vom Internet durch strikte Firewall-Regeln stark eingeschränkt.
Firewall-Regeln isolieren das System vom nicht vertrauenswürdigen Internet und gewähren nur zugelassenen IP-Adressen Netzwerkzugriff.
Dies betrifft sowohl eingehenden als auch ausgehenden Netzwerkverkehr.
Vorteile der Konfiguration
- Windows-Systeme funktionieren langfristig zuverlässiger und vorhersehbarer, verglichen mit der Standardkonfigurationen.
- Windows-Patches können nach dem Rhythmus der jeweiligen Organisation eingespielt werden und müssen nicht immer sofort installiert und aktiviert werden.
- Die Reichweite von administrativen Konten ist auf vertrauenswürdige IP-Adressen beschränkt, so dass möglichst lange und komplexe Passwörter durch kürzere praktikablere Passwörter ersetzt werden können.
- Die PC-Hardware kann wieder vorrangig für ihre ursprünglichen Aufgabe genutzt werden: erwünschte Software auszuführen.
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 notwendig, wenn neue ungeprüfte Software ausgeführt werden soll.
- Die Akzeptanz von UAC wird durch UAC-Helper erhöht, so dass das Arbeiten als eingeschränkter Administrator unter UAC (administrativer Zugriff nur über Zustimmungsabfrage) selbstverständlicher und das Arbeiten als uneingeschränkter Administrator (wie in alten Windows-Versionen vor Windows Vista und vielen alternativen Betriebssystemen) "unnatürlich" erscheint.
Nachteile der Konfiguration
- Für die Installation von neuer Software einschließlich von Windows Updates muss das Software Whitelisting rekonfiguriert werden, da sich die neue Software noch nicht auf der Software Whitelist befindet.
- Diverse Netzwerkprotolle, welche sich nicht über einen lokalen Proxy-Server lenken lassen, z.B. Multimediastreaming-Protokolle, erfordern eine Anpassung der Isolierung vom Internet durch die Windows Firewall und/oder den IPSec-Filter.
- Die strikte Durchsetzung von UAC verringert die Produktivität durch mehr GUI-Arbeit (Bejahen der Zustimmungsabfragen), dies wird aber deutlich kompensiert durch den Mehrgewinn an Sicherheit und nicht zuletzt auch durch den erhöhten Schutz vor Fehlern, z.B. versehentliches Löschen von Daten.
Beachten Sie zusätzlich die Hinweise im Dokument "Grundregeln für das sichere Arbeiten als Administrator auf Windows-Systemen", "Wozu dient UAC?" und außerdem die Informationen zu Software Whitelisting im Dokument "Software Whitelisting - der bessere Anti-Virus-Schutz".
Konfigurationsprozeß besteht aus zwei Phasen
Der Prozeß des Aufbaus eines sicheren und robusten Windows-System besteht grob gegliedert aus zwei Phasen
- Phase 1: Installation und "Härten" des Systems.
- Phase 2: "Versiegelung" mittels Software Whitelisting.
Änderungen an der Standardkonfiguration
Am Ende der Konfiguration bestehen folgende grundlegende Änderungen gegenüber den Standardsicherheitseinstellungen eines Windows-Systems:
- UAC ist für alle Administratoren eingeschaltet. Dies ist vor allem für Domain Administrators zu empfehlen. Dies wird per Registry-Gruppenrichtlinieneinstellung konfiguriert.
Die daraus entstehenden Unbequemlichkeiten für administrative Arbeiten am System werden durch den Gewinn an Sicherheit aufgewogen und durch die UAC-Helper (s. Punkt 28) stark abgemildert!
Dazu wird u. a. das Explorer-Kontextmenü um folgende Befehle erweitert:
Für Dateien
"Editor..." - Startet Notepad.exe für die ausgewählte Datei mit Standardbenutzerrechten.
"Elevated Editor..." - Startet Notepad.exe für die ausgewählte Datei mit administrativen Benutzerrechten (elevated.)
Für Verzeichnisse
"Command Line..." - Startet Cmd.exe für das ausgewählte Verzeichnis mit Standardbenutzerrechten.
"Elevated Command Line..." - Startet Cmd.exe für das ausgewählte Verzeichnis mit administrativen Benutzerrechten (elevated).
Die Schreibrechte für die Gruppe "Benutzer" aus der ACL der Wurzel des Systemlaufwerks und die Möglichkeit der Gruppe "Authentifizierte Benutzer" eigene Tasks im Task Scheduler anzulegen werden entfernt.
- Firewall-Regeln erlauben den Zugriff auf das System nur aus zugelassenen Netzen und von zugelassenen IP-Adressen. Außerdem ist auch der ausgehende Netzwerkverkehr auf zugelassene IP-Adressen und Ports beschränkt.
- Der Remote Desktop Zugriff ist aktiviert, 128-Bit Verschlüsselung und SSL erzwungen und per IP-ACL nur von festgelegten Systemen erlaubt. Dabei ist Network Level Authentication (NLA) deaktiviert, damit in der Liste der zugelassenen Systeme für geschützte Konten (net.exe user /workstation-Schalter) nicht auch das jeweilige RDP-Client-System aufgeführt werden muss, da bei eingeschalteten serverseitigem NLA auch auf dem RDP-Client-System eine Anmeldung mit dem jeweiligen geschützten Konto erfolgt, bevor die Anmeldung auf dem Ziel-RDP-Server durchgeführt wird.
- Die Protokolle LDAP, SMB, RPC und TCPIP werden gehärtet, s. 16.-22.
- Der built-in Administrator ist deaktiviert und nur im abgesicherten Modus benutzbar. Dies ist Microsoft-Standard auf Windows Nicht-Servern.
- Ein zusätzlich angelegtes administratives Konto "Admin" ist nur auf festgelegten Systemen benutzbar. Dies wird per Workstation-Schalter des net user-Befehls konfiguriert.
- Die Nutzung gemeinsamer Laufwerksverbindungen zwischen Administrator-Token und Normalbenutzer-Token in einer administrativen Sitzung mittels des Schalters EnableLinkedConnections ist aktiviert. Dies verringert die Sicherheit des Systems nur unwesentlich, erhöht jedoch die Akzeptanz des Arbeitens unter UAC erheblich.
Wegen 14. können keine unerwünschten Programme unbemerkt mit administrativen Rechten auf das Netzwerk zugreifen.
- Der administrative Netzwerkzugriff auf Windows-Freigaben ist mittels des Schalters LocalAccountTokenFilterPolicy aktiviert. Diese Einstellung ist wegen 3. und 4. unkritisch, da der administrative Netzwerkzugriff per Workstation-Schalter des net user-Befehls und der Netzwerkzugriff allgemein per Firewall-Regeln eingeschränkt wird.
Der administrative Zugriff auf das System per Loopback-Adapter (127.0.0.1) ist jetzt auch möglich, jedoch überwiegen die positiven Auswirkungen, da unerwünschte Software durch die Aktivierung von Software Whitelisting (s. Punkt 14) nicht startbar ist und Angriffe folglich lediglich mit Bordmitteln erfolgen können.
- Auf Nicht-Servern ist ein Normalbenutzer-Konto für alltägliche nicht-administrative Aufgaben angelegt.
- SMB1 ist deaktiviert.
- PowerShell 2 ist deaktiviert.
- Print Spooler ist deaktiviert.
- Das System ist per Software Whitelisting geschützt, d.h. jegliche Ausführung von unbekannten Programmen ist unterbunden.
Dies betrifft auch das Laden von DLLs und das Starten von .BAT-, .PS1-, .JS- und .VBS-Skriptdateien aus beliebigen Pfaden.
Eine ausführliche Beschreibung der Änderungen finden Sie im nachfolgenden Text.
Automatisierung des Konfigurationsprozesses
Die weiter unten aufgeführten Kommandozeilen einschließlich des Applocker-Toolkits zum "Versiegeln" ihres Systems finden Sie unter https://softsrv.uni-rostock.de/pub/uni-rostock/rz/NT-Kurs/ToolKit/WinConfig.cab als Batch-Skript, welches Sie durch Veränderungen von Variablen des Skriptes an Ihre Systeme anpassen können.
Lesen Sie bitte unbedingt die Beschreibung des Skriptes unter WinConfig-Toolkit, bevor Sie das Skript auf Ihr System anwenden.
Phase 1 - Installation und "Härten" des Systems
Achtung! Sämtliche Kommandos sind nur als Vorlage zu verstehen, dienen der Erklärung der Konfiguration und müssen eventuell Ihrem System angepasst werden.
- Standardinstallation. (Optional)
- Konfiguration der IP-Adressen. (Optional)
IP-Konfiguration
netsh.exe interface ipv4 set address "Local Area connection" static 192.168.0.2 255.255.255.0 192.168.0.1
netsh.exe interface ipv4 add dnsserver "Local Area Connection" 192.168.0.1 index=1
netsh.exe interface ipv4 add dnsserver "Local Area Connection" 192.168.0.100 index=2
- Setzen des Computernamens (Optional)
netdom.exe renamecomputer %COMPUTERNAME% /NewName:NeuerComputername/force
- Einschränken von zugelassenen IP-Adressen mittels Windows Firewall.
Anschließend ist sowohl eingehender als auch ausgehender! Netzwerkverkehr nur mit festgelegten IP-Adressen möglich.
Weiterhin wird der RDP-Port 3389 (Remote Desktop) nur für benötigte IP-Adressen freigeschaltet.
Das Konfigurationsprinzip ist einfach: Verbiete sämtlichen Netzwerk und definiere anschließend die gewünschten Ausnahmen.
Die erste Maßnahme wird der ausgehende und eingehende Netzwerkverkehr unterbunden und anschließend nur noch für festgelegte Ausnahmen zugelassen.
netsh.exe advfirewall set allprofiles firewallpolicy blockinbound,blockoutbound
Weiterhin werden alle vorhandenen Firewallregeln rekonfiguriert, um Netzwerkverkehr nur mit dem lokalen Subnetz des Systems zu erlauben:
netsh.exe advfirewall firewall set rule name="all" new remoteip=localsubnet
Anschließend müssen eventuell Ausnahmen für den Zugriff auf bestimmte Standardnetzdienste wie z.B. DNS, KMS, MAIL, NTP, HTTP, HTTPS, RDP, SSH usw. definiert werden, wenn diese Netzdienste sich außerhalb des Subnetzes des Systems befinden.
Eine Beispielkonfiguration finden im Skript WinConfig.bat im Abschnitt:
REM *********************************************************************************************
REM Windows Firewall configuration
REM *********************************************************************************************
Eine Beschreibung des Skriptes finden Sie unter WinConfig-Toolkit.
Die Windows Firewall lässt sich auch manuell per Windows Firewall-GUI konfigurieren, s. auch https://learn.microsoft.com/en-us/windows/security/operating-system-security/network-security/windows-firewall/tools#windows-defender-firewall-with-advanced-security .
- Neuanlage eines zusätzlichen Administratorkontos Admin, Setzen des Admin-Passwortes auf ein ausreichend starkes Passwort und Einschränkung der Nutzung des Admin-Kontos auf zugelassene Systeme mittels des Workstations-Schalters des net user-Befehls durch folgende Kommandozeilenbefehle:
net.exe user admin passwd /add /expires:never /workstations:%COMPUTERNAME% /comment:"Local Administrator"
net.exe localgroup administrators admin /add
Dies schränkt die Nutzung des Kontos auf die Systeme ein, welche durch den /workstation-Schalter festgelegt wurden. Dies gilt das Erzeugen von Prozessen und für alle Netzwerkprotokolle, welche NTLM oder Kerberos für die Authentifizierung benutzen, z.B. SMB, RPC, RDP usw.
Die Einschränkungen für diese Einstellung sind wie folgt:
Lokale Nutzerverwaltung: 8 Workstations, s.
https://learn.microsoft.com/en-us/windows/win32/api/lmaccess/ns-lmaccess-user_info_1014
Active Directory: 1024 Zeichen (Standard) , 8192 Zeichen (Maximum), s.
https://learn.microsoft.com/en-us/troubleshoot/windows-server/active-directory/this-property-limited-64-values
https://learn.microsoft.com/en-us/windows/win32/adschema/a-userworkstations
Mehrere Computer müssen mit ihrem jeweiligen NetBIOS-Namen Komma getrennt angegeben werden, z.B.
"%COMPUTERNAME%,PC1,LAPTOP"
ACHTUNG! Es wird nur der Computername des Client-Systems überprüft, nicht dessen IP-Adresse, d.h. in einer Umgebung mit zugelassenem NTLM-Protokoll kann durch das das Fälschen von Computernamen diese Einstellung umgangen werden.
Die Reichweite des built-in Administrator-Kontos lässt sich auf diese Art nicht einschränken.
Weitere Informationen zur Einschränkung der Reichweite eines Windows-Kontos unter:
https://techcommunity.microsoft.com/t5/microsoft-entra-blog/question-about-ad-authentication-put-in-context/ba-p/243113
https://learn.microsoft.com/en-us/archive/blogs/yuridiogenes/when-security-in-mind-doesnt-match-with-the-applications-security
- Anmelden mit dem neuangelegten Administrator-Konto.
- Deaktivieren des internen Administrators durch folgenden Kommandozeilenbefehl
net.exe user administrator /active:no
Das deaktivierte built-in Administrator-Konto kann jedoch im abgesicherten Modus benutzt werden.
- Konfiguration von UAC und weiteren notwendigen Einstellungen Aktivierung von UAC für alle Nutzer einschließlich des built-in Administrators und Deaktivierung der UAC-Whitelist Funktionalität mittels folgender Kommandozeilen, s.
http://technet.microsoft.com/en-us/library/dd835564(WS.10).aspx
https://learn.microsoft.com/en-us/windows/security/application-security/application-control/user-account-control/settings-and-configuration
reg.exe add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v FilterAdministratorToken /t REG_DWORD /d 0x1 /f
reg.exe add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v ConsentPromptBehaviorAdmin /t REG_DWORD /d 0x2 /f
reg.exe add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v PromptOnSecureDesktop /t REG_DWORD /d 0x1 /f
- Entfernen der Standardschreibrechte für Gruppe Benutzer auf dem Systemlaufwerk und der Möglichkeit der Gruppe "Authentifizierte Benutzer" eigene Tasks im Task Scheduler anzulegen.
icacls.exe %SystemDrive%\ /remove:g *S-1-5-32-545
icacls.exe %SystemDrive%\ /grant *S-1-5-32-545:(ci)(oi)rx
icacls.exe %Systemroot%\system32\Tasks /save "%SystemRoot%\system32\config\URZ\ACLs_Tasks_System32_RootFolder"
icacls.exe %Systemroot%\system32\Tasks\* /save "%SystemRoot%\system32\config\URZ\ACLs_Tasks_System32_SubFolders" /t
icacls.exe %Systemroot%\system32\Tasks /remove *S-1-5-11
icacls.exe %Systemroot%\system32\Tasks /grant *S-1-5-11:(ci)(rc)
icacls.exe %Systemroot%\system32\Tasks /grant *S-1-5-11:(oi)(gr)
icacls.exe %Systemroot%\syswow64\Tasks /save "%SystemRoot%\system32\config\URZ\ACLs_Tasks_SysWOW64_RootFolder"
icacls.exe %Systemroot%\syswow64\Tasks\* /save "%SystemRoot%\system32\config\URZ\ACLs_Tasks_SysWOW64_SubFolders" /t
icacls.exe %Systemroot%\syswow64\Tasks /remove *S-1-5-11
icacls.exe %Systemroot%\syswow64\Tasks /grant *S-1-5-11:(ci)(rc)
icacls.exe %Systemroot%\syswow64\Tasks /grant *S-1-5-11:(oi)(gr)
- Aktivierung von Credential Guard, s.
https://learn.microsoft.com/en-us/windows/security/identity-protection/credential-guard/configure
reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v "EnableVirtualizationBasedSecurity" /t REG_DWORD /d 1 /f
reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v "RequirePlatformSecurityFeatures" /t REG_DWORD /d 1 /f
reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v "LsaCfgFlags" /t REG_DWORD /d 2 /f
- Remote Desktop Aktivierung (Optional)
REM Zulassen von Remote Desktop
reg.exe add "HKLM\System\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0x0 /f
- Deaktivierung von Network Level Authentication notwendig für Anmeldeeinschränkung des administrativen Kontos mittels Zwei-Faktor-Authentifizierung per Net-User-Workstation-Schalter und IP-ACL
reg.exe add "HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0x1 /f
- Erzwingen von TLS für Remote Desktop
reg.exe add "HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SecurityLayer /t REG_DWORD /d 0x2 /f
- Erzwingen aktualisierter RDP-Clients für Sicherheitsproblem von CredSSP CVE-2018-0886, s. https://support.microsoft.com/en-us/topic/credssp-updates-for-cve-2018-0886-5cbf9e5f-dc6d-744f-9e97-7ba400d6d3ea
reg.exe add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 0x0 /f
- Erzwingen von Packet Signing für den SMB-Server
reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" /v EnableSecuritySignature /t REG_DWORD /d 0x1 /f
reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" /v RequireSecuritySignature /t REG_DWORD /d 0x1 /f
- Erzwingen von LDAP-Signing für Windows Domain Controller
reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Parameters" /v LDAPServerIntegrity /t REG_DWORD /d 0x2 /f
- Erzwingen von 128-Bit Verschlüsselung für RPC-Protokolle
reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0" /v NtlmMinClientSec /t REG_DWORD /d 0x20000000 /f
reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0" /v NtlmMinServerSec /t REG_DWORD /d 0x20000000 /f
- Aktivierung von DEP (Data Execution Prevention) und der Anzeige des Ladens der Systemtreiber beim Start
bcdedit.exe /set nx optin
bcdedit.exe /set sos true
- Internet Explorer Enhanced Security Configuration (IE ESC) Nutzer=Off Administrator=On (nur auf Windows Servern) (Optional)
rundll32.exe C:\Windows\system32\iesetup.dll,IEShowHardeningDialog
- Diverse Komforteinstellungen (Optional)
REM *********************************************************************************************
REM Anzeige des Desktops nach einer Verzögerung von 1 Sekunde durch die Konfiguration der Einstellung DelayedDesktopSwitchTimeout = 1, s.
https://learn.microsoft.com/en-us/troubleshoot/windows-server/user-profiles-and-logon/welcome-screen-displayed-for-30-seconds
REM *********************************************************************************************
reg.exe add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v DelayedDesktopSwitchTimeout /t REG_DWORD /d 0x1 /f
REM *********************************************************************************************
REM Aktivieren ausführlicher Meldungen beim Bootvorgang, s. https://learn.microsoft.com/en-us/troubleshoot/windows-server/performance/enable-verbose-startup-shutdown-logon-logoff-status-messages
REM *********************************************************************************************
reg.exe add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v VerboseStatus /t reg_dword /d 0x1 /f
REM *********************************************************************************************
REM Deaktivieren von des erwzungenen "Affengriffs" CTRL-ALT-ENTF, s. https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-2000-server/cc978776(v=technet.10)?redirectedfrom=MSDN
REM *********************************************************************************************
reg.exe add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v disablecad /t reg_dword /d 0x1 /f
REM *********************************************************************************************
REM Deaktivieren des Shutdown Events Trackers, s. https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc776766(v=ws.10)?redirectedfrom=MSDN
REM *********************************************************************************************
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Reliability" /v ShutdownReasonOn /t reg_dword /d 0x0 /f
- Deaktivieren von IPv6, wenn nicht benötigt, s. dazu https://learn.microsoft.com/en-us/troubleshoot/windows-server/networking/configure-ipv6-in-windows
reg.exe add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters /v DisabledComponents /t reg_dword /d 0xff /f
- Anlegen eines nicht-administrativen Nutzers für alltägliche nicht-administrative Arbeiten (Nur auf Nicht-Servern).
net.exe user normaluser passwd /add /comment:"Normal User"
- Die PowerShell Version 2 wird deaktiviert, um das Ausführen von unerwünschten PowerShell-Code durch Umgehung des Constraint Language Modes zu unterbinden, s. dazu auch https://devblogs.microsoft.com/powershell/powershell-constrained-language-mode/.
- Deaktivierung von SMBv1, s. dazu https://learn.microsoft.com/en-us/windows-server/storage/file-server/troubleshoot/detect-enable-and-disable-smbv1-v2-v3.
- Deaktivierung des Dienstes Print Spooler, s. dazu https://learn.microsoft.com/en-us/defender-for-identity/security-assessment-print-spooler.
- Installation folgender Systemtools, UAC-Helper und zusätzlicher Software mittels eines administrativen Kontos.
Beachten Sie die Regel: Je mehr Anwendungen, je mehr potentielle Sicherheitsprobleme.
Vermeiden Sie also eine Duplizierung von Funktionalitäten!
So macht es z.B. keinen Sinn auf Windows Servern einen zusätzlichen Browser zu installieren, da der Internet Explorer auf Windows Servern standardmäßig wesentlich restriktiver und damit sicherer konfiguriert ist, als beispielsweise Mozilla Firefox und deshalb die Sicherheit durch einen zusätzlichen Browser nicht erhöht wird!
Dies gilt grundsätzlich auch für Nicht-Server ab Windows Vista, da bisher kein alternativer Browser, abgesehen von Google Chrome, Windows Integrity Level (UAC) vollständig unterstützt.
Installation von Systemtools
Pfad C:\Soft\Tools anlegen und der PATH-Umgebungsvariable hinzufügen:
If Not Exist C:\Soft\Tools MD C:\Soft\Tools
setx PATH "%PATH%;C:\Soft\Tools;" /m
UAC-Helper und zusätzlich Systemsoftware nach C:\Soft\Tools installieren
Elevate-Kommandozeilentools zum Heraufstufen von Prozessen per Kommandozeile (elevate.cmd, elevate.vbs)
ftp://ftp.uni-rostock.de/pub/uni-rostock/rz/NT-Kurs/AdminTools/System/Elevate.zip
Sysinternals-Tools-Sammlung
Sysinternals Tools
- Installation der UAC-Helper
Die UAC-Helper mildern für Administratoren die Unbequemlichkeiten ständig unter UAC arbeiten zu müssen, also nur optional per Zustimmungsabfrage Administrator-Rechte nutzen zu können. Indirekt erhöhen UAC-Helper die Sicherheit ihres Systems, da sie die Akzeptanz von UAC erhöhen und dazu führen, dass UAC nicht deaktiviert wird.
Folgende UAC-Helper werden per Registry-Einträge aktiviert:
a) Die UAC-Hilfe "Elevated Command Line..." startet über das Rechte-Maustaste-Menü eines Ordners eine cmd.exe mit administrativen Rechten in dem dazugehörigen Ordner.
Explorer Kontext-Menü für Verzeichnisse "Elevated Command Line..." per runas-Funktionalität mittels folgender Kommandozeilen konfigurieren:
reg.exe add HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\runas /v "" /t REG_SZ /d "Elevated Command Line..." /f
reg.exe add HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\runas\command /v "" /t REG_SZ /d "cmd.exe /k cd /d \"%1\"" /f
b) Die UAC-Hilfe "Elevated Editor..." started über das Rechte-Maustaste-Menü einer Datei einen Editor mit administrativen Rechten und lädt die ausgewählte Datei.
Explorer Kontext-Menü für alle Dateien "Elevated Editor..." per Elevate-Kommandozeilentools (s. oben) mittels folgender Kommandozeilen konfigurieren:
reg.exe add HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\runasEditor /v "" /t REG_SZ /d "Elevated Editor..." /f
reg.exe add HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\runasEditor\command /v "" /t REG_SZ /d "wscript.exe //nologo %%SystemRoot%%\elevate.vbs notepad.exe \"%1\"" /f
c) Aktivierung der Nutzung gemeinsamer Laufwerksverbindungen zwischen Administrator-Token und Normalbenutzer-Token mittels des Schalters EnableLinkedConnections = 1, s. https://learn.microsoft.com/en-us/troubleshoot/windows-client/networking/mapped-drives-not-available-from-elevated-command
reg.exe add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLinkedConnections /t REG_DWORD /d 0x1 /f
d) Aktivierung des administrativen Netzwerkzugriffs auf Windows-Freigaben mittels des Schalters LocalAccountTokenFilterPolicy = 1, s. https://learn.microsoft.com/en-us/troubleshoot/windows-server/windows-security/user-account-control-and-remote-restriction
reg.exe add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 0x1 /f
- Zusätzliche Software nach C:\Soft\Apps installieren (optional)
Notepad++ - Textdateieditor
- Installation der aktuellen Windows-Patches per Windows-GUI oder mithilfe des oben installierten Windows Update Kommandozeilentools wuinstall.exe.
REM *********************************************************************************************
REM Set variable OSLanguage
REM *********************************************************************************************
for /f %%1 in ('wmic os get OSLanguage /format:textvaluelist.xsl ^| findstr /i OSLanguage') do set %%1
if %OSLanguage% equ 1031 %SystemDrive%\soft\tools\wuinstall.exe /install /match "Sicherheitsupdate"
if %OSLanguage% equ 1031 %SystemDrive%\soft\tools\wuinstall.exe /install /match "Update"
if %OSLanguage% equ 1033 %SystemDrive%\soft\tools\wuinstall.exe /install /match "Security Update"
if %OSLanguage% equ 1033 %SystemDrive%\soft\tools\wuinstall.exe /install /match "Update"
- Windows Update aktivieren und Update-Zyklus auf täglich 3 Uhr und Download konfigurieren, s. http://technet.microsoft.com/en-us/library/cc720464(WS.10).aspx
explorer.exe shell:::{36eef7db-88ad-4e81-ad49-0e313f0c35f8} (Aufruf Konfigurations-GUI)
reg.exe add HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /v AUOptions /t REG_DWORD /d 0x3 /f
reg.exe add HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /v ElevateNonAdmins /t REG_DWORD /d 0x1 /f
reg.exe add HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /v EnableFeaturedSoftware /t REG_DWORD /d 0x1 /f
reg.exe add HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /v IncludeRecommendedUpdates /t REG_DWORD /d 0x1 /f
reg.exe add HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /v ScheduledInstallDay /t REG_DWORD /d 0x0 /f
reg.exe add HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /v ScheduledInstallTime /t REG_DWORD /d 0x3 /f
Konfiguration des "Versiegeln" des Systems per Software Whitelisting beim nächsten Reboot, wenn möglich, s. Systemvoraussetzungen in Dokument "Skriptbasierte "Versiegelung" des System mittels Applocker - Keine 0-Day-Exploits mehr". Zusätzlich wird das Applocker-Logging deaktiviert und eine Integritätsprüfung des Systems beim nächsten Reboot durchgeführt, s. "Anpassen der FC-Skripte".
- Neustart des Systems
Phase 2 - "Versiegelung" mittels Software Whitelisting skriptbasiert per Powershell oder manuell per Gruppenrichtlinien Snap-In "gpedit.msc"
- Manuelle "Versiegelung" des System per Software Whitelisting mittels Applocker oder
"Skriptbasierte "Versiegelung" des Systems per Software Whitelisting mittels Applocker".
Bei Fragen oder Hinweisen zu diesem Dokument melden Sie sich bitte per E-Mail bei joerg.maletzky(at)uni-rostock.de.