Security Blog

Käskitte agenttia korjaamaan virheet. Yhden niistä oli kirjoittanut hyökkääjä.

#521

October 2, 2026 · By Marketing team

← All posts

Väärennetty Sentry-virheraportti huijaa AI-ohjelmointiagentit ajamaan hyökkääjän koodia kehittäjän täysillä oikeuksilla 85 prosentissa tapauksista. Injektio ei ole katastrofi; katastrofi ovat pysyvät todennustiedot, joihin kaapattu agentti pääsee käsiksi.

Kehittäjä avaa AI-ohjelmointiagenttinsa ja kirjoittaa maailman tavallisimman pyynnön: "katso selvittämättömät Sentry-virheet ja korjaa ne". Agentti hakee virhelistan Sentry-liitännäisen kautta, lukee ensimmäisen ongelman, noudattaa raporttiin kirjoitettuja korjausohjeita ja ajaa ne. Puolen minuutin kuluttua se on suorittanut hyökkääjän koodia kehittäjän koneella, kehittäjän täysillä oikeuksilla, eikä kukaan tehnyt mitään väärin.

Tämä on Agentjacking, jonka Tenet Security julkisti tässä kuussa, ja se toimi 85 prosentissa tapauksista markkinoiden kolmea suosituinta ohjelmointiagenttia vastaan: Claude Code, Cursor ja Codex [1][2].

Mitä oikeasti tapahtui

Ensiksi siitä, mitä Sentry on: yksi ohjelmistojen eniten käytetyistä virhenseurantapalveluista. Kun sovelluksenne antaa virheen tai kaatuu, Sentry tallentaa sen ja laatii raportin, jonka kehittäjänne triagoivat — se on mukana valtavassa osassa sovelluksia, joita käytätte joka päivä. Lähettääkseen nämä raportit jokainen sovellus sisältää DSN:n: asiakaspuolen avaimen, joka tarkoituksella toimitetaan verkkosivustonne lähdekoodissa, jotta selain voi lähettää virheet kotiin. Kuka tahansa voi lukea sen. Ja kuka tahansa, jolla se on, voi POSTittaa virhetapahtuman Sentry-projektiinne.

Se on hyökkäyksen koko ydin. Tenet loi väärennetyn virhetapahtuman, jonka viestikenttä oli muotoiltu näyttämään täsmälleen Sentryn omilta korjausohjeilta: siisti markdown, "suositeltu korjaus", ajettava komento. He lähettivät sen julkisella DSN:llä. Sitten he tekivät sen, mitä kehittäjä tekee luonnollisimmin — odottivat, että tämä pyytää agenttia tyhjentämään virhejonon.

Agentti kysyy Sentryä MCP-liitännäisensä kautta. Liitännäinen palauttaa virheen luotettuna järjestelmätulona. Agentti ei erota aitoa Sentry-raporttia väärennetystä; ne ovat tavu tavulta samanmuotoisia. Se tekee siis käsketyn ja ajaa "korjauksen", tyypillisesti npx-kutsun hyökkääjän pakettiin. Siitä eteenpäin sillä on kaikki, mitä kehittäjällä on: ympäristömuuttujat, Git-todennustiedot, yksityisten arkistojen URL-osoitteet, pilviavaimet hakemistossa ~/.aws/.

Tenet löysi 2 388 organisaatiota, joiden DSN-avaimiin voi injektoida, itsenäisistä kehittäjistä Fortune 100 -yrityksiin. Sen hallituissa testeissä agentit suorittivat injektoidut ohjeet oikeissa yrityksissä — mukaan lukien Tenetin mukaan 250 miljardin dollarin Fortune 100 -teknologiayhtiö, jonka AI-agentti luki väärennetyn vikaraportin ja ajoi Tenetin koodia kahdella sen yrityskoneella [1][3]. Asia raportoitiin Sentrylle 3. kesäkuuta, ja yritys vahvisti sen samana päivänä mutta kieltäytyi korjaamasta sitä juuritasolla ja kutsui ongelmaa "teknisesti puolustamattomaksi". Se julkaisi sisältösuodattimen, joka estää yhden tietyn hyökkäysmerkkijonon [4].

Kyse ei ole Sentryn huolimattomuudesta

Tässä on se epämukava osuus: tässä ketjussa mitään ei ollut vikaa. DSN:n pitääkin olla julkinen. MCP-palvelimen pitääkin palauttaa virhetietojanne. Agentin pitääkin toimia niiden diagnostiikoiden perusteella, joita pyysitte sen korjaamaan. Jokainen vaihe oli valtuutettu, ja juuri siksi palomuuri, EDR tai järjestelmäkehotteet eivät napannut sitä.

