Claude Code: lozinke i API ključevi pronađeni u javnim GitHub repozitorijumima

Apiiro je pronašao 2.539 lozinki, tokena i ključeva u javnim repozitorijumima, uključujući Claude Code podešavanja i Git istoriju. Zloupotreba nije potvrđena.

Redakcija Sajber Radara 3 min čitanja

Šta se desilo?

Istraživači kompanije Apiiro objavili su 5. novembra nalaze o lozinkama, API ključevima i drugim pristupnim podacima izloženim u javnim GitHub repozitorijumima. Jedan od načina na koji podaci dospevaju u ove repozitorijume jeste čuvanje odobrenih komandi u lokalnim podešavanjima Anthropicovog alata Claude Code.

Kada korisnik izabere opciju „Yes, and don't ask again“, alat može da sačuva celu shell komandu u datoteci .claude/settings.local.json. Ako komanda sadrži lozinku ili token, i taj podatak ostaje zapisan u običnom tekstu. Kada se datoteka zatim uključi u Git i objavi u javnom repozitorijumu, njen sadržaj postaje dostupan drugima.

Apiiro nije koristio niti testirao pronađene pristupne podatke. Jedna obaveštena kompanija potvrdila je da je njen ključ bio aktivan. Objavljeni nalazi ne potvrđuju da su napadači zloupotrebili izložene podatke.

Koga pogađa?

Rizik se odnosi na razvojne timove koji koriste Claude Code i odobravaju komande sa ugrađenim pristupnim podacima. Posebno treba proveriti projekte u kojima su lokalna podešavanja već dodata u Git, kao i deljena podešavanja i sačuvane razgovore sa AI alatima. Istraživanje je povezalo izložene podatke sa 63 organizacije, pretežno softverskim kompanijama; nije potvrđeno da su među njima organizacije iz Srbije ili regiona.

Kako se zaštititi?

  • Pregledajte lokalne i objavljene kopije datoteke .claude/settings.local.json, posebno pravila u odeljku permissions.allow. Proverite i deljenu datoteku .claude/settings.json i Git istoriju.
  • Ako pronađete objavljene lozinke, tokene ili ključeve, prvo ih opozovite ili zamenite. Brisanje datoteke iz poslednje verzije projekta ne poništava pristupne podatke i ne uklanja ih iz ranijih verzija i tuđih kopija.
  • Dodajte .claude/settings.local.json u projektni .gitignore. Ako Git već prati tu datoteku, uklonite je iz indeksa komandom git rm --cached .claude/settings.local.json. Ova komanda ne čisti prethodnu istoriju.
  • Pre trajnog odobravanja komande proverite da li ona sadrži pristupne podatke. Koristite upravljanje tajnama i reference na promenljive, uz proveru da se stvarne vrednosti ne upisuju u pravila ili zapise rada.
  • Uključite konfiguracione datoteke i zapise AI alata u provere pre slanja izmena i u CI skeniranje. Proverite da li kontrole prepoznaju i obične lozinke unutar komandi.

Tehnički detalji

Apiiro je od 1. do 3. novembra analizirao 104.185 javnih kopija datoteke .claude/settings.local.json. U 1.122 datoteke pronađeno je 1.379 različitih pristupnih podataka. Proširenjem analize na Git istoriju, deljena podešavanja i zapise razgovora ukupan broj dostigao je 2.539 različitih vrednosti u 1.994 repozitorijuma. Ukupan broj zato ne predstavlja samo sadržaj trenutnih lokalnih podešavanja.

U testu istraživača, Gitleaks i TruffleHog nisu označili 215 od 1.122 datoteke sa pronađenim tajnama. Poseban problem bile su lozinke ugrađene u komande, koje nemaju prepoznatljiv format API ključa.

Zvanična dokumentacija Claude Code alata navodi da se lokalna odobrenja čuvaju u ovoj datoteci i da se ona pri prvom upisu u Git projektu dodaje u globalnu listu izuzetaka korisnika. Takvo podešavanje se ne prenosi kroz projektni .gitignore, a Git izuzeci ne utiču na datoteke koje su već praćene. Deljena datoteka .claude/settings.json namenjena je timskim podešavanjima, pa izuzimanje celog direktorijuma .claude nije univerzalno rešenje.

U pregledanom istraživanju nisu navedeni CVE oznaka, CVSS ocena ni određena zakrpljena verzija za ovo ponašanje.

Zašto je važno?

Odobravanje komande može da napravi dodatnu kopiju pristupnih podataka u datoteci koju tim ne doživljava kao poverljivu. Bezbednosne provere zato treba da obuhvate i konfiguraciju i zapise rada AI alata, pored izvornog koda.

Preporuka Sajber Radara

Proverite šta je zaista sačuvano u odobrenim komandama i istoriji repozitorijuma. Ako je važeći pristupni podatak bio javno dostupan, tretirajte ga kao kompromitovan i zamenite ga, zatim pregledajte evidenciju njegovog korišćenja. Uklanjanje ranijih kopija planirajte sa saradnicima, nakon opoziva podataka, kako čišćenje istorije ne bi vratilo izložene vrednosti kroz druge kopije projekta.

Otvorite alat

Izvori

Povezane vesti