Maak Windows veilig met Restric’tor

Redactie
0

Inhoudsopgave

restrictor

In de Windows-versies die voor bedrijven bedoeld zijn, bouwt Microsoft functies in om ze betrouwbaar tegen hack-aanvallen te beschermen. Gebruikers van Windows Home hebben geen toegang tot die functies, tot nu toe: met ons programma Restric’tor kun je ze voor alle Windows-versies configureren.

De bedoeling van malware als virussen en trojans is dat ze code op de computer van een slachtoffer kunnen uitvoeren. Om schadelijke software uit te sluiten, scant een antivirusprogramma bijvoorbeeld de bestanden op de harde schijf en probeert dan code te ontdekken die op bestaande malware lijkt. Afhankelijk van de kunde van de ontwikkelaar lukt dat meer of minder goed.

De perfecte beveiliging van een ideaal systeem zou bestaan uit het helemaal geen code meer mogen uitvoeren waarvan niet zonder twijfel vaststaat dat die onschadelijk is.

Software Restriction Policies

Windows heeft een mechanisme waarmee je heel dicht bij dat doel komt: het zogeheten softwarerestrictiebeleid oftewel de Software Restriction Policies (SRP’s). Daar kun je regels mee definiëren die Windows opdragen alleen nog programma’s uit een van tevoren opgestelde lijst uit te voeren – onbekende code heeft dan geen mogelijkheden meer schade aan te richten of zich in het systeem te nestelen.

Die richtlijnen zijn eigenlijk bedoeld om administrators in een bedrijf een catalogus te laten definiëren van toegestane programma’s, die ze via het Groepsbeleid kunnen verdelen over alle computers in een Windows-domein.

Tools voor het bewerken van de regels zitten dan ook alleen in de Windows-versies voor bedrijven: Professional, Enterprise en Ultimate. Technisch gezien zijn die regels echter niets anders dan automatisch gegenereerde registersleutels. Als ze aanwezig zijn, houdt ook Windows Home zich eraan. Daar maakt onze tool Restric’tor dankbaar gebruik van.

Hij werkt met alle Windows-versies vanaf Windows 7. Je kunt er vrij makkelijk de registersleutels en -waarden voor SRP’s mee bewerken. Voor de Home-gebruikes zijn er naast het moeizaam en foutgevoelig rechtstreeks rondstruinen in het Register amper alternatieven voor Restric’tor. Pro- en Ultimate-gebruikers kunnen kiezen: met de in hun Windows-versie ingebouwde ‘Editor voor lokaal groepsbeleid’ (gpedit.msc) of het ‘Lokaal beveiligingsbeleid’ (secpol.msc) kun je in principe SRP-regels met dezelfde instellingen maken als met Restric’tor.

Achter de coulissen is de werkwijze echter compleet anders: daar waar Restric’tor meteen de desbetreffende registersleutels leest en schrijft, bewaren de Microsoft-tools de instellingen eerst in het lokale groepsbeleid. Bij het opslaan en bij het opstarten van de pc neemt Windows ze pas over in het Register. Anders gezegd: Restric’tor laat altijd de actueel geldige systeeminstellingen zien, terwijl de editors van Windows zelf meer indirect werken.

Daarom moet je vermijden dan weer de ene en dan weer de andere tool te gebruiken – dan is verwarring gegarandeerd. Om regels te maken voor verspreiding binnen een domein is Restric’tor niet geschikt, daarvoor bestaan geen alternatieven voor de eigen tools van Windows.

Om het even uit te proberen, kun je het exe-bestand ergens in een map op je harde schijf zetten – op een veilige installatie voor regelmatig gebruik gaan we later nog in. Restric’tor vereist een geïnstalleerd .NETframework vanaf versie 4.0. De Windowsversies vanaf Windows 8 hebben alles wat nodig is, bij Windows 7 voegen de ‘Belangrijke updates’ .NET 4.5 toe. Het programma heeft administratorrechten nodig.

Kennismaking met SRP

Als je je op je pc nog nooit met Software Restriction Policies hebt beziggehouden, zal op het tabblad General van Restric’tor alleen de door Windows ingestelde optie ‘Include Administrators’ geselecteerd zijn. De lijst van regels op het tweede tabblad is leeg.

