Producten cyberveilig ontwikkelen
Houd hackers buiten - cyberveilige hard- en software
Het cyberveilig maken van een apparaat is geen actie die aan het eind van het ontwikkeltraject gedaan moet worden. ‘Nog even de cybersecurity programmeren’ als de rest klaar is, is te laat. Software en hardware gaan hand in hand in embedded apparatuur. Vanaf dag één moet aan cybersecurity gedacht worden, in alle fases van de productontwikkeling, de levering en de nazorg.
Aandacht voor cybersecurity is tijdens de productontwikkeling vaak minimaal of zelfs geheel afwezig. De argumentatie is dan dat het functioneel niets toevoegt en de gebruiker moet de beveiliging van zijn netwerk zelf maar regelen. Dit beleid wordt echter steeds minder geaccepteerd. Overheden komen steeds meer met regelgeving en eisen, en wie het te bont maakt, vraagt om juridische problemen. Zo werd begin juli bekend dat in de Verenigde Staten de FTC (Federal Trade Commission) en het Taiwanese D-Link een schikking getroffen hebben in een rechtszaak over de falende beveiliging in D-Link-producten. Nu moet D-Link gedurende de komende 10 jaar producten cyberveilig gaan ontwikkelen, beter testen, samenwerken met beveiligingsonderzoekers en elke twee jaar een externe partij een assessment laten uitvoeren die toegang moet krijgen tot alle relevante documentatie.
Wie zich dan ook afvraagt of cybersecurity duur is, moet dan maar eens kijken naar de kosten van een rechtszaak. De vraag blijft echter, waar moet zoal allemaal rekening mee gehouden worden?
Kennis
Beveiligingslekken ontstaan vaak door gewone programmeerfouten of door een gebrek aan inzicht in gebruikte technologieën, door fouten in de architectuur of door ontwerpfouten. Fouten kunnen door iedereen gemaakt worden, bij kleine en bij grote bedrijven en bij nieuwe en ook bij gerenommeerde bedrijven.
Uiteraard is niet elke fout ook een beveiligingslek. Een beveiligingslek hoeft niet perse te leiden tot functionele problemen. De software kan 100% correct functioneren. Softwaretesters en reviewers richten zich vaak op de functionele aspecten en kijken niet met een hackersbril naar het product. Een eerste stap is dus om bewustwording op dit gebied te kweken, gevolgd door een training in veilig programmeren (en dit geldt niet alleen voor C/C++, maar ook voor andere programmeertalen). Daarnaast moet er aangeleerd worden hoe hackers naar embedded apparatuur kijken en hoe ze ‘binnen’ komen. Dit soort trainingen kan o.a. gevolgd worden in Nederland bij Riscure en SIG (Software Improvement Group – afbeelding 1).
Ontwikkelproces
Al in de eerste fase van een project moet cybersecurity meegenomen worden in het hardware- en software-deel. Mogelijk zijn speciale componenten nodig (zoals een TPM-chip, zie verderop). Veelal worden ook speciale debugging-circuits toegevoegd die alleen voor prototypes nodig zijn en op productieversies worden weggelaten (zoals RS232, JTAG). Hackers kunnen die interfaces echter later ook gebruiken (op een gekocht exemplaar). Het is daarom verstandig om ervoor te zorgen dat ze dan niet (meer) werken.