Klucze API w czacie AI: wklejasz .env, a sekrety zostają w firmie

Do Not Feed AI podmienia wykryte hasła, klucze, tokeny, nazwy hostów i adresy IP na zamienniki tego samego kształtu, zanim tekst trafi do czatu AI. AI dalej widzi strukturę konfiguracji i pomaga szukać błędu, a odpowiedź wraca z prawdziwymi nazwami.

albo napisz bezpośrednio: [email protected]

Środa, 22:47 - KluczeFilm, 1:05 min · lektor i napisy po polsku

Programista szuka błędu przed jutrzejszym demo i wkleja do czatu AI cały plik konfiguracyjny razem z logiem.

Tekst lektora

Środa, 22:47. Mateusz szuka błędu. Wkleja do czatu AI cały plik konfiguracyjny i log. Hasło do bazy, klucze do chmury i do płatności. Wszystko do wymiany. Do trzeciej w nocy. Jeszcze raz. Tym razem z wtyczką. Ten sam tekst, to samo wklejenie. Menu pokazuje, co trafi do AI. Sekrety dostają zamienniki tego samego kształtu. Odpowiedź wraca z prawdziwymi nazwami. Ta sama środa. Tym razem Mateusz idzie spać. Nie karm AI sekretami firmy.

Kopiuj - maskuj - wklej: skróty schowkaFilm, 1:15 min · lektor i napisy po polsku

Zgłoszenie od klienta z danymi osobowymi i kluczem w logu: kopiujesz je w terminalu, edytorze albo systemie zgłoszeń, skrót zamienia schowek na tekst z zamiennikami, wklejasz do dowolnego czatu AI, a odpowiedź przywracasz drugim skrótem. Funkcja Pro, domyślnie wyłączona.

Tekst lektora

Wtorek, dziesiąta dwadzieścia. Zgłoszenie od klienta: dane osobowe w treści, klucz w logu. Wystarczy jeden skrót między kopiuj a wklej. Skróty są domyślnie wyłączone. Włączasz je sam w menu ikony, a zmiana trafia do dziennika audytu. Kopiujesz tekst jak zawsze: z maila, logu, dokumentu albo zgłoszenia. Naciskasz skrót maskujący. Tekst w oknie zostaje, ale schowek ma już zamienniki: nazwisko, e-mail, telefon, hasło i klucz. Wklejasz do czatu AI, terminala, edytora - wszędzie, gdzie można wkleić tekst. Bez wtyczki. AI pracuje na zamiennikach i na nich odpowiada. Odpowiedź kopiujesz i naciskasz drugi skrót. Prawdziwe wartości wracają do schowka, gotowe do wklejenia. Działa lokalnie i bez konta. Mapa zamienników żyje tylko w pamięci programu. Kopiuj, maskuj, wklej. Nie karm AI danymi klientów.

Co się dzieje w filmie

Środa, 22:47. Mateusz ma jutro demo u klienta, a aplikacja nie łączy się z bazą. Wkleja do czatu AI cały plik .env i log. Razem z nimi wychodzą hasło do bazy, klucze do chmury i do płatności, a w logu e-maile klientów.

Szefowa techniczna mówi krótko: co wyszło poza firmę, traktujemy jak spalone. Zaczyna się wymiana wszystkich kluczy, restart usług i rano telefon do inspektorki ochrony danych w sprawie e-maili. Mateusz kończy o trzeciej w nocy.

Jeszcze raz, tym razem z wtyczką. Ten sam tekst, to samo wklejenie. Ikonka w rogu pokazuje liczbę wykrytych wartości, a menu - co dokładnie trafi do AI. Sekrety dostają zamienniki tego samego kształtu, a db-prod-01 zostaje, bo nie zdradza firmy. AI znajduje literówkę w porcie, odpowiedź wraca z prawdziwymi nazwami, a Mateusz idzie spać.

Co program wykrywa: klucze API, hasła i infrastruktura

  • hasła w przypisaniach (DB_PASSWORD=, SMTP_PASS=) i w adresach połączeń z bazą;
  • klucze API i tokeny w ponad 220 formatach popularnych usług (chmura, płatności, repozytoria kodu, dostawcy AI), tokeny Bearer i JWT, klucze prywatne PEM;
  • nazwy hostów: zmienia się część, która zdradza firmę, np. db-prod-01.kwadratnet.internal staje się db-prod-01.<inne słowo>.internal;
  • adresy IP: adresy z jednej podsieci trafiają do jednej zastępczej podsieci, więc AI dalej widzi, co z czym rozmawia;
  • loginy, e-maile i inne dane osobowe w logach;
  • pliki tekstowe przeciągnięte do czatu: .env, .yaml, .json, .log i podobne.