Naar deze toestand (van geen bescherming) kun je altijd terugkeren door in het menu ‘Completely Remove SRP’ te selecteren. Dat is overigens de enige actie in Restric’tor die meteen uitwerking op je Windows heeft. Alle andere instellingen die je met het programma doet worden pas actief nadat je op de knop Apply onderaan in het venster hebt geklikt. Heb je er met de opties van Restric’tor op een gegeven moment een beetje een zooitje van gemaakt zodat het programma zelf niet meer te starten is, dan kun je SRP ook rechtstreeks via het Register terugbrengen in de begintoestand: verwijder simpelweg de complete sleutel HKEY_LOCAL_MACHINE\Software\Policies\ Microsoft\Windows\safer.

Ben je dusdanig aan het experimenteren gegaan met het configureren van regels dat zelfs het programma regedit niet meer start, dan heb je geen andere keus meer dan Windows in de veilige modus op te starten.

Belangrijkste opties

In de veilige modus wordt er geen rekening gehouden met het beleid en is de Register-editor in elk geval te gebruiken. De belangrijkste opties voor SRP staan bij Restric’tor onder ‘Default Security Level’. ‘Unrestricted’ komt overeen met de standaardtoestand van Windows: uitgaande van de juiste gebruikersrechten voert het besturingssysteem alle programma’s ongefilterd uit.

De SRP-controle wordt ingeschakeld met ‘Disallowed’. Daarmee is in eerste instantie het starten van alle programma’s verboden – ook de exe-bestanden die bij het besturingssysteem horen kunnen niet starten. Zonder verdere maatregelen is Windows dan onbruikbaar. Door op Apply te klikken, test Windows eerst of een dergelijke toestand zou optreden, en weigert bij twijfel om dat in het Register te schrijven. Daar krijg je dan een foutmelding van.

Restrictor eerste tab

De belangrijkste opties voor het configureren van Software Restriction Policies staan bij Restric’tor op het eerste tabblad. Het Default Security Level bepaalt of er sowieso wordt ingegrepen of niet.

De optie ‘Basic User’ is eigenlijk alleen bij Windows Server van betekenis en is op een desktop-pc niet aan te raden. Restric’tor biedt deze optie eigenlijk alleen voor de volledigheid. Het effect komt in essentie overeen met de instelling ‘Disallowed’.

De switch ‘Include Libraries’ zorgt voor iets meer veiligheid, maar drukt wel sterk op de totale performance van het systeem en is daarom niet aan te raden. Hij zit alleen maar in Resctric’tor om hem uit te kunnen schakelen als hij door een andere tool geactiveerd zou zijn. Hetzelfde geldt voor de vreemd genoeg door Windows zelf geactiveerde instelling ‘Include Administrators’. Als je die optie activeert, zaag je onder omstandigheden de poten onder je eigen stoel uit.

Als de andere SRP-opties het uitvoeren van Restric’tor niet expliciet toestaan, kun je dit programma (en alle andere) altijd nog met een rechtermuisklik ‘Als administrator uitvoeren’. Maar de optie ‘Include Administrators’ verhindert dat. Als je even niet uitkijkt blokkeer je zelfs de Register-editor en ben je op de veilige modus aangewezen om SRP anders te configureren.

Om te voorkomen dat het uitvoeren van programma’s met administratorrechten een nieuw gat wordt om weer onbekende en wellicht gevaarlijke software in je systeem binnen te sluizen, moet je bij de ‘Instellingen voor  Gebruikersaccountbeheer’ de schuifregelaar op minstens het tweede niveau van boven zetten, en het liefst helemaal bovenaan.

Mocht de bekende melding van het Gebruikersaccountbeheer (‘Wilt u toestaan dat deze app wijzigingen aan uw apparaat aanbrengt’) daarna zonder reden verschijnen, dan is dat een duidelijk teken dat het een of andere programma probeert zich langs SRP heen te worstelen. Bij twijfelgevallen is ‘Nee’ dan het juiste antwoord.

Tegen uitvoerbare code

Zoals gezegd dient SRP ervoor om het laden van uitvoerbare code die het systeem schade zou kunnen toebrengen te verhinderen. Code wordt door Windows echter alleen gestart als het in een bestand zit dat het systeem direct herkent als uitvoerbaar of dat bij een programma hoort dat de code erin zelf kan uitvoeren.

