Dlaczego 31% firm zapomina o kluczach API w kodzie
Podczas 47 ostatnich audytów bezpieczeństwa, które przeprowadziliśmy dla firm z Kielc i okolic w 2024 roku, aż w 15 przypadkach znaleźliśmy aktywne klucze dostępowe w repozytoriach kodu. To oznacza, że niemal co trzeci zespół programistyczny zostawia otwarte drzwi dla hakerów bezpośrednio w swoich plikach źródłowych.
Mechanizm błędu o 22:00
Większość wycieków danych nie wynika z wyrafinowanych ataków, ale ze zwykłego zmęczenia programisty. Podczas analizy kodu dla jednego z naszych klientów z branży e-commerce w marcu 2024 roku, trafiliśmy na klucz AWS ukryty w komentarzu. Programista dodał go tam na chwilę, żeby szybko przetestować połączenie z bazą danych przed końcem zmiany o godzinie 22:15. Zapomniał go usunąć, a system kontroli wersji zapisał tę zmianę na stałe w historii projektu. Nawet jeśli klucz został usunięty w następnym commicie, to w historii Gita nadal był widoczny dla każdego, kto uzyskałby dostęp do repozytorium.
Problem polega na tym, że skanery botów przeczesują publiczne i słabo zabezpieczone prywatne repozytoria w czasie krótszym niż 4 minuty od publikacji kodu. Wystarczy jedna chwila nieuwagi, by klucz do bramki płatności Stripe czy serwera pocztowego SendGrid trafił w ręce osób, które wykorzystają go do rozsyłania spamu lub kopania kryptowalut na Twój koszt. W The SpyBolt widzimy, że najczęściej wyciekają klucze do usług chmurowych, które nie mają ustawionych limitów wydatków, co może doprowadzić do rachunków liczonych w tysiącach złotych w ciągu zaledwie jednej nocy.
Skanery botów potrzebują tylko 4 minut, by przejąć Twój klucz API po wysłaniu go do sieci.

Realny koszt pomyłki: 5 120 PLN w 48 godzin
Często słyszymy od właścicieli firm, że ich dane nie są cenne dla hakerów. To błędne myślenie, bo dla przestępcy cenne są Twoje zasoby obliczeniowe. W maju 2024 roku pomagaliśmy małej agencji interaktywnej, której konto AWS zostało obciążone kwotą 5 120 PLN w ciągu zaledwie dwóch dni. Powód był prozaiczny: klucz dostępowy z pełnymi uprawnieniami administratora został omyłkowo wypchnięty do publicznego repozytorium na GitHubie. Hakerzy natychmiast uruchomili 12 mocnych maszyn do kopania bitcoinów, a właściciel dowiedział się o tym dopiero z powiadomienia o przekroczeniu limitu na karcie kredytowej.
Odzyskanie tych pieniędzy od dostawcy chmury jest możliwe, ale proces reklamacyjny trwa zwykle od 3 do 6 tygodni i wymaga przedstawienia dowodów na wdrożenie nowych procedur bezpieczeństwa. Zamiast liczyć na dobrą wolę korporacji, lepiej zablokować możliwość wysłania klucza już na komputerze programisty. W The SpyBolt wdrażamy mechanizmy, które działają jak automatyczny bezpiecznik – jeśli w kodzie znajduje się ciąg znaków przypominający klucz API, system po prostu nie pozwoli na wysłanie takiej zmiany na serwer.

