Nyligen berättade seniora utvecklare på Spotify att man helt hade slutat skriva kod manuellt och det är väl bara att konstatera att AI-tekniken på relativt kort tid har förändrat förutsättningarna för ett helt skrå inom techbranschen.
Experten: Därför skapar AI-genererad kod nya säkerhetsrisker
säkerhet Med AI-verktyg är det enklare än någonsin att skapa mjukvara men utvecklingen innebär också säkerhetsrisker. Enligt Per Eklöf på Armis innehåller AI-genererad kod redan idag fler sårbarheter än kod skriven av människor.

Någonting är fel
Läs vidare – starta din prenumeration
Men det står också klart att AI-verktygen är långt ifrån perfekta. AI-skapad kod innehåller fortfarande betydligt fler brister och potentiella sårbarheter jämfört med kod som en människa har skrivit.
Enligt Per Eklöf, som är expert på cybersäkerhet på företaget Armis, gäller det att ta problematiken på allvar. Han arbetar som partneransvarig för Norden på Armis och har nära 15 års erfarenhet av branschen. Han beskriver hur bolaget har byggt sin verksamhet kring att identifiera och hantera risker i uppkopplade miljöer.
– Armis Security grundades för ungefär tio år sedan med ett fokus på att förstå och identifiera alla typer av uppkopplade enheter som kommunicerar på ett nätverk. Redan då såg man att stora organisationer hade svårt att veta exakt vilka enheter de hade i sina miljöer, inte minst på grund av fenomenet skugg-it. Samtidigt fanns det många typer av utrustning, till exempel inom OT, IoT och medicinteknik, som inte kunde skyddas eller upptäckas på samma sätt som traditionella datorer.
Behovet av den typen av överblick har enligt Per Eklöf bara ökat i takt med att fler system kopplas upp och att attackytan växer.
– Det här är en attackvektor som bara har blivit större över tid. På senare år har vi därför också lagt mycket fokus på att utveckla lösningar för sårbarhetshantering. Den stora utmaningen för många organisationer idag är inte att få fler larm om risker utan att kunna prioritera och förstå vad som faktiskt är viktigast att åtgärda.
Samtidigt som säkerhetsarbetet blir mer komplext förändras också själva utvecklingsprocessen i snabb takt. AI-baserade kodverktyg gör det möjligt för både utvecklare och andra roller att skapa applikationer betydligt snabbare än tidigare.
– Vi kommer att se en explosionsartad ökning av hur enkelt det är att skapa applikationer och kod med hjälp av AI. Det är en trend som inte kommer att bromsas utan snarare fortsätta växa i omfattning. Samtidigt innebär det också att vi måste prata om de risker och säkerhetsbrister som kan uppstå när man arbetar med AI-genererad kod.
Flera studier pekar enligt Per Eklöf på att AI-genererad kod i dagsläget innehåller fler säkerhetsproblem än kod skriven av människor.
– Det finns undersökningar som visar att AI-genererad kod kan innehålla ungefär 1,5 till 1,7 gånger fler säkerhetsbrister än mänskligt producerad kod. Samtidigt är det inte ett alternativ att avstå från tekniken framöver. Frågan är snarare hur vi hanterar den här verkligheten.
En av förklaringarna till att brister och sårbarheter uppstår är hur de stora AI-modellerna tränas.
– AI tränas på enorma mängder öppen källkod från internet. Problemet är att den koden ibland innehåller osäkra mönster. Det kan handla om bristfällig validering, hårdkodade lösenord eller andra typer av svagheter. AI kan därför reproducera misstag som har begåtts av människor.
Utöver det kan modellerna sakna en övergripande förståelse för hur en viss applikation ska användas.
– AI ser ofta inte hela sammanhanget. Den vet inte alltid vad koden ska användas till i slutändan. Dessutom kan den föreslå att man importerar bibliotek som var populära när modellen tränades men som idag är utdaterade.
Eklöf menar också att det finns en psykologisk faktor som påverkar utvecklingsarbetet.
– Det finns forskning som visar att utvecklare tenderar att lita mer på AI-genererad kod och därför är mindre noggranna med att granska den. Det kan vara en viktig förklaring till varför sårbarheter slinker igenom.
Många organisationer använder redan olika säkerhetsverktyg i sina utvecklingsprocesser, men dessa är enligt honom långt ifrån perfekta.
”Genererar ofta många falska larm”
– Det finns verktyg som försöker validera kod och identifiera sårbarheter, men de är ofta fragmenterade och bygger på olika tekniska lösningar. Dessutom genererar de ofta väldigt många falska larm. Det gör det svårt för utvecklingsteam att avgöra vad som faktiskt är relevant och vad som inte är det.
Samtidigt utvecklas AI-verktygen i mycket snabb takt, och många hoppas att de själva ska kunna minska problemen med sårbar kod.
– Absolut, verktygen kommer att bli bättre. Det finns redan lösningar som försöker hantera den här typen av risker. Men vi vet också att det ofta tar många år innan organisationer faktiskt implementerar nya säkerhetsverktyg. Verktygen kan finnas på marknaden långt innan de börjar användas i större skala.
När det gäller konkreta attacker är det enligt honom inte alltid lätt att avgöra om sårbarheter har uppstått genom AI-genererad kod eller genom andra brister.
– Applikationsutveckling är idag en av de främsta måltavlorna för angripare. Många av de attacker vi har sett de senaste åren bygger på sårbarheter i applikationer. Men det är ofta svårt att veta exakt när bristerna uppstod – om de skapades under utvecklingen eller upptäcktes långt senare.
Ett scenario som ofta lyfts fram i säkerhetsdiskussioner är när en sårbar komponent används i ett stort antal system. Han nämner Log4j-incidenten som ett exempel på hur omfattande konsekvenser det kan få.
Log4j-sårbarheten upptäcktes i december 2021 och gjorde det möjligt för angripare att köra godtycklig kod på servrar genom att skicka manipulerade loggmeddelanden till system som använde Log4j. Eftersom biblioteket är mycket vanligt i Java-baserade applikationer blev sårbarheten snabbt ett globalt säkerhetshot som påverkade tusentals organisationer och system.
– När den sårbarheten upptäcktes visste man inte hur djupt den satt i systemen. Det tog lång tid att kartlägga var den fanns. Om man tänker sig liknande situationer i kod som används i många olika produkter kan konsekvenserna bli väldigt stora, särskilt om det handlar om samhällskritisk infrastruktur.
En annan utmaning är tempot i AI-utvecklingen. Leverantörer tävlar om att lansera nya funktioner, vilket ibland kan gå ut över säkerhetsarbetet.
Nya frågor måste ställas
För CIO:er och it-ledare innebär utvecklingen att nya frågor måste ställas när AI-baserade lösningar införs i verksamhetskritiska system.
– Jag skulle börja med att säkerställa att hela försörjningskedjan är validerad. Det innebär att man tar fram en så kallad SBOM, Software Bill of Materials. Det är i princip en ingrediensförteckning över alla komponenter som ingår i en mjukvara.
En sådan översikt gör det möjligt att förstå vilka bibliotek och verktyg som används i en applikation.
– Om man inför ett AI-verktyg i organisationen måste man också säkerställa att det är validerat ur ett säkerhetsperspektiv. Organisationer som levererar mjukvara är redan idag skyldiga att kunna redovisa den här typen av information.
Samtidigt finns det en stor mängd äldre system och programvaror där sådana kontroller aldrig har gjorts.
– Det finns ett enormt arv av programvara där man inte har haft den här typen av transparens. Och när AI börjar användas i utvecklingen av dessa system blir det ännu viktigare att förstå vad som faktiskt finns i dem.
Trots riskerna är Eklöf övertygad om att användningen av AI i mjukvaruutveckling kommer att fortsätta växa.
– AI-genererad kod kommer att explodera i omfattning. Det finns enorma möjligheter i tekniken, men det är avgörande att vi också pratar om riskerna och säkerhetsbristerna.
Han jämför situationen med hur säkerhetsarbetet såg ut i början av interneteran.
– För länge sedan kunde man förlita sig på antivirusprogram som byggde på signaturdatabaser. Man visste hur virusen såg ut och kunde matcha dem mot en databas. Jag skulle säga att vi nu befinner oss i ett liknande skifte när det gäller applikationssäkerhet och AI.
Det innebär att gamla metoder inte längre räcker till.
– Vi kan inte längre förlita oss på samma typer av kontroller och skydd som tidigare. Vi måste börja se på säkerheten i applikationsutveckling på ett helt annat sätt.
Till utvecklare och organisationer som arbetar med AI-baserade kodverktyg har han ett tydligt råd.
– Det viktigaste är att försöka validera källan till den kod som används, även om det är svårt. Mjukvaruutvecklare ska kunna redovisa vilka komponenter och verktyg som ingår i deras lösningar. Organisationer kan också själva använda verktyg för att kontrollera detta.
