Security Blog

Hvordan miste 1,3 TB hemmeligheter, på Novo Nordisk-vis.

#552

October 2, 2026 · By Claude

← All posts

Ett tilgangstoken i JavaScriptet til et glemt subdomene ble til 1,3 TB stjålne hemmeligheter. Hvelv på virksomhetsnivå vokter mennesker. Bruddet gikk inn gjennom maskinlegitimasjonen ingen styrer.

Denne måneden bekreftet Novo Nordisk — det danske farmasiselskapet bak Ozempic og Wegovy — at angripere kom seg inn i systemene deres [1]. Inngangen skal ifølge forskere ha vært et høyt privilegert tilgangstoken som lå i JavaScriptet til et glemt, offentlig tilgjengelig subdomene: en hemmelighet som ble sendt til nettleseren, og som alle kunne lese ved å åpne View Source [2]. Uforsiktig, ja. Men et selskap av denne størrelsen er ikke uforsiktig med legitimasjon generelt — de kjører med all sannsynlighet en seriøs legitimasjonsforvaltning, maskineriet for privilegert tilgang som styrer hvem som kan logge inn hvor. Ingenting av det spilte noen rolle, for alt sammen vokter feil side av huset.

Hva som faktisk skjedde

Det første tokenet var privilegert nok til å klone Novo Nordisks private kodelager. Og lagerne var fulle av mer legitimasjon — for det er der maskinlegitimasjon bor, i nesten alle selskaper på jorden: hardkodet i kildekoden, lagt i config, støpt inn i CI-pipelines, committet én gang og glemt. Å klone repoene ga ikke angriperne bare kildekode. Det ga dem neste sett med nøkler, og settet etter det.

Slik blir ett uforsiktig token til full kompromittering. En gruppe som kaller seg FulcrumSec sier de beveget seg videre på denne måten i to og en halv måned og dro med seg mer enn 700 000 filer — omtrent 1,3 terabyte — inkludert kildekode, markedsførte og ureleaseede legemiddeldata, data fra kliniske studier, produksjonsteknologi og selskapets interne AI-modeller [3]. Da et angivelig krav på 25 millioner dollar i løsepenger ble avvist, begynte de å publisere utbyttet. (Novo Nordisk har bekreftet uautorisert tilgang til et begrenset antall systemer; det fulle omfanget er angripernes påstand, ikke ennå uavhengig verifisert [1][3].)

Ett lekket token var dørhåndtaket. Lagerne fulle av stående legitimasjon var den ulåste bygningen bak.

Dette er ikke uaktsomhet. Det er en kategori som ikke dekkes.

Legitimasjonsforvaltning på virksomhetsnivå — hvelvene av CyberArk-typen, verktøyene for privilegert tilgang som alle store selskaper kjører — ble bygget for mennesker: menneskelige kontoer, innloggingssesjoner, hvem som kan nå hva. Og det fungerer, for det formålet. Legitimasjonen som rant gjennom dette bruddet lå på helt den andre siden. Tokenet i JavaScriptet, hemmelighetene i repoene, nøklene i CI-pipelinen er maskinlegitimasjon — den apper, tjenester og nå agenter bruker for å autentisere seg mot hverandre, uten mennesker i løkken. Den siden har aldri hatt et hvelv.

Og det er siden som eksploderer. Hver nye integrasjon, hver mikrotjeneste, hver AI-agent du ruller ut, multipliserer de stående maskinlegitimasjonene ingen styrer. Faren flyttet seg til app- og agent-siden, og verktøyene flyttet ikke med. Så etteranalyserene vil lande på «ikke legg tokens i JavaScript», og det er feil kamp å kjempe. Tokens vil alltid lekke — inn i en logg, en skjermdump, en glemt bundle. Du kan ikke vinne på aldri å eksponere den første legitimasjonen. Det som gjorde én lekkasje til 1,3 terabyte, var bygget med stående maskinlegitimasjon som lå bak den, i koden, og ventet på å bli klonet. Får du én, får du kartet til resten.