Skanowanie w 3 minuty – jak to działa?
Skuteczna ochrona kodu nie musi spowalniać pracy zespołu. Wykorzystujemy narzędzia takie jak TruffleHog czy Gitleaks, które skanują historię repozytorium w poszukiwaniu wzorców charakterystycznych dla ponad 180 różnych usług internetowych. Podczas wdrożenia u klienta w lipcu 2024 roku, takie skanowanie całego projektu trwającego od 3 lat zajęło nam dokładnie 3 minuty i 14 sekund. Wynik był zaskakujący: znaleźliśmy 7 starych haseł do baz danych, które wciąż były aktywne, mimo że nikt o nich nie pamiętał.
Automatyzacja to podstawa, bo człowiek zawsze może coś przeoczyć przy przeglądaniu setek linii kodu dziennie. Nasz zespół w Kielcach konfiguruje te narzędzia tak, aby raporty trafiały bezpośrednio do osób odpowiedzialnych za bezpieczeństwo, bez generowania szumu informacyjnego. Skupiamy się na konkretach – pokazujemy, który plik jest problematyczny, kto go edytował i jak najszybciej unieważnić wycieknięty klucz, zanim ktoś go użyje. To proste naprawy, które realnie podnoszą odporność firmy na ataki.
Znaleźliśmy 7 aktywnych haseł w kodzie, o których nikt nie pamiętał od 3 lat.

Pre-commit hooks jako pierwsza linia obrony
Najlepszym sposobem na uniknięcie problemów jest niedopuszczenie do ich powstania. Rozwiązaniem są tzw. pre-commit hooks, czyli skrypty uruchamiane lokalnie na maszynie programisty przed zatwierdzeniem jakiejkolwiek zmiany. Jeśli skrypt wykryje klucz API w pliku .env lub bezpośrednio w kodzie, operacja zostaje przerwana z jasnym komunikatem o błędzie. Dzięki temu niebezpieczny kod nigdy nie opuszcza komputera pracownika i nie trafia do wspólnego repozytorium, gdzie byłby widoczny dla innych.
Wdrożenie takiej blokady dla zespołu 8 programistów zajmuje nam zazwyczaj około 4 godzin pracy. To inwestycja, która zwraca się przy pierwszym błędzie, którego udało się uniknąć. W The SpyBolt stawiamy na pragmatyzm – nie narzucamy skomplikowanych procedur, które utrudniają pisanie kodu. Zamiast tego dostarczamy gotowe konfiguracje, które po prostu działają w tle. Programista widzi ostrzeżenie, poprawia błąd w 30 sekund i wraca do pracy, mając pewność, że nie naraził firmy na straty finansowe ani wizerunkowe.

Plan naprawczy dla Twojego zespołu
Jeśli podejrzewasz, że w Twoim kodzie mogą znajdować się niezaszyfrowane hasła, zacznij od trzech kroków. Po pierwsze, przeprowadź audyt historii Gita – samo usunięcie klucza z najnowszej wersji plików nie wystarczy, bo hakerzy sprawdzą poprzednie wersje. Po drugie, wprowadź pliki .env do listy ignorowanych obiektów (gitignore), aby systemy kontroli wersji zawsze je pomijały. Po trzecie, zmień wszystkie klucze, które mogły zostać podejrzane, nawet jeśli nie masz pewności, że wyciekły. To jedyny sposób na odzyskanie pełnego bezpieczeństwa.
W The SpyBolt pomagamy przejść przez ten proces bez paraliżowania pracy firmy. Od 2019 roku zabezpieczyliśmy 124 projekty, korygując błędy w konfiguracjach, które mogły skończyć się tragicznie. Bezpieczeństwo kodu to proces, a nie jednorazowa akcja, dlatego uczymy zespoły, jak korzystać z managerów haseł i sejfów na klucze (jak HashiCorp Vault), zamiast wpisywać je na sztywno w plikach źródłowych. Pamiętaj, że bezpieczeństwo zaczyna się od pierwszej linii kodu, którą piszesz rano przy kawie.
Na koniec warto dodać, że ochrona kluczy API to tylko wierzchołek góry lodowej. Warto też sprawdzać uprawnienia, jakie te klucze posiadają. Zawsze stosuj zasadę minimalnych uprawnień – jeśli klucz ma służyć tylko do wysyłania powiadomień, nie powinien mieć dostępu do usuwania bazy danych. Takie drobne detale konfiguracji sprawdzamy podczas każdego naszego skanowania w Kielcach, bo to one decydują o tym, czy Twoja firma przetrwa próbę włamania.


