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:

  1. Beliebige Software ist ausführbar.
     
  2. Beliebiger ausgehender Netzwerkverkehr ist erlaubt. Beliebiger eingehender Netzwerkverkehr auf alle standardmäßig geöffneten Ports ist erlaubt.
     
  3. 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:

  1. 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.
     
  2. 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.
     
  3. 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:

  1. 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?".
     
  2. Beschränke die beliebige Ausführung von Programmen.
     
    Erlaube nur Programme, die benötigt werden, s. auch "Software Whitelisting - der bessere Anti-Virus-Schutz".
     
  3. Beschränke zufälligen Netzwerkverkehr.
     
    Erlaube nur notwendigen ausgehenden und eingehenden Netzwerkverkehr.
     
  4. 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:

  1. 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".
     
  2. 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".
     
  3. 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 add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
    /v EnableLUA /t REG_DWORD /d 0x1 /f

    reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
    /v FilterAdministratorToken /t REG_DWORD /d 0x1 /f

    reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
    /v ConsentPromptBehaviorAdmin /t REG_DWORD /d 0x2 /f
    reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
    /v PromptOnSecureDesktop /t REG_DWORD /d 0x1 /f
     
  4. 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

  1. 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.
     
  2. 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. 
     
  3. 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

  1. Windows-Systeme funktionieren langfristig zuverlässiger und vorhersehbarer, verglichen mit der Standardkonfigurationen.
     
  2. Windows-Patches können nach dem Rhythmus der jeweiligen Organisation eingespielt werden und müssen nicht immer sofort installiert und aktiviert werden.
      
  3. 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.
      
  4. 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.
     
  5. 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

  1. 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.
     
  2. 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.
     
  3. 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".

Skriptbasierte Software Whitelisting-Regeln mittels Gruppenrichtlinien erst ab Windows 7/Windows Server 2008 R2 mit Bordmitteln verfügbar

Die Konfiguration der Software Whitelist können unter Windows Vista/Windows Server 2008 entweder manuell per Gruppenrichtlienien-Snap-In "gpedit.msc" realisiert werden oder direkt unter Umgehung der Gruppenrichtlinien in die Registry geschrieben werden. Dabei sind die gesetzten Regeln per Gruppenrichtlinien-Snap-In "gpedit.msc" nicht sichtbar, werden jedoch trotzdem vom System beachtet. 
 
