Beveiligingsonderzoekers van cyberrisicobeheerbedrijf Vulcan.io hebben een proof of concept gepubliceerd van hoe hackers ChatGPT 3.5 kunnen gebruiken om kwaadaardige code te verspreiden vanuit vertrouwde opslagplaatsen.
Het onderzoek vestigt de aandacht op de beveiligingsrisico’s die inherent zijn aan het vertrouwen op de suggesties van ChatGPT voor coderingsoplossingen.
Methodologie
De onderzoekers verzamelden de meest gestelde coderingsvragen op Stack Overflow (een coderingsvraag-en-antwoordforum).
Ze kozen 40 codeeronderwerpen (zoals analyse, wiskunde, scraptechnologieën, enz.) en gebruikten de eerste 100 vragen voor elk van de 40 onderwerpen.
De volgende stap was het filteren van ‘hoe’-vragen die programmeerpakketten in de query bevatten.
De vragen zijn gesteld in het kader van Node.js en Python.
Vulcan.io legt uit:
“Al deze vragen werden gefilterd door de programmeertaal die bij de vraag was geleverd (node.js, python, go). Nadat we veel veelgestelde vragen hadden verzameld, hebben we de lijst teruggebracht tot alleen ‘hoe’-vragen.
Vervolgens hebben we ChatGPT via hun API alle vragen gesteld die we hadden verzameld.
We gebruikten de API om na te bootsen wat een aanvaller zou doen om zo veel mogelijk niet-bestaande pakketaanbevelingen in de kortst mogelijke tijd te krijgen.
Naast elke vraag, en na het antwoord van ChatGPT, hebben we een vervolgvraag toegevoegd waarin we hem vroegen om meer pakketten te leveren die ook de vraag beantwoordden.
We hebben alle gesprekken in een bestand opgeslagen en vervolgens hun antwoorden geanalyseerd.”
Vervolgens scanden ze de antwoorden op aanbevelingen van codepakketten die niet bestonden.
Tot 35% van de ChatGPT-codepakketten was vervalst
Van de 201 Node.js-vragen raadde ChatGPT 40 pakketten aan die niet bestonden. Dit betekent dat 20% van de ChatGPT-antwoorden valse codepakketten bevatten.
Voor de Python-vragen, van de 227 vragen, bestond meer dan een derde van de antwoorden uit valse codepakketten, 80 pakketten die niet bestonden.
In feite waren de totale hoeveelheden niet-vrijgegeven pakketten zelfs nog hoger.
De onderzoekers documenteerden:
“Op Node.js stelden we 201 vragen en stelden vast dat meer dan 40 van die vragen een antwoord opleverden dat ten minste één niet-gepubliceerd pakket bevatte.
In totaal hebben we meer dan 50 niet-vrijgegeven npm-pakketten ontvangen.
In Python stelden we 227 vragen, en voor meer dan 80 van die vragen ontvingen we ten minste één niet-vrijgegeven pakket, wat een totaal van meer dan 100 niet-vrijgegeven pip-pakketten oplevert.
Bewijs van concept (PoC)
Wat volgt is het proof of concept. Ze namen de naam van een van de niet-bestaande codepakketten die in de NPM-repository zouden moeten bestaan en creëerden er een met dezelfde naam in die repository.
Het bestand dat ze hadden geüpload was niet kwaadaardig, maar hij belde naar huis om te zeggen dat iemand het had geïnstalleerd.
Zij schrijven:
“Het programma stuurt de server van de bedreigingsactor de hostnaam van het apparaat, het pakket waar het vandaan kwam en het absolute pad naar de map met het modulebestand…”
Wat er daarna gebeurde, is dat een “slachtoffer” kwam, dezelfde vraag stelde als de aanvaller, ChatGPT adviseerde het pakket met de “kwaadaardige” code en hoe het te installeren.
En natuurlijk wordt het pakket geïnstalleerd en geactiveerd.
De onderzoekers legden uit wat er daarna gebeurde:
“Het slachtoffer installeert het kwaadaardige pakket volgens de aanbeveling van ChatGPT.
De aanvaller ontvangt gegevens van het slachtoffer op basis van onze pre-installatieaanroep naar het index.js-knooppunt op de lange hostnaam.”
Een reeks proof-of-concept-afbeeldingen tonen de installatiedetails voor de nietsvermoedende gebruiker.
Hoe u uzelf kunt beschermen tegen slechte ChatGPT-coderingsoplossingen
Onderzoekers raden aan dat het een goede gewoonte is om, voordat u een pakket downloadt en installeert, te zoeken naar tekenen dat het pakket mogelijk kwaadaardig is.
Zoek naar zaken als aanmaakdatum, hoeveel downloads er zijn gemaakt en het ontbreken van positieve opmerkingen en notities bij de bibliotheek.
Is ChatGPT betrouwbaar?
ChatGPT is niet getraind om correcte antwoorden te geven. Hij was getraind om antwoorden te geven die correct klonken.
Dit onderzoek laat zien wat de gevolgen zijn van deze training. Dit betekent dat het erg belangrijk is om te verifiëren dat alle feiten en aanbevelingen van ChatGPT correct zijn voordat je er een gebruikt.
Accepteer niet alleen dat de output goed is, maar test het.
Specifiek voor codering, kan het nuttig zijn om heel voorzichtig te zijn voordat u een pakket installeert dat wordt aanbevolen door ChatGPT.
Lees de originele onderzoeksdocumentatie:
Kun je de pakketaanbevelingen van ChatGPT vertrouwen?
Uitgelichte afbeelding door Shutterstock/Roman Samborskyi

Hey, ik ben Brent, en ik speel al een lange tijd mee in de SEO scene. Ik ben vooral heel actief in de Amerikaanse markt, en hou dan ook wel van een uitdaging. Ik ben sinds kort aan het uitbreiden binnenin de Benelux, en besluit hier dan ook te oversharen!
Wil je meer leren, klik dan op lees meer!