Gooi Windows op slot
Onze tool activeert professionele beveiliging
Ransomware die je persoonlijke data versleutelt is bij cybercriminelen nog steeds erg in trek. Windows staat bij particulieren immers vaak wagenwijd open en dan is het met de software makkelijk geld verdienen. Met onze c’t-tool maak je daar een eind aan.
Windows-pc's bij bedrijven en instellingen zijn vaak zo dichtgetimmerd dat je er alleen maar programma's op kunt starten die van tevoren door de administrator uitdrukkelijk goedgekeurd zijn. Dat moet niet alleen verhinderen dat de medewerkers een spelletje gaan spelen in plaats van te werken, maar beschermt ook betrouwbaar tegen allerlei virussen en trojans. Er is inmiddels wel wat malware die zich bestandsloos in het systeem nestelt [1], maar die werkt meestal anders: een script op een getroffen website of een macro in een geïnfecteerd document downloadt het eigenlijke malwarebestand naar de harde schijf en voegt dan een autostart-item toe dat ervoor zorgt dat het programmabestand bij het opstarten van het systeem mee opgestart wordt. Als dat programma echter niet in de lijst van toegestane applicaties staat, mislukt dat starten ook en kan de malware verder niets aanrichten.
Hetzelfde geldt voor malware die als uitvoerbaar bestand via bijvoorbeeld de mail binnenkomt. Het mechanisme dat dit tegenhoudt heet Software Restriction Policies (SRP). Daarbij gaat het in principe om lijsten met toegestane en verboden programma's en bestandstypen. Nieuwere Windows-versies hebben een nog wat krachtigere variant daarvan met de naam AppLocker, maar voor beveiliging tegen ransomware is het al bij Windows XP ingevoerde SRP voldoende.
Dat helpt privégebruikers echter niets, want de Home-versies van Windows moeten het zonder de tools doen die nodig zijn voor het configureren van SRP – terwijl SRP ook voor de Homeversies werkt. We hebben dat probleem opgelost: met ons programma Restric'tor kun je SRP bij alle Windows-versies op dezelfde manier configureren en beheren.
In dit artikel gaan we wat meer in op wat SRP eigenlijk is, welke gevolgen het heeft en hoe je op je eigen pc zonder het activeren van SRP van tevoren kunt testen wat er allemaal mee geblokkeerd wordt. Dat vergemakkelijkt het kiezen op welke computers je SRP wilt toepassen. Want het moet wel duidelijk zijn: SRP is voor veel, maar niet voor alle pc's geschikt. Het volgende artikel verklaart het gebruik van onze tool Restric'tor en laat zien hoe je Windows zo ver kunt krijgen dat je vanzelf geïnformeerd wordt als er tegen je regels wordt ingegaan. We geven tips hoe je bij de eerste keer starten van een programma al kunt herkennen of het mogelijk om malware gaat.
Schrik niet terug van de lengte van dat artikel. Ook al proberen we om met onze Restric'tor je zoveel mogelijk werk uit handen te nemen, dan nog kan het configureren en beheren van SRP met enige moeite gepaard gaan – afhankelijk van het gebruik van een Windows-installatie kan dat variëren van een keer instellen en verder vergeten tot een continu doorlopende zorg. Je profiteert dan echter wel van een voor privégebruikers tot nu toe onbereikbaar beveiligingsniveau onder Windows. Lees de artikelen rustig door en overweeg dan hoeveel moeite je voor het gebruik van SRP op je computers moet investeren en of je dat de winst aan beveiliging waard is. Denk daarbij ook aan alle pc's waar je in de vriendenen familiekring de admin speelt (zie c’t 9/2017). In de praktijk zullen de meesten van hen weinig merken van geactiveerde SRP, en je hebt zelf het voordeel dat je niet steeds weer een virus van een pc af moet komen halen. Dan heb je toch voordeel van SRP, ook al gebruik je die zelf niet.
Langs het Gebruikersaccountbeheer
Eerst nog even iets over waarom een standaard Windows-installatie ook vandaag de dag nog altijd wagenwijd openstaat. Microsoft heeft de laatste jaren immers wel wat moeite gedaan om dat tegen te gaan. Sinds Service Pack 2 van Windows XP zit er bijvoorbeeld een firewall in en sinds Windows 8 een virusscanner. Sinds Vista werken de gebruikers normaal gesproken met beperkte gebruikersrechten – zelfs als ze als administrator aangemeld zijn.
Daar zorgt het Gebruikersaccountbeheer voor, oftewel het User Account Control (UAC). Het UAC zorgt ervoor dat elk proces dat een als administrator aangemelde gebruiker start, desondanks in eerste instantie met beperkte rechten draait. Dat geldt zelfs voor de Verkenner. Zonder administratorrechten heb je onder meer niet overal schrijftoegang. Dat geldt bijvoorbeeld voor de Windowsmap en die van de Program Files. Als een proces daar wat in wil schrijven of naartoe wil kopiëren, moet het al met administratorrechten gestart zijn of moeten die alsnog toegekend worden. Dat wordt allebei opgelost met de bekende vraag "Wilt u toestaan dat … ?". Alle andere processen starten desondanks weer met beperkte rechten.
Het continue gevraag van het UAC werkt op een gegeven moment wat op de zenuwen, zeker als je zelf op iets geklikt hebt en je het eigenlijk na de eerste klik al zeker wist. Als een dergelijke vraag om toestemming echter vanuit het niets verschijnt, dan probeert waarschijnlijk het een of andere programma op de
achtergrond om administratorrechten te krijgen. Dan bestaat altijd het risico dat het om malware gaat. Als je op zo'n moment dan simpelweg op Ja klikt, heb je verloren als het daadwerkelijk om een kwaadwillend programma gaat. Een proces met administratorrechten mag immers alles op het systeem. Je kunt het achteraf rechten ontnemen, maar als een proces eenmaal als administrator draait, kan het zich ontbrekende toegangsrechten weer eenvoudig zelf toekennen. Alleen de virusscanner zou dan nog roet in het eten kunnen gooien, maar een met administratorrechten draaiend programma kan zich daar makkelijk voor verstoppen of hem eenvoudigweg uitschakelen.
De malware-programmeurs waren een van de eersten die beseften dat de UAC-vragen op een aanval konden wijzen. Daarom proberen ze zoveel mogelijk te voorkomen dat ze dingen doen die een dergelijke vraag activeren. En dat zou ook geen nut hebben, want als ransomware de door UAC beveiligde Windows-map zou versleutelen, kun je Windows altijd simpelweg nog opnieuw installeren. De mappen in het gebruikersprofiel worden niet door UAC beschermd en zijn wel te versleutelen. Daar staan de persoonlijke foto's, video's en documenten van de gebruikers in, en als je daar geen back-up van hebt, zul je eerder geneigd zijn het geëiste losgeld te betalen. En omdat er ook voor gebruikers met beperkte rechten plaatsen zijn waar ze autostarts kunnen neerzetten, kan malware zich probleemloos zonder administratorrechten op het systeem nestelen – en daardoor heeft Windows in de standaardinstelling de deuren wagenwijd openstaan.
Om dat probleem op te lossen, kun je de controle door het Gebruikersaccountbeheer ook voor de gebruikersmappen instellen, maar dan wordt het redelijk onmogelijk om nog zinnig te werken: elke keer als je een document opslaat of een back-up maakt, krijg je die vraag dan, net als bij elke kopie die je maakt, elk bestand dat je verwijdert enzovoort. Dat zou meer problemen opleveren dan oplossen.
SRP biedt uitkomst
Software Restriction Policies werken anders: ze zorgen ervoor dat Windows alleen het starten van van tevoren ingestelde programma's toestaat. Daardoor kan malware zich wel in het gebruikersprofiel nestelen, maar van daaruit niet starten en daardoor geen schade aanrichten. De beperkingen gelden daarbij uitsluitend voor uitvoerbare bestanden, dus bestandstypen als exe, bat, vbs en dergelijke. Die lijst is aan te passen. Documenten worden door SRP daarentegen niet beschermd: het openen van teksten, spreadsheets, video's et cetera is dus ook met geactiveerde SRP zonder problemen mogelijk. Het is alleen belangrijk dat het aan het documenttype gekoppelde programma is toegestaan, bijvoorbeeld het Office-pakket.
Er zijn verschillende soorten regels die het starten van software toestaan. Voor afzonderlijke uitvoerbare bestanden is een 'hashregel' aan te raden. Bij het aanmaken van zo'n regel maakt Windows zelf een hashwaarde – een soort eenduidige vingerafdruk – van het bestand en kijkt in het vervolg bij het starten van een uitvoerbaar bestand of dat een van de toegestane hashwaarden heeft. Alleen dan wordt het uitgevoerd, anders niet. Door de hashwaarde maakt het niet uit waar het bestand staat en hoe het heet, het is alleen van belang dat het niet verandert. Malware zal proberen om een bestand te veranderen, wat tot een onjuiste hashwaarde leidt.
Het is natuurlijk wel redelijk omslachtig om voor alle programma's die je gebruikt elk een hashregel op te stellen. Daarom is er nog een ander regeltype: de padregel. Daarmee wordt bedoeld dat je met een enkele regel de complete inhoud van een map met al zijn submappen toestemming geeft. Dat is bijvoorbeeld handig voor de mappen 'Windows' en 'Program Files' – zonder uitzonderingsregel voor die mappen zou geen enkele van de daar geïnstalleerde programma's meer kunnen starten, maar ook Windows zelf niet. Je blijft dan naar een zwart scherm zitten kijken. Daarom maakt Windows bij het activeren van het SRP-mechanisme uit zichzelf al padregels voor die twee mappen aan.
Bij het aanmaken van padregels moet je opletten dat je alleen paden toestaat waarvoor gebruikers met beperkte rechten geen schrijftoegang hebben. Je moet dan de rechtencombinatie voor schrijven en uitvoeren verhinderen, want in een map waarin beide tegelijk zijn toegestaan, kan malware zich ongemerkt nestelen. Bij de map 'Program Files' heeft een gebruiker met beperkte rechten geen schrijftoegang, daarom kan een dergelijke padregel zonder problemen ingesteld worden. Voor de Windows-map geldt dat niet: ergens onderin het bestandssysteem zitten afzonderlijke submappen waarin gebruikers en processen ook zonder aministratorrechten mogen schrijven. Onze tool Restric'tor heeft daarom een optie om dergelijke submappen te zoeken en te blokkeren met extra padregels. SRP's kunnen niet alleen toestaan, maar ook verbieden. In een verboden map kun je de afzonderlijke bestanden met een hashregel dan toch weer toestaan.
Makkelijk maken
SRP's kunnen niet alleen voor gebruikers met beperkte rechten gelden, maar ook
Een virusscanner is allang niet meer
genoeg
voor administratoraccounts. Dat is in de meeste gevallen niet aan te raden, want dat maakt het werk onnodig moeilijk: als de SRP's alleen voor gebruikers met beperkte rechten gelden, kunnen ze als ze dat willen een programma met een rechtermuisklik 'Als administrator uitvoeren' en op die manier willekeurige programma's uitvoeren. Voor programma's die sowieso administratorrechten nodig hebben, hoeven dan ook geen regels te worden aangemaakt. En zit je toevallig net met een deadline, dan kun je ook met geactiveerde SRP's even een op dat moment onmisbaar programma starten, zelfs als er daar nog geen uitzonderingsregel voor is.
Ook het installeren van programma's is zonder problemen mogelijk: start het set-upprogramma gewoon als administrator. Als de software op de juiste manier in de programmamap geïnstalleerd wordt, hoef je er niet eens een uitzonderingsregel voor op te stellen.
Alleen even kijken!
Als je alleen wilt weten wat de uitwerking van de SRP's op je eigen computer zijn, kun je dat gewoon uitproberen. Dan laat je Windows in een logbestand alle programmastarts registreren die bij geactiveerde SRP door de regels bewaakt zouden worden. Op die manier kun je achterhalen wat SRP's op je computer voor gevolgen hebben zonder ze daarvoor te moeten activeren.
Download via de link onderaan dit artikel ons programma Restric'tor en start het als administrator. Op het eerste tabblad onderaan kun je een logbestand aanmaken. Ga via de 'Browse'-knop naar een beschrijfbare map en geef een bestandsnaam op. Klik dan op 'Opslaan'. Als je dan nog op 'Apply' klikt en 'Ja' als antwoord geeft op de vraag of de veranderingen in het Register moeten worden geschreven, maakt Windows het logbestand aan. Dat kun je later lezen met een gewone editor zoals het Kladblok.
Het logbestand bevat geen persoonlijke informatie, maar alleen wat gegevens over de geregistreerde gebeurtenissen: elk item begint met de naam van het startende proces, dus bijvoorbeeld svchost.exe bij het starten van services of explorer.exe als je zelf een programma via het startmenu of vanuit de Verkenner opstart. Dan volgen de proces-ID (PID), de naam en het pad van het gestarte programma en als laatste de ID van de regel die het starten toestaat. Omdat Windows niet meer informatie opslaat dan dat en alleen bij het starten van een programma wat in het logbestand schrijft, is dat normaal gesproken ook na een paar weken niet meer dan een paar MB groot.
Om een overzicht te krijgen van hoe veel uitzonderingsregels er naast de standaardregels voor de Windows- en programmamappen nodig zouden zijn, gebruik je je pc na het activeren van het logbestand gewoon een paar dagen net als voorheen. Daarna kijk je in het logbestand. Tip: als je het logbestand te onoverzichtelijk vindt, kopieer je de hele inhoud even in een spreadsheet van een officepakket en sorteer je op de kolom met de padnamen. Alleen de regels waarin de paden anders beginnen dan met de genoemde uitzonderingen 'C:\Program Files' en 'C:\Windows' zijn interessant. Bij een 64-bit Windows-versie gelden de standaardregels ook voor de map 'C:\Program Files (x86)'.
Bij onze test gebeurde het soms dat Windows ophield met het registreren in het logbestand als de computer meerdere dagen aanstond. Bij een herstart begon dat weer gewoon. Een reden daarvoor hebben we niet kunnen ontdekken, en dramatisch is het ook niet omdat een herstart het probleem oplost en er geen andere opties voor het bewaken van SRP's zijn die betrouwbaar werken – zie het kader op pagina 54.
Veranderingen door SRP's
Ook al werken alle apps uit de Store en de meeste gangbare programma’s probleemloos met geactiveerde SRP's, je moet er toch even aan wennen. Windows herkent bijvoorbeeld programma's die administratorrechten nodig hebben aan de hand van sommige vaste bestandsnamen als setup.exe en install.exe of aan een in het bestand zittend manifest dat de rechten aangeeft. De bewaking door de SRP's slaat in alle gevallen echter eerder aan en verhindert daarmee het opvragen van die gegevens en daardoor het starten van het programma. Ook hier helpt het weer om het programma met een rechtermuisklik als administrator uit te laten voeren. Dergelijke programma's herken je aan een klein schildje rechtsonder in het programmapictogram.
Als je graag portable programma's gebruikt die niet geïnstalleerd hoeven te worden, kan dat ook bij geactiveerde SRP's. Voor portable systeemutility's die alleen met administratorrechten werken, zijn niet eens regels nodig. Voor alle andere maak je even hashregels aan. Alle portable programma's die af en toe of zelfs vaker updates nodig hebben, zoals een browser of mailclient, zijn echter een probleem. Daarbij moet je de regels elke keer aanpassen en dan zowel voor het updateprogramma als het programma zelf en soms ook voor het wrapper-programma dat ervoor zorgt dat het überhaupt portable is. Dat is op de lange termijn alleen leuk als je over stalen zenuwen beschikt. We raden in die gevallen aan niet de portable versies van die programma's te gebruiken, maar de installeerbare versies. In de programmamap gaat het dan ook met updaten goed.
In sommige gevallen zorgen geïnstalleerde programma's echter ook voor problemen. Googles browser Chrome kan afhankelijk van de versie naar keuze in het gebruikersprofiel geïnstalleerd worden, maar van daaruit werkt hij alleen met extra regels – die door de updates dan telkens weer aangepast moeten worden. Daarom is het aan te raden Chrome in plaats daarvan in de programmamap te installeren, dan werkt alles inclusief de updates ook zonder extra regels. In het geval van Spotify zit het nog weer anders: de client wil zich sowieso in het gebruikersprofiel installeren, maar dat levert door de vele updates ook weer gedoe met regels op. Maar ook hier is er een oplossing: de webplayer. Die werkt zonder uitzonderingsregels in de browser. Hij staat op play.spotify.com. Bij Electron-apps zoals WhatsApp deden zich andere problemen voor. Die apps staan ook in de gebruikersmap. Hetzelfde geldt voor OneDrive, Steam en Origin. Daar waren allemaal uitzonderingsregels voor nodig.
Soms geven ook programma's die wel in de programmamap geïnstalleerd staan problemen bij het updaten. De PDF-viewer Foxit Reader zet bijvoorbeeld het bestand updater.exe in de Temp-map van het gebruikersprofiel, maar kan die van daaruit niet starten als SRP geactiveerd is. Het toevoegen van een padregel als uitzondering mag hier niet omdat de gebruiker hier schrijfrechten heeft. Een alternatief is om voor updater.exe een hashregel op te stellen, maar die moet dan telkens bijgewerkt worden, of om het automatisch updaten uit te zetten en de reader als administrator te starten om het programma updates te laten installeren.
Ook het werken met scripts is even wennen, omdat die als uitvoerbare bestanden onder de SRP-regels vallen. Je kunt niet meer met rechts klikken op batchbestanden en 'Bewerken' kiezen in het snelmenu om ze te openen met een editor. Je kunt echter wel eerst je editor starten en het script daarin openen of het vanuit de Verkenner naar de editor slepen om het te bewerken. Het uitvoeren van een script moet dan weer met administratorrechten of na het aanmaken van de bijpassende regel.
De Windows PowerShell werkt bij geactiveerde SRP in een 'Constrained Language Mode' waarmee toegang tot de meeste COM-en .NET-objecten verboden is. Gewone Cmdlets werken echter net als voorheen en bij PowerShell-sessies die met administratorrechten gestart worden verandert er niets. Details krijg je met het commando Get-Help about_Language_Modes.
In het logbestand komen ook steeds weer items te staan met .lnk-bestanden, maar die kun je bij het doorzoeken gewoon negeren. Daarbij gaat het alleen om snelkoppelingen die vanuit securityoogpunt niet kritisch zijn omdat het doel van de snelkoppelingen ook door SRP bewaakt wordt – meer daarover in het volgende artikel.
En daar gaat hij…
Na het analyseren van het logbestand kun je beslissen op welke eigen of door jou beheerde pc's je SRP wilt activeren. In het volgende artikel staat hoe je dat met Restric'tor doet. Daarin staat ook hoe je het blokkeren van programma's zo makkelijk mogelijk kunt bewaken. (nkr)
SRP kan virussen wel stoppen, maar niet de gebruiker
Literatuur [1] Olivia von Westernhagen en Jürgen Schmidt, Het onzichtbare gevaar, Malware zonder bestanden omzeilt beveiliging, c't 6/2017, p.122