Security Group Policy
Wist je dat Group Policies je fantastisch kunnen ondersteunen bij het handhaven van je computer- en netwerk beveiliging? Natuurlijk wel, toch? Op veler verzoek doorloop ik in deze post diverse settings welke het beveiligingsniveau na je computers en netwerk kunnen verhogen. Zoals altijd is ook hier van toepassing dat er geen “one-size-fits-all” oplossing bestaat. Ieder netwerk en ieder domein is maatwerk en dus is het aan jezelf om te kijken welke settings je toe gaat passen en in welke mate je deze toepast. Hopelijk heb je na het lezen van deze post de inspiratie gekregen om op een goede en relatief gemakkelijke manier de eerste beveiligingsopties op je netwerk af te dwingen door het toepassen van de juiste group policies.
Feitelijk zijn heel veel settings in een Group Policy security gerelateerd. In deze post wil ik het graag hebben over de, in mijn ogen de 10 belangrijkste group policy settings m.b.t. security. Deze policy settings zijn er actief gericht op veiligheid en niet op usability, Redirection van je desktop of “mijn documenten” is wat mij betreft meer gestoeld op usability maar kan ook gezien worden als security setting omdat alle data op de server gezet wordt en dus ook meegenomen kan worden in de back-ups. Wat mij betreft is “redirection” dan ook geen primaire security setting binnen een group policy. Ook gaat deze post niet over de inrichting van group policies. De inrichting is geheel te bepalen door de gebruiker. Persoonlijk zou ik 1 global security policy maken welke overal van toepassing is en wellicht een aantal kleinere separate policies welke toegepast kunnen worden op specifieke onderdelen. Zo zou je security settings m.b.t. wachtwoorden domein breed kunnen toepassen met een “global security policy” maar wil je een “software restriction security policy” slechts toepassen op de fat cliënts in je netwerk. Je kunt de software restriction policy dan toepassen op verschillende OU’s of op het domein waarbij je deze alleen toepast op een bepaalde groep. Dit zijn designkeuzes en ik weet zeker dat jij als beheerder hierin een goede en weloverwogen keuze maakt.
Laten we eens beginnen met de zojuist genoemde “software restriction policy”, een zeer belangrijke en efficiënte manier om het gebruik van ongeautoriseerde software te beperken.
1. Software Restriction
Sofware Restriction wordt gebruikt om voor gedefinieerde software te accepteren of te weigeren. Met het instellen van een goede Software Restriction policy maak je als het ware een “software whitelist” of een “software blacklist”. Het meest effectief is om te werken met een whitelist want dan wordt automatisch alle niet-gewhiteliste software geweigerd en dus niet uitgevoerd en dat heeft diverse voordelen:
- Gebruikers kunnen geen ongeautoriseerde software uitvoeren.
- De meeste malware zal niet uitgevoerd worden. Een goede Software Restriction policy is een pre als het aankomt op beveiligingstechnieken binnen een netwerk.
- Software is gestandaardiseerd waardoor uitzonderingen snel aan het licht komen. Dit geeft een duidelijk inzicht in het software landschap.
Het activeren van een goede Software Restriction policy omvat een aantal stappen. De policy kan het beste getest worden in een veilige testomgeving met devices welke voorzien zijn van alle geaccepteerde bedrijfssoftware.
Om de policy te activeren moet je 3 stappen doorlopen:
- 1. Kies de juiste configuratie. Wordt het een computer-based of een user-based policy?
- 2. Het instellen van de policy.
- 3. Het instellen van de juiste software.
1. Deze eerste stap lijkt simpel maar kan wat denk- en testwerk kosten. Soms is het beter om en basis Software Restriction policy te maken welke op computerbasis wordt toegepast (met uitzondering van administrators) en een additionele policy met gebruiker specifieke policies. Soms volstaat een computer-based policy. Een computer-based Software Restriction policy kan in sommige gevallen problemen geven dus een combinatie is altijd aan te raden. Ook is in sommige gevallen een user-based Software Restriction policy prima. In mijn voorbeeld kies ik voor een user-based policy. De settings zijn hier te vinden:
Computer based:
Computer Configuration > Policies > Windows Setting > Security Settings > Software Restriction Policies
User based:
User Configuration > Policies > Windows Setting > Security Settings > Software Restriction Policies
2. Om de policy te activeren klik stel je de “enforcement” setting in. Je kunt hier kiezen om de policy toe te passen op alle gebruikers of om de lokale administrators te excluden van enforcement. Ook kun je hier kiezen hoe je de policy wilt toepassen. Je kunt hier kiezen voor alle software of software met uitzondering van libraries zoals DLL bestanden. In mijn voorbeeld kies ik voor de laatste optie. Het is beter om de policy ook toe te passen op libraries maar dit is meer werk om in te stellen, dus voor nu laten we het even zo.
Vervolgens klik je op de “Designated File Types” setting om aan te geven op welke applicaties de policy van toepassing is. Voeg bijvoorbeeld Powershell (PS1) scripts toe. Standaardapplicaties zijn al voor gedefinieerd maar hier kun je zelf nog applicatie typen aan toevoegen.
Tenslotte gaan we de Software Restriction instellen als “software whitelist”. Ga naar de “security settings” en stel de “disallowed” optie in als default. Dit wil zeggen dat ongeautoriseerde software niet zal draaien ongeacht het toegangsniveau van de gebruiker. De “basic user” setting zorgt ervoor dat applicaties altijd kunnen draaien behalve als de applicatie onder “administrator” niveau moet draaien. De “unrestricted” setting is de default setting waarbij software altijd gestart mag worden op basis van de gebruikersrechten.
De “Software Restriction” policy is nu ingesteld als een software whitelist.
3. Tenslotte is het zaak om de juiste software vrij te geven zodat deze gebruikt kan worden. Dit kan op 3 manieren, middels path rules, hash rules en middels certificate rules.
- Path Rule – Hiermee geef je een specifiek pad vrij. Software welke gestart wordt vanuit dit pad kan gestart worden.
- Hash Rule – Bij deze setting wordt de applicatie (EXE) gehashed. Deze hash is gewhitelist en kan ongeacht de fysieke locatie uitgevoerd worden.
- Certificate Rule – Bij deze setting moet een applicatie gesigneerd zijn met een certificaat welke we hier op de whitelist plaatsen..
Een hash rule is samen met een certificate rule is de veiligste methode om software vrij te geven. Bij voorkeur gebruik ik liever een hash rule omdat een certificate rule de snelheid van applicaties (vooral het opstarten) flink nadelig kan beïnvloeden. Bij een path rule kan elke software uitgevoerd worden welke zich in het gewhiteliste pad bevindt. Bij een hash rule kan alleen software met die exact hash uitgevoerd worden. Als je software hebt welke vaak geüpdate wordt of welke vaak veranderd dan is een path rule een goede optie om die software vrij te geven. Zo niet, gebruik dan een hash rule.
Standaard worden “C:\Windows” en “C:\Program Files” toegestaan. Houd er bij 64-bits Windows systemen in je netwerk rekening mee dat Programmabestanden (x86) niet automatisch op de whitelist worden geplaatst. Ik raad dus aan om deze toe te voegen. Wil je het echt goed doen dan haal je alle default locaties eruit en whitelist je alle specifieke applicaties.
Als je de policy klaar hebt wordt het zaak om deze te testen. User-based Software Restriction policies worden vaak pas actief nadat de computer gereboot is. Computer-based policies zijn vaak actief na een “gpupdate /force” commando. Bij twijfel altijd even rebooten. Mocht je je Software Restriction policy willen troubleshooten hou dan altijd de event viewer in de gaten, en gebruik de normale GPO troubleshooting tools zoals “gpresult /r” en “RSoP” (Resultant Set of Policy) etc.
2. Control Panel toegang
Heel veel computer-based instellingen kunnen geconfigureerd worden via het “control panel” ofwel het configuratiescherm. Het is daarom van groot belang om de toegang tot het control panel zoveel mogelijk te beperken. Group Policy geeft je de optie om toegang tot het hele panel te verbieden of om alleen de toegang tot specifieke control panel onderdelen te verbieden.
Control Panel settings zijn meestal user-based settings. Om toegang tot het control panel te blokkeren ga je naar:
User Configuration > Policies > Administrative Templates > Control Panel
Hier hebben we een aantal opties.
Om de toegang tot het volledige control panel te blokkeren stel je de “Prohibit access to Control Panel and PC settings” in op “Enabled”.
Om slechts specifieke items te blokkeren ga je naar de “Hide specified Control Panel items” policy. Deze stel je in op “Enabled” en vervolgens selecteer je alle onderdelen waar je de toegang toe wilt blokkeren. Deze onderdelen voeg je toe middels hun “Canonical Name”. Deze zijn te vinden op het internet. Bijvoorbeeld hier.
Je kunt de effecten van deze policy ook verkrijgen door de policy “Show only specified Control Panel items” aan te passen. Dit is afhankelijk van het feit of je veel of weinig wilt blokkeren. Als je namelijk veel apps wilt blokkeren is het makkelijker om alleen te specificeren wat men wel mag zien.
De overige policies geven je meer controle over specifieke items. Deze maken het mogelijk om b.v. wel toegang te hebben tot diverse onderdelen maar niet tot alle tabbladen. Door op de juiste manier met deze policy te spelen kun je ervoor zorgen dat gebruikers een op maat gemaakt control panel krijgen met precies voldoende toegang.
3. Toegang Afschermen Overige Applicaties
Er zijn nog een groot aantal applicaties waar een systeembeheerder de toegang voor wilt blokkeren. Door je group policies te gebruiken kun je toegang tot vitale applicaties waar de gebruiker normaliter geen toegang toe hoeft te hebben blokkeren. Laten we er een paar bekijken:
Command Prompt:
Enable de policy “Prevent access to the command prompt” welke hier te vinden is:
User Configuration > Windows Settings > Policies > Administrative Templates > System
Run / Uitvoeren:
User Configuration > Policies > Administrative Templates > Start Menu and Taskbar
Setting: Remove Run menu from Start Menu
Network Browsing:
User Configuration > Policies > Administrative Templates > Windows Components > Windows Explorer
Enable de volgende policies:
- No Computers Near Me in Network Locations
- No Entire Network in Network Locations
- Remove Map Network Drive and Disconnect Network Drive
4. Blokkeer toegang tot Portable Media
Om bedrijfsgegevens te beschermen kiezen veel bedrijven ervoor om portable media zoals USB sticks en CD’s te blokkeren. Door portable media te blokkeren voorkom je dat bedrijfsdata via die mediadragers gestolen kan worden en dat virussen en andere malware niet overgedragen kan worden op je bedrijfssystemen. Het blokkeren van portable media doe je als volgt:
Je kunt hier per mediatype (CD-Rom / Floppy / Tape Drives / Removable Disks etc) kiezen om de toegang te blokkeren. Je kunt uiteraard ook gewoon de “All Removable Storage classes: Deny allaccess” setting enablen om alle soorten portable media te blokkeren. Invoerapparaten zoals muis en toetsenbord blijven uiteraard gewoon functioneren.
5. Blokkeer Software Installaties
Deze setting is een beetje vergelijkbaar met de Software Restiction Policy maar beperkt zich slechts tot de installatie van software en niet de uitvoering ervan. Als je niet wilt dat medewerkers ongeautoriseerde software installeren dan schakel je de “Prohibit User Install” computerconfiguratie optie in onder:
Computer Configuration > Policies > Administrative Templates > Windows Component > Windows Installer
6. User Account Control
Als het aankomt op gebruikers zijn er een aantal GPO settings die de veiligheid van je netwerk verhogen. Een aantal belangrijk GRO settings zijn:
Disable Guest Account
Guest accounts zijn niet beveiligd met een wachtwoord. Via het Guest Account kan gevoelige informatie benaderd worden door ongeautoriseerde gebruikers. De meeste systemen hebben helemaal geen actief Guest Account nodig. Laten we deze dus maar blokkeren. Dit blokkeren doe je door de “Accounts: Guest Account Status” setting te disablen. Deze setting vind: je hier:
Computer Configuration > Policies > Windows Settings > Security Settings > Local Policies > Security Options
Wachtwoord settings
Als we toch lekker bezig zijn kunnen we net zo goed meteen wat veiligheid brengen in de gebruikerswachtwoorden. Allereerst gaan we instellen dat een wachtwoord minimaal moet bestaan uit 10 karakters. Dat doen we door de “Minimum password length” optie in te stellen op 10. Deze setting vinden we onder:
Computer Configuration > Policies > Windows Settings > Security Settings > Account Policies > Password Policy
Dan willen we ook graag dat wachtwoorden elke 60 dagen veranderd moeten worden. Dit doen we door de “Maximum password age” setting in te stellen op 60.
Uiteraard willen we ook dat wachtwoorden hoofdletters, cijfers en symbolen bevatten. Om dit voor elkaar te krijgen moeten we “Password must meet complexity requirements” setting enablen. Wachtwoorden mogen nu niet de naam of delen van de naam bevatten. Wachtworoden moeten minimaal 6 karakters lang zijn (onze vorige setting van 10 overruled deze setting). En wachtwoorden moeten minimaal 3 van de volgende soorten tekens bevatten:
- kleine letters
- HOOFDLETTERS
- C1ijf3rs
- Symb@len!
Disable SID Enumeration
Een andere setting die altijd goed is om te disablen is de “Network Access: Do not allow anonymous enumeration of SAM accounts and shares” setting. Hiermee forceer je dat de default setting uitgeschakeld blijft waarmee anonieme gebruikers SID (Security IDentifiers) kunnen opvragen om zo andere gebruikers en beheerders in het netwerk te vinden en deze SID’s te misbruiken om ongeautoriseerde toegang te verkrijgen. Deze setting is hier te vinden:
Computer Configuration > Policies > Windows Settings > Security Settings > Local Policies > Security Options
Account Lockout
Vervolgens willen we ervoor zorgen dat accounts beschermd zijn tegen hacken. Om dit te doen gaan we instellen dat accounts 10 minuten geblokkeerd worden na 3 foute inlogpogingen. Om dit in te stellen ga je naar:
Computer Configuration > Policies > Windows Settings > Security Settings > Account Policies > Account Lockout Policy
Hier gaan we 2 settings als volgt instellen:
Account lockout threshold > 3
Account lockout duration > 10
Geef Anonymous gebruikers NIET dezelfde rechten op het netwerk als gebruikers die lid zijn van de Everyone groep
Default hebben anonieme (anonymous) gebruikers dezelfde toegang als gebruikers van de “everyone” groep bij het openen van netwerkbronnen. Deze setting is zeer onveilig omdat de “everyone” groep op veel bronnen toegang heeft waar een anonieme gebruiker niet bij hoeft te zijn. Daarom gaan we niet toestaan dat de groep everyone invloed heeft op het anonieme gebruikersaccount. Laten we gaan naar:
Computer Configuration > Policies > Windows Settings > Local Policies > Security Options > Network access
Hier stellen we de volgende setting in op “Disabled”:
Network access: Let Everyone permissions apply to anonymous users
7. Last Logged-On Username
Windows helpt de gebruikers graag een handje door de gebruikersnaam van de laatst ingelogde gebruiker op te slaan. Dit kan in veel gevallen erg handig zijn maar kan ook ongewenst zijn. Waar hackers normaliter 2 zaken moeten achterhalen, namelijk een gebruikersnaam en een wachtwoord hoeven ze voor een Windows systeem alleen maar het wachtwoord te achterhalen. Laten we ervoor zorgen dat Windows de gebruikersnaam van de laatst ingelogde gebruiker vergeet. Dit doe je door de setting “Interactive logon: Do not display last user name” te activeren onder:
Computer Configuration > Policies > Windows Settings > Local Policies > Security Options
8. LAN Manager Authentication Leven
Windows 2000-, XP- en Server 2003-computers gebruiken allemaal Kerberos om zich te authenticeren in Active Directory. Wanneer deze computers zich echter aanmelden bij de lokale SAM gebruiken ze LAN Manager-verificatie. Er zijn verschillende LAN Manager verificatieniveaus. LAN Manager (LM) is het zwakste en oudste verificatieprotocol. NTLMv2 is de nieuwste en sterkste.
Aangezien alleen de oudste besturingssystemen en applicaties LM gebruiken, is het wenselijk om de mogelijkheid te mitigeren dat uw computer dit protocol gebruikt. In het ideale geval moet je je computers alleen toestaan NTLMv2 te gebruiken. Laten we dit varkentje eens wassen. We openen de “Network Security: LAN Manager authentication level” setting welke hier te vinden is:
Computer Configuration > Policies > Windows Settings > Local Policies > Security Options
Hier kunnen we verschillende niveaus instellen. Het optimale niveau is uiteraard “Send NTLMv2 response only. Refuse LM & NTLM”. Als je deze setting gaat gebruiken doe dit dan wel in een testomgeving en test eerst alles heel erg goed alvorens je deze setting over je volledige netwerk uitrolt.
9. Stel UAC in
User Account Control (UAC) geeft een mogelijkheid om de computer te beveiligen UAC dwingt een gebruiker af alle acties uit te voeren als “normale gebruiker” en geeft een popup als meer rechten nodig zijn, bijvoorbeeld als bepaalde software naar een beschermd onderdeel probeert te schrijven. UAC laat, telkens wanneer een beschermd gedeelte van de computer wordt benaderd een dialoogvenster te laten zien. De gebruiker krijgt hiermee de optie om door te gaan (als de gebruiker voldoende rechten heeft) maar moet hier actief voor kiezen. Om UAC naar wens in te stellen ga je naar:
Computer Configuration > Policies > Windows Settings > Security Settings > Local Policies > Security Options
Zoals bovenstaande afbeelding weergeeft heb je hier diverse opties om UAC naar wens in te stellen. Zo zou je bijvoorbeeld de setting “User Account Control: Detect application installations and prompt for elevation” kunnen inschakelen waardoor er een prompt gegenereerd wordt tijdens de installatie van software en de gebruiker alleen door kan gaan als deze elevated rechten heeft.
10. Configureer de Windows Firewall
Vroeger werd de Windows Firewall minimaal gebruikt vanwege de beperkte mogelijkheden in vergelijking met andere producten. De Windows Firewall wordt echter alleen maar beter en beter en biedt geavanceerde beveiligingsinstellingen welke zich niet beperken tot inkomende en uitgaande filters, maar ook IPSec.
Om de Windows Firewall in te stellen ga je naar:
Computer Configuration > Policies > Windows Settings > Security Settings > Windows Firewall with Advanced Security
Zoals je ziet heb je 3 verschillende opties:
- Inbound Rules
- Outbound Rules
- Connection Security Rules
Door rechts te klikken kun je een nieuwe regel toevoegen.
Het instellen van de Windows Firewall middels Group Policy is even wat werk en vereist ook het nodige testen maar als alles ingericht is heb je een krachtige firewall welke centraal beheerd kan worden.
11. Process GPO Security Settings at Every Refresh
Vooruit… nog een extra tip welke betrekking heeft op de verwerking van Group Policies.
Standaard worden Group Policy settings niet opnieuw toegepast als de Group Policy niet is veranderd. Omdat echter local admins instellingen in de local GPO van de computer kunnen instellingen die de corporate security policy ondermijnen is het belangrijk dat Group Policy toch periodiek wordt toegepast.
Deze setting stellen we in onder:
Computer Configuration > Policies > Administrative Templates > System > Group Policy
Hier vinden we de optie “Configure security policy processing” welke we gaan inschakelen. Hierbij vinken we de optie aan “Process even if the Group policy objects have not changed”.
Conclusie
Dat was um! Hopelijk heb je door het lezen van deze post voldoende inspiratie om zelf aan de slag te gaan. Zoals je gezien hebt zijn group policies een essentieel onderdeel van een goede defense-in-dept strategie en bieden group policies meer opties dan je misschien verwacht had. Ben je klaar nadat je de juiste security policies in-place hebt? Nee natuurlijk niet. Maar deze security group policies zorgen ervoor dat de eerste veiligheidssettings op een centrale en gecontroleerde manier kunnen worden toegepast en daar wordt iedere systeembeheerder blij van, toch?!
Wordt jij blij van deze post? Vond je de kennis waardevol? Geef dan s.v.p. een leuke reactie, like of deel deze post verder. Leuke acties geven mij als schrijver de nodige waardering en dus meer inspiratie om deze blogs te blijven schrijven! Thanks 2-you-all!!