De bestandstypen die vanuit het oogpunt van SRP in de tweede categorie vallen, worden bepaald door de lijst die opent als je bij Restric’tor klikt op ‘Edit…’ onder de ‘Designated File Types’. Om die niet handmatig te hoeven vullen, moet je bij de eerste keer dat je SRP configureert een van de menuitems ‘Load Microsoft Default’ of liever nog ‘Load c’t Recommendation’ selecteren.

De lijst van bewaakte bestandstypen verschilt bij de beide opties maar op één punt: het bewaken van LNK-bestanden, zoals Microsoft standaard doet, vinden we overbodig omdat een snelkoppeling op zich niet gevaarlijk is, zelfs als die naar kwaadwillende programma’s verwijst. Het is van belang dat het doel bewaakt wordt – en daar bekommeren de andere SRP-regels zich om.

Restrictor tweede tab

Op het tweede tabblad van Restric’tor definieer je regels waarmee SRP de te vertrouwen programma’s herkent. Zonder dergelijke regels is je computer met SRP ingeschakeld onbruikbaar.

Met het invoerveld ‘Log File’ kun je Windows de opdracht geven het starten van alle programma’s te loggen. Elk logboek- item vermeldt of SRP het programma toegestaan of geblokkeerd heeft en welke regel er voor die beslissing gebruikt werd.

Als SRP actief is, is er een betere manier om de regels in de gaten te houden: elke keer als ze het starten van een programma verhinderen, schrijft Windows een item in de Logboeken. Daarin kun je de activiteiten en het resultaat volgen of met de geschikte tools automatisch laten analyseren.

Doorlezen is gratis, maar eerst even dit:

Dit artikel is met grote zorg samengesteld door de redactie van c’t magazine – het meest toonaangevende computertijdschrift van Nederland en België. Met zeer uitgebreide tests en praktische workshops biedt c’t de diepgang die je nergens online vindt.

Bekijk de abonnementen   Lees eerst verder

Gebruik van regels

De boven al genoemde menu-items voor het laden van een basisconfiguratie initialiseren niet alleen de lijst van bewaakte bestandstypen, maar maken ook al een aantal regels aan. Die staan op de lijst op het tweede tabblad Rules.

De noodzaak van die regels wordt duidelijk als je beseft hoe SRP werkt: met het standaard securitylevel ‘Disallowed’ is in eerste instantie het uitvoeren van álle programma’s verboden. Om ervoor te zorgen dat Windows werkt en je gewoon kunt werken, moeten er uitzonderingen zijn – en dat is precies wat je met die regels doet.

Het doel van SRP is om alleen nog code toe te staan die je vertrouwt. Daar hoort in eerste instantie alles bij wat bij Windows zelf hoort, oftewel de inhouden van de systeemmap. Dat is in de meeste gevallen C:\Windows, maar dat kan in sommige uitzonderingsgevallen ook anders zijn.

Daarom verwijst de desbetreffende regel niet meteen naar C:\Windows, maar gebeurt dat via de Registersleutel HKEY_ LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\SystemRoot. Iets vergelijkbaars geldt voor de mappen ‘Program Files’ en ‘Program Files (x86)’, waar je normaal gesproken je software in installeert.

Al die mappen hebben gemeenschappelijk dat daar alleen processen in mogen schrijven die met administrator- of systeemrechten draaien. In de systeemmap zijn dat bijvoorbeeld Windows Update en in de programmamap de set-upprogramma’s die je uitdrukkelijk met administratorrechten gestart hebt.

Niet de deur wagenwijd open

Als je de vragen van het Gebruikersaccountbeheer serieus neemt, bevatten die mappen alleen code die je eerder al een keer expliciet vertrouwd hebt. Padregels met het beveiligingsniveau ‘Unrestricted’ zijn er dus voor om mappen te identificeren waarin te vertrouwen code staat. Om ervoor te zorgen dat die eigenschap behouden blijft, moet je in geen enkel geval aan de rechten van die mappen komen en gewone gebruikers schrijftoegang geven.

Dat is dan hetzelfde als de deur wagenwijd openzetten, en daar zitten de programmeurs van bijvoorbeeld ransomware nou net op te wachten: een onbewust aangeklikte e-mailbijlage of een document met verborgen macro’s kunnen er dan code in opslaan en zich zo in het systeem nestelen.

