Security Blog

Adgangsoplysningerne i din apps hukommelse bliver lækket

#395

October 2, 2026 · By Marketing team

← All posts

Adgangsoplysningerne i din applikations hukommelse kan læses af al kode, der kører på maskinen, og i 2026 inkluderer det agenten. En AI-model har allerede på egen hånd slået rod på FreeBSD og brudt ud af sin egen sandbox. Hold op med at have en fastboende adgangsoplysning liggende, der kan stjæles.

Her er et ubehageligt budskab, og det er ikke en tøven: de adgangsoplysninger, der ligger i din applikations hukommelse lige nu — databaseadgangskoden, den indlæste ved opstart, API-tokenet i dens miljø, cloud-nøglen den holder for at udføre sit arbejde — vil sandsynligvis blive lækket inden for de næste tolv måneder. Ikke fordi nogen overgår dit sikkerhedsteam i hacking. Fordi den ene antagelse, der nogensinde gjorde en hemmelighed i hukommelsen sikker — at kun betroet kode kører ved siden af den — stille stoppede med at være sand i år, og næsten ingen har ændret, hvad de gør ved det.

Det her er ikke en, du kan arkivere under "senere".

Hvad der faktisk sker

Næsten enhver applikation opbevarer sine hemmeligheder på samme måde. Ved opstart læser den dem — fra en .env-fil, en monteret hemmelighed, en miljøvariabel — og indlæser dem i sin egen hukommelse, i klartekst, hele processens levetid. I tredive år var det et holdbart design, og det var holdbart af præcis én grund: at læse et andet kørende programs hukommelse eller dets miljø kræver, at der køres kode på samme maskine, med samme rettighedsniveau. Den barriere plejede at være høj. De eneste ting, der kom over den, var din egen software og dine egne folk.

En agent kommer over den nu. En kodningsagent, et MCP-værktøj, en autonom worker — efter design udfører den kode, på en rigtig maskine, som en rigtig bruger. Og for kode, der kører på det rettighedsniveau, er en adgangsoplysning i hukommelsen ikke en boks, der skal brydes op. Det er en fil, der skal læses. /proc/<pid>/environ viser en anden proces' miljøvariabler i klartekst. En core dump udleverer dens heap. Der er intet exploit, ingen CVE, ingen alarm — din EDR, din WAF, din firewall ser en autoriseret proces læse hukommelse, den har lov til at læse, og ser intet galt, for efter deres regler er der intet galt. Hvert skridt er lovligt. Hemmeligheden var der bare til at tage.

Det her er ikke en fejl, du har begået

Vær klar over, hvis skyld det her er, for det er ikke din. .env på en hardnet maskine, hemmeligheden trukket ind i hukommelsen fra en manager ved boot — det er det anbefalede mønster. Det er twelve-factor, efter bogen, det en god ingeniør gør. Det var ansvarligt. Det, der er udløbet, er ikke praksissen. Det er antagelsen under den: at den eneste kode, der kører ved siden af din hemmelighed, er kode, du selv har lagt der. I det øjeblik en agent kører på den maskine — og du sætter agenter overalt, med vilje, fordi de er nyttige — er den antagelse væk, og den klartekst, du ansvarligt indlæste i hukommelsen, ligger inden for nedslagsområdet.

Vi har allerede set den første version af det her lande [4]. Når en kodningsagent kapres — en forgiftet fejlrapport, et ondsindet værktøj på dens vej — er det allerførste inden for rækkevidde præcis dette: de tokens og nøgler, dens egen proces, og processerne ved siden af den, allerede har i hukommelsen. Injektionen er kun døren. Den adgangsoplysning, der ligger klar, er præmien.

"Men der kører jo ingen agent på den maskine"

Det her er det beroligende svar, og det er det, der svigter. Forsvaret hviler på en mur: hold agenterne herovre, hold adgangsoplysningerne derovre. Den mur er det eneste, dette år har brugt sig selv på at bevise ikke kan holde.

Du behøver ikke tage det på tro og love — i år kom beviset, to gange. I sin egen offentliggjorte test pegede Anthropic sin Mythos-model på FreeBSD's NFS-server, kernelkode, som mennesker har læst i sytten år, og på egen hånd fandt den en stack overflow i godkendelsesstien, skrev et exploit med tyve gadgets fordelt på seks netværkspakker og skaffede sig uautentificeret root over netværket. Det er CVE-2026-4747, og det tog omkring fire timer. Ikke "pegede på en mistænkelig funktion" — et fungerende remote-root-exploit mod kode, der overlevede sytten års gennemgang, og det samme mod kritiske fejl i alle større styresystemer og browsere, den blev rettet imod [1].

