>_toolkitbox

~/ / Artykuły o AI / 2,117 ważnych sekretów w publicznych plikach konfiguracji MCP: co znalazł GitGuardian i jak sprawdzić swój plik

2,117 ważnych sekretów w publicznych plikach konfiguracji MCP: co znalazł GitGuardian i jak sprawdzić swój plik

Plik konfiguracji, który mówi aplikacji AI, jakie serwery MCP uruchomić, często wymaga klucza. Raport GitGuardian State of Secrets Sprawl 2026 naliczył 24,008 unikalnych sekretów w plikach konfiguracji związanych z MCP w publicznym GitHub, a 2,117 z nich było ważnymi poświadczeniami. Ten artykuł podsumowuje raport, wyjaśnia, co dokumentacja Claude Code mówi o plikach konfiguracji projektu, i pozwala sprawdzić własny plik.

Opublikowano: · Sprawdzono z oficjalnymi źródłami dnia 2026-10-24. Artykuł je podsumowuje i ich nie zastępuje.

Co wykazał raport

  • GitGuardian opublikował raport State of Secrets Sprawl 2026 dnia 17 marca 2026. Jego dane obejmują rok 2025.
  • Naliczył 24,008 unikalnych sekretów ujawnionych w plikach konfiguracji związanych z MCP w publicznym GitHub, w tym 2,117 unikalnych ważnych poświadczeń.
  • Tylko w 2025 roku do publicznych commitów w GitHub dodano 28.65 million nowych zahardkodowanych sekretów, co raport nazywa wzrostem o 34% rok do roku.
  • Sekrety usług AI osiągnęły 1,275,105, czyli wzrost o 81% rok do roku.
  • Raport mówi, że problem jest często napędzany przez samą dokumentację, która zachęca do niebezpiecznych wzorców: wpisywania kluczy API bezpośrednio do plików konfiguracji, argumentów wiersza poleceń lub osadzonych ciągów połączenia.

Dlaczego plik MCP projektu łatwo wycieka

Claude Code przechowuje serwery MCP o zakresie projektu w pliku .mcp.json w katalogu głównym projektu, a jego dokumentacja opisuje ten plik jako współdzielony przez system kontroli wersji. Klucz wpisany do niego jest widoczny dla każdego, kto może czytać repozytorium.

ZakresGdzie jest przechowywanyKto go widzi
Lokalny~/.claude.json, pod ścieżką projektuBieżący projekt, prywatnie tylko dla ciebie
Projekt.mcp.json w katalogu głównym projektuBieżący projekt, współdzielony przez system kontroli wersji
Użytkownik~/.claude.jsonWszystkie twoje projekty

Trzymaj klucz poza plikiem

  • Claude Code rozwija ${VAR} i ${VAR:-default} w command, args, env, url i headers, więc plik może wskazywać zmienną zamiast przechowywać wartość. Własny przykład z dokumentacji zapisuje nagłówek jako Authorization: Bearer ${API_KEY}.
  • Jeśli zmienna nie jest ustawiona i nie ma wartości domyślnej, konfiguracja mimo to się wczytuje. Claude Code pokazuje ostrzeżenie i używa tekstu ${VAR} tak, jak został zapisany.
  • W url i headers zdalnego serwera niektóre zmienne z poświadczeniami są odczytywane jako puste, nawet jeśli są ustawione. Dokumentacja podaje jako przykłady ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN, AWS_BEARER_TOKEN_BEDROCK, HTTPS_PROXY i NPM_TOKEN i mówi, że zmienna o nazwie API_KEY jest rozwijana tak, jak została zapisana.
  • Wartość zapisana w args lub url jest również przechowywana w pliku, więc ostrzeżenie raportu dotyczące argumentów wiersza poleceń i osadzonych ciągów połączenia dotyczy także tych miejsc.

Sprawdź swój plik

Poniższe narzędzie wczytuje w twojej przeglądarce plik .mcp.json lub claude_desktop_config.json. Zgłasza wartości wyglądające na sekrety zapisane w args, env i headers, używając tych samych detektorów co Prompt Redactor, oraz odwołania do zmiennych, które Claude Code odczytuje jako puste. Wykrywanie jest heurystyką, więc może pominąć sekret albo zgłosić nieszkodliwą wartość.

Wypróbuj: MCP Config Checker

Reguły sprawdzone z dokumentacją w dniu 2026-10-23.

Dokumentacja: Claude Code / Model Context Protocol / VS Code

Nie sprawdzono: czy polecenie istnieje, czy pakiet się instaluje, czy zdalny serwer odpowiada oraz ustawień, które inne aplikacje odczytują inaczej.

Wszystko działa w twojej przeglądarce. Konfiguracja nie jest wysyłana.

Zanim wkleisz konfigurację do czatu z AI

Ludzie często wklejają plik konfiguracji do czatu z AI, aby zapytać, dlaczego serwer się nie uruchamia. Prompt Redactor maskuje w tekście klucze API, tokeny, hasła i dane osobowe i potrafi przywrócić je w odpowiedzi, a wszystko dzieje się w twojej przeglądarce.

Wypróbuj: Prompt Redactor

Co maskować

Formaty z dokumentacji — opublikowane przez dostawcę lub w dokumencie RFC

Wzorce przypominające sekrety — odgadywane po kształcie lub nazwie; mogą coś pominąć albo dopasować za dużo

Dane osobowe i sieciowe — znajdowane po wzorcu

Zamaskowany tekst

Zamaskowany tekst pojawi się tutaj.

Narzędzie znajduje tekst o rozpoznawalnym kształcie. Nie znajdzie poufnych informacji zapisanych zwykłymi zdaniami, więc brak wyniku nie oznacza, że tekst jest bezpieczny.

Przeczytaj zamaskowany tekst, zanim go wyślesz.

Formaty kluczy sprawdzono z dokumentacją dostawców i dokumentami RFC dnia 2026-10-23.

Wszystko działa w twojej przeglądarce. Ani tekst, ani tabela przywracania nie są wysyłane.

Jeśli sekret został już zatwierdzony w commicie

  • Dokumentacja GitHub mówi, że pierwszym krokiem jest unieważnienie lub rotacja sekretu, aby nie można go było już używać do uzyskania dostępu.
  • Po rotacji przepisywanie historii repozytorium może nie być uzasadnione, ponieważ unieważnienie sekretu może wystarczyć do rozwiązania problemu.
  • Jeśli commit istnieje w forkach, pozostaje tam dostępny. GitHub nie może przekazać ci danych kontaktowych właścicieli forków.
  • Commity mogą pozostać osiągalne przez swoje skróty SHA-1 w buforowanych widokach w GitHub. Wsparcie GitHub może usunąć buforowane widoki i odwołania dla danych wrażliwych, których ryzyka nie da się zmniejszyć rotacją poświadczeń.

Źródła