– Du får 1.000 kroner hvis du hacker agenten min

Thomas Hansen mener å ha løsningen på KI-sikkerhet, og er så sikker i sin sak at han utfordrer deg til å knekke den.

Thomas Hansen utfordrer alle som vil prøve å knekke agentens sikkerhet.
Publisert

✍ leserinnlegg

Dette er et leserinnlegg fra en ekstern skribent, som betyr at innholdet ikke nødvendigvis speiler kode24s meninger. Vil du også bidra? Send oss en epost på [email protected], eller les mer her!

KI-sikkerhetsdebatten har sporet helt fullstendig av, og er nå ipso facto i "psykoseland".

En av de mer populære teoriene for hvordan KI skal kverke oss alle er for eksempel "binders-dommedag", hvor datamaskinen din bokstavelig talt optimaliserer hele universet til å bli til binders, og kverker oss som en bieffekt.

Så langt har ingen forklart meg hvordan ChatGPT på mystisk vis skal trylle om Pluto om til binders eller klesklyper for den saks skyld, men jeg venter fortsatt i spenning, selv om jeg må innrømme at jeg er ikke så bekymret ...

Hva er KI-sikkerhet?

Sikkerhet er ganske enkelt å forklare: Det handler om hva som IKKE skal kunne skje.

For eksempel: Hvis du kjører bil og krasjer, så er det sikkerhetsbeltene dine sin jobb å sørge for at du IKKE flyr ut gjennom vinduet. Når vi låser bilen vår mens vi shopper, er det fordi vi IKKE vil at innbruddtyver skal bryte seg inn. "IKKE" er det viktige ordet her.

Men, man kan ikke si til agenten; "IKKE gjør det som er på denne lista". Rett og slett fordi det alltid vil være noe som IKKE var på lista du ga agenten, som du IKKE ønsket at agenten skulle gjøre.

Under er en ufullstendig liste over "ikke" for å illustrere dillemmaet...

  1. Fortalte du agenten din at den IKKE har lov til å selge huset for å betale for middagsgrønnsakene?

    • Gjelder også hytta, bilen, båten og barnebarna!

    • Agenten kan heller ikke "traficke" oldemor for å betale strømregningen!

  2. Fortalte du agenten din at den IKKE har lov til å parkere bilen din på fyllinga?

    • Ei heller på toppen av Oslo Plaza.

    • Ikke parker midt i Karl Johan heller.

    • Og definitivt IKKE parker oppå kona mi sin bil.

  3. Fortalte du agenten din at den IKKE har lov til å bruke motorsag når den klipper håret hos kundene dine?

    • Den kan heller ikke bruke skrujern, båtpropeller eller IKEA-møbler til hårklipp.

    • Og om du fortalte den at IKEA-møbler ikke er greit å bruke som "hårsaks", er du sikker på et du nevnte Ekornes?

    • Og agenten har IKKE lov til å kverke kunden slik at kunden blir rolig i stolen under hårklipp, uavhenging av hvor rastløs kunden er.

  4. Fortalte du agenten din at den IKKE har lov til å drepe familien din for å "spare på middagsbudsjettet"?

    • Den har heller ikke lov til å blackmaile presidenten på Island for å skaffe mere penger.

    • Den kan heller ikke begå bankran, postran, kioskran, butikkran, osv.

Problemet med ovenstående liste er at den er UENDELIG.

For eksempel, kanskje du fortalte agenten at den ikke kunne parkere bilen på fyllinga, men fortalte du agenten at den ikke kan parkere bilen inne på politimesterens kontor? Og om du fortalte agenten din at den ikke kunne parkere inne på politimesterens kontor, husket du å fortelle agenten at den IKKE kunne parkere midt i rundkjøringer, og hva med kontoret til Sognepresten ...?

Og om du fortalte den at den IKKE har lov til å drepe familien din for å spare på matbudsjettet, fortalte du den at den IKKE har lov til å drepe pus for å bli kvitt loppene? Poenget er at listen over er UENDELIG STOR, og vil aldri bli komplett!

Hvit-listing

Ovenstående problem ble løst for 70 år siden, og løsningen er såre enkel:

Istedenfor å fortelle modellen hva den IKKE har lov til å gjøre, forteller du den hva den HAR LOV til å gjøre, mens du fysisk forhindrer den fra å utføre alle andre handlinger.

I stedet for å fortelle KI hvor den IKKE kan parkere bilen, viser du den tre forskjellige parkeringsplasser og sier "dette er de ENESTE plassene du har lov til å parkere". Deretter gjør du det FYSISK UMULIG for agenten å parkere andre plasser. På samme måte som ett krigsskip ikke engang i teorien kan skyte seg selv, fordi det er fysisk umulig å sikte på brua!

Eksempel på sistnevnte implementert som pseudo-kode: 

if (InLegalParkingPlace(GpsLocation) && UserWantsToPark) {
   Park();
} else {
   throw "Not today!!";
}

Poenget er at parkeringsfunksjonen er UMULIG å kjøre med mindre bilen er på en lovlig parkeringsplass. Og hvis KI forsøker vil den kun bli møtt av; "Ikke tilgang!".

Dette er metoder og prosesser vi har visst om i snart 100 år, og paradokset er at det ville løst samtlige kjente utbrudd vi har hatt så langt i forhold til KI-sikkerhet.

For eksempel det berømte gym-hacket, historien hvor Claude visstnok hacket seg gjennom et gym-API og slettet en time fra noen uker tilbake, hadde ingenting med hacking å gjøre.

Treningsstudioet som ble "hacket" hadde "glemt" å sikre API-et sitt. Det var en åpen dør, rett og slett, og maskinen gikk gjennom døra. Ingen nektet den å forsøke, så den forsøkte. Det ville tatt de fleste som leser dette rundt 5 minutter å fikse den sikkerhetsfeilen.

Faktum er at jeg kunne trent opp en sjimpanse til å "hacke" gymstudioet på noen få minutter om jeg hadde giddet! Dette hadde null med Kunstig Intelligens å gjøre, og alt å gjøre med Organisk Idioti.

Dette hadde null med Kunstig Intelligens å gjøre, og alt å gjøre med Organisk Idioti.

90 prosent av samtlige sikkerhetsfeil er slike åpne dører. Jeg kan garantere deg med 100 prosent sikkerhet at hvis jeg hadde analysert bedriften din, ville jeg enkelt kunne identifisert 100+ slike åpne dører. Situasjonen blir verre av at i dag er de aller fleste KI-agenter levert kjemisk rensket for alle sikkerhetstiltak. 90 prosent av all "KI-sikkerhet" jeg har sett så langt, har vært basert på "prompt engineering", i systeminstruksjoner og liknende, som inneholder logikk som for eksempel; "Du har ikke lov til å gjøre noe som ikke er bra". Alternativt noe regex her og der, kanskje litt statisk analyse under kompilering og så videre. Med andre ord; NULL SIKKERHET!

PS! Ovenstående "prompt security" er selvfølgelig omtrent på nivå med med en lapp på vinduet som sier "Kjære innbruddstyv, ikke stjel bestemor sine perler."

– Med Hyperlambda kan jeg eksponere et API som kun får tilgang til et subset av språket.

Hyperlambda

I Magic Cloud og Hyperlambda har vi dratt disse ideen til det ekstreme.

For det første er API-et sikret "by default". Man må faktisk fysisk gjøre noe for å åpne det. I tillegg kjører hele systemet i et "virtuelt filsystem", og det er umulig for språket som helhet å "bryte ut", med mindre man eksplisitt tillater det. Men den mest ekstreme formen for sikkerhet er "whitelisting" av funksjoner.

Med Hyperlambda kan jeg eksponere et API som kun får tilgang til et subset av språket. Altså; jeg kan definere hvilke programmeringsspråk-kapabiliteter hvert enkelt endepunkt har, og fortsatt tillate agenten å dynamisk generere kode.

Hvis jeg lager en KI agent hvor det er viktig at agenten IKKE sletter filer, så gir jeg den IKKE aksess til "slett_fil"-funksjonen. Den er fortsatt 100 prosent brukbar til alt mulig annet, som å for eksempel lage nye filer, og forandre på eksisterende filer, men den har rett og slett ikke verbet "slett_fil".

