Elektroniktidningen pratar med Arga Reksapati, en indonesisk student som hittade tre av de åtta säkerhetshålen i apriluppdateringen av svenska filöverföringsbiblioteket Curl.
Hans AI-verktyg är en vanlig chattbott – det är vad han har råd med.
Elektroniktidningen har bläddrat i apriluppdateringen av Curl. 269 buggar har åtgärdats av 42 utvecklare, typiskt med en rapport vardera.
Artikeln är tidigare publicerad i magasinet Elektroniktidningen.Prenumerera kostnadsfritt! |
Merparten är signerade av Curls maintainer Daniel Stenberg. Ofta är det numera AI som hittar buggar som Daniel bekräftar och rättar. Curlprojektet gör regelbundna kodscanningar med nya och gamla verktyg.
På andra och tredje plats hittar vi Daniels högra och vänstra hand Stefan Eissing och Viktor Szakats.
Åtta av rapporterna har den allvarligare stämpeln ”sårbarhet”. På tre av dem står samma namn: Arga Reksapati.
Elektroniktidningen tog kontakt.
Bra jobbat!
– Tack!
Använder du AI för att hitta buggar?
– Ja, det gör jag. Men inte som en automat eller maskin som letar och fattar beslut på egen hand. AI hjälper mig att gå snabbare fram. Den hittar misstänkta mönster och formar hypoteser.
– Jag skickar inte blint in AI-utdata.
Arga Reksapati konstaterar att det inte vore en fungerande strategi. AI hallucinerar och missförstår.
– Råa AI-genererade rapporter blir oftast avfärdade. AI ger ledtrådar, men värdet ligger i filtrering, validering, reproduktion och bevis. Det är jag som gör den slutgiltiga bedömningen.
– Du kan aldrig acceptera AI:s slutsatser i blindo. Det tror jag är en grundregel. Behandla AI-utdata som hypoteser, inte bevis.
Vilka verktyg använder du?
– Just nu verkar Claude vara väldigt populärt bland buggjägare och säkerhetsanalytiker för att granska kod och utforska sårbarheter. Men eftersom Claude kan vara ganska dyrt använder jag huvudsakligen Chat GPT.
Den vanliga chattbotten?
– Chat GPT hjälper mig förstå logiken i kodsnuttar. Jag tror att valet av AI-verktyg delvis är personligt. Man kan föredra olika mo-deller och arbetsflöden. Men poängen är inte verktyget, utan hur man validerar.
Hur arbetar du?
– Vanligtvis frågar jag först GPT vilka typer av sårbarheter som brukar vara intressanta i den här typen av programkod. Sedan söker jag manuellt i källkoden.
När Arga hittar något misstänkt kan han klistra in relevanta kodsnuttar och fråga Chat GPT om det kan handla om en verklig sårbarhet.
– Men jag accepterar fortfarande inte svaret direkt. Jag verifierar det och försöker reproducera det. Arbetsflödet är alltså inte ”ladda upp kod och låt AI hitta buggar automatiskt”. Sökningen, valideringen, reproduktionen och det slutliga beslutet är fortfarande manuella.
Använder du autonoma AI-agenter?
– Nej. Jag använder huvudsakligen Chat GPT som vanligt, i en normal konversation.
Han tittar på källkoden, textsöker efter definitioner och anrop och jämför med tidigare versioner av koden.
– Sedan använder jag GPT för att få hjälp att resonera om misstänkt kod eller typiska typer av buggar. Det är alltså inte en AI-agent som automatiskt skannar kodbasen och producerar rapporter.
Stämmer det att LLM:er hittar nya klasser av buggar som gamla verktyg missar?
– Jag skulle inte säga att LLM:er hittar en helt ”ny klass” av buggar. Det är klassiska buggar som handlar om logik och programtillstånd. Men AI kan göra att det går snabbare.
– Vad gäller just Curl handlade många av mina fynd inte om memory corruption eller parser crashes.
Begreppen syftar på processer som läser och skriver på adresser de saknar access till, respektive att hitta en bugg genom att slumpa fram indata som får programmet att krascha – tekniken kallas fuzzing.
Det han istället hittade var fel som berodde på att gammal information levde kvar för länge. Cookies, lösenord, inloggningsuppgifter följde med till nya anslutningar där de inte hörde hemma.
– Den typen av bugg är svår för traditionella verktyg, för den kanske inte orsakar krasch eller ogiltig minnesåtkomst eller att det förekommer något uppenbart felaktigt indata.
– Programmet fortsätter att fungera normalt, men det skickar hemligheter till fel ställe, för att ett tidigare programtillstånd lever kvar.
Arga Reksapati förklarar att en fuzzer bara kan veta att något är fel om programmet kraschar. För att hitta problem med återan-vändning och autentisering skulle det som är kritiskt behöva pekas ut exakt – exempelvis att en viss autentiseringsuppgift aldrig får skickas till en viss proxy efter en viss sekvens av förfrågningar.
– Ur mitt perspektiv är AI användbar för att den kan hjälpa till att peka på misstänkta vägar som tas i koden och fråga ”vad händer om det här tillståndet återanvänds i en annan förfrågan?”
– Men AI kan fortfarande inte bevisa buggen. Den mänskliga forskaren måste bygga scenariot, reproducera det och bevisa att det påverkar säkerheten.
– Kanske kommer AI inte att ersätta fuzzing. Snarare blir det kanske som att lägga till en annan typ av sökning? Fuzzing kan utforska indata väldigt snabbt. Medan AI hjälper till att utforska tillståndsförändringar och vad koden betyder.
Arga hittar säkerhetshål med hjälp av AIHan bor hos sina föräldrar och hackar hemma från sin egen laptop i ett litet rum som är så stökigt att han inte vill skicka över en bild på det.
Arga Reksapati, 23 år, pluggar informationsteknik på fjärde terminen på Universitas Teknologi Bandung i Indonesien. Hans skolresultat har kvalificerat honom för offentlig finansiering av studierna. Det är något som erbjuds familjer med begränsade ekonomiska resurser. I högstadiet utvecklade han chattbottar i Python i den sociala appen Line, populär i Indonesien. En undergroundscen hackade API:erna och utvecklade egna chattbottar som kunde svara på kommandon och utföra enkla åtgärder.
– Den hade allvarliga svagheter. Jag fick inget betalt, men jag fick ett diplom. Lösenord var åtkomliga och det gick att logga in i lärares konton.
Daniel Stenberg tog bort bounties från Curl för att motverka AI-genererade slaskrapporter. Så dina felrapporter till Curl gav inga pengar. – Jag är lite besviken på det. Men fortfarande motiverad – att få erkännande för en sårbarhet är mycket värdefullt. – Men det är sant, om jag ska vara ärlig, att många buggjägare – även jag – letar efter buggar delvis för inkomstmöjligheten. Så nu har jag faktiskt flyttat fokus till öppenkodsprojekt som har kvar sina bounties. Han har skickat rapporter till några av dem. En bugg är under utredning. – Jag kan inte dela detaljerna förrän den är validerad. Hur ser arbetsmarknaden ut i Indonesien för någon med din bakgrund? – Ta mina funderingar med en nypa salt. Men det finns många professionella, duktiga buggjägare här. Men det finns ingen riktig plats för dem i ekosystemet – inga karriärvägar och möjligheter. Särskilt inte inom offentlig sektor. Detta trots att de enligt Arga Reksapati uppenbarligen skulle kunna göra nytta. Dataläckor är vanligt förekommande i Indonesien – de märks ofta i forum som diskuterar läckor. Men nu är du välmeriterad. Söker du jobb? Det kan jag förmedla till mina läsare. – Ja, jag är öppen för jobbmöjligheter, särskilt om företaget är berett att ta emot någon som fortfarande studerar. Distansarbete vore idealiskt, eftersom jag fortsätter att studera. – Jag är särskilt intresserad av cybersäkerhet, applikationssäkerhet, sårbarhetsanalys och säkerhetsarbete inom öppen källkod. |
Hans första insats inom cybersäkerhet var att hacka skolans webbsajt.
Efter den insatsen blev han intresserad av säkerhetsarbete och sökte bland annat upp bug bounty-program som delar ut prispengar till den som hittar intressanta sårbarheter.