Thijmen Kooy

Naar een IT-infrastructuur zonder ransomware

Met de opmars van nieuwe ransomware varianten en nieuwe aanvalstechnieken wordt het steeds moeilijker om gebruikers daartegen te beschermen. Veel soorten antivirussoftware dragen bij aan de veiligheid van de eindgebruikers, maar is in meeste gevallen niet genoeg. Hackers schrijven in vele gevallen nieuwe ransomware, waardoor antivirusleveranciers eigenlijk achter de feiten aanlopen. Deze blogpost beschrijft hoe je met AppLocker je kan beschermen tegen ransomware.

Binnen IT-beveiliging is het gebruikelijk om een gelaagde bescherming op te bouwen. Deze extra laag van bescherming kan worden vervuld door AppLocker. In deze blogpost lees je hoe je Applocker kan inzetten om jouw systemen nog veiliger te maken. Binnen Windows is er een beveiligsmechanisme genaamd AppLocker. AppLocker kan regels instellen over wat de gebruiker wel en niet mag. Een regel kan bijvoorbeeld zijn: Blokkeer voor elke gebruiker PowerShell’. Dit kan een nuttige regel zijn aangezien verschillende malware soorten gebruik maken van PowerShell.

Wat heb ik nodig voor AppLocker?

AppLocker kun je instellen op alle Windows Enterprise en Windows Education edities. Daarnaast kun je het instellen op verschillende Windows Server versies. Voor de volledige lijst met ondersteunde systemen, zie de bron onderaan de pagina. 

Om de AppLocker functionaliteiten te kunnen gebruiken moet de service Application Identity’ draaien op het betreffende systeem. Deze service zorgt ervoor dat de identiteit van een applicatie kan worden geverifieerd. Als deze service uit staat, kunnen de AppLocker-regels niet worden doorgevoerd en zijn de regels dus niet van kracht.

Hoe werkt AppLocker?

AppLocker is een beveiligingsmechanisme dat programma’s kan toestaan of blokkeren op basis van een regelset. AppLocker-regels kan je vanuit een Group Policy Object (GPO) configureren en is daarom gemakkelijk in te stellen en te beheren. 

Wanneer een AppLocker-GPO op de computer wordt ingesteld worden er een aantal bestanden aangemaakt in de map C:\Windows\System32\AppLocker. Afhankelijk van de ingestelde AppLocker-regels, komen daar per regelcategorie een aantal bestanden te staan.

2022 01 14 10 32 46 Window

Deze regels worden vervolgens weggeschreven naar het register van Windows. Deze regels staan onder het volgende registerpad:

HKLM\SOFTWARE\Policies\Microsoft\Windows\SrpV2\*

In deze registerwaardes staan de regels in XML-formaat opgeslagen zoals je kun zien in de onderstaande afbeelding.

2022 01 14 14 29 39 Window

In AppLocker kun je vijf verschillende soort regels instellen. De volgende regels kunnen systeembreed worden ingesteld: 

  • Executable regels gelden op bestanden met de bestandsextensies .exe en .com.
  • Windows Installer regels op bestanden met de bestandsextensies .msi, .msp en .mst.
  • Script regels gelden op bestanden met de bestandsextensies .ps1, .bat, .cmd, .vbs, .js.
  • DLL regels gelden op bestanden met de bestandsextensies .dll en .ocx.
  • Packaged app regels gelden op alle Windows apps. Deze regels zorgen ervoor dat er geen individuele regels voor individuele bestanden van de apps moet worden aangemaakt.

Deze regels gelden ook voor soortgelijke extensies. AppLocker kijkt dan niet zo zeer naar de extensie maar meer hoe het bestand wordt uitgevoerd. Hou dus rekening met dat AppLocker buiten deze bestandextensies ook andere bestandsformaten blokkeert. Bijvoorbeeld WSF-bestanden worden ook geblokkeerd aangezien deze bestanden worden uitgevoerd zoals VBS-bestanden.

Instellen van AppLocker in een testomgeving

In het volgende voorbeeld zie je hoe Applocker kan instellen in een testomgeving. In deze testomgeving functioneert Windows 2019 systeem als domain controller en een Windows 10 Enterprise systeem als een werkstation. Voordat de AppLocker-policy kan worden geschreven, moet het computerobject — waar AppLocker op geconfigureerd moet worden — in een Organizational Unit (OU) worden geplaatst.

In de testomgeving hebben we het computerobject in de AppLocker-OU gezet zodat de policy kan worden gekoppeld aan de AppLocker-OU. In de Group Policy Management configuratiescherm kan er een nieuwe GPO worden aangemaakt. Deze GPO moet dan worden gekoppeld aan de betreffende OU. In dit geval is dat de AppLocker-OU. Rechtermuisklik op deze container en klik op Create a GPO in this domain, and Link it here…’.

2022 01 14 17 00 17 hddc01 hackdefense local Hackdefense1337 V Mware Workstation

Geef de GPO een duidelijke naam om de policies overzichtelijk te houden. Nu de policy is aangemaakt en is gekoppeld aan de AppLocker-OU, kan je de policy instellen. Open de policy en navigeer naar de volgende optie:

Computer Configuration –> Policies –> Security Settings –> Application Control Policies –> AppLocker

Om een goed startpunt te creëren voor de AppLocker policy, genereer je standaardregels voor alle regelcategorieën. Dit kan je doen met de Create Default Rules’ optie.

