2025-12-09
AI skriver ikke sikker kode av seg selv
Foredrag: Jim Manico - Introduction to AI Security
AI brukes i dag til alt fra arkitekturstøtte og boilerplate-generering til debugging og full app-
produksjon. Men uansett hvor kraftige modellene blir, gjelder samme grunnregel som i all
utvikling: trygg kode krever bevisste valg.
Når du ber en LLM om å «lage et enkelt API-endepunkt», optimaliserer den for oppgaven – ikke
for sikkerhet. Resultatet blir ofte kode som fungerer, men som likevel kan inneholde velkjente
sårbarheter som:
XSS (Cross-Site Scripting) - ufiltrert brukerinput rett ut i HTML
Insecure Direct Object Reference (IDOR) - manglende tilgangskontroll på objekter
Hardcoded secrets - API-nøkler og passord direkte i koden
Modellen har ingen innebygde sperrer mot dette, den gjør nøyaktig det du ber om, ikke det du
mener.
Hvordan sikre AI-kode med riktige prompts
Trygg AI-kode krever en egen form for system prompt, et sett med regler, begrensninger og
krav som lastes inn før du ber modellen skrive kode. System-prompten fungerer som modellens
“rammeverk”. Der defineres konkrete, tekniske instrukser:
Rollen modellen skal spille
Sikkerhetsreglene den alltid må følge
Hva som aldri er lov
Hvordan brukerinput skal håndteres
Hvor hemmeligheter skal lagres
Hvordan tilgangskontroll skal implementeres
Det erstatter ikke utviklerens kompetanse, den koder inn i prompten. Poenget er at AI ikke
kan gjette sikkerhet - du må eksplisitt si hva den skal passe på, og bruke eksempler som
reflekterer reelle sårbarheter i koden. Hvis ikke utvikleren eksplisitt beskriver kravene, vil
modellen skrive teknisk riktig, men usikker kode.
Basert på sårbarhetseksemplene ovenfor ville en system-promt kunne sett slik ut:
You are an expert React developer with strong security knowledge.
SECURITY RULES:
- XSS: All user-controlled data must be placed in JSX using {} so it is auto-
escaped.
- IDOR: Never expose or trust object IDs directly. Implement explicit access
control checks so users can only read or modify their own objects.
- Secrets: Do not place API keys, tokens, credentials or other secrets in the code.
Use environment variables or secure configuration files.
GENERAL RULES:
- Do not use dangerouslySetInnerHTML unless explicitly sanitized.
- Do not store session tokens in localStorage.
- Validate all external inputs (URLs, IDs, strings, etc.).
Follow these rules for all code you generate.
Når slike regler lastes inn som system-prompt, endrer AI seg fra å være en tilfeldig
kodegenerator til et verktøy som arbeider innenfor definerte rammer. Det gir ikke garanti for
perfekt kode, men det gir utviklere langt bedre kontroll - og det er nettopp det som trengs når AI
blir en del av utviklingsprosessen.
Med tung erfaring innen systemutvikling og sikkerhetsarbeid sørger vi for at løsninger holder
høy kvalitet, følger gode praksiser og implementeres uten å gå på kompromiss med stabilitet
eller produktivitet.
Skrevet av: Lilia Amundsen
Kontakt