eduVPN-filosofie: zo min mogelijk code, daarom veiliger

In 2014 begon eduVPN als een klein project om studenten en medewerkers een betrouwbare VPN-oplossing te bieden die integreert met federatieve authenticatie, zoals SURFconext. Inmiddels zetten al meer dan 100 organisaties wereldwijd eduVPN in. Een belangrijke gebeurtenis in 2014 heeft de ontwikkeling van eduVPN sterk beïnvloed, en heeft ervoor gezorgd dat we een belangrijk principe hebben omarmd: minder code betekent een veiligere dienst.

Kwetsbaarheid in OpenSSL

Wat gebeurde er dan in 2014? Toen werd een ernstige kwetsbaarheid ontdekt in OpenSSL, een veelgebruikte library om veilige verbindingen op te zetten. OpenSSL wordt onder andere gebruikt op webservers, maar ook voor VPN-producten. Na analyse bleek dat de software te complex was. Erik Poll, Associate professor bij de Digital Security Group van de Radboud Universiteit, adviseert dat wanneer software veilig moet zijn, de complexiteit beperkt moet worden. Dit zorgt voor overzichtelijkere software die beter gepentest en geaudit kan worden.

Complexiteit slecht voor security

In zijn colleges zegt Erik Poll al jaren dat complexiteit slecht is voor security. Een van de eerste wetenschappelijke papers die hij vaak aanhaalt is die van Gary McGraw (2004): “With software's ever-expanding complexity and extensibility adding further fuel to the fire. By any measure, security holes in software are common, and the problem is growing.”

In het klassieke artikel "The protection of information in computer systems" van Slatzer & Schroeder uit 1975 (!) noemen ze verschillende design principles voor security, waaronder "Economy of mechanism. Keep the design as simple and small as possible."

KISS

Dit soort opvattingen zijn echter al veel ouder. Een van de oudste en bekendste engineering principes is KISS: Keep it Simple, Stupid. De Amerikaanse marine gebruikte dit principe al in 1960. Zij wisten toen al dat systemen beter werken als ze simpel gehouden worden. Dit geldt in brede zin voor systemen, dus ook voor software en security.

Complexiteit scoort ook hoog in OWASP Top 10

Een andere indicatie dat complexiteit negatieve invloed heeft op veiligheid, blijkt uit het feit dat Security Misconfiguration in de OWASP Top 10 staat. De OWASP is een lijst van meestvoorkomende securityproblemen in webapplicaties. Ook bij andere punten uit de OWASP Top 10 bestaan er aanwijzingen dat complexiteit een negatieve rol speelt. Bijvoorbeeld bij Injection Attacks, Identification and Authentication Failures of Broken Access Control zal complexiteit vaak een factor zijn. Bijvoorbeeld: een XSS-aanval, die valt onder Injection Attacks blijkt lastig uit te roeien omdat webapplicaties akelig complex zijn vanwege alle DOM API’s & JavaScript frameworks.

Daarom: software-architectuur eduVPN zo eenvoudig mogelijk

Met deze kennis in het achterhoofd hebben we eduVN ontwikkeld. Dat zie je terug in de software-architectuur van de eduVPN-server. Die is in de loop de jaren namelijk alleen maar kleiner geworden qua code, in tegenstelling tot een gemiddeld softwarepakket dat alleen maar uitdijt. We proberen de functionaliteit van het product beperkt te houden conform onze ’less is more’-filosofie. Zo voeren we regelmatig (broncode)audits uit op de server- en clientsoftware, met name bij grotere wijzigingen in de broncode. eduVPN-afnemers kunnen deze audit-rapporten inzien. Daarnaast gebruiken wij een vulnerability scanner om te controleren of de dienst in de praktijk goed is ingericht.

Open source en publieke waarden

