Jak wynika z nowych badań przeprowadzonych przez firmę Apiiro zajmującą się bezpieczeństwem aplikacji, najwygodniejszy przycisk w kodzie Claude'a firmy Anthropic — „Tak i nie pytaj więcej” — po cichu zamienił się w maszynę do wycieku danych uwierzytelniających. Kiedy programiści zatwierdzają polecenie zawierające sekret, Claude Code zapisuje dokładnie to polecenie, łącznie z sekretem, w lokalnym pliku ustawień, który często trafia do publicznych repozytoriów GitHub. Skan Apiiro wykazał 2539 prawdziwych sekretów znajdujących się w 1994 publicznych repozytoriach: hasła do baz danych, klucze API chmury, tokeny i loginy root SSH, rozproszone w 63 organizacjach, w większości firm zajmujących się oprogramowaniem. Jedna z dotkniętych firm firma potwierdziła badaczom, że odsłonięty klucz był aktywny. To już drugi przypadek naruszenia prywatności Claude Code w tym miesiącu, po ujawnianiu stronom internetowym e-maili użytkowników za pośrednictwem nagłówków User-Agent — i ten dotyczy infrastruktury produkcyjnej, a nie tylko danych kontaktowych. Ściśle śledzimy bezpieczeństwo agentów kodujących AI w naszym opisie narzędzi AI.
Jak reguła zezwolenia staje się wyciekiem
Mechanizm ten jest efektem ubocznym systemu uprawnień Claude Code, który pyta o zgodę przed uruchomieniem poleceń powłoki — często wiele razy w trakcie sesji. Poproś agenta o debugowanie połączenia z bazą danych lub wywołanie wewnętrznego interfejsu API, a zaproponowane przez niego polecenie zawiera wszelkie poświadczenia wymagane przez to zadanie, ponieważ bez nich nie może działać.
Wybierz opcję „Tak i nie pytaj ponownie”, a Claude Code uruchomi polecenie i zapisze regułę uprawnień w pliku `.claude/settings.local.json` wewnątrz folderu projektu. Reguła nie jest abstrakcją: jest to pełny ciąg poleceń, hasło wpisane zwykłym tekstem i wszystko.
Plik ma pozostać na komputerze programisty, a Claude Code stara się go chronić — dodając go do globalnej listy ignorowanych git programisty. Dotyczy to typowych przypadków, ale nie przypadków brzegowych: folderu, który później staje się repozytorium, klonowania na innym komputerze, na którym nie istnieje globalne ignorowanie, lub pliku, który ktoś popełnił przed dodaniem wpisu ignorowania. Co najważniejsze, reguła nigdy nie ląduje we własnym `.gitignore` repozytorium, więc z projektem nie jest dostarczane żadne zabezpieczenie.
Co gorsza, Claude Code często zatwierdza sam plik. W 539 z 1105 repozytoriów, w których Apiiro odnalazł prawdziwy sekret, zatwierdzenie, którego współautorem jest Claude, spowodowało zmianę pliku ustawień — powoduje to nadanie nazw modelom od Sonnet 4.5 do Opus 5.5. Apiiro zauważa, że jest to zachowanie Claude'a Code, a nie modela: firma odtworzyła je zarówno w Opus 5.5, jak i Fable 5.1.
Skala ekspozycji
Apiiro naliczył 104 185 publicznych kopii pliku `.claude/settings.local.json` na GitHubie. Spośród nich 1122 zawiera co najmniej jeden prawdziwy sekret. Badacze odkryli 1160 kolejnych sekretów ukrytych w historii git repozytorium, w udostępnionych plikach „settings.json”, które zespoły popełniły celowo, oraz w zapisanych transkrypcjach rozmów agentów sprawdzonych w repozytoriach.
Przykładowe dokumenty Apiiro czyta się jak listę kontrolną najgorszych praktyk. Dostawca bazy danych udostępnił swój własny klucz API chmury na poziomie administratora – z możliwością zarządzania dostępem i bez wygaśnięcia – wraz ze swoim hostem klastra. Startup B2B ujawnił produkcyjne hasło Azure Postgres. Agencja oprogramowania ujawniła token dostępu do produkcji Square. Firma świadcząca usługi IT tworząca aplikację do obsługi dokumentacji medycznej ujawniła hasło właściciela tej bazy danych. Projekty open source nie wypadły lepiej: jeden z ponad 1000 gwiazdek opublikował klucz API w formacie OpenAI, inny token npm.
Kontekst bezpieczeństwa pogarsza to stwierdzenie. Szkodliwe oprogramowanie kradnące dane uwierzytelniające już masowo atakuje komputery programistów — Apiiro wskazuje na robaka Shai-Hulud npm, który skanował pliki ofiar skanerem TruffleHog. Ten sam skaner oznaczył 643 z 1122 plików, które Apiiro znalazł. Bardziej niepokojąca jest pozostałość: jeden na pięć plików, które wyciekły, nie jest oznaczony ani przez TruffleHog, ani gitleaks, zwykle dlatego, że sekretem jest hasło wpisane w poleceniu, a nie klucz w rozpoznawalnym formacie tokena. Innymi słowy, tajne skanery są strukturalnie ślepe na tę klasę wycieków.
Co powinny zrobić zespoły, których to dotyczy
Wytyczne Apiiro dotyczące środków zaradczych rozpoczynają się od określenia promienia wybuchu. Wyszukaj w swojej organizacji GitHub pliki `.claude/settings.local.json` i `.claude/settings.json` — każde trafienie to plik, który każdy może teraz przeczytać. Sprawdź historię git każdego repozytorium dla pliku, nawet jeśli został usunięty, ponieważ każdy fork i klon zachowuje całą zawartą historię. Następnie sprawdź lokalne kopie na każdym komputerze programisty: każdy wpis na liście dozwolonych to polecenie, które ktoś zatwierdził, wraz z tym, co zostało w nim wpisane.
Porządek w firmie ma znaczenie: najpierw obróć, potem posprzątaj. Usunięcie pliku z repozytorium nie ma żadnego wpływu na poświadczenia, które były już publiczne, a historia git utrzymuje ujawnione tajemnice przy życiu przez czas nieokreślony.
Wzór, a nie jednorazowy
W przypadku Anthropic do odkrycia doszło tydzień po tym, jak Claude Code został przyłapany na wyciekaniu adresów e-mail użytkowników do każdej odwiedzanej witryny internetowej za pośrednictwem nagłówków User-Agent — błąd naprawiony poprzez wysłanie modyfikacji dotyczącej prywatności, którą krytycy nazywają lekarstwem. Przyczyna obu incydentów jest wspólna: agent obsługuje potężny kontekst – dane uwierzytelniające, dane kontaktowe, wewnętrzne nazwy hostów – i podejmuje domyślne decyzje dotyczące miejsca, w którym ten kontekst się przemieszcza.
Lekcja wykracza poza Claude Code. W miarę jak agenci kodujący stają się standardowym wyposażeniem, pliki, które zapisują w celu samodzielnego uporządkowania, stają się nowym, nieskanowanym fragmentem łańcucha dostaw oprogramowania. Liczby Apiiro sugerują, że narożnik już przecieka na skalę, której większość organizacji nie zaczęła mierzyć.
Wyprzedź sztuczną inteligencję
Narzędzia AI są dostarczane szybciej, niż są w stanie nadążyć za ich ocenami bezpieczeństwa. Śledź każdy rozwój sytuacji w naszych aktualnościach dotyczących sztucznej inteligencji.
Przeczytaj więcej aktualności o sztucznej inteligencji →