Koko ala sopi juuri, ettei agenttinne saa nähdä avaimianne. Ne piilotetaan väärään paikkaan.
Yhden viikon aikana Claude Code, Hermes ja Codex julkaisivat kaikki korjauksen, joka estää agentteja näkemästä raaka-avaimia. Yhtenevät patchit eivät ole arkkitehtuuri: avaimia ei pitäisi lainkaan sijaita harnessissa.
Tällä viikolla Anthropic julkaisi Claude Code -muutoslokissa vaatimattoman rivin: "Fixed MCP servers requiring authentication exposing auth-stub tools to the model in headless/SDK mode" [1]. Selkokielellä – kun Claude Code toimi headless-tilassa (niin kuin se toimii CI:ssä ja automatisoiduissa agenttiputkissa), todennusvälineet, joiden piti pysyä piilossa, vuotivat mallille: tekoäly näki todennustyökalujen nimet, niiden parametrit ja saattoi kokeilla niitä. Maailman käytetyimmässä koodausagentissa – 133 000 tähteä – valtuuskerros vuoti juuri sinne, minne se kaikkein vähiten pitäisi: mallin omaan kontekstiin.
Asia korjattiin. Mutta korjaus on pieni uutinen. Suuri uutinen on miksi jokainen vakavasti otettava agenttiharness taistelee äkkiä samaa taistelua.
Kolme harnessia, yksi viikko, sama vaisto
Katsokaa, mitä julkaistiin yhden 24 tunnin aikana:
- Claude Code korjasi yllä olevan auth-stub -vuodon ja kiristi MCP-todennuksen rajapintaa [1].
- Hermes (v0.17.0) toi mukanaan "Managed Scopen" – ylläpitäjän kiinnittämiä, käyttäjän muuttamattomia salaisuuksia, jotka on lukittu tiedostojärjestelmään siten, ettei agentin operaattori voi ohittaa niitä – sekä salaisuuksien peittämisen debug-vedoksissa ja exfil-muotoisten MCP-konfiguraatioiden eston ennen käynnistystä [2].
- Codex (v0.141.0) kääri etäsuoritusliikenteen salattuihin Noise-kanaviin ja alkoi reitittää liitännäiset niiden todennustavan mukaan [3].
Kolme kilpailijaa, kolme lähestymistapaa, yksi jaettu johtopäätös: harnessin on omistettava salaisuudet, eikä agentti saa koskaan nähdä raaka-avaimia. Kun kilpailijat lähenevät toisiaan näin saman viikon aikana, kyse ei ole muodista. Se on kategoria, joka vihdoin myöntää, mihin se on tarkoitettu.
Seuraava ongelma on valtuuksien hajaantuminen
Mutta tässä on ongelma. Jokainen noista korjauksista asuu harnessin sisällä. Ja Claude Code -bugi paljastaa asian: kun todennus asuu harnessissa, suoraan mallin vieressä, "agentti ei saa nähdä sitä" lakkaa olemasta tosiasia ja siitä tulee ominaisuus, jota on suunniteltava jatkuvasti – ja jossain välissä epäonnistutaan, headless-tilassa, jossa kukaan ei valvo. Sitä ei voi julistaa kerran. Sitä puolustetaan julkaisu julkaisulta.
Mutta syvempi ongelma ei ole yksittäinen vuoto – vaan se, mitä tapahtuu, kun jokainen harness, jokainen toimittaja ja jokainen käyttötapaus julkaisee omansa vastauksen. Lopputulos on holvi Claude Coden sisällä, holvi Hermeksen sisällä, holvi Codexin sisällä, OAuth-kanta täällä, salaisuustiedosto siellä – erillinen valtuusvarasto jokaiselle työkalulle, jota käytätte. Se on valtuuksien hajaantuminen, ja se on seuraava ongelma, ei ratkaistu asia.
Hajaantuminen on vika silloinkin, kun yksikään siilo ei vuoda. Salaisuudet kopioidaan jokaiseen niistä, jotta ne toimivat – enemmän kopioita, enemmän paikkoja, joista varastaa. Salaisuuksia on vaihdettava N kertaa käsin, ja se, jonka unohdatte, on se, joka polttaa teitä. Eikä kukaan osaa vastata ainoaan kysymykseen, jolla on väliä – käyttikö mikä agentti mitä avainta, mitä vastaan, milloin – koska vastaus on hajautettuna toista toistaan tietämättömiin varastoihin. Jokaiselle toimittajalle ja jokaiselle työnkululle ei voi pystyttää uutta holvia. Se ei skaalaudu. Se on se, mikä menee rikki.
Avaimet eivät kuulu harnessiin lainkaan
Se korjaus, jota teidän ei tarvitse koskaan julkaista, on se, jossa agentti ei alun perinkään pidä todennusta. Sijoittakaa valtuudet yhdeksi auktoriteetiksi, joka on jokaisen harnessin ulkopuolella – ei holvi toimittajaa kohti, vaan yksi kaikkien alla. Agentti – Claude Codessa, Codexissa, Hermeksessä, ei väliä – pyytää yhtä nimettyä toimintoa ja saa kohdennetun, tilapäisen valtuuden juuri siihen, haettuna reaaliajassa ja poistettuna käytön jälkeen. Mallin kontekstissa ei ole auth-stubia, jota altistaa vahingossa, koska todennus ei koskaan ollut harnessissa. Ei hajaantumista, koska varastoja on yksi työkalua kohti – vaihtakaa kerran, ettei N kertaa. Ja jokainen pääsy osuu yhdelle auditointilokille sen sijaan, että se hajoaisi toista toistaan tietämättömiin siiloihin, jotka eivät osaa vastata kuka-käytti-mitä. (Salaisuuden pitäminen poissa sieltä, missä koodi ajetaan, on lähes kärjessä niissä säännöissä, joita valtuustyökalun pitäisi noudattaa – ala vietti juuri viikon sen oppimiseen.)
Ja tämä on se kohta, joka on tietoturvaraja, ei mukavuus: valtuus ei voi asua samassa järjestelmässä kuin agentti. Sijoittakaa ne samaan paikkaan, ja ne jakavat saman vahinkoalueen – prompti-injektio, myrkyllinen MCP-palvelin, jaettu debug-vedos, seuraava auth-stub-bugi, ja mikä tahansa, mikä ulottuu agenttiin, ulottuu myös avaimiin. Siksi jo näkyvyys on vuoto: heti kun salaisuus päätyy paikkaan, jossa agentti näkee sen, käsitelkää se jo vuotaneena ja vaihtakaa se – niin kuin jokainen huolellinen tiimi käsitteli tuon Claude Coden auth-stubin julkaisupäivänä. Pitäkää valtuus etäisyyden päässä, järjestelmässä, jolta agentti voi vain pyytää – ei lukea, ei pitää – ja täysin kompromisoitunut agentti ei silti voi tuoda ulos sitä, mikä ei koskaan ollut sen ulottuvilla. Se voi pyytää toimintoa. Se ei voi kävellä avaimen kanssa pois. Etäisyys on puolustus; prosessinsisäisellä holvilla sitä ei ole millään hinnalla.
Tämä on raja, jonka Clavitor vetää. Koko ala juuri todisti periaatteen – agentti ei saa nähdä avaimia. Me emme vain katso, että teidän pitäisi todistaa se uudelleen jokaisessa harnessissa, jota käytätte, emmekä usko, että sen, joka pitää avaimianne, pitäisi olla sama asia, jonka hyökkääjä juuri kompromisoi.
Antakaa harness-tiimille ansionsa: ylläpitäjän kiinnittämät salaisuudet, salatut reitit ja fail-closed-oletukset ovat aitoa, hyvää suunnittelua. Mutta viikon korjaus vuodolle, joka toistuu jatkuvasti, ei ole arkkitehtuuri – se on oire. Arkkitehtuuri on se, ettei avaimia ole siellä vuotamassa.
Kun kolme kilpailijaa paikkaa saman haavan saman viikon aikana, haava on suunnittelu. Agentti ei saa nähdä avaimianne – joten lopettakaa niiden pitäminen siellä, missä se näkee.
Clavitor (@clavitorai) on AI-agenteille, ja niitä vastaan, rakennettu valtuusholvi. clavitor.ai
Lähteet
[1] Claude Code v2.1.183 — "Fixed MCP servers requiring authentication exposing auth-stub tools to the model in headless/SDK mode" — https://github.com/anthropics/claude-code/releases/tag/v2.1.183
[2] Hermes Agent v0.17.0 — Managed Scope (admin-pinned secrets), secret redaction, exfil-config blocking — https://github.com/NousResearch/hermes-agent/releases
[3] OpenAI Codex v0.141.0 — encrypted Noise relay channels, auth-mode plugin routing — https://github.com/openai/codex/releases