Verder was het uitgangspunt van eduVPN dat alle middelen, zoals bijvoorbeeld software, documentatie en beeldmateriaal, onder een opensource-licentie inzetbaar moesten zijn. Niet alleen voor (internationaal) onderwijs en onderzoek, maar ook daarbuiten. Denk bijvoorbeeld aan Internet Service Providers (ISP), overheid, bedrijven en mkb. Dit werd versterkt doordat het SIDN-fonds de softwareontwikkeling ondersteunde met als doel om goede en betrouwbare VPN-software te realiseren die iedereen kan inzetten. Deze open insteek zorgt ervoor dat organisaties zelf controle hebben zonder afhankelijk te zijn van big tech en zo hun digitale autonomie versterken. Dit in tegenstelling tot VPN-oplossingen van commerciële partijen, waarbij je geen inzage hebt in de (vaak veel te complexe) techniek en documentatie als audits. Dit zorgt ervoor dat er een sterke afhankelijkheid is, de commerciële aanbieder is bijvoorbeeld de enige partij die bugs en/of security fixes kan maken en vrijgeven.

“In het algemeen kun je zeggen dat closed source vooral voordelen heeft voor de producent van de software en dat open source de afnemers voordelen biedt.
Quote professor Bart Jacobs (artikel)

Voor de implementatie van VPN-technologie hebben we in 2014 gekozen voor OpenVPN. Dit is het enige product waar we genoeg vertrouwen in hadden, met name omdat dit het enige VPN-product is dat internationaal is geaudit door security professionals, onderzoekers en overheden.

Code schrijven is schrappen

Doordat we dit principe toepassen maken al jaren duizenden mensen in onderwijs en onderzoek probleemloos gebruik van eduVPN. Uiteraard blijven we dit principe toepassen in onze productdoorontwikkeling, want de wereld anno 2022 laat zien dat je als organisatie nooit op je lauweren kunt rusten als het om veiligheid gaat. Ook bij code schrijven blijft gelden: schrijven is schrappen!”

Meer weten over eduVPN?

Wil je meer informatie of weten wat eduVPN jouw organisatie kan bieden? Kijk op www.surf.nl/eduvpn of neem contact met me op.

Over eduVPN
Via eduVPN kunnen medewerkers en studenten vanuit huis op een veilige manier verbinding maken met het netwerk van hun instelling. Ze krijgen hierdoor veilig toegang tot afgeschermde interne applicaties zoals wetenschappelijke artikelen, financiële systemen, studentinformatiesystemen, licentieservers en fileservers.
eduVPN is de open source VPN-oplossing voor onderwijs en onderzoek. Wereldwijd zetten al meer dan 100 organisaties deze dienst in.

Auteur

Reacties

Dit artikel heeft 2 reacties

Reactie van Duuk Baten

Mooi stuk Rogier!
Waar ik benieuwd naar ben, kan je in applicaties zoals EduVPN compartimentaliseren tussen bijvoorbeeld het VPN-gedeelte en de user-client? Want, vraag ik mij af, stel dat je de UI/UX wilt verbeteren; voegt dat altijd complexiteit toe en neemt daardoor de security af? Of is een uitgebreide UI iets wat los gezien kan worden van de basis van een applicatie?

Als antwoord op door Duuk Baten

Reactie van Rogier Spoor

Hoi Duuk,
Dank voor je vraag. We maken gebruik van openVPN en het VPN-deel draait onder windows als een service. De UI/UX geeft door aan het VPN deel als er iets gestart/gestopt wordt en als er nieuwe config gebruikt moet worden. Allereerst is het belangrijk dat de communicatie tussen VPN en UI/UX veilig is, zodat een malicious app niet zomaar "ertussen" kan komen en je VPN beinvloeden. Qua beveiliging en complexiteit van de UI/UX ik zie daar niet direct de risico's liggen. Wel als we via de UI/UX bijvoorbeeld API functionaliteit en/of scripting mogelijk zouden maken. Dan nemen de risico's toe.