Overal ter wereld stellen overheden regels op om burgers te beschermen tegen allerhande gevaren. Toezichthouders – ‘autoriteiten’ – controleren of die regels in acht worden genomen. Zo niet, kunnen zij waarschuwen, bedrijven sluiten en hoge boetes uitdelen in de verwachting dat de overtreders hun leven zullen beteren. Dit gebeurt op gebieden zoals voedsel- en waren, nieuwe medicijnen, financiële dienstverlening en bescherming van persoonlijke gegevens. Software komt in het rijtje niet voor en dat moet zo snel mogelijk veranderen. We hebben dringend behoefte aan een software-autoriteit.
De afgelopen jaren hebben we de rol van software exponentieel zien toenemen. Niet alleen de stortvloed aan apps en andere software die op onze servers, pc’s, tablets en smartphones draaien, maar ook aan software die is ‘ingebouwd’ in bijvoorbeeld auto’s, vliegtuigen, medische apparatuur, netwerkapparatuur, machines, smart tv’s en ontelbare gebruiksartikelen. Deze ingebouwde software is cruciaal voor de werking. Zitten er fouten in de software kan dat de werking verstoren, zodanig dat de gebruikers van de desbetreffende apparatuur en/of de omgeving gevaar lopen.
Testen software staat onder druk
In de softwarewereld is de vuistregel dat er ruwweg in elke duizend regels productierijpe code een fout voorkomt. Een jachtvliegtuig van het type Joint Strike Fighter (de JSF) bevat naar schatting 24 miljoen regels programmacode, terwijl een moderne high-end auto zelfs draait op meer dan honderd miljoen regels software. Testen van de software staat onder druk, niet alleen door de kosten, maar ook door de sterke druk om de software op te leveren binnen gestelde deadlines. Dat wil niet zeggen dat er helemaal niet getest en gecontroleerd wordt. Een keuringsinstituut zoals TÜV kijkt weliswaar naar veiligheidscertificeringen. maar er wordt vooral gekeken naar de processen die voor een certificaat gevolgd moeten worden. De kwaliteit van het eindresultaat – de software zoals die in het product zit – wordt niet extern gecontroleerd. Vergelijk dit met crash tests in de auto-industrie: hier worden kosten noch moeite gespaard om het eindproduct op veiligheid te controleren, onafhankelijk van hoe dit eindproduct tot stand is gekomen.
Controles staan het snel op de markt brengen in de weg. Maar het kan jaren duren voordat een medicijn op de markt wordt toegelaten en de farmaceutische industrie weet daar mee om te gaan. De maatschappelijk risico’s zijn dan ook erg groot. Hetzelfde geldt steeds vaker voor de risico’s van kwalitatief slechte software. Dat rechtvaardigt het instellen van een ‘Autoriteit Software’ die ons moet behoeden voor schadelijke gevolgen van softwarefouten.
Dit vergt uiteraard een wettelijke basis, verglijkbaar met de meldplicht datalekken na een inbreuk op de beveiliging van persoonsgegevens, zoals bedoeld in de Wet bescherming persoonsgegevens. Het maatschappelijk belang van deze gegevensbeveiliging is dermate groot dat de Autoriteit Persoonsgegevens zelfs zeer forse boetes kan uitdelen. Volgens dit model zou een Autoriteit Software dat ook kunnen doen.
Hoe het werk van zo’n autoriteit precies moet worden ingericht is natuurlijk niet triviaal. Voorop moet staan dat het gaat om te voorkomen dat software op de markt komt met fouten die ons schade kunnen berokkenen – dus niet om het voorschijven van hoe software ontwikkeld moet worden. Er zijn ook juridische, politieke en economische dimensies waar goed over moet worden nagedacht. Ervaringen in andere sectoren maken duidelijk dat de gewenste kwaliteit – en dus veiligheid – niet door ‘de markt’ zelf kan worden afgedwongen. De economische belangen van de individuele bedrijven zijn te groot en (internationale) concurrentieoverwegingen spelen ook mee. Uit angst voor het beperken van de concurrentiepositie zal een ‘veiligheidskeurmerk’ voor software alleen kans van slagen hebben op Europees niveau.
Niet alle software controleren
Praktische hindernissen zijn er ook. Alle software controleren gaat niet, ook niet als het alleen om ingebouwde software zou gaan. Maar zoals de Voedsel- en Warenautoriteit ook niet elke hamburger controleert, is het niet nodig om alle software en elke release te controleren. Steekproeven volstaan. Nu al kunnen er allerhande tools worden gebruikt om de software te checken. Met goed gebruik van tools kan de Autoriteit een eind komen om de juiste werking vast te stellen. Denk daarbij aan tools om kritische fouten te detecteren in de implementatie. Ook tools die inzicht geven in de (bijvoorbeeld cyclomatische) complexiteit van de software kunnen helpen om te bepalen waar wellicht een extra paar ogen nodig is.
Tot slot: software met ‘slechte intenties’ is ook met tools niet te vangen. Sjoemelsoftware is bedoeld om te sjoemelen en dat kan een tool niet vaststellen. Kwalijke intenties van software opsporen lukt alleen als experts de code reviseren. Maar als dat gebeurt zal de kwestie van intellectual property gaan spelen, ook daar ligt dus nog een uitdaging. Het zal niet eenvoudig zijn om tot een gezaghebbende software-autoriteit te komen. De Europese wetgeving voor databescherming en toezichthouders die ook echt kunnen optreden, geven het goede voorbeeld.
Martijn Rutten, ceo en medeoprichter van Vector Fabrics.
Interessante stelling. Onze drang om alles in regels en controles te willen vatten zal alleen maar leiden tot een splitsing in de markt. Maar welke zekerheid heb je inderdaad? Misschien is een waarborgheids certificaat veel verstandiger. ISO 27001 zou al een vereiste moeten zijn voor een developer. Maar dat garandeert nog geen goede software. De testmethodieken zouden moeten aangeven welke kwaliteit de software heeft.
Vrij naief verhaal. Software evolueert vele malen sneller dan de regels waarin een stel ambtenaren het proberen te vatten. Kijk alleen maar eens naar de wedloop tussen beveiligingsprogramma’s en malware/virussen/exploits.
Software is geen nutsvoorziening, noch een recht. Caveat emptor en due diligence gelden.
Om (alweer) een nieuwe autoriteit in het leven te roepen is “like treating dandruff with decapitation”. Ben benieuwd of je nog mensen zult vinden die nog software willen maken als dit ooit werkelijkheid zou worden.
Er is één instantie waar de overheid de burgers niet tegen beschermd. Zichzelf.
Wat software betreft is er al een soort van regulering in vorm van het gewenste bezitten van een relevante opleiding en desnoods aanvullende cursussen/workshops etc.
Het heeft meer zin om naar de relevante zwakke plekken in software ontwikkeling te kijken en daar wat aan te doen ipv weer een instantie in het leven te roepen dat wegbezuinigd kan worden als de overheid weer met de kaasschaaf aan de gang gaat. De software ontwikkelaars die wél kwaliteit weten te produceren hebben de mogelijkheid op zich als zodanig te presenteren en is een uitstekende factor voor zakelijk succes. Kwaliteit duur het langst.