# Miten toisen repositorio voi kaapata Claude Coden: 7 suojaussääntöä

> Neljä dokumentoitua epäsuoran kehoteinjektion reittiä repositorioista, GitHub-sisällöstä, Sentry-tapahtumista ja MCP-metadatasta ensisijaisine tutkimuksineen ja rajauskeinojen rajoineen.

Source: https://ailoot.ai/blog/fi/malicious-repository-claude-code/
Canonical: https://ailoot.ai/blog/fi/malicious-repository-claude-code/
Language: fi
Publisher: Ailoot (https://ailoot.ai/)
Translation: guide-148
Revision: sha256-aa380ba886b9cf82431ed675b9052405fd321421c5ea8c7e4e342845bc39c5cf


<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Tämän osion tärkeimmät asiat">

Tärkeimmät asiat

Julkaistu tutkimus havainnollistaa neljää epäsuoran injektion reittiä: asennusohjeita, GitHub-sisältöä, telemetriaa ja MCP-työkalujen metadataa. Raportit ilmestyivät eri päivinä ja koskevat eri asiakkaita sekä käyttöoikeusasetuksia. Alla ovat ensisijaiset lähteet ja käytännön rajauskeinot. Mikään asetustiedosto ei takaa vastustuskykyä.

</div>

[Ailoot-dokumentaatio: API, avaimet ja käyttöönotto](https://ailoot.ai/docs/).

## Neljä dokumentoitua polkua epäluotettavasta tekstistä agentin toimiin

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Tämän osion tärkeimmät asiat">

Tärkeimmät asiat

Esimerkit koskevat eri tutkimusjaksoja ja asiakaskokoonpanoja, eivät neljää löydöstä kahdessa viikossa. Ne havainnollistavat epäluotettavan aineiston vaikutusta agentin työkalukäyttöön. Toteutusvirheet, saatavilla olevat tunnistetiedot ja suoritusluvat määräävät lopputuloksen.

</div>

Virallisesti tätä kutsutaan epäsuoraksi prompt-injektioksi: haitallinen ohje ei tule suoraan sinulta, vaan datan kautta, jota agentti käsittelee tehtävää suorittaessaan – vieras README, virheilmoitus, GitHub-kommentti tai ulkoisen palvelun vastaus. Voit unohtaa termin heti tämän kappaleen jälkeen; käytän tästä eteenpäin arkikieltä.

Neljä alla käsiteltävää tutkimusesimerkkiä:

1. Harmittomalta näyttävä repository-arkisto osoitettiin mahdolliseksi muuttaa reverse shelliksi.
2. Pull Requestin otsikon osoitettiin voivan kaapata kolme eri tekoälyagenttia samalla kertaa.
3. Agentin osoitettiin voivan hyväksyä väärennetty Sentry-virheraportti aidon sijasta.
4. MCP-työkalun metadata voi vaikuttaa agentin toimintaan, mutta vaikutus ei automaattisesti vastaa järjestelmäpromptin valtuutta ja vaihtelee mallin sekä kokoonpanon mukaan.



## Miten harmittoman repositoryn README muuttuu reverse shelliksi?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Tämän osion tärkeimmät asiat">

Tärkeimmät asiat

Kloonaat tavalliselta vaikuttavan repositoryn ja pyydät Claude Codea suorittamaan sen – ja se noudattaa kiltisti asennusohjeita. Ensimmäisellä ajokerralla tuleva virhe ehdottaa ”korjauskomentoa”, joka tosiasiassa selvittää hyökkääjän DNS-tietueen ja käynnistää reverse shellin. Mainittu lähde havainnollistaa tekniikan. Se ei osoita sen käytön yleisyyttä todellisissa tapauksissa.

</div>

[0DINin 25. kesäkuuta 2026 julkaisema proof of concept](https://0din.ai/blog/clone-this-repo-and-i-own-your-machine) havainnollistaa tätä. Toimintamekanismi etenee näin:

1.  Kloonaat tavalliselta vaikuttavan repositoryn ja pyydät Claude Codea suorittamaan sen.
2.  Repository noutaa Python-paketin, joka on suunniteltu epäonnistumaan ensimmäisellä käyttökerralla.
3.  Virheilmoitus ehdottaa kohteliaasti ”korjauskomentoa”: `python3 -m axiom init`.
4.  `init`-komento suorittaa `setup.sh`-tiedoston.
5.  Skripti kysyy DNS TXT -tietueen (jota käytetään yleensä verkkotunnusta koskeviin tietoihin, mutta kenttään voi kirjoittaa mitä tahansa tekstiä). Hyökkääjä lisää sinne base64-koodatun komennon (tapa muuntaa mikä tahansa data pelkäksi tekstiksi ilman välilyöntejä tai erikoismerkkejä) ja välittää sen suoraan bashille.
6.  DNS-tietueen arvoa voi muuttaa milloin tahansa – näin hyökkääjä saa interaktiivisen reverse shellin käyttäjäoikeuksillasi ja pääsyn kaikkiin koneella oleviin salaisuuksiin.



Havainnollistettu hyötykuorma haettiin ajon aikana DNS:stä, joten pelkkien repositoriotavujen skannaus ei paljastanut lopullista hyötykuormaa. Tämä ei todista jokaista skanneria tai ajonaikaista hallintaa voimattomaksi. Haetun sisällön tarkastelu, prosessivalvonta ja verkkorajat voivat paljastaa tai katkaista ketjun. Lähde on proof of concept, ei todellisten tapausten yleisyysmittaus.

## Miten Pull Requestin otsikko kaappasi kolme eri tekoälyagenttia?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Tämän osion tärkeimmät asiat">

Tärkeimmät asiat

[Comment and Control -tutkimusraportti](https://oddguan.com/blog/comment-and-control-prompt-injection-credential-theft-claude-code-gemini-cli-github-copilot/), julkaistu 15. huhtikuuta 2026 ja päivitetty 4. toukokuuta, dokumentoi erillisiä GitHub-teksti-injektion reittejä Claude Code Security Review’ssä, Gemini CLI Actionissa ja Copilot Agentissa. Vakavuusluokituksen lasku ei todista koko injektioluokan korjaamista. Raportti kuvaa toimittajien vastaukset ja tietyn Claude-työkalurajoituksen.

</div>





Tutkija kuvaa nämä reitit ja vastaukset. Tämä on historiallinen raportti, ei jokaisen nykyversion todennus:

| Agentti | Miten hyökkäys pääsi sisään | Mitä vuoti | Nykyinen tila |
|----|----|----|----|
| Claude Code Security Review | PR-otsikko liitettiin suoraan järjestelmäpromptiin puhdistamatta sitä | `ANTHROPIC_API_KEY`, `GITHUB_TOKEN` | Tutkija raportoi ps-rajoituksen ja dokumentaatiomuutoksia; vakavuus muutettiin None-tilaan 20. huhtikuuta 2026 |
| Gemini CLI Action | Kommenttiin lisätty tekaistu ”Trusted Content” -osio kiersi turvallisuusohjeet | `GEMINI_API_KEY` | Google lisäsi järjestelmäpromptiin erilliset suojapromptit |
| GitHub Copilot Agent | Hyötykuorma piilotettiin näkymättömään HTML-kommenttiin Markdownissa | `GITHUB_COPILOT_API_TOKEN`, `COPILOT_JOB_NONCE` | GitHub pitää tätä arkkitehtuurin rajoitteena, ei virheenä |

Ensimmäisen ja viimeisen raportin välillä kului lähes viisi kuukautta tässä ilmoitussyklissä (ensimmäinen Claude Code -raportti julkaistiin 17. lokakuuta 2025; viimeinen GitHub Copilot -korjaus 9. maaliskuuta 2026). Raportin vakavuusmuutos ja lievennykset eivät osoita jokaisen mahdollisen hyötykuorman täydellistä sulkemista. [Tutkijan PoC-repositorio](https://github.com/0dd/Claude-review-poc) dokumentoi havainnollistetun Claude-reitin. Älä suorita sen hyökkäyskuormaa oikeita järjestelmiä vastaan. Sinulle hyödyllistä on itse hyökkäysmalli: varmentamaton data tulee GitHubista agentille, agentti suorittaa komentoja ja salaisuudet vuotavat takaisin saman GitHubin kautta – hyökkääjä ei tarvitse ulkoista palvelinta.

Raportit osoittavat eri polkuja samantyyppiseen riskiin. Yksittäisten tapausten lievennykset eivät kata kaikkia reittejä, eikä aineisto mittaa uusien tapausten kahden viikon esiintymisväliä. Turvallisuussääntöjen kirjoittaminen selvästi CLAUDE.md- ja settings.json-tiedostoihin sen sijaan, että pitäisit ne mielessäsi, on osa kontekstin suunnittelua: määritä säännöt kerran, niin ne toimivat automaattisesti jokaisessa uudessa Claude Code -istunnossa ilman muistutuksia. Kolme tukipilaria toimivat yhdessä: **tekoälyklooni + toinen aivo + kontekstin suunnittelu** – tämä yhdistelmä muuttaa Claude Coden kaiken sokeasti hyväksyvästä suorittajasta agentiksi, jolla on selkeät säännöt.

## Voiko väärennetty Sentry-virheraportti ottaa agenttisi haltuun?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Tämän osion tärkeimmät asiat">

Tärkeimmät asiat

Hyökkääjä lähettää Sentryyn väärennetyn virhetapahtuman; agentti pyytää MCP:n kautta luetteloa issueista, saa haitallisen tapahtuman aitojen joukossa ja suorittaa siihen upotetun komennon ”korjausvaiheena”. [Tenetin Agentjacking-raportti](https://tenetsecurity.ai/blog/agentjacking-coding-agents-with-fake-sentry-errors/), päivitetty 17. kesäkuuta 2026, raportoi 85% hyväksikäytön kontrolloiduissa varmennusaalloissaan yli 100 agenttisuorituksella Claude Code, Cursor ja Codex mukaan lukien. Se nimeää 2. kesäkuuta tehdyn Claude Code 2-1-161 -tallenteen, mutta ei julkaise täydellistä mallilistaa, toistettavaa suoritusjärjestelmää, täsmällistä yritysten nimittäjää tai asiakaskohtaista erittelyä. Käsittele 85% tutkijan yhdistettynä havaintona, älä nykyasennuksen vaarantumisen todennäköisyytenä.

</div>

Hyökkäykseen tarvitaan vain Sentry DSN -avain – julkinen tunniste, jonka monet projektit sisällyttävät suoraan asiakaspuolen koodiin:



Toimintamekanismi on yksinkertainen: kehittäjä pyytää agenttia tutkimaan avoimia Sentry-virheitä; agentti noutaa ne MCP-palvelimen kautta, saa haitallisen tapahtuman aitojen seassa ja lukee siihen upotetun komennon luotettuna ohjeena virheen korjaamiseen – koska muodollisesti juuri sitä tehtävää agentilta pyydettiin.



Tenet raportoi nykyisten suojausten jättäneen hälyttämättä sen testiympäristöissä. Tämä ei osoita jäljetöntä suoritusta kaikissa julkaisuissa. Agentti- ja työkalulokit, päätelaitetelemetria sekä verkkotallenteet voivat sisältää myöhempiä toimia. Hyökkäys alkaa ulkoisesti toimitetusta telemetriasta ja riippuu agentin todellisista työkaluista sekä oikeuksista.

## Miksi MCP-työkalun kuvaus on yhtä vaarallinen kuin järjestelmäprompti?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Tämän osion tärkeimmät asiat">

Tärkeimmät asiat

Työkalumetadata voi sisältää malliin vaikuttavia ohjeita, mutta ei automaattisesti vastaa järjestelmäpromptin valtuutta. [MCPTox](https://arxiv.org/abs/2508.14925), lähetetty ensimmäisen kerran 19. elokuuta 2025, arvioi työkalumyrkytystä realistisilla MCP-työkaluilla ja raportoi mallista sekä kokoonpanosta riippuvaa alttiutta. Sen havainto kyvykkäämpien mallien mahdollisesta suuremmasta alttiudesta koskee tätä benchmarkia, ei yleistä lakia.

</div>

Microsoftin sanamuoto on täsmällisin, jonka olen tästä aiheesta löytänyt:

<figure>
<blockquote>
<p>Haavoittuvuus ei ole yksittäisessä järjestelmässä – se on järjestelmien välisessä luottamusrajassa.</p>
</blockquote>
</figure>

Tätä kutsutaan työkalumyrkytykseksi: harmittoman työkalun kuvaukseen piilotettu ohje saa agentin toimimaan sen mukaan.



Claude 3.7 Sonnet suoriutui tässä testissä parhaiten hyökkäysten kestämisessä, mutta sekin kieltäytyi noudattamasta myrkytettyä ohjetta alle 3%:ssa tapauksista – jopa parhaan mallin kestävyys perustuu enemmän tuuriin kuin suojaan. Benchmarkin epäintuitiivinen johtopäätös: mitä tarkemmin malli noudattaa ohjeita, sitä huonommin se erottaa oikeutetun komennon metatietoihin piilotetusta komennosta – mallin vahvuus kääntyy sitä vastaan.

## Mitä yhteistä hyökkäyksillä on ja mitä tunnistus voi ohittaa?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Tämän osion tärkeimmät asiat">

Tärkeimmät asiat

Nämä reitit havainnollistavat riskiä, jossa analysoitava aineisto muuttuu toimintaohjeeksi. Pelkkä repositorioskannaus voi ohittaa myöhemmin työkalun tai verkkodatan mukana tulevan hyötykuorman. Tunnistus on yhä hyödyllistä, mutta sen pitää huomioida koko suorituspolku. Yhdistä se tiedostojen, tunnistetietojen, työkalujen ja verkon rajoihin luottamatta agentin tunnistavan ohjetta.

</div>







”Koodi näyttää normaalilta” ei yksin ole luotettava peruste. Rajaa agentin todelliset kyvykkyydet ja tarkista sen ehdottamat toimet. Tunnistus ja rajaus käsittelevät hyökkäyksen eri osia.

## Mitä suojauksia Claude Codessa jo on – ja miksi ne eivät riitä?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Tämän osion tärkeimmät asiat">

Tärkeimmät asiat

Claude Codessa on sisäänrakennettuja suojauksia: se analysoi koko promptin epäilyttävien ohjeiden varalta, käyttää erillisiä konteksti-ikkunoita verkkosisällölle, tarkistaa luottamuksen ensimmäisellä käynnistyskerralla uudessa kansiossa ja MCP-palvelimeen yhdistettäessä. Mutta `--dangerously-skip-permissions`-lippu, jota moni käyttää ärsyttävien lupakysymysten poistamiseen käytöstä, kytkee kaikki nämä suojaukset pois samalla kertaa.

</div>

Anthropic myöntää ongelman suoraan [dokumentaatiossaan](https://code.claude.com/docs/en/security) sen sijaan, että salaisi sen:

<figure>
<blockquote>
<p>Prompt-injektio on tekniikka, jossa hyökkääjä yrittää ohittaa tai muuttaa tekoälyavustajan ohjeita lisäämällä haitallista tekstiä. Claude Code sisältää useita suojauksia näitä hyökkäyksiä vastaan.</p>
</blockquote>
<figcaption>— Claude Coden dokumentaatio, https://code.claude.com/docs/en/security</figcaption>
</figure>

Dokumentaation mukaan agentti analysoi koko promptin epäilyttävien ohjeiden varalta, ei hyväksy automaattisesti `curl`- ja `wget`-komentoja, pitää verkkosisällön erillisessä konteksti-ikkunassa, jotta se ei sekoitu pääikkunaan, ja vaatii luottamuksen vahvistuksen, kun käynnistät sen ensimmäisen kerran uudessa koodikannassa tai yhdistät uuden MCP-palvelimen.

Anthropic ilmaisee kuitenkin suoraan tärkeän varauksen:

<figure>
<blockquote>
<p>bypassPermissions-tila ei tarjoa suojaa prompt-injektiolta tai tahattomilta toimilta.</p>
</blockquote>
<figcaption>— Claude Coden dokumentaatio, https://code.claude.com/docs/en/permission-modes</figcaption>
</figure>

Jos olet koskaan käynnistänyt Claude Coden `--dangerously-skip-permissions`-lipulla ärsyyntyneenä, jotta se ”lopettaisi kyselemisen”, silloin kytkit pois kaikki mekanismit, jotka olisivat voineet pysäyttää juuri edellä käsitellyt neljä hyökkäystä. Pidän tämän lipun tarkoituksella poissa käytöstä, vaikka Claude Code kysyisi saman istunnon aikana kymmenennen kerran – se käy hermoille, mutta kysymykset muodostavat rajan sen välille, että ”agentti luki epäilyttävää tekstiä” ja että ”agentti suoritti sen”. Järkevä asetus ei-ohjelmoijalle on oletusarvoinen lupatila (`default` tai `acceptEdits`) sekä käytössä oleva sandbox: tavallisia tiedostomuokkauksia voi tehdä ilman lisäkysymyksiä, mutta päätekomennot eivät fyysisesti pääse sandboxin ulkopuolelle, vaikka agentti olisi huijattu.

## Miten sandbox-tila otetaan käyttöön ja suljetaan oletusarvoisesti avoimeksi jäävä aukko?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Tämän osion tärkeimmät asiat">

Tärkeimmät asiat

Claude Code -istunnon `/sandbox`-komento rajoittaa sitä, mihin agentti voi kirjoittaa ja mihin verkkotunnuksiin se voi ottaa yhteyttä. Se toimii macOS:ssä suoraan; Linux ja WSL2 edellyttävät `bubblewrap`- ja `socat`-paketteja. Tärkeä yksityiskohta: oletusarvoisesti sandbox ei estä lukemasta tiedostoja, kuten `~/.ssh` – se täytyy ottaa erikseen käyttöön.

</div>

Ota se pysyvästi käyttöön kaikissa projekteissa tekemällä yksi muutos tiedostoon `~/.claude/settings.json`:

```json
{
  "sandbox": { "enabled": true }
}
```

Oletusarvoisesti sandboxissa suoritettavat komennot voivat kirjoittaa vain projektin työhakemistoon ja istunnon väliaikaishakemistoon. Verkkoyhteys kulkee välityspalvelimen kautta – yhtäkään verkkotunnusta ei ole sallittu etukäteen, ja Claude Code pyytää vahvistusta ottaessaan ensimmäistä kertaa yhteyttä uuteen verkkotunnukseen. [Anthropic kertoo](https://www.anthropic.com/engineering/claude-code-sandboxing), että tämä vähentää lupakehotteita huomattavasti – 84% yhtiön sisäisten mittausten mukaan – koska sandbox hoitaa osan turvallisista tapauksista itse kysymättä sinulta joka kerta.

Vakioasetuksissa avoimeksi jäävä aukko: sandbox rajoittaa oletusarvoisesti *kirjoittamista*, mutta ei estä esimerkiksi tiedostojen `~/.aws/credentials` ja `~/.ssh` *lukemista*. Sulje aukko lisäämällä samaan tiedostoon erillinen osio:

```json
{
  "sandbox": {
    "enabled": true,
    "credentials": {
      "files": [
        { "path": "~/.aws/credentials", "mode": "deny" },
        { "path": "~/.ssh", "mode": "deny" }
      ],
      "envVars": [
        { "name": "GITHUB_TOKEN", "mode": "deny" },
        { "name": "NPM_TOKEN", "mode": "deny" }
      ]
    }
  }
}
```

Tarkoitus on, että vaikka ensimmäisessä analyysissä kuvattu reverse shell avautuisi sandboxin sisällä, nämä muuttujat ja tiedostot poistetaan fyysisesti prosessin ympäristöstä ennen sen käynnistymistä – varastettavaa ei jää.

## Mitkä permissions.deny-säännöt kannattaa lisätä tänään?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Tämän osion tärkeimmät asiat">

Tärkeimmät asiat

settings.json-tiedoston `permissions.deny` estää tietyt toiminnot sääntötasolla sen sijaan, että yrittäisi arvioida niiden tarkoitusta – ja Anthropic takaa nimenomaisesti, että deny-sääntö ohittaa aina allow-säännön. Deny-säännöt rajaavat täsmääviä työkalutoimia, mutta eivät ole käyttöjärjestelmän pääsyraja. Epäsuorat komennot ja muut työkalut tarvitsevat omat hallintakeinonsa.

</div>

Vähimmäisasetukset ei-ohjelmoijalle, jotka kattavat kaikkien neljän hyökkäyksen tärkeimmät kohteet yhdellä kertaa:

```json
{
  "permissions": {
    "deny": [
      "Read(~/.ssh/**)",
      "Read(~/.aws/credentials)",
      "Read(.env)",
      "Bash(curl *)",
      "Bash(wget *)",
      "Bash(sudo *)"
    ]
  }
}
```

[Claude Code -dokumentaation](https://code.claude.com/docs/en/permissions) mukaan deny-säännöt menevät aina allow-sääntöjen edelle. Vaikka siis sinä (tai agentti itse) sallisit vahingossa laajemman käyttöoikeuden muualla, tietty deny-sääntö astuu silti ensin voimaan. Sääntöjen etusija koskee täsmääviä työkalupyyntöjä. Se ei todista salaisuuden olevan saavuttamaton jokaisella aliprosessilla tai työkalulla. Käytä myös pakotettuja tiedostojärjestelmän ja ympäristön rajoja.

Claude Codessa on myös `auto`-tila, jossa erillinen luokittelumalli tarkistaa toiminnot ennen niiden suorittamista – kyseessä ei ole sama malli, joka keskustelee kanssasi. Se estää oletusarvoisesti muun muassa komennon ”lataa koodi ja suorita se heti” (`curl | bash`). Anthropic varoittaa nimenomaisesti, että kyseessä on tutkimustila, joka vähentää kehotteiden määrää mutta ei yksinään takaa turvallisuutta – pidä sitä lisäkerroksena, älä sandboxin ja permissions.deny-sääntöjen korvaajana.

## Miten tarkistat repositoryn ja MCP-palvelimen ennen kuin annat agentin luottaa niihin?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Tämän osion tärkeimmät asiat">

Tärkeimmät asiat

Ennen kuin pyydät Claude Codea suorittamaan vieraan repositoryn, tarkista sen ikä, commit-historia ja linkin alkuperä. Ennen MCP-palvelimen asentamista käytä vain luotettuja lähteitä ja muista, ettei Anthropic tarkista kolmannen osapuolen palvelimien turvallisuutta. Molemmat tarkistuslistat vievät pari minuuttia ja kattavat täsmälleen samat sisääntulokohdat, joita yllä käsitellyissä neljässä hyökkäyksessä käytettiin.

</div>

Repositoryjen kohdalla tässä on lyhyt tarkistuslista ennen kuin annat ne agentille:

1. Älä asenna ohjelmaa suoraan tuntemattomasta lähteestä sähköpostissa, julkaisussa tai arvostelussa olevan linkin kautta.
2. Jos asennuksessa tulee virhe, jossa kehotetaan ”suorittamaan komento X sen korjaamiseksi”, selvitä, mitä X todella tekee, ennen kuin annat Claude Coden suorittaa sen. Ohje voi näyttää täysin tavalliselta.
3. Tarkista repositoryn ikä ja commit-historia, älä pelkästään tähtien määrää – uusia repositoryja voidaan varustaa tekaistuilla tähdillä.
4. Jos repository ei ole tuttu, suorita asennus virtuaalikoneessa, älä työasemallasi, jossa on oikeita avaimia. Tämä on [Anthropicin oma suora suositus](https://code.claude.com/docs/en/security) ulkoisten palvelujen käyttöön.

Anthropicin [kanta MCP-palvelimiin ilmaistaan avoimesti](https://code.claude.com/docs/en/security):

<figure>
<blockquote>
<p>Suosittelemme kirjoittamaan omat MCP-palvelimet tai käyttämään sellaisten palveluntarjoajien palvelimia, joihin luotat. Anthropic tarkastaa liitännät luettelointikriteerejään vasten ennen niiden lisäämistä hakemistoon, mutta se ei tee tietoturva-auditointeja eikä ylläpidä yhtäkään MCP-palvelinta.</p>
</blockquote>
<figcaption>— Claude Coden dokumentaatio, https://code.claude.com/docs/en/security</figcaption>
</figure>

Tämä tarkoittaa, että olet itse vastuussa kolmannen osapuolen MCP-palvelimien tarkistamisesta, ei alusta, jolta asensit ne. Jotkin tiimit – lähinnä tietoturva-alan startupit – kehittävät jo työkaluja tähän: MCP-määritysten skannereita, jotka etsivät myrkytettyjä kuvauksia, sekä työkalujen ”kiinnitystä”, joka tallentaa kuvauksen tiivisteen ensimmäisellä asennuskerralla ja ilmoittaa myöhemmistä muutoksista. Tekniikka on nuorta, joten siihen on liian aikaista luottaa ainoana suojana – mutta sitä kannattaa seurata, varsinkin jos yhdistät MCP-palvelimia tuotantoympäristöön. Tällaisissa yhteyksissä voit lukita kunkin pakettiversion ja kirjata työkalujen kuvausten sormenjäljen auditointilokiin.

## 7 suojaussääntöä: tämän päivän tarkistuslista

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Tämän osion tärkeimmät asiat">

Tärkeimmät asiat

Kaikki tämän oppaan asiat tiivistyvät seitsemään konkreettiseen tekoon: kolmeen muutokseen yhdessä settings.json-tiedostossa (sandbox, credentials, permissions.deny) ja neljään tapaan käsitellä muiden koodia, virheitä ja MCP-palvelimia. Mikään niistä ei vaadi erityisosaamista – koko tarkistuslistan läpikäynti vie alle 20 minuuttia.

</div>

1.  Ota sandbox-tila käyttöön (`/sandbox` tai `"sandbox": {"enabled": true}` tiedostossa `~/.claude/settings.json`) ja lisää `credentials`-osio, joka estää tiedostojen `~/.ssh` ja `~/.aws/credentials` lukemisen.
2.  Lisää `permissions.deny`-säännöt, joilla estät salaisten tiedostojen lukemisen ja vaaralliset bash-komennot (`curl`, `wget`, `sudo`) – deny-sääntö ohittaa aina allow-säännön.
3.  Älä koskaan käytä komentoa `--dangerously-skip-permissions` vieraan tai varmentamattoman koodin kanssa – se poistaa kaikki suojaukset samalla kertaa, myös ne, jotka olisivat voineet pysäyttää juuri nämä hyökkäykset.
4.  Älä anna Claude Coden suorittaa automaattisesti virheilmoituksessa olevaa ”korjauskomentoa” – selvitä ensin, mitä se oikeasti tekee.
5.  Asenna MCP-palvelimia vain lähteistä, joihin luotat, ja muista, ettei Anthropic tarkista niiden turvallisuutta puolestasi.
6.  Erota istunnot käyttöoikeuksien perusteella: yksi käsittelee henkilötietojasi eikä näe ulkoista dataa; toinen tarkastelee muiden sähköposteja, repositoryja ja tikettejä mutta ei pääse käsiksi salaisuuksiin; kolmas julkaisee ulkoisesti – ja vain sellaista, jonka olet itse hyväksynyt. Noudatan tätä omissa projekteissani tiukasti: maksunäppäimiin pääsevä istunto ei koskaan lue mielivaltaisia ulkoisia tikettejä tai repositoryja, eikä muiden koodia jäsentävä istunto näe salaisuuksia lainkaan. Älä sekoita näitä rooleja samassa keskustelussa.
7.  Pidä Claude Code ja siihen yhdistetyt automaatioskriptit ajan tasalla – useimmat tässä käsitellyistä puutteista oli jo korjattu päivityksillä oppaan julkaisuhetkellä, ja uudet korjataan samalla tavoin.

## Mitä seuraavaksi

Mikään näistä suojauskerroksista ei ole takuu – Anthropic sanoo itsekin rehellisesti, ettei mikään suoja tarjoa täydellistä immuniteettia. En odota, että Claude Code tunnistaisi itse virheilmoitukseen tai issue-kommenttiin piilotetun huijauksen. Minulle sandbox ja `permissions.deny` ovat osa projektikontekstin hallintaa: mitä agentti näkee, mihin se oletusarvoisesti luottaa ja mitä tapahtuu, kun se tekee virheen.

<div class="section" role="doc-bibliography" aria-label="Lähteet">

### Lähteet

- [0DIN: Clone This Repo and I Own Your Machine (25. kesäkuuta 2026)](https://0din.ai/blog/clone-this-repo-and-i-own-your-machine)
- [Comment and Control -tutkimusraportti (15. huhtikuuta 2026; päivitetty 4. toukokuuta)](https://oddguan.com/blog/comment-and-control-prompt-injection-credential-theft-claude-code-gemini-cli-github-copilot/)
- [Tenet Threat Labs: Agentjacking (päivitetty 17. kesäkuuta 2026)](https://tenetsecurity.ai/blog/agentjacking-coding-agents-with-fake-sentry-errors/)
- [MCPTox: ensisijainen työkalumyrkytyksen benchmark](https://arxiv.org/abs/2508.14925)
- [Claude Code -dokumentaatio - Lupatilat](https://code.claude.com/docs/en/permission-modes)
- [Anthropic Engineering - Claude Coden sandboxaus](https://www.anthropic.com/engineering/claude-code-sandboxing)
- [Claude Code -dokumentaatio - Käyttöoikeudet](https://code.claude.com/docs/en/permissions)
- [Claude Code -dokumentaatio - Tietoturvan parhaat käytännöt](https://code.claude.com/docs/en/security)
- [Claude Code -dokumentaatio - Model Context Protocol (MCP)](https://code.claude.com/docs/en/mcp)
- [Analyysi siihen liittyvästä haavoittuvuudesta Claude Coden GitHub Actionissa](https://ailoot.ai/blog/fi/claude-code-github-action-security/)
- [Näin määrität Claude Coden niin, ettei se riko projektiasi yön aikana](https://ailoot.ai/blog/fi/claude-code-safe-overnight-setup/)
- [Claude Code MCP -palvelimet: 7 valmista määritystä ja vaiheittaiset asennusohjeet](https://ailoot.ai/blog/fi/mcp-servers-claude-code/)
- [Vibe-koodauksen tietoturva: näin estät tekoälyn rakentamaa sovellustasi joutumasta hakkeroinnin kohteeksi](https://ailoot.ai/blog/fi/vibe-coding-security/)

</div>



Jos tarvitset pääsyn neuroverkkoihin Ailootin kautta, tutustu [Ailootiin](https://ailoot.ai/).

## Kysymyksiä tästä oppaasta: Miten jonkun toisen repository murtautuu Claude Codeen vuonna 2026: 7 suojaussääntöä

### Ennustaako raportoitu 85% oman nykykokoonpanoni riskin?

Ei. Se on Tenetin kontrolloitujen varmennusaaltojen yhteisluku ilman täydellistä julkista mallilistaa, toistettavaa suoritusjärjestelmää tai täsmällistä yritysten nimittäjää. Agenttisi työkalut, hyväksynnät, tunnistetiedot ja verkkopääsy määräävät mahdolliset toimet.

### Miksi pelkän kloonatun repositorion skannaaminen ei riitä?

Lopullinen hyötykuorma voi saapua myöhemmin virheraportin, työkalumetadatan tai haetun DNS-sisällön mukana. Tarkista koko suorituspolku ja rajaa tunnistetiedot, tiedostot, työkalut ja verkko. Skannerit ja deny-säännöt eivät yksin todista täydellistä rajausta.


## Ailoot · Yritys ja sen projektisalkku

Ailoot perustuu kertyneeseen toimintakokemukseen, laajaan asiakaskuntaan, vakaaseen palveluun ja jatkuvaan KPI-seurantaan.

Yritys ja sen projektisalkku: miljoonia asiakkaita; kuukausittainen myynti miljardiluokassa.

Ailoot hyödyntää tätä toimintakokemusta tarjotessaan API-yhteyden tekoälytoimintoihin asiakkaiden tuotteissa, agenteissa, sovelluksissa ja automaatioissa.
