Het is in deze wereld van PtH, Kerberos-aanvallen en tokendiefstal een hele toer om credentials veilig op te bergen. Het goed bewaken van admin-inloggegevens kan wel eens de kern van het gevecht zijn om aanvallers buiten de deur te houden. Als deze in de verkeerde handen terechtkomen, wordt je verder strakke beveiligingsbeleid tenietgedaan.

Al decennia vertellen we mensen om niet steeds als admin of root ingelogd te blijven. Het is beter om twee accounts te gebruiken: eentje voor normaal gebruik en eentje met meer rechten voor beheertaken. Maar dat is een verouderde denkwijze. Vandaag de dag richten we ons op tweefactor-authenticatie, just-in-time-credentials en door de laagst mogelijke bevoegdheden toewijzen.

1. Admin-groepen legen

Begin door ervoor te zorgen dat groepen met hoge bevoegdheden zo min mogelijk vaste gebruikers bevatten. De Heilige Graal is dat er nul permanente leden in zo'n groep zitten. Als dat niet mogelijk is, streef er dan tenminste naar om zo dicht mogelijk bij nul te komen. Je processen, tools, services en applicaties zouden ideaal gezien moeten werken zonder dat gebruikers daarvoor hoge rechten nodig hebben. Het is immers geen 1992 meer.

2. 2FA gebruiken

Veel bedrijven zagen hun data gestolen worden door onverlaten die inloggegevens van gebruikers of beheerders hadden bemachtigd met een phisingactie bij zowel interne middelen als diensten en services van derden. De slechteriken breken in bij zo'n site die buiten je controle ligt en kijken of deze inloggegevens ook gebruikt kunnen worden op het bedrijfsnetwerk.

Hierom moet iedere gebruiker die rechten kan escaleren naar administratief niveau verplicht worden om tweefactor-authenticatie (of beter) te gebruiken. 2FA biedt niet zoveel bescherming als sommige mensen denken - snoodaards kunnen nog steeds een pass-the-credential-aanval uitvoeren - maar ze helpen, vooral omdat het phishen van wachtwoorden en pincodes van admins wordt geblokkeerd.

3. Beheer overdragen

Zelfs in die utopie waar we het net over hadden, waar je geen permanente gebruikers in een admingroep hebt hangen, heb je gebruikers nodig die beheertaken kunnen uitvoeren. Het is zaak om ervoor te zorgen dat beheer kan worden uitgevoerd door gebruikers die geen volledige rechten bezitten.

Voor het meeste beheer heb je die rechten niet nodig. Sommige taken vereisen volledige rechten, maar dat is geen doorsnee scenario. In de meeste gevallen kunnen inloggegevens met hogere rechten overgedragen machtigingen of rechten zijn, terwijl het principe van laagste bevoegdheden - alleen het uiterst noodzakelijke om de taak uit te voeren - intact blijft. Maar zelfs als bepaalde beheertaken worden overgedragen aan specifieke accounts, moet dat spaarzaam en alleen wanneer noodzakelijk worden toegepast.

4. JIT-toegangsbeheer

Ik ben groot fan van systemen die gebruikers hogere rechten en machtigingen geven terwijl ze een taak uitvoeren, waarna die rechten weer worden ingetrokken. Deze authentiatiestructuren staan bekend als JIT-systemen (just in time).

Een decennium of zo geleden was het idee van overgedragen JIT-beheer het beste toegangscontrolesysteem in op rollen gebaseerde toegangscontrole. Mijn geloof daarin is nooit aan het wankelen gebracht. Het idee erachter is dat enkel de ontwikkelaars van de applicatie echt weten welke rechten en machtigingen nodig zijn om een bepaalde applicatietaak uit te voeren.