Profil techniczny jest domyślnie włączony; w panelu wtyczki to "Dane techniczne". Hasła i klucze są trzymane tylko w pamięci programu i nie trafiają na dysk.

Co program celowo zostawia albo może pominąć:

  • loginy ogólne (root, postgres, deploy), porty, ścieżki, nazwy zmiennych, domeny publiczne i strukturę pliku - nie identyfikują firmy, a AI ich potrzebuje;
  • sekret w nietypowym formacie, którego nie zdradza ani nazwa zmiennej, ani znany wzorzec;
  • wewnętrzne nazwy projektów i produktów - te dodasz jako własne frazy do maskowania.

Co mówią przepisy i dobre praktyki

Sekret, który trafił poza firmę, według dobrych praktyk bezpieczeństwa trzeba uznać za ujawniony: unieważnić, wymienić i zapisać zdarzenie. To nie przepis, ale standard, którego oczekują klienci i audytorzy.

Jeśli w logu były dane osobowe klientów, wchodzi RODO: wpis do rejestru naruszeń (art. 33 ust. 5), ocena ryzyka i w razie potrzeby zgłoszenie do Prezesa UODO (art. 33 ust. 1).

Podmioty kluczowe i ważne w rozumieniu dyrektywy NIS 2 (w Polsce ustawa o krajowym systemie cyberbezpieczeństwa) mają obowiązek zarządzania ryzykiem, w tym bezpieczeństwa łańcucha dostaw i podstawowej cyberhigieny (art. 21 NIS 2), oraz zgłaszania poważnych incydentów (art. 23). Nie każda firma IT jest takim podmiotem - warto to sprawdzić.

Pytania i odpowiedzi

Czy AI zrozumie konfigurację z podmienionymi wartościami?

W typowych zadaniach tak. Zamienniki mają ten sam kształt (klucz dalej wygląda jak klucz danej usługi), a struktura, porty i nazwy zmiennych zostają. Przed wysłaniem menu pokazuje dokładny tekst, który dostanie AI.

Czy to działa w edytorze kodu, w terminalu albo przez API?

W edytorze i terminalu działa skrót klawiszowy schowka, a nie wtyczka. To funkcja programu na komputerze (Pro i Business), domyślnie wyłączona; włączasz ją w menu ikony programu. Windows: Ctrl+Win+A (Anonimizuj) i Ctrl+Win+R (Przywróć), macOS: Ctrl+Option+A i Ctrl+Option+R. Kopiujesz fragment kodu, konfiguracji albo logu, skrót zamienia schowek na tekst z zamiennikami, wklejasz go do AI, a odpowiedź kopiujesz i przywracasz drugim skrótem. Program czyta schowek tylko po naciśnięciu skrótu. To nie jest wtyczka w edytorze: asystentów w edytorze, wywołań API ani Linuksa nie obsługujemy. Uwaga: historia schowka systemu (np. Win+V) i menedżery schowka mogą zachować oryginał skopiowany przed użyciem skrótu, więc wyłącz je na czas pracy z sekretami.

W przeglądarce wtyczka działa w ChatGPT, Gemini, Copilot i Claude: na Windows w Chrome, Edge i Firefoksie, na macOS w Chrome i Firefoksie.

Jak to wdrożyć w zespole?

Na Windows jest instalator MSI dla działów IT (zasady grupy, Intune, SCCM): instalacja na komputer dla wszystkich użytkowników albo na użytkownika, rejestracja programu w Chrome, Edge i Firefoksie, rozpakowana wtyczka i aplikacja w zasobniku bez autostartu. Wtyczkę w zarządzanych przeglądarkach rozłóż zasadą przeglądarki (w Chrome ExtensionInstallForcelist z identyfikatorem ze sklepu), a plik licencji osobno na każdym stanowisku. Na macOS program idzie instalatorem pkg, np. przez MDM. Opis dla IT: repozytorium pobierania.

Czy to zastępuje skaner sekretów w repozytorium?

Nie. Skaner pilnuje repozytorium, a Do Not Feed AI - tego, co ludzie wklejają do czatów AI. To dwa różne miejsca wycieku.

Czy program coś wysyła w sieć?

Nie. Program nie łączy się z internetem, nie ma telemetrii, a licencja to podpisany plik sprawdzany lokalnie.