Secure by design stopt opvallend vaak bij Windows
Van softwareleveranciers verwachten we tegenwoordig iets waarvan ik vind dat het heel normaal zou moeten zijn: secure by design. Beveiliging niet als sausje achteraf, maar als uitgangspunt vanaf de tekentafel. Terecht ook. Want als security pas later wordt toegevoegd, krijg je zelden een stevig huis. Dan krijg je aanbouwtjes, noodreparaties en pleisters op plekken waar eigenlijk beton had moeten zitten.
Precies daarom is het wrang dat een van de meest gebruikte fundamenten in zakelijke IT zélf nooit echt volgens dat principe is opgebouwd: Windows.
Ja, Windows heeft beveiliging. Rechten op bestanden. Rechten op processen. Groepen, policies, tools, dashboards, waarschuwingen, Defender, hardening guides en nog een extra laag om die vorige laag in de gaten te houden. Maar dat is nu juist het probleem. Veel van die beveiliging voelt niet als één doordacht geheel. Het voelt als jaren van oplappen. En dat is het ook. Alsof je een gammel kozijn probeert te redden met steeds dikker schilderwerk.
De recente ClickFix-aanvallen maken dat pijnlijk duidelijk. Eerst misbruiken aanvallers het Run-commando. Dan komt er een maatregel. Vervolgens verschuift de aanval gewoon naar Terminal. En als dat moeilijker wordt, staan Command Prompt, PowerShell of Script Host alweer klaar. Dat is helaas geen incident. Dat is een ontwerpprobleem en moet opgelost worden. Door jou.
Natuurlijk helpt bewustwording bij gebruikers. De juiste trainingen zijn nodig. Maar wie security vooral op menselijk gedrag laat leunen, bouwt op drijfzand. Mensen maken onbedoeld fouten. Worden afgeleid. Zijn moe. En niet in de laatste plaats, worden misleid. Juist daarom wil je dat de laag eronder niet bijdraagt aan de aanval.
In dit blog kijken we naar een ongemakkelijke waarheid: Windows is in de kern veel minder veilig ontworpen dan veel organisaties zichzelf graag vertellen. En we laten zien waarom Linux op dit punt fundamenteel sterker in elkaar zit.
Het verschil tussen écht beperken en achteraf reageren
Wanneer je de laatste zin van de vorige paragraaf leest denk je misschien, “Hugo, wij gaan écht niet over op Linux”. Ok. Maar lees toch even verder want ik weet zeker dat er wat zaken zijn die je wel wil gaan doen.
Er zijn grofweg twee manieren om met security om te gaan. Je grijpt in zodra iets verdacht gedrag vertoont. Of je zorgt vooraf dat een applicatie überhaupt maar heel weinig mág. Dat tweede is bijna altijd sterker.
Onder Linux kun je processen en applicaties heel gericht beperken in wat ze mogen doen. Neem een Mail Transfer Agent, de digitale postbode van je e-mail. Die hoeft alleen met mailverkeer te praten en alleen bij de bestanden en mappen te kunnen waar mail staat. Meer niet. Wordt zo’n proces gecompromitteerd, dan kan het niet ineens vrolijk malware ophalen van een dubieuze website of software elders op het systeem installeren. De schade blijft ingeperkt, juist omdat het proces zelf al in een kooi zit.
Dat is een fundamenteel ander beveiligingsmodel dan alleen rechten op bestanden of gebruikers zetten. Je vertrouwt niet blind op de gebruiker waaronder iets draait. Je begrenst de applicatie zelf. Ook als die via een kwetsbaarheid probeert uit te breken.
Op moderne Linux distributies is dat geen exotische uitzondering. Dit principe wordt breed toegepast op systeemprocessen. Daardoor is een gecompromitteerd proces niet automatisch een gecompromitteerd systeem. Dat verkleint niet alleen de impact, maar ook de aantrekkelijkheid voor aanvallers.
Windows werkt nog te vaak volgens het omgekeerde model. Daar zie je vooral tooling die gedrag analyseert en ingrijpt zodra iets verdacht lijkt. Maar dan ben je al te laat. Dan is het proces al gestart, heeft het al dingen geprobeerd en is de eerste schade vaak al aangericht. Daar komt nog bij dat continue gedragsanalyse resources kost en systemen trager maakt. Dus wat gebeurt er in de praktijk? Juist kritieke systeemprocessen worden soms minder streng bekeken.
En dat is een extra plek waar het wringt. Op een gemiddelde Windows machine draaien standaard honderden services, vaak met zeer ruime of zelfs onbeperkte rechten. Dat zijn geen details. Dat is een fors aanvalsvlak met beheerste chaos als ontwerpkeuze.
In discussies over dit onderwerp komt vaak Windows Defender Application Control voorbij. Klinkt stevig. Is het maar half. WDAC bepaalt vooral of een applicatie wel of niet mag starten. Dat is nuttig, maar beperkt. Zodra die applicatie eenmaal draait, houdt de controle op. Het proces mag daarna nog steeds veel te veel, zolang het binnen de Windows-logica past. Dat is geen begrenzing van gedrag of rechten op procesniveau. De naam “Application Control” klinkt daarom groter dan wat het in de praktijk is: toelaten is nog geen beheersen.
Je mag mij gerust ‘knorrig’ noemen over Windows. Ik zeg er dit over: “Wanneer iedereen door mijn figuurlijke ;) bril zou kijken, dan zou er heel wat minder Windows worden gebruikt. Het is de schijnveiligheid die goed verkoopt en ik baal daarvan.” Door met oplossingen!
Het oude ontwerpbesluit dat security nog steeds pijn doet
Een van de slimste ideeën uit de geschiedenis van de computer is tegelijk een van de grootste security-erfenissen. John von Neumann maakte het mogelijk om programmatuur als data te behandelen. Dankzij dat ontwerp hoefde je software niet meer fysiek in hardware te stoppen of met absurde handmatige constructies op te bouwen. Je kon code opslaan, verplaatsen en starten vanaf schijf. Zonder dat idee had moderne IT er heel anders uitgezien.
En precies daar zit ook een hardnekkig probleem.
Wie code als data kan opslaan, kan malware ook als data aanleveren. Een bestand komt netjes binnen via web, mail of download. Om vervolgens van onschuldige informatie te transformeren naar kwaadaardige uitvoerbare ellende. Veel moderne aanvallen leunen op precies dat mechanisme.
Linux biedt hier een fundamenteel sterkere manier van denken. Je kunt partities - en met moderne filesystems zoals ZFS zelfs specifieke datasets of mappen - zo markeren dat data daar ook echt alleen data blijft. Bestanden kunnen daar niet uitgevoerd worden en krijgen geen extra rechten mee. Belangrijker nog: gebruikers en processen kunnen dat niet even tijdelijk uitzetten omdat het toevallig beter uitkomt. De scheiding blijft intact. Data is data. Punt.
Windows denkt hier veel ‘losser’ over. In de basis is vrijwel elk bestand een potentiële opstap naar uitvoering, zolang de juiste route maar wordt gevonden. Ja, je kunt rechten instellen en uitvoer op plekken beperken. Maar dat zijn vaak maatregelen die omzeild, uitgezet of verkeerd ingericht kunnen worden. Daarmee blijft de kern zwak.
Dat maakt het verschil tussen security als instelling en security als ontwerpkeuze.
Security by design is standaard geworden, behalve in Windows
Ook buiten Linux zie je dat moderne besturingssystemen security standaard in de basis verankeren. MacOS doet dat met System Integrity Protection. Technisch anders ingericht dan Linux, maar met hetzelfde doel en effect: kritieke onderdelen standaard afschermen. Android bouwt voort op Linux en erft daarmee datzelfde uitgangspunt. iOS en iPadOS volgen dezelfde lijn als macOS, aangevuld met strakke app-controles en rechten die centraal worden afgedwongen. Op mobiele platforms mag een app in principe alleen wat vooraf expliciet is toegestaan. Dat is ontwerpdiscipline. En precies daar wringt het: van de moderne besturingssystemen is Windows de opvallende uitzondering. Windows bouwt security niet in maar plakt het er achteraf op. En lang niet op het hele oppervlak.
Veiligere IT begint met minder afhankelijkheid van Windows
Voor opvallend veel organisaties is Windows allang geen vanzelfsprekende keuze meer. Java draait prima op Linux. .NET ook. Zelfs SQL Server hoeft niet per se meer aan Windows vast te zitten. Wat jarenlang als “nu eenmaal nodig” werd gezien, blijkt in de praktijk vaak vooral gewoonte.
En gewoontes zijn zelden een sterke securitystrategie.
Bij Sciante draaien we onze servers op Linux, werken we op Linux en macOS-desktops en hebben we die omgeving zo ingericht dat veiligheid volledig leunt op security by design. Achteraf ingrijpen kost veel te veel geld, voor zowel grote bedrijven als voor ons als kleinere organisatie. Vooraf alles goed inregelen levert niet alleen een sterker beveiligingsmodel op, maar ook meer rust, minder ballast en meer grip.
Praat er eens over, wat er in jouw omgeving wél en niet los te trekken is van Windows. Niet alles hoeft een enorme ingreep te zijn. Maar voorkom wel dat je de volgende Odido wordt. Plan dan een afspraak in. Dat kost je helemaal niks en levert je alleen maar inzchten op. Tijdens zo’n gesprek kijken we samen naar de opties, de risico’s en de haalbaarheid van eventuele veranderingen.