Alternativ ist es möglich, die gruppenrichtlinienbasierte Software Restrictions per Powershell-Skripts mit der kostenpflichtigen Zusatzsoftware  GPExpert Software Group Policy Automation Engine (GPAE) auf allen Windows Systemen ab Windows XP umzusetzen.

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:

  1. 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).
     
  2. 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. 

  3. 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.
     
  4. 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.
     
  5. Die Protokolle LDAP, SMB, RPC und TCPIP werden gehärtet, s. 16.-22.
     
  6. Der built-in Administrator ist deaktiviert und nur im abgesicherten Modus benutzbar. Dies ist Microsoft-Standard auf Windows Nicht-Servern.
     
  7. Ein zusätzlich angelegtes administratives Konto "Admin" ist nur auf festgelegten Systemen benutzbar. Dies wird per Workstation-Schalter des net user-Befehls konfiguriert.
     
  8. 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 10. können keine unerwünschten Programme unbemerkt mit administrativen Rechten auf das Netzwerk zugreifen.
     
  9. 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 10) nicht startbar ist und Angriffe folglich lediglich mit Bordmitteln erfolgen können.
     
  10. Auf Nicht-Servern ist ein Normalbenutzer-Konto für alltägliche nicht-administrative Aufgaben angelegt.
       
  11. PowerShell 2 wird deaktiviert.
     
  12. 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. 

  1. Standardinstallation. (Optional)
     
  2. Konfiguration der IP-Adressen. (Optional)
     
    IP-Konfiguration
     
    netsh interface ipv4 set address "Local Area connection" static 192.168.0.2 255.255.255.0 192.168.0.1
    netsh interface ipv4 add dnsserver "Local Area Connection" 192.168.0.1 index=1
    netsh interface ipv4 add dnsserver "Local Area Connection" 192.168.0.100 index=2

     
     
  3. Setzen des Computernamens (Optional)
     
    NETDOM RENAMECOMPUTER %COMPUTERNAME% /NewName:NeuerComputername/force
     
  4. 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 advfirewall set allprofiles firewallpolicy blockinbound,blockoutbound

    Weiterhin werden alle vorhandenen Firewallregeln rekonfiguriert, um Netzwerkverkehr nur mit dem lokalen Subnetz des Systems zu erlauben:

    netsh 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 http://www.microsoft.com/germany/technet/datenbank/articles/600999.mspx
      
  5. 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 user admin passwd /add /expires:never /workstations:%COMPUTERNAME% /comment:"Local Administrator"
    net 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.

    http://msdn.microsoft.com/en-us/library/windows/desktop/aa370985(v=vs.85).aspx
      
    Active Directory: 1024 Zeichen (Standard) , 8192 Zeichen (Maximum), s.

    http://support.microsoft.com/kb/938458/en-us
    http://msdn.microsoft.com/en-us/library/ms680868.aspx 
     
    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:
    http://blogs.technet.com/b/ad/archive/2008/03/07/question-about-ad-authentication-put-in-context.aspx
    http://blogs.technet.com/b/yuridiogenes/archive/2008/03/10/when-security-in-mind-doesn-t-match-with-the-application-s-security.aspx
      
  6. Anmelden mit dem neuangelegten Administrator-Konto.
     
  7. Deaktivieren des internen Administrators durch folgenden Kommandozeilenbefehl
     
    net user administrator /active:no

    Das deaktivierte built-in Administrator-Konto kann jedoch im abgesicherten Modus benutzt werden.
     
  8. 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  
     
    reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
    /v FilterAdministratorToken /t REG_DWORD /d 0x1 /f
    reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
    /v ConsentPromptBehaviorAdmin /t REG_DWORD /d 0x2 /f 
    reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
    /v PromptOnSecureDesktop /t REG_DWORD /d 0x1 /f
     
  9. 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)


     
  10. Einschränken des Suchpfades zum Nachladen von DLLs für den Internet Explorer, Voraussetzung dafür s. FAQ in http://www.microsoft.com/technet/security/bulletin/ms09-014.mspx
     
    reg add HKLM\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_ENABLESAFESEARCHPATH_KB963027
    /v iexplore.exe /t dword d 0x1 /f

     
  11. Einschränken des Windows DLLs Suchpfades, Voraussetzung dafür s. http://support.microsoft.com/kb/2264107, http://blogs.technet.com/b/srd/archive/2010/08/23/more-information-about-dll-preloading-remote-attack-vector.aspx 
     
    reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager"
    /v CWDIllegalInDllSearchValue /t REG_DWORD /d 0x2 /f

     
  12. 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
     
  13. 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
     
  14. 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
       
  15. Erzwingen aktualisierter RDP-Clients für  icherheitsproblem von CredSSP CVE-2018-0886
      
    reg.exe add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 0x0 /f 
      
  16. 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 

            
  17. Erzwingen von SSL/TLS für Windows Domain Controller
      
    reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Parameters" /v LDAPServerIntegrity /t REG_DWORD /d 0x2 /f
       
  18. 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 

       
  19. Aktivierung von DEP (Data Execution Prevention) und der Anzeige des Ladens der Systemtreiber beim Start
     
    bcdedit /set nx optin
    bcdedit /set sos true

     
  20. Internet Explorer Enhanced Security Configuration (IE ESC) Nutzer=Off Administrator=On (nur auf Windows Servern) (Optional)
     
    rundll32.exe C:\Windows\system32\iesetup.dll,IEShowHardeningDialog
      
  21. Entfernen der 2 MB Größenbeschränkung von Gruppenrichtliniendateien registry.pol (Optional, wenn registry.pol größer 2 MB)

    reg.exe add "HKLM\Software\Microsoft\Windows\CurrentVersion\Group Policy" /v  DisableBufferingOfPolicyReads /t REG_DWORD /d 0x1 /f 
          
  22. Diverse Komforteinstellungen (Optional)

    REM *********************************************************************************************
    REM Anzeige des Desktops nach einer Verzögerung von 1 Sekunde durch die Konfiguration der Einstellung DelayedDesktopSwitchTimeout = 1, s. support.microsoft.com/kb/940452 
    REM *********************************************************************************************
    reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
    /v DelayedDesktopSwitchTimeout /t REG_DWORD /d 0x1 /f


    REM *********************************************************************************************
    REM Konfigurieren der zugelassenen Sicherheitszonen für CHM-Dateien, s. support.microsoft.com/kb/896054
    REM *********************************************************************************************
    reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions
    /v MaxAllowedZone /t reg_dword /d 0x2 /f


    REM *********************************************************************************************
    REM Aktivieren ausführlicher Meldungen beim Bootvorgang, s. support.microsoft.com/kb/325376
    REM *********************************************************************************************
    reg 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. technet.microsoft.com/en-us/library/cc978776.aspx
    REM *********************************************************************************************
    reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
    /v disablecad /t reg_dword /d 0x1 /f


    REM *********************************************************************************************
    REM Deaktvieren des Shutdown Events Trackers, s. technet.microsoft.com/en-us/library/cc776766(WS.10).aspx
    REM *********************************************************************************************
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Reliability"
    /v ShutdownReasonOn /t reg_dword /d 0x0 /f
         
  23. Deaktivieren von TCPIPv6, s. support.microsoft.com/kb/929852
     
    reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters
    /v DisabledComponents /t reg_dword /d 0xffffffff /f
        
  24. Anlegen eines nicht-administrativen Nutzers für alltägliche nicht-administrative Arbeiten (Nur auf Nicht-Servern). 

    net user normaluser passwd /add /comment:"Normal User"
      
  25. Installation der Powershell 2.0, s. http://support.microsoft.com/kb/968930 (nur für Windows Vista/Windows Server 2008, ab Windows 7/Server 2008 R2 Standard).
     
  26. Aktivieren der Extended Protection for Authentication, s. http://support.microsoft.com/kb/968389 (nur für Windows Vista/Windows Server 2008, ab Windows 7/Server 2008 R2 standardmäßig aktiviert).
     
  27. Die PowerShell Version 2 wird deaktiviert, um das Ausführen von unerwünschten PowerShell-Code zu unterbinden.
      
  28. 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)
    (Quelle der Tools: http://technet.microsoft.com/en-us/magazine/2008.06.elevation.aspx )
     ftp://ftp.uni-rostock.de/pub/uni-rostock/rz/NT-Kurs/AdminTools/System/Elevate.zip

    Sysinternals-Tools-Sammlung
     Sysinternals Tools 

    Windows Update Kommandozeilentool (Quelle des Tools: http://www.wuinstall.com )
      ftp://ftp.uni-rostock.de/pub/uni-rostock/rz/NT-Kurs/AdminTools/System/WuInstall1_1.zip

     
  29. 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 add HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\runas
    /v "" /t REG_SZ /d "Elevated Command Line..." /f
     reg 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 add HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\runasEditor
    /v "" /t REG_SZ /d "Elevated Editor..." /f
     reg 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. http://support.microsoft.com/kb/937624

    reg 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. http://support.microsoft.com/kb/951016

    reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
    /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 0x1 /f
     
  30. Zusätzliche Software nach C:\Soft\Apps installieren (optional)

     7-Zip - Packprogramm für 7z, ZIP, GZIP, BZIP2 und TAR
     Acrobat Reader - PDF-Reader
     EasyBCD - GUI Boot  Loader Editor
     GnuWin - UNIX Kommandozeilentools
     Microsoft Netwerk Monitor
     Notepad++ - Textdateieditor
     Power GUI - Powershell GUI und Skripteditor
     Remote Desktop Connection Manager - Multiple Remote Desktop Sessions  
     Remote Desktop Manager - Container-Anwendung für Remote Desktop, putty, ESX, Hyper-V usw.
     RichCopy - Umfangreiches GUI-Tool zum Kopieren von Verzeichnisbäumen
     Windirstat - Zeigt Dateibelegung von Festplatten an
     gstools - Nützliche System-Tools: detectduplicates, md5sums, pathed, regdiff, touch, which

     
  31. 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"
     
  32. 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 add HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU
    /v AUOptions /t REG_DWORD /d 0x3 /f
    reg add HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU
    /v ElevateNonAdmins /t REG_DWORD /d 0x1 /f
    reg add HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU
    /v EnableFeaturedSoftware /t REG_DWORD /d 0x1 /f
    reg add HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU
    /v IncludeRecommendedUpdates /t REG_DWORD /d 0x1 /f
    reg add HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU
    /v ScheduledInstallDay /t REG_DWORD /d 0x0 /f
    reg add HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU
    /v ScheduledInstallTime /t REG_DWORD /d 0x3 /f
       
       
  33. 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"

  34. Installation des Microsoft EMET-Toolkits und Aktivieren der zusätzlichen Schutzfunktionen für verbreitete Anwendungen, s. https://support.microsoft.com/en-us/kb/2458544

  35. Neustart des Systems

 

Phase 2 - "Versiegelung" mittels Software Whitelisting skriptbasiert per Powershell oder manuell per Gruppenrichtlinien Snap-In "gpedit.msc"

  1. 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.