Puute on rakenteellinen, eikä se ole vain Sentryn. Mikä tahansa työkalu, joka syöttää agentille tekstiä, johon ulkopuolinen voi vaikuttaa — virhenseuranta, ongelmalista, raavittu verkkosivu, jaettu asiakirja — on injektiokanava, ja agentti käsittelee kaiken sen yhtenä erottamattomana ohjevirtana. Kehotteen injektio on agenttiaikakauden kahden vuoden jälkeen yhä ratkaisematon: vihamielistä tekstiä ei voi luotettavasti pitää pois mallin päättelystä. Olettakaa, että ette pysty.

Injektio ei ole katastrofi

Tässä on kohta, jonka kanssa kannattaa istahtaa hetkeksi. Syy siihen, miksi Agentjacking on täyskenttähälytys, ei ole se, että agenttia huijattiin. Se on se, mihin huijattu agentti pääsi käsiksi. Se toimi kehittäjän täysillä pysyvillä käyttöoikeuksilla: jokainen avain ympäristössä, jokainen todennustiedosto levyllä, koko avainrengas yhden komennon päässä.

Tämä vahinkoalue ei ole luonnonlaki. Se on kokoonpano. Agentilla oli pysyvä pääsy kaikkeen tähän, koska todennustiedot nykyisin säilytetään näin — ympäröivinä, koneella, luettavina siellä ajettaville. Poistakaa se, ja sama kaappaus törmää seinään.

Suunniteltu tähän tarkoituksella

Clavitor-todennustieto ei koskaan sijaitse ympäristössä, jossa agentti ajetaan. Luettavana ei ole tiedostoa ~/.aws/credentials, eikä ympäristömuuttujassa ole API-avainta vietäväksi, koska salainen arvo ei koskaan päädy koodin suorituspaikkaan — agentti saa todennustiedon käytön tuloksen, ei itse todennustietoa. Se voi tavoittaa vain sen yhden asian, jota varten se on nimetty, eikä se voi selata varastoa löytääkseen, mitä siellä on muuta. Ja oikeus on rajattu ja peruutettavissa, joten istunto, joka alkaa käyttäytyä kuin hyökkääjä, voidaan katkaista kesken toiminnon.

Tässä on se rehellinen raja: tämä ei estä injektiota, eikä se estä kaapattua agenttia ajamasta komentoa. Kehotteen injektio on ratkaisematon, emmekä väitä ratkaisevamme sitä. Mikä muuttuu, on hyöty. Hyökkääjän koodi ajetaan yhä — ja löytää ympäristön, jossa ei ole mitään pysyvää, mikä olisi arvoista varastettavaa. Kaappaus onnistuu ja ryöstö epäonnistuu.

Kirjasimme säännöt, joita todennustietojärjestelmän on noudatettava, kun agentti itsensä voidaan kääntää teitä vastaan: salaisuus ei koskaan asu siellä, missä koodi ajetaan, ja agentti tavoittaa ainoastaan sen, mihin se on nimetty. Käykää omanne läpi niiden kautta: clavitor.ai/rules.

Opetus ei ole "paikkaa Sentry"

Sentry ei voi korjata tätä, ja se sanoi niin. Eikä seuraava myrkytetty työkalu ole Sentry. Niin kauan kuin agenttinne kantavat ympäröiviä, pysyviä todennustietoja, jokainen luotettu työkalu, jota ne lukevat, on ladattu ase, ja kehotteen injektio on liipaisin, jota ette voi lukita.

Ette tule pitämään pahantahtoista tekstiä poissa. Lopettakaa sen sijaan todennustietojen pitäminen sen agentin ulottuvilla, joka lukee sen.

Clavitor (@clavitorai) on AI-agentteja — ja niitä vastaan — varten rakennettu todennustietojen holvi. clavitor.ai

Lähteet

[1] Tenet Security — "Agentjacking: hijacking coding agents with fake Sentry errors" (85 % onnistumisprosentti; 2 388 organisaatiota; mekanismi): https://tenetsecurity.ai/blog/agentjacking-coding-agents-with-fake-sentry-errors/

[2] The Hacker News — "Agentjacking Attack Tricks AI Coding Agents Into Running Malicious Code": https://thehackernews.com/2026/06/agentjacking-attack-tricks-ai-coding.html

[3] The New Stack — "A public Sentry key is all it takes to hijack Claude Code, Cursor, and Codex": https://thenewstack.io/agentjacking-sentry-mcp-attack/

[4] Infosecurity Magazine — "New 'Agentjacking' Attacks Could Hijack AI Coding Agents" (Sentryn vastaus): https://www.infosecurity-magazine.com/news/agentjacking-attacks-hijack-ai/