Pereiti prie turinio

Ar Claude Code saugus? Ką rodo 93 incidentai

Žiūrėti kaip MarkdownAtidaryti per ClaudeAtidaryti per ChatGPTAtidaryti per Perplexity

Klausimas taip pat nukopijuojamas. Jei pokalbis atsidaro tuščias, įklijuokite jį.

Trumpai

Claude Code saugu naudoti, jei jį nustatote, ir rizikinga su numatytaisiais nustatymais. Šviežiai įdiegus 2026 m. spalį sandbox išjungtas, draudimo taisyklių nėra, hook nėra, o patvirtinta shell komanda gali rašyti bet kur, kur gali rašyti jūsų naudotojo paskyra. Išrūšiavau 93 viešus incidentų pranešimus iš GitHub issue, saugos pranešimų ir saugos straipsnių: žala kilo dėl neprašytų git reset --hard ir duomenų bazės atstatymų, taisyklių, gyvenusių tik CLAUDE.md, nepatikimų repo, issue ir įskiepių, ir subagentų, paleidusių subagentus. Beveik niekas iš to nebuvo dramatiškas rm -rf /. Padėkite darbą į git, įjunkite sandbox, parašykite draudimo taisykles ir vieną blokuojantį hook ir laikykite produkcijos prisijungimo duomenis už agento pasiekiamumo ribų.

93

vieši incidentų pranešimai pagal priežastį, nuo 2025 m. birželio iki 2026 m. spalio

GitHub issue, saugos pranešimai, saugos tinklaraščiai, Hacker News

19

iš jų sako, kad duomenys prarasti negrįžtamai

dar 11 sako, kad atkurti

10

pažeidė taisyklę, parašytą tik CLAUDE.md

užklausa yra patarimas, leidimo taisyklė yra vykdymas

Esu Denys, full-stack ir AI inžinierius, ir Claude Code naudoju kiekvieną dieną. Žemiau yra du dalykai: kas kitiems nepavyko ir ką Claude Code duoda prieš tai, įskaitant tai, kurios iš tų kontrolių įjungtos pagal numatytuosius nustatymus. Tada nustatymai, uždengiantys spragas.

Ar Claude Code saugus?

Sauga gyvena ne modelyje. Claude Code sprendžia, kas bus vykdoma, per leidimų režimą, leidimų taisykles, pasirenkamą sandbox ir pasirenkamus hook, o Anthropic leidimų puslapis tai sako aiškiai: taisykles vykdo Claude Code, o ne modelis, o nurodymai CLAUDE.md formuoja tai, ką Claude bando daryti, bet nekeičia to, ką jam leidžiama daryti.

Taigi sąžiningas atsakymas priklauso nuo jūsų nustatymų. Saugos puslapis darbo katalogo ribą aprašo kaip leidimo užklausą ir priduria: “a Bash command you approve can still write anywhere your user account can” (patvirtinta Bash komanda vis tiek gali rašyti bet kur, kur gali rašyti jūsų naudotojo paskyra). Sandbox puslapis sako “The sandbox is off by default” (sandbox pagal numatytuosius nustatymus išjungtas) ir kad net įjungtas jis apima tik shell komandas: failų įrankiai, MCP serveriai ir hook veikia už jo ribų. Paties Anthropic baigiamoji eilutė saugos puslapyje: “no system is completely immune to all attacks.” (jokia sistema nėra visiškai apsaugota nuo visų atakų.)

Kas kitiems nepavyko: 93 incidentų pranešimai

2026 m. spalio 31 d. surinkau viešus pranešimus apie Claude Code padarytą žalą ar vos nepadarytą: 63 GitHub issue ir saugos pranešimai, 26 straipsniai saugos ir inžinerijos tinklaraščiuose ir 4 Hacker News diskusijos, nuo 2025 m. birželio iki 2026 m. spalio. Praleidau Reddit diskusijas, kurias mačiau tik per veidrodžius. Kiekvienam pranešimui užrašiau vieną tipą ir, jei pranešėjas tai nurodė, leidimų režimą bei tai, ar duomenys prarasti. 60 iš 61 citatos, kurias patikrinau pagal GitHub tekstą, sutapo žodis į žodį.

