Tehnologie

Claude Code a lăsat parole la vedere în 1.122 de fișiere publice pe GitHub

Susan Hill
Adaugă-ne în Google

Claude Code, de la Anthropic, cere permisiunea înainte să execute majoritatea comenzilor shell, iar una dintre opțiunile oferite este „Da și nu mai întreba”. Dacă o alegi pentru o comandă care conține o parolă, de exemplu datele de autentificare la o bază de date, Claude Code poate scrie întreaga comandă, cu tot cu parolă, într-un fișier de configurare în text simplu, aflat în proiect. Cercetătorii în securitate au descoperit acum mii de astfel de parole și chei în depozite publice de cod de pe GitHub, unde le poate citi oricine.

Dacă folosești Claude Code, fișierul pe care trebuie să-l cauți se numește settings.local.json. Se află într-un dosar ascuns, .claude, la rădăcina depozitului și ajunge oriunde ajunge proiectul, dacă nu iei măsuri să împiedici acest lucru. Comportamentul este același în toate țările în care este disponibil instrumentul. Îți ia un minut să-ți schimbi obiceiurile, dar mult mai mult să remediezi o parolă divulgată, fiindcă ștergerea fișierului nu-l elimină din istoricul git și nici din copiile făcute de alți utilizatori.

Compania de securitate software Apiiro a căutat pe GitHub și a găsit 104.185 de copii ale fișierului în 103.617 depozite, potrivit cercetării sale, relatate de The Hacker News. Aproximativ 1,1%, adică 1.122 de copii, conțin cel puțin un secret, în total 1.379 de date de autentificare diferite. Peste o treime ar oferi acces direct la o bază de date, inclusiv 379 de parole pentru baze de date. Printre datele găsite se numără și 43 de autentificări SSH pentru servere publice, 42 de tokenuri pentru GitHub, GitLab și npm și 23 de chei Amazon Web Services.

Proprietarii nu sunt doar pasionați care lucrează la proiecte personale. Apiiro a identificat fișierele în 63 de organizații, în principal companii de software de toate dimensiunile, iar printre cele mai grave cazuri se numără cheia cloud cu drepturi de administrator a unui furnizor de baze de date și parola proprietarului unei baze de date cu fișe medicale. Versiunile mai vechi ale fișierului din istoricul git conțin încă 734 de secrete în 509 depozite, iar 211 forkuri ale 74 de depozite includ aceleași secrete ca versiunile originale. Dacă adăugăm fișierele de configurare partajate pe care echipele le includ intenționat în depozit și jurnalele salvate ale conversațiilor cu agenții, totalul ajunge la 2.539 de secrete în 1.994 de depozite.

Claude Code încearcă totuși să țină fișierul în afara sistemului de control al versiunilor. Documentația Anthropic pentru setări spune că, la prima creare a fișierului de către instrument, acesta adaugă o regulă în lista globală de excluderi git a utilizatorului, astfel încât git să ignore fișierul pe acel computer. Regula nu ajunge odată cu proiectul pe laptopul unui coleg, pe un server de build sau pe o mașină nouă și nu ajută cu nimic dacă fișierul a fost deja inclus într-un commit. În 539 dintre cele 1.105 depozite analizate de cercetători, un commit care îl menționa pe Claude drept coautor a modificat fișierul, ceea ce sugerează că agentul îl include adesea chiar el în commituri. Dintre cei 16 agenți de programare a căror documentație a fost comparată de Apiiro, Claude Code este singurul despre care s-a confirmat că salvează implicit comanda aprobată integral într-un fișier al proiectului.

Măsurile de protecție obișnuite nu detectează o bună parte din aceste date. Apiiro a rulat doi scaneri open-source populari pentru identificarea secretelor, gitleaks și TruffleHog, pe fiecare copie: gitleaks a semnalat 564 dintre cele 1.122 de fișiere, TruffleHog a semnalat 643, iar 215 au trecut nedetectate de ambele. Majoritatea celor ratate erau parole introduse după PGPASSWORD=, sshpass -p sau mysql -p, care pentru un instrument ce caută formate cunoscute de chei arată ca niște cuvinte obișnuite.

Descoperirile vin însă cu anumite rezerve. Apiiro vinde instrumente de securitate pentru dezvoltarea asistată de AI, așa că cercetarea servește și drept argument de vânzare. Compania nu a verificat dacă datele de autentificare mai funcționează, deși una dintre organizațiile anunțate a confirmat că cheia sa era încă activă. O valoare a fost considerată secret dacă se potrivea unui format cunoscut de cheie sau dacă apărea lângă adresa unui server public și un evaluator AI confirma identificarea, ceea ce lasă loc pentru unele rezultate fals pozitive. Apiiro mai spune că numărul de commituri cu coautor nu demonstrează că Claude a introdus fiecare dintre datele de autentificare expuse. Iar GitHub este doar partea vizibilă: fișierul este JSON simplu, aflat în dosarul proiectului, așa că poate ajunge și într-un pachet npm, într-o imagine Docker, într-o arhivă zip sau într-un dosar sincronizat.

Primul sfat al cercetătorilor este să schimbi toate parolele, tokenurile și cheile care au fost vreodată în fișier înainte să faci orice altă curățenie, fiindcă un secret care a fost făcut public este compromis, indiferent dacă rescrii sau nu istoricul. Apoi, scoate fișierul din evidența git cu git rm –cached, adaugă-l în fișierul .gitignore al propriului depozit și deschide /permissions în Claude Code pentru a șterge orice regulă salvată care conține un secret. Dacă apelezi la date de autentificare prin variabile de mediu, o regulă salvată va reține un nume precum $DB_URL în locul parolei, iar aprobarea unor tipare, în locul unor comenzi punctuale, ține argumentele concrete în afara fișierului.

Utilizatorii au semnalat problema și înainte. O sesizare de eroare depusă pe 11 august 2025 spunea că comenzile aprobate care conțineau chei API și tokenuri erau salvate cuvânt cu cuvânt în settings.local.json, iar un bot automat a închis sesizarea cu mențiunea „nu este planificat” pe 3 ianuarie, după 60 de zile fără activitate. Apiiro, care și-a publicat descoperirile pe 6 noiembrie, spune că toate cele patru sesizări conexe pe care le menționează au fost închise de același bot, cea mai recentă chiar pe 6 noiembrie, fără niciun răspuns din partea Anthropic. La 2 noiembrie, fiecare fișier expus găsit de companie se afla încă pe ramura principală a depozitului său, în jumătate dintre cazuri de cel puțin 217 zile.

Nici The Hacker News, nici Apiiro nu menționează vreun răspuns din partea Anthropic, iar comportamentul documentat nu s-a schimbat: data viitoare când alegi „nu mai întreba” pentru o comandă în care ai introdus o parolă, și parola respectivă va fi salvată.

Etichete: , , , , ,

Adaugă-ne în Google

Discuție

Există 0 comentarii.