Het groeiende succes van internet leidt tot een grotere connectiviteit, maar ook tot grotere veiligheidsrisico’s. Hackers spelen namelijk in op internetontwikkelingen en hebben ontelbare technieken om applicaties te manipuleren. Bij applicatieontwikkeling is het dus belangrijk zo veilig mogelijk te coderen: secure coding. Maar door een gebrek aan expertise worden er, ook in België, nog steeds […]

Het groeiende succes van internet leidt tot een grotere connectiviteit, maar ook tot grotere veiligheidsrisico’s. Hackers spelen namelijk in op internetontwikkelingen en hebben ontelbare technieken om applicaties te manipuleren. Bij applicatieontwikkeling is het dus belangrijk zo veilig mogelijk te coderen: secure coding.

Maar door een gebrek aan expertise worden er, ook in België, nog steeds onveilige applicaties op de markt gebracht.

Reduceren van bugs
Zolang er mensen betrokken zijn in het ontwikkelingsproces, bevatten codes een aantal bugs. Je kan veiligheidsrisico’s beperken door een ontwikkelingsmethodologie toe te passen. Hierbij worden veiligheidsregels en veiligheidstechnologie van meet af aan ingebakken in de code en maakt een doorgedreven veiligheidstestproces deel uit van het change- en releasemanagement.

Zo moet je onder andere controleren of hackers geen vreemde code kunnen invullen in de invoervelden van je applicatie, waardoor datamanipulatie mogelijk is (in- en output checking). Ook is het regelmatig uitvoeren van securitytests en audits essentieel om tijdig een gebrekkige toepassing van de veiligheidsregels te ontdekken. Nu gebeuren deze meestal alleen als men twijfelt over de codering, als er zich een probleem voordoet of aan het einde van een project.

Er bestaan richtlijnen om veilig te coderen, zoals deze van OWASP en CERT. Maar er bestaan geen officiële normen die ontwikkelaars verplicht zijn te volgen. Hierdoor komen ze te weinig aan bod in scholen en passen ontwikkelaars ze nauwelijks toe in de praktijk.

Opleiding en begeleiding
Veilig coderen komt nauwelijks aan bod in de opleidingsprogramma’s voor aanstaande ontwikkelaars. Te vaak ligt de klemtoon op het vereenvoudigen van code, wat een negatief effect heeft op de veiligheid ervan. Ontwikkelaars vergaren hun veiligheidskennis tijdens hun loopbaan bijna uitsluitend op een reactieve manier. Wat ze leren is dan nog afhankelijk van de veiligheidslekken waarmee ze geconfronteerd worden binnen een project.

Het gebrek aan opleiding weerspiegelt zich in de praktijk. Opdrachtgevers en ontwikkelaars hebben vaak te weinig kennis, waardoor de veiligheid van de code ondergeschikt wordt aan de oplevering van de applicatie. Dit reflecteert zich in het ontbreken van een secure-codingbeleid of opleidingen daarover bij de meeste bedrijven en overheden.

Daarnaast krijgen ontwikkelaars te weinig tijd voor de realisatie van applicaties. Veilig coderen neemt namelijk vaak meer tijd in beslag, mede door een hogere complexiteit van de code, maar ook door een te beperkte kennis van de veiligheidsprincipes. Bovendien is er de economische druk om zoveel mogelijk code te schrijven in een mum van tijd door zo goedkoop mogelijke werkkrachten. Al deze elementen leiden ertoe dat de veiligheidskwaliteit van toepassingen vaak te wensen overlaat.

Pas bij de bepaling van officiële kwaliteitsnormen en een kwaliteitslabel voor secure coding zullen er standaard veilige(re) applicaties op de markt komen. Bedrijven en overheden zullen dan deze normen eisen voor de toekenning van ontwikkelingsopdrachten of de aankoop van bestaande toepassingen. Het onderwijs speelt een belangrijke rol in het onderricht van deze normering en de verspreiding ervan achteraf.

Deze blog geeft de mening weer van de auteur en weerspiegelt niet noodzakelijk de mening van Unisys.

Luc Leysen is security consultant en heeft een ruime ervaring in IT-beveiliging, gaande van beveiligingsbeheer tot webpenetratietesten. Zijn huidige expertise is de integratie van identiteits- en toegangsbeheer met netwerkvirtualisering enerzijds en fysische beveiliging anderzijds.