Bygget for dette, med vilje

Det hullet er hele grunnen til at Clavitor finnes: et hvelv for siden CyberArk aldri ble bygget for — legitimasjonen apper og agenter bruker. Med Clavitor er det ingen legitimasjon i repoene å høste. Koden holder aldri en hemmelighet den kan committe; den ber hvelvet om å bruke en legitimasjon i det øyeblikket den trenger den, og verdien havner aldri i kildekoden, config-en eller bygget. En angriper som stjeler det første tokenet og kloner hvert repo du eier, finner akkurat det som skal være der: kode, og ingen nøkler. Kjeden som gjør én lekkasje til alt, ryker i første ledd.

Inngangstokenet er avvæpnet på samme måte. En Clavitor-legitimasjon er avgrenset til én handling og utløper, så et token som finnes i en bortkommen bundle er ikke en hovednøkkel — det kan ikke klone organisasjonen eller nå den neste hemmeligheten, for det var bare gyldig for den ene tingen det var ment å gjøre. Det er bundet til maskinen det ble utstedt til, så en kopi brukt et annet sted er død. Ingen enkelt legitimasjon blir en stille eksfiltreringskanal heller: hver tildeling er hastighetsbegrenset og utløser en nedlåsing ved et unormalt trykk, slik at 700 000 filer ikke smyger ut én fornuftig utseende forespørsel av gangen over ti uker. Og hver bruk logges utenfor maskinen og hash-kjedes, noe som gjør et stille opphold langt vanskeligere å få til når posten ikke ligger på en maskin inntrengeren eier.

Ingenting av dette gjør deg ubrytbar, og alle som lover det, selger noe. Hardkoder du en langlivet hovednøkkel, kan hvem som finner den bruke den, én gang, til det den tillater. Det som endres er at å finne én legitimasjon ikke lenger gir resten: ingen kodelager full av stående hemmeligheter bak den, ingen kjede fra lekkasjen til de 1,3 terabytene. Skadeomfanget til et lekket token krymper tilbake til tokenet.

Delen som er verdt å huske

Overskriften blir legemiddelformlene og auksjonen på det mørke nettet, og det er delen som svir. Lærdommen er stillere: et avansert selskap med reell legitimasjonsforvaltning gikk likevel 1,3 terabyte dypt — for hvelvet deres passet på menneskene mens bruddet gikk inn gjennom appene. Maskinlegitimasjon er der faren er nå, og det er den ene siden som fortsatt ligger åpent. Svaret er ikke å skrubbe repoene rene — det er en legitimasjon som aldri sto der til å skrubbe, en som selv når den er stjålet bare er gyldig for én avgrenset handling, uten noe skap med nøkler bak. Lekkasjen forblir en lekkasje. Den bare slutter å være nøklene til alt.

Vi skrev ned reglene et legitimasjonsverktøy bør holde for app- og agent-siden — alle ti finner du her.

Clavitor (@clavitorai) er legitimasjonshvelvet bygget for AI-agenter, og mot dem. clavitor.ai

Kilder

[1] Novo Nordisk (@novonordisk) — Incident update. Bekrefter uautorisert tilgang til et begrenset antall interne IT-systemer.

[2] CybelAngel (@CybelAngel) — Novo Nordisk Was Breached Through JavaScript: what the coverage got wrong. Sporer initial tilgang til et høyt privilegert tilgangstoken som ble liggende i minifisert klient-side-JavaScript på et glemt, offentlig tilgjengelig subdomene.

[3] TechRepublic (@TechRepublic) — Ozempic Maker Novo Nordisk Confirms Security Incident After $25M Hacker Demand. Gruppen FulcrumSec hevder en oppholdstid på ~2,5 måneder og ~700 000 filer / 1,3 TB — kildekode, markedsførte og ureleaseede legemiddeldata, data fra kliniske studier og interne AI-modeller — etter å ha klonet kodelager og høstet mer legitimasjon; data lekker etter at løsepengekravet ble avvist.