2022 01 17 10 39 50 Window

Voordat je regels kan instellen, is het handig om eerst wat te weten over de standaard regels. Hieronder staan een aantal standaard executable regels afgebeeld. 

2022 01 17 10 40 22 Window

Bij het instellen van AppLocker-regels wordt er altijd een impliciete regel bijgezet. Dit wordt ook wel een default deny regel genoemd. Deze regel blokkeert alles binnen de betreffende categorie voor elke gebruiker. Daarna worden de Allow-regels toegepast zoals hierboven staat afgebeeld. 

De eerste regel geeft aan dat iedereen executables mag aanroepen in de map Program Files’. Bij deze regel wordt er gekeken naar het pad van de executable. De tweede regel geeft aan dat gebruikers in de groep Everyone’ alle executables in de Windows’ map mag uitvoeren (e.g. cmd.exe, powershell.exe). De laatste regel geeft aan dat alle gebruikers in de groep BUILTIN\Administrators’ alle executable bestanden mogen uitvoeren op elke locatie.

Blokkeren van powershell met AppLocker-regels

Een executable die vaak wordt gebruikt bij hackaanvallen is powershell.exe. Deze executable wordt gebruikt om commando’s uit te voeren en om functies uit .NET te gebruiken. Het vorige hoofdstuk beschreef hoe de standaard regelset het gebruik van PowerShell toestaat. In het volgende voorbeeld lees je hoe PowerShell kan worden geblokkeerd voor de eindgebruiker.

Open de Group Policy Management Editor en navigeer naar de categorie Executable Rules. Rechtermuisklik op het venster en klik op Create New Rule…’. Lees de instructies zorgvuldig en selecteer bij het tabje Permissions de optie Deny’. Daarnaast kun je instellen voor welke gebruiker of groep de regel geldt. De onderstaande regel is van toepassing voor iedereen in de groep Everyone’.

2022 01 17 11 11 01 Window

In het volgende venster kun je specificeren waar de regel naar moet kijken. In dit geval moet powershell.exe’ worden geblokkeerd. Hiervoor kan elke optie worden gebruikt, maar niet elke optie is even praktisch. Je kunt kiezen tussen de volgende condities:

  • Bij de Publisher’ conditie wordt er gekeken naar het code signing certificaat van het bestand. Code signing is een techniek waarmee de maker van de software wordt geverifieerd. 
  • Met de Path’ conditie wordt er gekeken naar het pad waar het bestand in staat. Het nadeel van deze conditie is dat deze regel soms te omzeilen is door het bestand in een andere (geldige) map te plaatsen.
  • Met de File Hash’ conditie wordt er gekeken naar de unieke vingerafdruk van het bestand. Deze vingerafdruk is uniek voor elk bestand en kan daarom worden gebruikt om te verifiëren of de gebruiker hier rechten op heeft. Het is echter niet praktisch om elke vingerafdruk van elk vertrouwd bestand in te stellen. Daarnaast veranderd de vingerafdruk bij elke verandering in het bestand.

Voor de beheerbaarheid en effectiviteit van de regel kiezen wij nu voor de Publisher’ conditie. 

2022 01 17 11 11 19 Window

De regel moet nu nog worden afgesteld met een conditie. De regel in de onderstaande afbeelding kijkt naar het signing certificaat, de uitgever, de productnaam en de bestandsnaam.

2022 01 17 11 12 11 Window

Klik vervolgens op Create’ en de regel zal verschijnen tussen de eerder gemaakte standaardregels.

2022 01 17 11 27 47 Window

Nu AppLocker is ingesteld moet de service Application Identity’ nog automatisch worden opgestart op elk werkstation. Dit kun je instellen via een GPO. Deze optie staat onder het volgende pad:

Computer Configuration –> Policies –> Security Settings –> System Services

Zoek de service Application Identity’ op en verander de startup modus naar Automatic’.

2022 01 14 17 00 17 hddc01 hackdefense local Hackdefense1337 V Mware Workstation

Nu de policy helemaal klaar is, kunnen de regels worden getest. Open de computer waarop de policy actief op is, en login met een domein account. Zorg ervoor dat de computer is herstart na het instellen van de policy. 

Log na het herstarten in met een gebruiker en open een commando prompt. Start vervolgens een PowerShell venster door het commando powershell.exe’ uit te voeren. Zoals is afgebeeld in de onderstaande afbeelding wordt deze actie geblokkeerd vanwege de policy.

2022 01 17 11 28 54 Window

Hou er rekening mee dat er meerdere manieren zijn om .NET aan te spreken. In het bovenstaande voorbeeld wordt alleen PowerShell geblokkeerd, maar PowerShell kan ook worden geopend met het programma powershell_ise.exe.

Conclusie: gebruik Applocker!

AppLocker kan veel betekenen voor de beveiliging van uw Windowsomgeving. Afhankelijk van de configuratie, kan dit beveiligingsmechanisme al een groot deel van alle drive-by malware afvangen.

Test eerst de AppLocker-regels voordat uw dit naar productie brengt. Het testen van de regelsets neemt veel tijd in, begin dus daarom met Audit Only’ modus zodat er geen programma’s worden geblokkeerd. Deze modus maakt alleen logbestanden die informatie geeft over de regels. Gebruik deze informatie om de regelset passend te maken voor uw organisatie. Microsoft heeft een AppLocker handleiding geschreven om AppLocker te implementeren in uw IT-infrastructuur.