Ontwikkelaars zoeken uit wat er nodig is en programmeren deze machtigingseisen dan voor specifieke taken, die gekoppeld worden aan specifieke applicatierollen. Applicatiegebruikers worden vervolgens door beheerders aan verschillende applicatierollen verbonden en deze gebruikers kunnen vervolgens van tevoren gedefinieerde taken uitvoeren in die applicatie en uitsluitend binnen die applicatie.

Rechten en machtigingen op een andere manier toewijzen is eigenlijk heel raar. Hoe zijn netwerken in vredesnaam geëvolueerd naar een systeem waarbij netwerkbeheerders moeten raden naar machtigingen en ze toewijzen? Zij zijn niet de uitbaters van de applicatie - en zijn geen kenners van elke applicatie - maar ze moeten wel beter dan applicatieontwikkelaars in kunnen schatten welke rechten en machtigingen vereist zijn.

Ik ben er vrij zeker van dat toegangscontrole op basis van rollen uiteindelijk het systeem is dat we allemaal zullen gebruiken. We zitten wat dit betreft weer eens in een kritieke overgangsperiode tussen wat we gebruiken en wat we uiteindelijk zullen hebben. Tot die tijd is just-in-time-, tweefactor-, laagste-bevoegdheden-authenticatie de enige manier om te werken.

Het maakt niet uit hoe je het toepast. Of het nu een programma is die alles achter de schermen uitvoert, of dat je het zelf handmatig of met scripts doet. Hoe je dit systeem bereikt is niet belangrijk, áls je het maar bereikt.

5. Dedicated bepantserde machines

Een recente wijziging in het JIT-model is de nieuwe eis dat alleen zwaar beveiligde computers administratieve inloggegevens mogen gebruiken en alleen hierop admin-taken mogen worden uitgevoerd. De tijd van het inloggen als admin op een gewone computer, die malware kan bevatten of waar een aanvaller al toegang tot heeft, ligt achter ons.

IT-beheerders zouden enkel dedicated systemen mogen gebruiken voor deze taken. Dat zijn fysieke computers, want die zijn voor dit doeleinde beter dan virtuele machines. De systemen waar verbinding mee wordt gelegd via deze 'bepantserde' computers moeten alleen verbindingen toestaan via zulke dedicated machines.

Zulke beveiligde computers mogen geen browser bevatten of verbindingen opzetten of ontvangen met internetadresen (of uitsluitend verbindingen mogen aangaan met een van tevoren duidelijk gedefinieerde whitelist van sites). Applicatiecontrole moet vervolgens beperken welke programma's de beheerder kan draaien en die whitelist moet bijzonder kort zijn.

Wat beveiligd beheer inhoudt

Admins moeten de sterkst beveiligde methodes mogelijk gebruiken. Als je bij andere computers kunt inloggen, betekent dat dat deze credentials rondzwerven op plekken waar een aanvaller ze kan bemachtigen. Dat zou onmogelijk moeten zijn, of op z'n minst zouden deze plekken geminimaliseerd moeten zijn.

Wanneer mogelijk, zouden admins enkel remote opties moeten hanteren die helemaal geen credentials versturen. Zorg ervoor dat IT'ers geen GUI's gebruiken die volledige lokale rechten vereisen of waarbij je remote moet inloggen. Dat is niet alleen mijn advies; diverse organisaties raden dit beleid aan. Sommige bedrijven functioneren al decennia met deze aanpak.

Het enige wat ik hieraan wil toevoegen is dat ook applicatiebeheerders met beveiligde systemen moeten werken. Het is meestal niet nodig dat een aanvaller per se admincredentials van een besturingssysteem bemachtigt. Meestal is de toegang van een gewone gebruiker voldoende. Ik heb applicaties gezien met tientallen of honderden allerhoogste rechten. Zijn zulke bevoegdheden nodig? Zijn ze afdoende beschermd? Op beide vragen is het antwoord meestal: 'nee'.

Het gevecht met inbrekende aanvallers draait hoofdzakelijk om credentials. Doe er dus alles aan om deze uit de klauwen van slechteriken te houden.