Hoewel machine learning beveiligingsonderzoek zich nog in een vroeg stadium bevindt, is het duidelijk dat inputmogelijkheden zonder barrières de bedreigingen vergroten. Je hoeft geen toetsenbord meer aan te raken om een machine-leersysteem voor de gek te houden. Softwarebeveiligingsdeskundige Balázs Kiss behandelt een aantal punten op dit nieuwe gebied en geeft advies over de basisbeschermingsmaatregelen.
Net als software in het algemeen zijn machine-leersystemen kwetsbaar. “Aan de ene kant zijn het net pasgeboren baby’s die volledig op hun ouders vertrouwen om te leren hoe de wereld werkt – inclusief ‘achterdeurtjes’ zoals sprookjes of de Kerstman”, zegt beveiligingsexpert Balázs Kiss van Cydrill, een bedrijf dat gespecialiseerd is in softwarebeveiliging. “Aan de andere kant zijn machine-leersystemen als oude katten met een slecht gezichtsvermogen – als een muis leert hoe de kat jaagt, kan hij gemakkelijk voorkomen dat hij wordt gezien en gevangen.”
Volgens Kiss ziet het er niet goed uit. “Machine learning-beveiliging wordt een kritisch onderwerp.” Hij wijst erop dat de meeste softwareontwikkelaars en experts in machine learning zich niet bewust zijn van de aanvalstechnieken. “Zelfs niet degenen die al lang bekend zijn in de softwarebeveiligingsgemeenschap. Ook zijn ze niet op de hoogte van de bijbehorende best practices. Dit zou moeten veranderen.”

Beveiligingsexpert en ervaren softwaretrainer Balázs Kiss heeft onlangs een nieuwe cursus ontwikkeld over machine learning-beveiliging die binnenkort wordt uitgerold door High Tech Institute in Nederland.
Machine learning (ML) oplossingen zijn – net als softwaresystemen – op verschillende manieren kwetsbaar en vergroten de beveiligingsbehoeften. Vorig jaar werd dit op een vrij gênante en eenvoudige manier duidelijk gemaakt door twee studenten uit Leuven. Ze slaagden er gemakkelijk in om Yolo (You Only Look Once), een van de populairste algoritmes om objecten en mensen te detecteren, te misleiden. Door een kartonnen bord met een kleurrijke print van 40 bij 40 cm voor hun lichaam te dragen, maakten Simen Thys en Wiebe Van Ranst zichzelf ondetecteerbaar als menselijke personen. Een ander voorbeeld komt van McAfee-onderzoekers die erin slaagden de Tesla autopilot voor de gek te houden door snelheidsborden verkeerd te classificeren en de auto sneller te laten rijden dan 35 mph.
Ken uw vijand
“Een essentiële voorwaarde voor cyberbeveiliging is: ken je vijand”, zegt Kiss, die ook een ervaren softwaretrainer is en onlangs een gloednieuwe cursus over ML-beveiliging heeft ontwikkeld die binnenkort door High Tech Institute in Nederland wordt uitgerold. “Het belangrijkste is dat je moet denken met het hoofd van een aanvaller,” zegt hij.
Laten we eens kijken waar aanvallers zich op richten bij machine learning. Het begint allemaal met het onderzoeken van wat beveiligingsexperts “het aanvalsoppervlak” noemen, de combinatie van alle verschillende punten in een softwareomgeving waar een ongeautoriseerde gebruiker kan proberen gegevens binnen te komen of te extraheren. Het aanvalsoppervlak zo klein mogelijk houden is een basisveiligheidsmaatregel. Zoals de studenten uit Leuven bewezen: om een ML-systeem te misleiden hoef je niet eens een toetsenbord aan te raken.
'Garbage in, garbage out.'
Een veelgebruikt gezegde in de wereld van machine learning is “garbage in, garbage out”. Alle algoritmen gebruiken trainingsgegevens om hun gedrag vast te stellen en te verfijnen. Slechte gegevens resulteren in onverwacht gedrag. Dit kan komen doordat het model goed presteert op de trainingsgegevens maar niet in staat is om de resultaten te generaliseren naar andere voorbeelden (overfitting), doordat het model niet in staat is om de onderliggende trends van de gegevens vast te leggen (underfitting) of door problemen met de dataset. Vertekende, foutieve of dubbelzinnige trainingsgegevens zijn natuurlijk toevallige problemen en er zijn manieren om hiermee om te gaan. Bijvoorbeeld door geschikte test- en validatiedatasets te gebruiken. Een tegenstander die dergelijke slechte invoer opzettelijk invoert, is echter een heel ander scenario waarvoor we ook speciale beschermingsbenaderingen nodig hebben.
Aanvallers zijn slim
Kiss: “We moeten gewoon aannemen dat er kwaadwillende gebruikers zullen zijn. Deze aanvallers hoeven niet eens bepaalde privileges te hebben binnen het systeem, maar ze kunnen ruwe invoer leveren als trainingsgegevens en de uitvoer van het systeem zien, meestal de classificatiewaarde. Dit betekent al dat ze opzettelijk slechte of kwaadaardige data kunnen sturen om onbedoelde ML-fouten te veroorzaken.”
'Attackers can learn how the model works and refine their inputs to adapt the attack.'
“Maar dat is slechts het topje van de ijsberg,” vindt Kiss. “Houd in gedachten dat aanvallers altijd naar een doel toewerken. Ze richten zich op specifieke aspecten van de ML-oplossing. Door de juiste invoer te kiezen, kunnen ze veel potentiële schade aanrichten aan het model, de gegenereerde voorspelling en zelfs de verschillende stukjes code die deze invoer verwerken. Aanvallers zijn slim. Ze zijn niet beperkt tot het sturen van statische inputs – ze kunnen leren hoe het model werkt en hun inputs verfijnen om de aanval aan te passen.”
In het geval van supervised learning omvat het alle drie de grote stappen van de ML-workflow. Voor training kan een aanvaller invoergegevens leveren. Voor classificatie kan een aanvaller invoergegevens leveren en het classificatieresultaat lezen. Als het ML systeem feedback functionaliteit heeft, kan een aanvaller ook valse feedback geven (“fout” voor een goede classificatie en “correct” voor een slechte) om het systeem in de war te brengen.
Ambachtelijke input
Veel aanvallen maken gebruik van zogenaamde adversaire voorbeelden. Deze bewerkte invoer maakt gebruik van het impliciete vertrouwen dat een ML systeem stelt in de trainingsgegevens van de gebruiker om de veiligheid te schaden (vergiftiging) of verleidt het systeem om de invoer verkeerd te categoriseren (ontwijking). Er bestaat op dit moment geen onfeilbare methode die deze voorbeelden automatisch kan detecteren en filteren; zelfs de beste oplossing, waarbij een systeem wordt geleerd om voorbeelden van tegenstanders te herkennen, heeft een beperkte reikwijdte.

