Informatica zou na decennia al een goed ontwikkelde wetenschap moeten zijn, maar toch maken programmeurs nog veel te dikwijls elementaire fouten die het gebruik van hun software risicovol maken. Een voorbeeld van zo'n elementaire fout is de zogenaamde 'buffer overflow'. Deze is heel eenvoudig te vermijden door te controleren of de invoer niet te groot is.

Desondanks registreerde beveiligingsexpert Secunia in september 2005 wel 22 buffer overflows in software, waaronder de webbrowser Mozilla Firefox en de tekstverwerker AbiWord. Erik Poll van de 'Security of Systems' groep van de Radboud Universiteit Nijmegen is hier niet over te spreken.

"Ik vind het toch wel beschamend dat buffer overflows na 30 jaar nog steeds de meest voorkomende oorzaak van beveiligingsproblemen in de it-sector zijn, hoewel er inmiddels tools bestaan om ze te ontdekken."

Poll vindt eveneens dat er traditioneel in het curriculum van informaticastudenten buitenproportioneel veel aandacht besteed wordt aan methodes zoals cryptografie om computerbeveiliging te realiseren. In de praktijk daarentegen ontstaan de meeste beveiligingsproblemen volgens hem door elementaire programmeerfouten of menselijke fouten. Hij heeft tevens de indruk dat dit nog niet overal in de curricula is doorgedrongen.

Bewustwording

Alle universiteiten die onze vragen hebben beantwoord, benadrukten dat ze hun studenten informatica vanaf het eerste jaar leren om op een correcte manier software te ontwikkelen. Professor Arie van Deursen van de Basiseenheid Software Engineering van de Technische Universiteit Delft: "In de eerste twee jaar van de studie informatica ligt de nadruk op goed programmeren in algemene zin, wat zeker ook de veiligheid ten goede komt. Daar hoort onder meer bij dat we studenten leren zich bewust te zijn van de grenzen van gealloceerd geheugen of met de grenzen van buffers om te gaan."

Volgens Poll is computerbeveiliging iets waarover elke informaticastudent moet kunnen meepraten. "Het belangrijkste is dat alle studenten zich bewust moeten zijn van het probleem van onveilige software. Ze moeten allemaal beseffen wat dit probleem in de praktijk betekent en wat de mogelijke oorzaken van een onveilig programma zijn. Bovendien moeten ze weten wat de gevolgen kunnen zijn en beseffen dat je er iets tegen kunt en moet doen." In de Radboud Universiteit Nijmegen komen deze kwesties in algemene verplichte vakken aan bod, maar er wordt in deze vakken niet dieper op ingegaan op de vraag wat je aan de problemen kan doen.

Weten wat er aan te doen

Op de Rijksuniversiteit Groningen volgen tweedejaars informaticastudenten verplicht een vak Programmacorrectheid. "De studenten worden in dit vak onder andere getraind op het exact formuleren van specificaties en het bewijzen dat programmafragmenten aan de specificatie voldoen", aldus professor W. H. Hesselink, adjunct-directeur Informatica van het Centrum voor Informatiewetenschappen.

De Universiteit Leiden heeft volgens Riet Derogee, studiecoördinator Informatica, een soortgelijk verplicht vak in het tweede jaar, genaamd 'Programmeren en correctheid'. Universiteit Utrecht biedt een gelijknamig keuzevak in het derde jaar.

Correct programmeren is één zaak, maar Marc Gyssens, decaan van de School voor Informatietechnologie van de Universiteit Hasselt, zegt dat studenten een breed referentiekader moeten krijgen om beveiligingsproblemen te kunnen herkennen en oplossen. Aspecten hiervan komen aan bod in verschillende vakken, maar Gyssens ziet toch de noodzaak voor een vak waar dit alles systematisch aan bod komt.

"Een aparte cursus waar 'veiligheid' centraal staat, biedt de Universiteit Hasselt momenteel niet aan. Gegeven het groter wordende belang van veiligheid in de informatica, onderzoeken we momenteel hoe we aan dit thema een groter gewicht kunnen geven."

Het departement Computerwetenschappen van de Katholieke Universiteit Leuven daarentegen biedt al een dergelijk vak aan waarin geleerd wordt om veilige software te schrijven. Professor Frank Piessens: "Ons departement heeft reeds in 2001 een vak ingericht dat specifiek ingaat op de problematiek van het bouwen van veilige software, met name het vak 'Ontwikkeling van veilige software'. Bij mijn weten waren we daarmee de eersten in Europa die een vak met deze focus aanboden."

Piessens houdt dit vak overigens jaarlijks up-to-date en behandelt in zijn lessen onder andere de klassieke buffer overflows, maar ook programmeerfouten in webapplicaties, zoals sql-injectie zwakheden en cross site scripting-fouten. Zijn vak is niet verplicht, maar wordt volgens Piessens heel vaak gekozen. "De afgelopen drie jaren kozen een honderdtal studenten per jaar voor het vak 'Ontwikkeling van veilige software'."

Volgens Piessens zal de nadruk op veilige software ontwikkeling aan de Leuvense universiteit nog versterkt worden in de komende jaren. "De Master-opleiding Computerwetenschappen zal na de Bachelor-Master programmahervorming vier afstudeerrichtingen aanbieden, waarvan één als centraal thema 'Veilige software' draagt."

De Radboud Universiteit Nijmegen biedt sinds dit academiejaar een gelijkaardig vak aan als dat van professor Piessens: het keuzevak 'software security'. Er komen onder meer veel voorkomende beveiligingsfouten aan bod: te weinig controle van de invoer (zoals buffer overflows en sql-injecties), verkeerde toegangscontrole, et cetera.

Docenten Erik Poll en Marko van Eekelen behandelen in het vak manieren om deze fouten te voorkomen. "Studenten die het vak 'software security' gevolgd hebben, zullen zich niet alleen bewust zijn van beveiligingsproblemen, ze zullen ook weten wat er aan te doen is", licht Poll toe. "Niet alle studenten zullen later in hun carrière gaan programmeren, dus op zich vind ik het geen probleem dat het een keuzevak is."

Ook in de bedrijfswereld is er aandacht voor veiligheidsaspecten in het curriculum van informaticastudenten. Zo is Microsoft vorig jaar begonnen met zijn 'Trustworthy Computing Curriculum' initiatief. De softwaregigant wil namelijk met geldprijzen voorstellen voor vakken waarin zogenaamde 'Trustworthy Computing' aspecten aan bod komen een stimulans geven. Dit jaar kwam er in de aankondiging van het initiatief expliciet meer nadruk te liggen op 'Secure Software Engineering'.

Bedrijven

Volgens Poll moeten studenten nog altijd specifieke vaardigheden op het gebied van veilig programmeren bijleren in het bedrijfsleven en wel om twee redenen: "Ten eerste door de evolutie van software en hun problemen. Tien jaar geleden had bijvoorbeeld nog niemand over sql-injectie gehoord. Over tien jaar zullen er weer nieuwe bedreigingen zijn. Ten tweede zijn er in elk toepassingsgebied gespecialiseerde problemen. Het heeft geen zin die specifieke bedreigingen aan te leren, omdat dit maar voor een enkele student relevant zal zijn in zijn beroepsleven."

Bron: Techworld