In podcast 1971 van Dotnetrocks heeft Carl deze Github-repo al eens genoemd en in podcast 1990 nogmaals. De repo van HotCakeX, "Harden Windows Security" bespreekt mogelijkheden om je Windows strakker af te stellen. Dat kan (natuurlijk) ook bepaalde problemen opleveren: de reden dat Microsoft niet standaard deze instellingen op jouw PC ingesteld heeft.
Windows is een "algemeen besturingssysteem", het wordt gebruikt door alle leeftijdsklassen. En verschillende type gebruikers. Ik als "developer" ben wat minder bang om zaken aan te passen en "snap" sneller wat bepaalde (fout)meldingen betekenen, dan iemand van 11 jaar of iemand van 78 jaar die de computer "alleen" maar gebruikt om wat e-mailtjes te sturen, via de browser op het Internet surfen of wat spelletje speelt.
Maar toen Carl deze (per ongeluk) voor de 2e keer noemde dacht ik: hier moet ik iets mee doen en laat ik dan dit ook meteen met de rest van de wereld delen. Misschien zijn bepaalde aanpassingen redelijk simpel en kan dat ervoor zorgen dat jouw pc minder snel vatbaar is voor spyware, malware, ransomware en andere ellende.
1. Harden System Security
We beginnen gewoon bovenaan de lijst. In de documentatie staat veel tekst over de app, maar niet echt wat het allemaal doet. Ik heb de app geïnstalleerd vanuit de Microsoft Store en vervolgens opgestart.
Ik ben eerst naar Attack Surface Reduction gegaan. Hoewel ik als developer mogelijk nog wel eens wat zelf programmeer wat misschien ook geblokkeerd gaat worden door deze acties, ga ik ze toch eerst activeren. Want mocht ik tegen problemen aanlopen, dan kan ik altijd weer blokkades uitschakelen.
Zo kies ik voor "block" bij:
- Block abuse of exploited vulnerable signed drivers
- Block Adobe Reader from creating child processes
- Block all Office applications from creating child processes
- Block credential stealing from the Windows local security authority subsystem (lsass.exe)
- Block executable content from email client and webmail
- Block execution of potentially obfuscated scripts.
- Block Javascript or VBScript from launching downloaded executable content
- Block Office applications from creating executable content
- Block Office applications from injecting code into other processes
- Block Office communication application from creating child processes
- Block process creatings originating from PSExec and WMI commands
- Block untrusted and unsigned processes that run from USB
- Block Win32 API calls from Office macros
- Use advanced protection against ransomware
- Block use of copied or impersonated system tools
- Block Webshell creation for Servers
Bovenstaande acties zijn voor de algemene gebruiker volgens mij voldoende. Ik kon nog wat zaken blokkeren, maar ik heb mijn twijfels of ik dan niet tegen problemen aan ga lopen. Dat heb ik al bij één van de punten hierboven, het opstarten van processen vanaf USB-stick. Ik heb een soort "podcast downloader" gemaakt, dat is een executable en die draai ik op USB-stick, omdat de MP3-bestanden dan ook meteen daar opgeslagen worden. Mocht blijken dat het niet werkt, dan moet ik die code maar even aanpassen, zodat ik de executables vanaf mijn pc ga draaien.
Het BitLocker deel sla ik even over, ik ga door naar TLS Security.
Dat heeft invloed op websites die je bezoekt, deze kunnen "verouderde" encryptie gebruiken. Dus hoewel je via HTTPS op een website komt en er een slotje in je adresbalk staat, kan de data die heen en weer gaat mogelijk toch door iemand anders geraadpleegd worden. Of wat ook wel als voorbeeld wordt gegeven, via een "sniffer" wordt je data afgeluisterd. De persoon die deze data ontvangt kan er nu nog niets mee. Maar als over "x tijd" kwantumprocessors echt goed werken en de decryptie binnen 15 minuten gebroken kan worden, dan kan iemand alsnog jouw data lezen. Ook hier geldt weer, als je iets dicht zet en een belangrijke website is niet meer bereikbaar, dan kun je de blokkade ongedaan maken. Wel het advies om die partij even te laten weten dat ze eigenlijk hun site zouden moeten updaten.
Ik kies de volgende opties:
- Disable TLS v1 Client - Part 1
- Disable TLS v1 Client - Part 2
- Disable TLS v1 Server - Part 1
- Disable TLS v1 Server - Part 2
- Disable TLS v1.1 Client - Part 1
- Disable TLS v1.1 Client - Part 2
- Disable TLS v1.1 Server - Part 1
- Disable TLS v1.1 Server - Part 2
- Disable the weak Cipher for Schannel: NULL
- Disable the weak Cipher for Schannel: DES 56-bit
- Disable the weak Cipher for Schannel: RC2 40-bit
- Disable the weak Cipher for Schannel: RC2 56-bit
- Disable the weak Cipher for Schannel: RC2 128-bit
- Disable the weak Cipher for Schannel: RC 40-bit
- Disable the weak Cipher for Schannel: RC4 56-bit
- Disable the weak Cipher for Schannel: RC4 64-bit
- Disable the weak Cipher for Schannel: RC4 128-bit
- Disable the weak Cipher for Schannel: 3DES 168-bit (Triple DES 168)
- Disable MD5 Hashing Algorithm for SChannel.
Hieruit blijkt maar weer dat het bovenstaande goed is om door te nemen. Want die laatste, dat betekent dat MD5 dus standaard nog aan staat. "Wij" als developers weten dat MD5 al jarenlang niet meer veilig is (in 2008 geconstateerd, zoals je hier op Wikipedia kunt lezen, item Security).
Ik sla het Lock Screen over, omdat ik dit voor mijn pc thuis doe. Maar als jij met je pc wel op een afdeling werkt waar "andere mensen" zitten, dan zijn er goede opties om door te voeren. Bijvoorbeeld als je ZZP-er bent en wel eens in gedeelde kantoorruimte werkt. Hier even een paar items uit de lijst:
- Set the Machine inactivity limit policy so the device will automatically lock after 120 seconds of inactivity.
- Het is vaak bedrijfspolicy om je computer te locken als je niet op je plek zit. Als je "even met iemand mee kijkt", maar dat duurt toch langer, of je moet vervolgens even ergens andere heen lopen, loop je het risico dat je pc/laptop onbeheerd open staat - met deze policy is dat na 2 minuten gefixt.
- Set an Interacitve logon policy to require CTRL+ALT+DEL on Lock Screen before you can enter your credentials. This can mitigate certain attacks that utilize fake lock screens in order to capture the user credentials in clear text such as passwords.
- "vroeger" in het Windows NT netwerk wat CTRL+ALT+DEL de default om in je inlogscherm te komen. Tijd om het te herintroduceren!
En zo kun je meer, bijvoorbeeld de gebruikersnaam niet tonen op het lock scherm, ook geen user informatie tonen. De "last signed-in details" niet meer tonen.
En er zijn nogal wat BitLocker opties om mislukte inlogpogingen en "account lock-out" aan te passen.
Door met Windows Firewall. Dit gaat deels over profielen en logging, dat sla ik over.
De items die ik actief gemaakt heb:
- Disable mDNS UPD-In Firewall Rules. It adds an extra measure of security in public places, like a coffee shop but might interfere with Miracast screen sharing, which relies on the Public profile or home networks where the Private profile is not selected.
- Enable Windows Firewall for Domain profile.
- Enable Windows Firewall for Private profile.
- Enable windows Firewall for Public profile.
- Set the Network Location of all connections to Public. Public network means less trust to other network devices.
Het activeren van de domain/private/public profielen zou impact kunnen hebben, maar eens kijken of ik tegen problemen aanloop. De laatste optie is op zich wel goed, ik moet nog wel testen of ik dan nog wel kan printen. Als dat niet meer kan, ga ik die optie toch maar weer uitzetten.
Door met Windows Networking. Ik heb een NAS aangesloten, ik heb een printer die via de WIFI verbonden is. Dus als ik bepaalde zaken uitschakel, kan het ervoor zorgen dat ik daar geen connectie meer mee kan maken. Maar goed... dan schakel je die optie maar weer uit, eerst maar zaken goed dicht zetten!
* Block NTLM for SMB
* Disable NetBIOS
* Disable HTTP Printing
* Disable Web Pnp Download
* Disable RPC Endpoint Mapper Client Authentication
* Deny incoming NTLM connections for all accounts
* Deny outgoing NTLM connections
* Require encryption for SMB client
We gaan door met Miscellaneous.
- Block Windows from downloading Fonts Catalog.
- Schijnbaar doet Windows online zo nu en dan wat verzoeken voor fonts bij online font-providers om zo je Windows "bij te houden". Oke...., dat wil ik dus niet. De fonts die op mijn machine staan zijn goed, heb ik andere fonts nodig, dan installeer ik die zelf wel.
- Configure the SSH client's configurations to use secure MACs (Message Authentication Codes)
- Configure the Antimalware Scan Interface (AMSI) to strictly enforce Authenticode code signing requirements for all third-party antimalware providers
- Display the file extension for (.url) files in the File Explorer. Prevents internet shortcuts from masquerading as legimate files. This mitigates security risks where attackers use hidden extensions to disguise phishing links or malicious redirects as safe documents.
- Display the file extension for shortcut (.lnk) files in the File Explorer. Attackers frequently rely on the hidden state of shortcuts to disguise malicious payloads as harmless documents. Revealing the extension allows you to verify the true file type and identify deceptive shortcuts before execution.
- Display the file extension for (.pif) files in the File Explorer. Program Information Files (PIF) function similarly to .exe files and are frequently used by attackers to hide malware behind a less familiar file type.
- Disabling the WebClient service prevents attacker from abusing WebDAV to intercept and steal NTLM credentials and other sensitive data via malicious links.
- Disable location.
- Disable Location Scripting.
- Disable Windows Location Provider.
- Disable Online Tips.
- Disable Automatic Update of Speech Data.
- Do not show feedback notifications.
- Disable Message Service Cloud Sync for cellular text messages.
- Disable "Continue experiences on this device" feature.
- Disable support for web-to-app linking with app URI handlers.
- Don't search the web or display web results in Search.
- Do not allow web search.
- Turn off Get tips and suggestions when using Windows
- Turn off Automatic Download and Update of Map Data
Naast het feit dat dit dingen "veiliger" moet maken, lost het ook een frustratie bij mij op. Soms wil ik Filezilla starten om bestanden via FTP over te zetten. Ik druk dan op de Windows-toets en typ filezilla in, dan krijg je de app te zien, aanklikken en door! Maar soms... dan snapt Windows niet dat die app geïnstalleerd is en krijg je zoekresultaten op Filezilla in Bing... als ik iets via de Windows-toets wil starten, dan staat dat al op mijn pc. Staat dat er niet op, dan start ik zelf wel een browser en ga zoeken. Dus die "don't search the web" en "do not allow web search", daar ben ik blij mee!
2. AppControl Manager
Elk programma wat je start, daarvan zegt Windows: prima, ga je gang! Soms komt er wel een melding (bijvoorbeeld omdat je iets via je browser gedownload hebt en dan wil opstarten - dan wil dat niet). Kijk je bij de eigenschappen van het bestand dan zie je daar vaak een melding "geblokkeerd omdat deze gedownload is" of iets dergelijks, door daar op "Unlock" te klikken kun je het bestand zonder problemen uitvoeren.
Met AppControl Manager kun je de teugels wat strakker aantrekken. Geen enkel programma mag wat doen - behalve als jij je goedkeuring gegeven hebt. Ik heb de app geïnstalleerd vanuit de Microsoft Store en vervolgens opgestart.
En dan zie ik dat ik dit even laat liggen. Bij de andere tool was het een kwestie van zaken aan- of uitvinken, hier moet je echt met policy's aan de slag, dat kost mij nu teveel tijd. Mogelijk kom ik volgende week in een blogpost met uitleg hierop terug!