Door een kartonnen bord met een kleurrijke print van 40 bij 40 cm voor hun lichaam te dragen, maakten Simen Thys en Wiebe Van Ranst zichzelf ondetecteerbaar als menselijke personen. Krediet: KU Leuven/Eavise
Er zijn natuurlijk verdedigingen om tegenstrijdige voorbeelden te detecteren of te beperken. Een intelligente aanvaller kan echter oplossingen zoals obfuscation verslaan door op een adaptieve manier een set voorbeelden van tegenstanders te produceren. Kiss wijst op een aantal uitstekende artikelen die dit belichten, zoals die van Nicholas Carlini en zijn collega’s bij Google Brain.
Al met al staat het onderzoek naar ML-beveiliging nog in de kinderschoenen. De huidige onderzoeken richten zich vooral op beeldherkenning. Sommige verdedigingstechnieken die goed werken voor afbeeldingen zijn echter mogelijk niet effectief voor tekst of audio. “Dat gezegd hebbende, zijn er nog genoeg dingen die je kunt doen om jezelf in de praktijk te beschermen,” vertelt Kiss. “Helaas zal geen enkele je volledig beschermen tegen kwaadaardige activiteiten. Ze zullen echter allemaal lagen van bescherming toevoegen, waardoor de aanvallen moeilijker uit te voeren zijn.”
Het belangrijkste is volgens de Cydrill-expert dat je denkt met het hoofd van een aanvaller. “Je moet neurale netwerken trainen met aanvalsvoorbeelden om ze deze informatie expliciet als onjuist te laten herkennen.” Volgens Kiss is het een goed idee om adversarial samples te maken en te gebruiken van alle momenteel bekende aanvalstechnieken. Een testraamwerk kan zulke monsters genereren om het proces gemakkelijker te maken. Er zijn bestaande tools voor beveiligingstesten die hierbij kunnen helpen, zoals ML fuzz testers Tensorfuzzs en Deeptest, die automatisch ongeldige of onverwachte invoer genereren.
Gezond verstand controles
Het beperken van de mogelijkheden van de aanvaller om vijandige samples te versturen is altijd een goede beperkingstechniek. Dit kan eenvoudig bereikt worden door het aantal geaccepteerde inputs van een gebruiker te beperken. Natuurlijk kan het niet eenvoudig zijn om te detecteren dat dezelfde gebruiker achter een set inputs zit. “Dit is dezelfde uitdaging als in het geval van gedistribueerde denial-of-service aanvallen, maar dezelfde oplossingen zouden ook kunnen werken.”
Zoals altijd bij softwarebeveiliging kan invoervalidatie helpen. Het is misschien niet triviaal om automatisch goede van slechte invoer te onderscheiden, maar het is zeker het proberen waard. We kunnen ook machine learning zelf gebruiken om afwijkende patronen in de invoer te identificeren. “In het eenvoudigste geval, als gegevens die we ontvangen van een niet-vertrouwde gebruiker consequent dichter bij de classificatiegrens liggen dan bij het gemiddelde, kunnen we de gegevens markeren voor handmatige controle, of ze gewoon weglaten.”
Het regelmatig uitvoeren van controles met testgegevens kan ook helpen. Het uitvoeren van dezelfde testdataset tegen het model bij elke hertrainingscyclus kan pogingen tot een vergiftigingsaanval aan het licht brengen. Kiss: “Afwijzen bij negatieve impact, Roni, is hier een typische verdediging, die detecteert of het vermogen van het systeem om de testdataset te classificeren afneemt na de hertraining.”
Het meest voor de hand liggende feit over ML-beveiliging wordt vaak over het hoofd gezien, merkt Kiss op. “Machine learning-oplossingen zijn softwaresystemen. We programmeren ze in Python – of mogelijk C++ – en dus dragen ze potentieel alle veelvoorkomende beveiligingszwakheden met zich mee die op die talen van toepassing zijn.” De Cydrill trainer raadt ons vooral aan om bewust te zijn van punt 9 uit de OWASP Top Tien. Het Open Web Application Security Project is een document dat de tien meest kritieke beveiligingsproblemen in webapplicaties samenvat om het bewustzijn te vergroten en het risico op aanvallen te minimaliseren. Punt 9 waarschuwt ontwikkelaars voor het gebruik van componenten met bekende kwetsbaarheden. “Elke kwetsbaarheid in een wijdverspreid ML-framework zoals Tensorflow of een van zijn vele afhankelijkheden kan verstrekkende gevolgen hebben voor alle applicaties die het gebruiken.”
Mogelijke aanvalsdoelen
De aanvallers communiceren met het ML-systeem door gegevens in te voeren via het aanvalsoppervlak. Begin te denken met het hoofd van de aanvaller en stel vragen. Hoe verteert de applicatie de informatie? Wat voor soort gegevens? Accepteert het systeem afbeeldingen, audio- en videobestanden? Of zijn er beperkingen? Zo ja, hoe controleert het de types? Doet het programma enige parsing of delegeert het dit volledig aan een open-source of commercieel beschikbare mediabibliotheek? En heeft het programma na het voorbewerken van de gegevens aannames (lege velden, eisen aan waarden)? Worden de gegevens opgeslagen in een relationele database of in XML of JSON? Zo ja, welke bewerkingen voert de code uit op deze gegevens wanneer ze worden verwerkt? Waar worden de hyperparameters opgeslagen en zijn ze tijdens runtime aan te passen? Maakt de applicatie gebruik van bibliotheken, frameworks, middleware of webservice-API’s van derden als onderdeel van de workflow die gebruikersinvoer verwerkt? Zo ja, welke?
Kiss: “Elk van deze vragen kan wijzen op potentiële aanvalsdoelen. Ze kunnen allemaal kwetsbaarheden verbergen die aanvallers kunnen uitbuiten om hun oorspronkelijke doel te bereiken.”
Deze typen kwetsbaarheden zijn niet zozeer gerelateerd aan machine learning als wel aan de onderliggende technologieën: de programmeertaal zelf (waarschijnlijk Python), de implementatieomgeving (mobiel, desktop, cloud) en het besturingssysteem. Maar de gevaren die ze vormen zijn net zo kritiek als de voorbeelden van tegenstanders – succesvolle exploitatie kan leiden tot een volledige compromittering van het ML-systeem. Dit beperkt zich niet tot de code van de applicatie zelf. Onderzoeker Rock Stevens van de Universiteit van Maryland onderzocht kwetsbaarheden in veelgebruikte platforms zoals Tensorflow en Pytorch.
Echte bedreigingen
De belangrijkste boodschap van Kiss is dat ML-beveiliging veel echte bedreigingen omvat. Het is niet slechts een deelverzameling van cyberbeveiliging, het deelt veel eigenschappen van softwarebeveiliging in het algemeen. We moeten ons zorgen maken over kwaadaardige samples en adversarial learning, maar ook over alle gebruikelijke zwakke plekken in de beveiliging van software. Machine learning is tenslotte software.
ML-beveiliging is een nieuwe discipline. Het onderzoek is nog maar net begonnen, we beginnen nog maar net de bedreigingen, de mogelijke zwakke plekken en de kwetsbaarheden te begrijpen. Toch kunnen ML-experts veel leren van softwarebeveiliging. Daar hebben we de afgelopen decennia veel van geleerd.
Dit artikel is geschreven door René Raaijmakers, tech-redacteur van Bits&Chips.