Als je daar goed op let, kun je in Restric’tor natuurlijk ook andere padregels met het security-level ‘Unrestricted’ aanmaken. Klik op de plusknop naast de regellijst voor een menu waarin je kunt kiezen uit een nieuwe pad- of een nieuwe hashregel.

Kies bijvoorbeeld een map op een andere schijf dan de systeemschijf, waarop je regelmatig programma’s installeert om ruimte te sparen op de krap bemeten ssd waarop het Windows-systeem draait. Dan moet je gewone gebruikers ook voor die map geen schrijfrechten geven. In de praktijk is het handig om zo’n map dezelfde rechten te geven die ook voor de standaardmap voor programma’s geldt.

Dat doe je het makkelijkst door de rechten daarvan te kopiëren, bijvoorbeeld met de commando’s

$acl = Get-Acl “C:\Program Files”
Set-Acl “D:\programmas” $acl

Die commando’s moet je invoeren in een met administratorrechten gestarte PowerShell. In de tweede regel moet je de naam van de map dan aanpassen.

Uitzondering op de uitzondering

Helaas heeft ook de systeemmap van een schone Windows-installatie een paar mappen waarin je met beperkte gebruikersrechten toch kunt schrijven. Ook in de programmamappen van een paar pc’s zijn we wel eens beschrijfbare mappen tegengekomen – die kwamen onverantwoordelijk genoeg ook nog eens van het installeren van Microsoft-programma’s.

Het inperken van de rechten van die mappen zodat malware daar niets meer te zoeken heeft, is echter geen goed idee omdat dat de functies van de desbetreffende programma’s kan beperken. Je kunt dan beter SRP-regels zodanig confi gureren dat het uitvoeren van programma’s vanuit die mappen verboden is.

schrijftoegang beperken

Microsoft staat het heel onverantwoord toe dat normale gebruikers schrijftoegang hebben tot sommige submappen van de systeemmap. Restric’tor helpt om die te vinden en te blokkeren.

Daar zijn de padregels met het beveiligingsniveau ‘Disallowed’ voor bedoeld. Om dergelijke mappen te identifi ceren, heeft Restric’tor het menu-item ‘File / Check Rules’. In het venster dat dan verschijnt klik je op ‘Search folder’, waarna Restric’tor de rechten van alle submappen van alle mappen controleert waarvoor een ‘Unrestricted’-padregel ingesteld is.

Alle mappen waarin je zonder administratorrechten kunt schrijven, krijg je dan op een lijst te zien. Klik vervolgens op OK om voor iedere map waarvan je het vinkje niet verwijderd hebt een padregel aan te maken met het beveiligingsniveau ‘Disallowed’.

Programma's die je wilt blijven gebruiken

Op de meeste Windows-pc’s staan ook buiten de Windows- en programmamap vaak programma’s die een gebruiker niet wil missen. Dat kunnen even snel gedownloade speciale tools zonder eigen installatieprogramma zijn, maar in die categorie vallen ook portable programma’s die je bijvoorbeeld op een usb-stick hebt staan.

Voor het eerste type adviseren we om een submap – bijvoorbeeld ‘tools’ – in de programmamap aan te maken. Om de utility’s daar op te slaan, heb je dan een bestandsmanager nodig die je met administratorrechten kunt starten. Onze favoriet is Double Commander, maar als noodmaatregel kun je ook Kladblok starten als administrator en dan via ‘Bestand / Openen’ het bijbehorende dialoogvenster ‘misbruiken’ als Verkenner.

Een dergelijke tools-map is overigens ook de ideale plek om Restric’tor in te zetten. Die manier werkt voor de meeste portable programma’s alleen echter niet: zij moeten in hun eigen map schrijfrechten hebben, ook als ze onder een beperkt gebruikersaccount draaien. Die map barricaderen werkt dan dus niet, net zo min als het aanmaken van een SRP-padregel die het uitvoeren van de code die in die map staat toestaat.

Dat laatste is voor mappen op een usb-stick sowieso geen goed idee: de meeste sticks zijn met het bestands systeem FAT32 geformatteerd, maar dat kent geen rechtenbeheer, zodat gebruikersprocessen in het algemeen overal mogen schrijven – een ideale toegangspoort voor malware. Voor dergelijke gevallen heeft SRP hashregels. Daarmee identificeer je een afzonderlijk uitvoerbaar bestand als vertrouwenswaard.