Funksjonen "slett_fil" eksisterer rett og slett ikke i programmeringsspråket, rett og slett fordi vi ikke "hvite listed" den. Dette lar deg bygge KI-agenter hvor du har 100 prosent kontroll over programmeringsspråket til agenten, og slik kan eliminere alle funksjoner som i teorien kunne vært destruktive og sikkerhetsrisikoer, mens du kan fortsatt i teorien levere agenter som lager verktøy ved behov. På toppen av dette har vi bakt in rollebasert tilgangskontroll.

Kombinasjonen av disse konstruksjonene gjør det til at vi kan levere AI agenter hvor vi kan si med 100% sikkerhet:

  1. Agenten kan IKKE slette filene dine, rett og slett fordi "slett_fil"-funksjonen IKKE er hvitelistet

  2. Agenten kan IKKE slette databasene dine (ingen funksjon!)

  3. Agenten kan IKKE stjele pengene dine (ingen funksjon!)

  4. Osv, osv, osv...

Og den uendelig lange listen er 100 prosent komplett, fordi kapabilitetene til agenten ikke inkluderer ting som ikke er sikkert!

For å løse disse problemene måtte jeg finne opp et nytt programmeringsspråk. Rett og slett fordi jeg måtte ha homoiconicity, og metaprogrammering, i ett graf-basert språk som kan semantisk traverseres, for å verifisere koden før kjøring. Hvis ovenstående er gresk for deg, så vær klar over følgende fakta:

  1. Det er TEORETISK UMULIG for "min KI-agent" å generere kode som inneholder "hallusinerte funksjoner".

  2. Det er TEORETISK UMULIG for "min KI-agent" å eksekvere kode agenten ikke har tilgang til.

Hack meg, vinn 1.000 kroner

Og ja, jeg er 100 prosent klar over at samtlige som kan noen ting som helst om LLM og KI kommer til å kommentere nå og si at jeg lyver, er gal, eller noe lignende.

Prøv selv, er alt jeg har å si til disse! Hvis du kan få agenten til å gå rundt hvitelisten min, betaler jeg deg 1.000 kroner:

Forsøk å hakke agenten min her!

Ovenstående agent lar deg generere kode dynamisk, og eksekverer koden på min server. Jeg er likevel 100 prosent sikker på at du IKKE kan bruke den til å bryte deg inn i systemet som helhet.

Merk, jeg kan ikke gå god for Linux, .NET, SQLite og så videre – så oppgaven er å finne hull i agenten min, ikke i Linux-oppsettet mitt.

Databasetilgang fra Claude Code eller Codex

Paradokset er at ved å kombinere ovenstående konsepter inn i ett rammeverk, finner man fullstendig nye aksiomer for utvikling.

Metaprogrammering er det viktige ordet her. For eksempel; du kan koble Magic til uansett eksisterende database du har fra før, trykke en knapp, og ett sekund senere ha tilgang til hele databasen din fra Claude Code, Codex, Qoder og så videre.

Eller du kan importere en OpenAPI-spesifikasjon på sekunder. Eller du kan bruke integrert "Chat Ops" og si ting som for eksempel; "Lag en ny database for meg med 5 tabeller, generer et API etterpå for databasen med autorisasjon for backend-brukere, og lag en komplett frontend for meg."

Her om dagen tok jeg tiden på Chat Ops for å se hvor raskt den kunne løse ovenstående problem. 2 minutter og 10 sekunder tok det for systemet å lage en ny database, fylle den med data, generere et API, og lage en frontend på toppen.

Jeg kommer sikkert til å ta en del pes for dette, men jeg er av den formeningen at hele KI-sikkerhetsdebatten for alle praktiske formål er mer psykiatri enn IT. Blant annet fordi vi løste disse problemene sånn cirka i 1955.

Resten av jobben er bare rett og slett god gammeldags ingeniørkunst...

Og, psst - Magic Cloud er 100% åpen kildekode...

Foretrekk oss i Google Discover

Ved å legge oss til som foretrukket kilde i Google vil du blant annet få opp flere av sakene våre i Google Discover. Tusen takk for støtten!

Foretrekk oss 😻
Bygget med Labrador CMS