Black Duck Software helpt bedrijven met signaleren van onveilige broncode
Bedrijven omarmen open source veel vaker en gemakkelijker dan jaren geleden. Ruim driekwart van de bedrijven heeft tenminste een deel van zijn processen draaien op open source-software. Inzicht in waar en hoeveel open source de bedrijfssoftware precies bevat, ontbreekt vaak volledig.
67 Procent van de bedrijven verzuimt broncode goed te controleren op kwetsbaarheden en loopt daardoor onnodig risico's (bron: Future of Open Source Software 2015). Dat open source-code vaak niet wordt gecontroleerd op de beveiliging, verbaast Kevin Bland niet. Bland is Director Channel and Alliance EMEA bij Black Duck Software, een Amerikaans bedrijf dat zich heeft gespecialiseerd in de beveiliging van open source-code. "Applicaties worden of in gesloten (proprietary) code of open source-code gemaakt. Ontwikkelaars gebruiken liever al bestaande code dan dat ze zelf alles gaan schrijven."
Veel CIO's en IT'ers weten niet goed waar ze binnen de organisatie open source-code gebruiken en waarvoor het wordt gebruikt. Daar ontbreekt vaak beleid om dat goed te registreren, zegt Bland. Ontwikkelaars weten soms nog wel welke delen broncode ze gebruiken, maar een duidelijk overzicht daarvan ontbreekt. "Als je een bepaald stuk open source-code wilt gebruiken, moet je er wel eerst zeker van zijn dat het veilig is. Door het ontbreken van een helder overzicht of proces om open source-code te gebruiken, worden componenten en software zomaar geïntroduceerd zonder dat er vooraf is gecheckt of alles veilig is."
Ter illustratie vergelijkt Bland broncode met het chassis van een auto. "Je kunt er een auto omheen bouwen. Maar als de auto klaar is, weet je eigenlijk niet zeker of het chassis wel goed was. Tenzij je een manier hebt om dat te meten of na te gaan."
Als een organisatie niet op de hoogte is van een bestaande kwetsbaarheid in de code en ze verkopen de applicatie aan duizenden klanten of er zijn miljoenen internetters die het gebruiken, weten ze ook niet dat ze risico lopen om geïnfecteerd te raken dankzij dat specifieke lek.
Uiteraard kan je als bedrijf je applicatie laten onderwerpen aan een penetratietest, maar volgens Bland bestaan er wel zo'n 100.000 kwetsbaarheden, en kennen die 'pentesters' zelf daar maar 10 procent van. Een groot deel van de beveiligingslekken wordt dus wel publiekelijk gemeld maar door het grote aantal gaan veel meldingen aan de aandacht voorbij. Of zoals Bland het verwoordt: “Niet elk lek krijgt de media-aandacht zoals Heartbleed.”
Kwetsbaarheden
Open source is volgens Bland niet veiliger of onveiliger dan andere software. Maar er zijn bij beide soorten software risico's. De kwetsbaarheden in open source en gesloten code zijn even ernstig. “Het probleem met gesloten code is alleen dat je geen controle hebt op hoe en wanneer het verholpen wordt. Je bent afhankelijk van de makers/ontwikkelaars. Met open source heb je een hele community."
Black Duck kan voor klanten opzoeken of er open source-code wordt gebruikt en welke versie dit is. Tevens weten ze binnen welke applicatie of bedrijfsproces deze zich bevindt. Vervolgens worden de kwetsbaarheden die gekoppeld zijn aan gescande open source-software componenten gerapporteerd. "We monitoren broncode op zoek naar bekende lekken die gemeld zijn en putten daarbij uit onze unieke database, de Black Duck Knowledge Base. We ontdekken geen nieuwe lekken. We hebben toegang tot een database met kwetsbaarheden, die elke dag wordt bijgewerkt. Daarin zijn 7500 openbare community’s en fora op internet opgenomen, waar kwetsbaarheden worden gemeld."
Kwetsbaarheden zitten niet alleen in complete programma's zoals Firefox of een Linux-distributie, maar vaker juist in een component dat door ontwikkelaars in software is verwerkt. Een duidelijk voorbeeld hiervan is OpenSSL. Daarom is het simpelweg updaten en upgraden alleen niet genoeg om er zeker van te zijn dat er geen lekken in de software zitten.
Licenties
Aan het gebruik van open source-broncode kleven ook commerciële risico’s. Dat hangt vooral samen met de softwarelicenties die gebruikt worden. Veel gebruikt in de open source-wereld is GNU General Public License (GPL). “Dit betekent dat als je een stukje GPL-code in je product opneemt, dat jouw product ook open source gemaakt moet worden en dus voor iedereen inzichtelijk wordt.”
Ontwikkelaars kijken niet zo nauwkeurig naar de licenties, maar plakken de code gewoon in hun product, zegt Bland. Maar als dat gaat om een stuk GPL-code en je verkoopt software, wordt je product open source. Daarnaast is de aGPL-licentie in opkomst, vooral bij clouddiensten. “Als je GPL in een cloudomgeving gebruikt, maak je het niet openbaar, maar stel je het beschikbaar. De aGPL-licentie wordt steeds meer gebruikt door de opkomst van cloudomgevingen. De aGPL-licentie zegt eigenlijk dat als een open source-component gebruikt wordt in software die gedistribueerd is of op afstand te gebruiken is in een cloudomgeving, dat product of die webapplicatie ook open source wordt.” Veel organisaties zijn zich daar volgens Bland nog niet bewust van.
Kansen voor partners
Black Duck kan dergelijke risico’s voor klanten signaleren. Hoewel het bedrijf nog niet zo lang in Europa actief is, helpt het klanten, waaronder overheden, banken en financiële instellingen, om te begrijpen welke code ze gebruiken. “We helpen ze de broncode te scannen en de open source-componenten te identificeren. We geven mogelijkheden om de juiste code te vinden maar we helpen ze niet om eventuele kwetsbaarheden in code op te lossen. Daarom is onze samenwerking met partners zo belangrijk”, zegt Bland. Die kunnen als dienst aanbieden om de code te herschrijven of op een andere manier de risico's af te dichten. “Als er binnen een component van jouw product een kwetsbaarheid wordt gevonden, kun je dat meestal niet zomaar even vervangen. Vaak moet de software dan opnieuw gebouwd of herschreven worden.” Ook gaat Black Duck niet in alle landen service- en salesmensen plaatsen om te kunnen verkopen. “We zoeken niet naar de brede channel, we willen werken met organisaties die zich willen onderscheiden. We zoeken organisaties die zowel technisch als commercieel goed zijn.”
De uitdaging waar de partners met hun klanten voor staan, is om erachter te komen dat ze een probleem hebben. "Het ergste probleem is dat je niet weet dat je een probleem hebt." Bland maakt weer een vergelijking met autorijden. "Als je tijdens het autorijden merkt dat je remmen niet werken, heb je een probleem. Het is beter om erachter te komen dat de remmen niet werken, voordat je in de auto stapt. Zo is het met software ook."
Door: Edwin Feldmann