Daarbij zijn kenmerken als bestandspad, grootte en wijzigingsdatum niet doorslaggevend, maar een hash, oftewel een digitale vingerafdruk van het bestand. Dat heeft het voordeel dat malware geen kans heeft om zich bijvoorbeeld naar een toegestaan programma te kopiëren: de hash zou daarbij onherroepelijk veranderen.

Omdat het voor de hashregels niet uitmaakt waar een bestand opgeslagen is, werken ze bovendien ook als de usb-stick met portable programma’s een andere stationsletter krijgt toegewezen. Het voordeel van het uniek identificeren van bestanden wordt echter een nadeel als het betreffende programma vaak updates krijgt. Dan moet je de hash telkens weer opnieuw berekenen om het programma weer toe te staan.

Ook programma’s die zich in een door gebruikers te beschrijven map installeren zijn een probleem. Dat doen die programma’s vaak om zich stilzwijgend en zonder inmenging van het Gebruikersaccountbeheer te kunnen updaten.

Als SRP plotseling meldt dat een dergelijk programma geblokkeerd is, moet je als verantwoordelijke gebruiker elke keer kijken of de hash door een legitieme update gewijzigd is of dat er toch een trojan binnengedrongen is. Hoe je dat met niet al te veel moeite kunt doen, staat in c’t 10/2017, p. 56.

Nieuwe Hashregel

Bij Restric’tor maak je een nieuwe hashregel aan door op de plusknop naast het regeloverzicht te klikken en ‘New Hash Rule’ te kiezen. Met de knop ‘Browse’ ga je naar het gewenste programmabestand. De bestands-informatie die Restric’tor dan in het betreffende veld laat zien dient er alleen voor om de regel later in de lijst weer terug te kunnen vinden.

Het programma berekent de hash op de achtergrond – het gaat daarbij om een min of meer willekeurige, nietszeggende tekenvolgorde. Om een hashregel na bijvoorbeeld een update bij te werken, klik je dubbel op de desbetreff ende regel of op het potloodpictogrammetje rechts en selecteer je het programmabestand opnieuw.

De pad- en hashregels zijn te verwijderen door op het rode kruisje rechts te klikken. Als je je afvraagt waarom de regellijst na het laden van de door ons geadviseerde regels al twee hashregels bevat: met de ene wordt Restric’tor zelf als te vertrouwen aangemerkt, de tweede betreft een Windowseigen bestand met de naam dism host.exe, dat altijd uit de gebruikersmap wil starten.

De achtergrond daarvan is een systeemeigen geplande taak die af en toe controleert of er nog voldoende ruimte vrij is op de schijf. Omdat Windows dismhost.exe daar echter elke keer naartoe kopieert vanuit de Windows-map en na het beëindigen van de taak weer verwijdert, krijg je hem niet te pakken met een padregel voor de systeemmap.

Als Restric’tor een update krijgt, kun je met ‘File / Add a Hash Rule for Restric’tor’ de hashregel voor Restric’tor makkelijk weer bijwerken. Zoals eerder gezegd, is Restric’tor niet geschikt om Software Restriction Policies in een bedrijfsnetwerk uit te rollen. In je privé-computerpark wil je een moeizaam gemaakte regelset echter wel van de ene machine op een andere kunnen overzetten.

Daar dienen de menu-items ‘Import Configuration’ en ‘Export Configuration’ in het File-menu voor. Die zijn ook geschikt om de SRP-configuratie te back-uppen voor als je bijvoorbeeld het besturingssysteem opnieuw wilt installeren.

(Hajo Schulz)

Meer over

Software

Deel dit artikel

Lees ook

Malware bekijken zonder risico, via je browser

Met de online sandbox any.run kun je malware bekijken zonder risico, via je browser. Vaak krijg je daar veel informatie mee boven water – en het is no...

Malware en reclame filteren met de Raspberry Pi en Pi-hole

Veel dingen wil je al uit het internetverkeer halen voordat het je huis binnenkomt, zoals crypto-dieven, phishing-websites, tracking-code en agressiev...

0 Praat mee
avatar
  Abonneer  
Laat het mij weten wanneer er