AI-baserade kodningsassistenter blir snabbt ett måste för utvecklare, och en av de mest populära är AWS CodeWhisperer.
Adriaan Knapen
Adriaan is a DevOps Consultant at Eficode, where he helps clients improve their development processes and build value-adding software. He specializes in cloud technologies, modern web development technologies, and optimizing developer tooling experiences. If he’s not using his free time to read HackerNews or fiddle with bleeding-edge technology, he likes to spend time in the kitchen and at the gym.
Det fungerar med integrerade utvecklingsmiljöer (IDE:er) och har stöd för flera språk, avancerad säkerhet och anpassningsfunktioner – samt ytterligare fördelar om du ingår i AWS ekosystem.
Men när du implementerar AI-verktyg som dessa finns det verkliga risker som du behöver känna till och hantera. Allt från frågor kring immateriella rättigheter och dataintegritet till förslag som innehåller osäkra eller föråldrade implementationer kan snabbt gå riktigt fel. Utöver allmän frustration och extraarbete kan du ställas inför juridiska problem, och människors försörjning kan stå på spel om din verksamhet riskerar att drabbas.
Å andra sidan kan CodeWhisperer vara en räddare i nöden. I det här blogginlägget går jag på en grundläggande nivå igenom riskerna och hur du hanterar dem effektivt.
Så fungerar CodeWhisperer
Medan du skriver ger CodeWhisperer kodningsförslag i realtid – från kompletteringar på en rad till hela kodblock. Men hur fungerar det?
För att göra det på ett träffsäkert sätt:
CodeWhisperer samlar in relevant kontext från din integrerade utvecklingsmiljö. Det omfattar bland annat källkodssnuttar och filnamn.
Informationen skickas till AWS moln, där AWS använder stora språkmodeller (LLM:er) för att bearbeta förfrågan och skapa förslag åt dig.
Du kan få mer relevanta kodförslag från LLM:en om du använder CodeWhisperers anpassningsfunktion. Då gör du LLM:en medveten om ytterligare kod utanför dess ursprungliga träningsdata, till exempel interna bibliotek och API:er, beprövade metoder och arkitekturmönster.
Eftersom CodeWhisperer hanterar känsliga data är det viktigt att skydda informationen både under överföring och vid lagring.
Säkerhet i CodeWhisperer – så gör du rätt
CodeWhisperer omfattas av AWS modell för delat ansvar. Enligt modellen ansvarar AWS för att säkra plattformens infrastruktur. Du ansvarar för att använda och konfigurera den tillhandahållna plattformen på ett säkert sätt utifrån dina behov.
Med det i åtanke – vad kan du som använder CodeWhisperer göra för att förstärka standardkonfigurationen? Här är de viktigaste sätten att skapa en säker konfiguration för din organisation:
Aktivera flerfaktorsautentisering (MFA) för alla CodeWhisperer-användare. Då kan exempelvis komprometterade konton inte läcka innehållet i anpassningar.
Använd en modern version av TLS när du interagerar direkt med AWS-tjänster, till exempel när du laddar upp filer för ytterligare anpassningar till S3.
Aktivera loggning av API- och användaraktivitet med AWS CloudTrail så att du får bättre insyn i hur verktygen används.
För ytterligare säkerhet för anpassningsfiler som lagras, aktivera egna krypteringsnycklar på S3-bucketarna som innehåller anpassningsfilerna. Om du inte har konfigurerat egna nycklar säkerställer AWS kryptering vid lagring med en nyckel som AWS hanterar.
Använd Amazon Macie för att säkra S3-bucketar med anpassningsfiler. Det omfattar att konfigurera korrekt åtkomstkontroll till dessa S3-bucketar och att söka efter känsligt innehåll som personligt identifierbar information (PII).
CodeWhisperer har ett inbyggt verktyg för säkerhetsskanning. Det kan skanna flera olika programmeringsspråk, bland annat Java, Python, JavaScript och andra. Under huven använder CodeWhisperers kodskanning kraften i AWS CodeGuru Detector Library.
Allmänna beprövade säkerhetsmetoder för att börja använda CodeWhisperer
Se till att dina utvecklare känner till AI:s begränsningar
När du arbetar med AI-verktyg ska du alltid komma ihåg att du ansvarar för resultatet. En LLM är bara ett verktyg som hjälper utvecklare i deras arbete – inte en autonom robot som ersätter dem helt.
Förslag från AI-verktyg, inklusive CodeWhisperer, kan vid första anblick se ut som bra bidrag. Men de kan vara långt ifrån att uppfylla standarder för god kodkvalitet.
Det kan finnas subtila buggar eller säkerhetsbrister.
Verktyget kan implementera något annat än det du som utvecklare avsåg.
Verktyget kanske inte kan ta hänsyn till designkrav (eftersom de kanske inte var tillgängliga för AI:n).
Därför är det helt avgörande att du utbildar alla utvecklare om AI:ns svagheter. Det omfattar snedvridningar i träningsdatan som leder till vinklade svar, ”hallucinationer” där AI:n självsäkert ger förslag som inte fungerar, samt möjliga konflikter kring immateriella rättigheter (IP) när du använder AI:ns output direkt.
Vet var kodförslagen kommer ifrån
Om du har en Professional Tier-licens i CodeWhisperer är du garanterad att CodeWhisperer inte använder data för att träna LLM-modellen. Koden som CodeWhisperer returnerar kan dock fortfarande likna offentlig kod från träningsdatan.
För att hantera den här typen av förslag på ett säkert sätt finns en funktion som kallas ”public code filter and reference tracking”. Om dina kodförslag matchar offentlig kod får du information om var den matchande koden kommer ifrån. När du känner till källan kan du snabbt avgöra om licensen för den matchande koden är kompatibel med den kodbas du arbetar med.
Om du vill undvika att CodeWhisperer över huvud taget föreslår kodsnuttar som matchar offentlig kod kan du helt enkelt inaktivera funktionen Reference Tracking på organisationsnivå.
Säkerhetsskanning på flera språk
En av CodeWhisperers starka inbyggda säkerhetsfunktioner, som jag nämnde tidigare, är verktyget för att köra säkerhetsskanningar. För bästa resultat bör du konfigurera kodskanning så att den körs regelbundet.
För vissa språk – Java, JavaScript och Python när detta skrivs – kan CodeWhisperer föreslå åtgärder för de sårbarheter som hittas. Tänk dock på att all kod som skrivits i programmeringsspråk som inte stöds av CodeGuru ignoreras utan förvarning. Du får alltså inga notiser om sårbarheter i dessa delar av kodbasen och ingen varning om att de inte kan behandlas.
Gör inte kodning svårare än den behöver vara
Kodassistenter blir alltmer oumbärliga för utvecklare, och AWS CodeWhisperer är en favorit hos många. LLM:er har dock begränsningar och risker: känslig data, som källkod och potentiella hemligheter, skickas direkt till molnet. Du behöver veta hur du integrerar förslag från LLM:en i produktionskällkoden på ett säkert sätt och i enlighet med regelverk.
Du kan införa CodeWhisperer med minimal friktion genom att kombinera hårdare konfiguration i AWS administrationsportal för organisationer med en bra onboarding som lär utvecklare hur de använder LLM-baserade lösningar säkert och effektivt.
Livet och kodningen kan vara enklare. Gör det inte svårare än det behöver vara.
- Software development
- DevOps
- Security
Subscribe to our newsletter
Related blogs