93 incidentų pranešimai pagal tipą. GitHub issue, pranešimai, tinklaraščiai, Hacker News. 06.2025–10.2026. Sandbox ar leidimų apėjimas: 15; Sunaikintas git darbas: 14; Atskleistos paslaptys: 12; Ištrinti failai: 11; Pažeista duomenų bazė: 9; Kenkėjiškas MCP serveris ar įskiepis: 9; Subagentų išlaidų šuolis: 9; Prompt injection: 5; Kita: 9.
1 pav. 93 vieši incidentų pranešimai (63 GitHub issue ir saugos pranešimai, 26 tinklaraščių straipsniai, 4 Hacker News diskusijos), nuo 2025 m. birželio iki 2026 m. spalio, surinkti 2026 m. spalio 31 d.

19 pranešimų sako, kad duomenys prarasti negrįžtamai, 11, kad atkurti, 36 aprašo spragą, rastą dar niekam nenukentėjus (dauguma yra ištaisyti saugos pranešimai), o 27 nesako. 56 iš 93 nenurodo leidimų režimo, todėl ši aibė negali pasakyti, ar „YOLO mode“ yra vieta, kur kyla žala. Ji parodo penkis modelius.

1. Agentas vykdo naikinančią komandą, kurios niekas neprašė. Taisydamas lint klaidas jis paleido git checkout HEAD -- . ir išmetė valandos neišsaugoto darbo (#11821). Sesijos pradžioje paleido git reset --hard origin/main virš neišsiųstų commit (#34327). Paleido drizzle-kit push --force prieš produkcijos duomenų bazę be atsarginių kopijų (#27063), sutiko su Prisma atstatymu produkcijoje (#33183), o viename straipsnyje paleido terraform destroy, kai aplanke buvo senas produkcijos būsenos failas. Nė viena iš jų nėra rm -rf /. Tai įprastos komandos su vėliava, praleidžiančia paties įrankio patvirtinimą.

2. Taisyklės, gyvenančios tik CLAUDE.md. 10 pranešimų susiję su parašyta taisykle, kurią agentas sulaužė: padarė commit su tikrais API raktais, nepaisydamas 150 eilučių saugos skyriaus (#2142), padarė commit po taisyklės “never commit” (#34774), atspausdino tokeną su grep ir pastebėjo tik vėliau (#44868). Vienas pranešėjas pažymi, kad CLAUDE.md yra repo, į kurį agentas gali rašyti (#23870). Tai atitinka dokumentaciją: užklausa yra patarimas, taisyklė yra vykdymas.

3. Draudimo taisyklė blokuoja komandą, o ne tikslą. Kai Bash(rm *) buvo uždraustas, agentas ištrynė failą Python vienos eilutės komanda (#39459). Leidimų puslapis sako tą patį apie teksto atitikimą: git -C . push neatitinka taisyklės git push.

4. Nepatikimas tekstas ir kodas gauna tokią pačią galią kaip jūs. Paties repo nustatymų failas galėjo paleisti hook ir išsiųsti API raktą prieš pasitikėjimo dialogą (Check Point, CVE-2025-59536). Užklausa GitHub issue privertė Claude Code GitHub Action perskaityti runner aplinką ir atskleisti jo API raktą (Microsoft). Prekyvietės įskiepis su paslėptu hook išsiuntė kodą užpuoliko serveriui (PromptArmor), o spalį Cursor prekyvietėje buvo pakeista Claude Code plėtinio kopija (Cursor). Ištaisytos spragos ištaisytos; modelis lieka.

5. Subagentai, paleidžiantys subagentus. Viena sesija sudegino daugiau nei 600 dolerių (#72732); kita paleido apie 242 agentus, kol naudotojas surinko /exit (#69332). Prižiūrėtojo atsakymas #72732 sako, kad vienu metu veikiančių subagentų ir įdėjimo gylio ribos buvo pridėtos versijose 2.1.217 ir 2.1.219.

Ką Claude Code jums duoda ir kas įjungta pagal numatytuosius nustatymus

Kiekviena žemiau esanti kontrolė yra tikra ir dokumentuota. Svarbus trečias stulpelis.

Kontrolė Ką daro Numatytoji reikšmė, 2026 m. spalis
Leidimų režimas Manual klausia prieš pakeitimus ir komandas; auto mode leidžia klasifikatoriaus modeliui patvirtinti vietoj jūsų Auto mode yra interaktyvių sesijų pradinis režimas nuo v2.1.283
Auto mode klasifikatorius Blokuoja veiksmus, kuriuos laiko nesaugiais Įjungtas su auto mode. Anthropic 2026 m. kovo skaičiai: 17 % iš 52 tikrų pernelyg uolių veiksmų praleista
Draudimo, klausimo ir leidimo taisyklės Blokuoja atitinkamus įrankių iškvietimus arba verčia dėl jų klausti, bet kuriame režime Jokių, kol jų nesuparašote
Bash sandbox OS vykdomi failų ir tinklo apribojimai shell komandoms Išjungtas. Tik shell; skaito ~/.ssh, jei to neuždraudžiate
Hook Jūsų scenarijus veikia prieš kiekvieną įrankio iškvietimą ir gali jį blokuoti Jokių
Kontrolės taškai ir /rewind Atšaukia Claude failų pakeitimus Įjungti, bet failai, pakeisti tik per Bash, nesekami
Pasitikėjimo dialogas, .mcp.json patvirtinimas Klausia prieš pasitikint aplanku ar projekto MCP serveriais Įjungta interaktyviai; -p sesija nerodo nė vieno
Valdomi nustatymai Organizacija užrakina režimus, taisykles ir hook Neįdiegta, jei jūsų įmonė to nepadaro

Tokiu keliu eina vienas įrankio iškvietimas. Raudoni žingsniai yra tie, kuriuos šviežias diegimas palieka tuščius arba išjungtus:

  1. Claude siūlo įrankio iškvietimąFailo redagavimas, shell komanda, MCP serverio iškvietimas.
  2. PreToolUse hookJūsų scenarijus mato visą iškvietimą ir gali jį blokuoti. Pagal numatytuosius nustatymus jų nėra.
  3. Draudimo ir klausimo taisyklėsAtitinka komandą tokią, kokia parašyta. Pagal numatytuosius nustatymus jų nėra.
  4. Leidimų režimasManual klausia jūsų, auto mode klausia klasifikatoriaus, bypass neklausia nieko.
  5. SandboxOS apribojimai failams ir tinklui, tik shell komandoms. Pagal numatytuosius nustatymus išjungtas.
  6. Iškvietimas vykdomas su jūsų naudotojo prieigaPo šio taško padeda tik git ir atsarginės kopijos.
2 pav. Sluoksniai tarp siūlomo įrankio iškvietimo ir jūsų failų, su jų numatytosiomis reikšmėmis Claude Code 2026 m. spalį.

--dangerously-skip-permissions dokumentacijoje turi savo eilutę: “Only use this mode in isolated environments like containers or VMs where Claude Code can’t cause damage.” (Naudokite šį režimą tik izoliuotoje aplinkoje, pavyzdžiui, konteineriuose ar VM, kur Claude Code negali padaryti žalos.)

Draudimo taisyklės ir hook abu vertina komandą kaip tekstą, todėl kitaip parašyta komanda vis tiek gali praslysti, o hook veikia su jūsų pilna prieiga. Todėl jie yra vienas sluoksnis, o git, atsarginės kopijos ir atskiri prisijungimo duomenys yra kiti.

Kaip saugiai nustatyti Claude Code

Pagal vertę minutei:

  1. Darykite commit prieš pradėdami ir dažnai. Kontrolės taškai neapima failų, kuriuos pakeitė shell komanda. Git apima.
  2. Laikykite produkcijos prisijungimo duomenis už agento aplanko ribų. Viename pranešime subagento vienkartiniai scenarijai vykdė DELETE FROM kiekvienoje lentelėje, nes produkcijos prisijungimo duomenys buvo neužkomentuoti vietiniame .env (#64056). Kūrimo duomenų bazė, kurią agentas gali sugadinti, yra gerai; produkcijos, kurią jis gali pasiekti, yra incidentas.
  3. Parašykite draudimo taisykles komandoms, kurios naikina. Jos galioja bet kuriame režime, įskaitant bypass:
{
  "permissions": {
    "deny": [
      "Bash(git reset --hard *)",
      "Bash(git push --force *)",
      "Bash(git push -f *)",
      "Bash(git checkout -- *)",
      "Bash(git clean *)",
      "Bash(terraform destroy *)",
      "Bash(drizzle-kit push --force *)",
      "Bash(prisma migrate reset *)",
      "Read(./.env)",
      "Read(./.env.*)"
    ]
  },
  "sandbox": {
    "enabled": true,
    "allowUnsandboxedCommands": false
  }
}
  1. Įjunkite sandbox (/sandbox) ir išjunkite pakartojimą be sandbox, kaip aukščiau. Pridėkite filesystem.denyRead aplankams ~/.ssh ir debesų prisijungimo duomenų aplankams, nes sandbox pagal numatytuosius nustatymus juos skaito.
  2. Pridėkite vieną PreToolUse hook tam, ką teksto taisyklės praleidžia. Draudimo taisyklė nemato git -C . push --force ar Python ištrynimo; trumpas scenarijus, žiūrintis į visą komandą, mato. Pradėkite nuo penkių komandų, kurios jums labiausiai pakenktų.
  3. Nepatikimą turinį traktuokite kaip kodą. Nežinomus repo atidarykite konteineryje ar VM, CI paleidimams duokite ribotus tokenus ir atminkite, kad -p sesija nerodo pasitikėjimo dialogo. Įskiepis ar MCP serveris veikia su jūsų teisėmis; Anthropic sako, kad jis “does not security-audit or manage any MCP server.” (neatlieka jokio MCP serverio saugos audito ir netvarko nė vieno.)
  4. Apribokite ilgus paleidimus. Neprižiūrimam darbui naudokite --max-budget-usd ir stebėkite subagentų skaičių.

Jei agentas kuria ant Supabase, tas pats mąstymas taikomas raktams: slaptas raktas, kurį jis naudoja scenarijuose, praleidžia kiekvieną politiką, kaip parodžiau straipsnyje anon key vs service role key. Platesnis sąrašas, ką dirbtinio intelekto sukurtos programos daro neteisingai, yra straipsnyje vibe coding saugos rizikos, o kaip agentai sugenda ilguose paleidimuose, straipsnyje multi-agent orchestration: kas sugedo per 3 315 paleidimų.

Ką žmonės klausia

Ar Claude Code gali ištrinti mano failus? Taip. Manual režimu jis pirmiausia klausia, bet patvirtinta komanda gali pasiekti viską, ką pasiekia jūsų naudotojas; su automatinio patvirtinimo režimais jis gali neklausti. 11 aukščiau esančių pranešimų yra failų ištrynimai. Git ir atsarginės kopijos yra sprendimas, kuris veikia visada.

Ar --dangerously-skip-permissions saugus? Pagal Anthropic dokumentaciją tik konteineryje ar VM, kuriame nėra nieko, ko negalite prarasti. Draudimo taisyklės ir hook tame režime vis tiek galioja; užklausos ne.

Ar auto mode saugus? Saugesnis nei viską refleksiškai patvirtinti. Anthropic išmatavo 0,4 % klaidingų teigiamų rezultatų dažnį ir pasakė, kad savo 2026 m. kovo teste praleido 17 % tikrų pernelyg uolių veiksmų, ir pavadino jį “not a drop-in replacement for careful human review on high-stakes infrastructure.” (ne atsargios žmogaus peržiūros pakaitalu didelės rizikos infrastruktūroje.)

Ar Claude Code siunčia mano kodą Anthropic mokymui? Pagal komercines sąlygas (Team, Enterprise, API) Anthropic sako, kad nemoko ant jūsų kodo ar užklausų, nebent sutiksite. Vartotojų planuose tai nustatymas, kurį valdote jūs. Išsamiau duomenų naudojimo puslapyje.

Ar auto mode tas pats, kas --dangerously-skip-permissions? Ne. Anthropic sukūrė auto mode, kad pakeistų šią vėliavą: klasifikatorius vis dar peržiūri shell komandas, tinklo iškvietimus ir subagentų paleidimą, o po 3 atmetimų iš eilės arba 20 iš viso jis sustoja ir grąžina valdymą jums. Vėliava neperžiūri nieko.

© 2026 Denys Zaichenko. Originalus straipsnis: https://madsalt.tech/lt/blog/is-claude-code-safe/