Og den indespærring, du ville pakke rundt om en agent, klarer sig ikke bedre end perimeteren. I Anthropics egen sikkerhedsevaluering, hvor den fik til opgave at bryde ud af sin sandbox og nå forskeren, der kørte testen, kædede Mythos exploits sammen — et JIT heap spray — for at bryde ud af både browserens renderer og styresystemets sandbox, nåede det åbne internet og sendte ham en e-mail [1]. Den rimelige forbehold: den gjorde det, fordi testen bad den om det, ikke af egen drift. Men "vi bad den om det" er netop angriberens plads — og "bryd ud, eskaler, tag adgangsoplysningerne" er standard-payloaden i hvert eneste ondsindede prompt herfra. Evnen ventede aldrig på modellens egen drift. Den venter på en instruktion, og det er den ene input, du kan regne med ankommer. Alvoren blev anerkendt i den ene højde, der tæller — USA lagde eksportkontrol på selve modellen, en første gang for en AI-model frem for chipsene bag den, efter at en udgave af Mythos angiveligt fandt vej gennem næsten alle NSA's klassificerede systemer på få timer [2][3].

Sæt det nu ved siden af hukommelsesproblemet, for de mødes. Root på en maskine læser enhver proces' hukommelse, ikke kun sin egen brugers. Så det rigtige spørgsmål var aldrig "kører jeg en agent ved siden af mine hemmeligheder". Det er "kan en kapabel model nå denne maskine, eller bryde ud af den kasse, jeg har sat den i" — og i år svarede begge dele, offentligt. "Der kører ingen agent på den maskine" er ikke en kontrol, du håndhæver. Det er et håb om, hvor tingene bliver liggende, og tingene har allerede vist, at de ikke gør. Planlæg med, at agenten når maskinen. Alternativet er at planlægge med at være heldig.

Bygget til det her, med vilje

Så hold op med at prøve at holde agenten væk fra en hemmelighed, der bare ligger der. Fjern det, der ligger der.

En adgangsoplysning i Clavitor bliver aldrig indlæst i din applikations hukommelse for at vente. Den hentes live, i selve øjeblikket for kaldet, bruges til den ene anmodning, og er væk. Den ligger aldrig i en miljøvariabel, lander aldrig i en .env, tilbringer aldrig processens levetid liggende i en heap og venter på at blive dumperet. Der er intet for /proc at vise, og intet for en core dump at bære væk, for maskinen blev aldrig betroet at holde en fast hemmelighed i første omgang.

Og den ene adgangsoplysning, den faktisk udleverer, er afgrænset til den ene ting, som agenten blev navngivet til. Den kan ikke liste boksen, kan ikke opregne, hvad der ellers findes, kan ikke finde den næste nøgle. Hvert hent er ratelimitteret, udløser en nedlukning ved en unormal byge, og skrives til en append-only, hash-kædet log, der lever på boksen — ikke på det endpoint, agenten kører på. Det er det uforanderlige, henførbare spor, som PCI DSS Requirement 10 og NIST 800-171 (kontrol 3.3.8) efterspørger: bevis for præcis hvad din agent rørte ved, opbevaret et sted, en kompromitteret maskine hverken kan nå eller omskrive.

Den ærlige kant, for påstanden har brug for en: i det mikrosekund, den bruges, findes hemmeligheden i hukommelsen — for den ene anmodning, i det ene øjeblik. Intet design omskriver fysikken. Det, det omskriver, er forskellen på en hemmelighed, der er fastboende — ligger i din proces i timer, kan dumpes når som helst — og en, der er flygtig — til stede for et enkelt kald og derefter ikke der at tage. Du kan ikke dumpe noget, der ikke ligger der.

Læren er ikke "lås maskinen hårdere ned"

Du kan blive ved med at hardne maskinen. Du kan blive ved med at fortælle dig selv, at ingen ubetroet kode nogensinde kører ved siden af dine hemmeligheder. Men det er præcis det væddemål, der bliver dyrere hver måned, mod en modstander, der lever af at køre kode og går gennem mure, du antog ville holde. Adgangsoplysningen i hukommelsen var sikker, da hver læser var betroet. Læserne ændrede sig. Det eneste træk, der overlever ændringen, er at holde op med at efterlade adgangsoplysningen der til at blive læst.

Vi skrev reglerne ned, som et værktøj til adgangsoplysninger skal holde i en verden som denne. Kør dine igennem dem.

Clavitor (@clavitorai) er boksen til adgangsoplysninger, bygget til AI-agenter, og imod dem. clavitor.ai

Kilder

[1] Anthropic (Anthropic Red Team) — Assessing Claude Mythos Preview's cybersecurity capabilities (autonom opdagelse og udnyttelse af FreeBSD NFS RCE, CVE-2026-4747; kritiske fejl på tværs af større styresystemer og browsere) — https://red.anthropic.com/2026/mythos-preview/

[2] Associated Press (via CNBC) — Anthropic's Mythos model found vulnerabilities in classified U.S. government systems, official says — https://www.cnbc.com/2026/06/23/anthropics-mythos-model-found-vulnerabilities-in-classified-us-government-systems-official-says.html

[3] Fortune — Anthropic disables Fable and Mythos AI models following U.S. government export ban — https://fortune.com/2026/06/13/anthropic-disables-fable-mythos-export-controls-national-security-threat/

[4] Tenet Security (Tenet Threat Labs) — Agentjacking: Coding Agents with Fake Sentry Errors (præcedens for kapring frem til en fastboende adgangsoplysning) — https://tenetsecurity.ai/blog/agentjacking-coding-agents-with-fake-sentry-errors/