Oprogramowanie  / Artykuł

Zaglądają do kodu, a tam roi się od sekretów firm. Co można znaleźć w repozytoriach?

Picture of the author

GitHub to największe repozytorium kodu źródłowego na świecie. Niezależnie od tego, czy prowadzisz otwarty projekt open source, czy też rozwijasz komercyjną aplikację, jest duża szansa, że zdecydowałeś się na hostowanie kodu właśnie w tym serwisie.

Jak podaje GitHub w swoim dorocznym raporcie pt. The State of the Octoverse, w 2020 roku w pracach nad kodem hostowanym na tym serwisie uczestniczyło aż ponad 56 milionów programistów. Mimo że większość z nich to jednoosobowe lub małe projekty, to w GitHub przechowują swój kod również duże firmy - obecnych tu jest aż 72 proc. przedsiębiorstw z listy Fortune 50.

Przesiewanie kodu

Firma GitGuardian, oferująca usługi monitorowania i audytu kodu, opublikowała raport, z którego wynika, że wraz z dużym wzrostem liczby projektów przechowywanych na GitHub, rośnie również ilość problemów z bezpieczeństwem wynikających z niedbalstwa programistów wrzucających zmiany w kodzie.

O ile sam kod był przeznaczony do „wrzucenia” do GitHuba, to często zdarza się, że pozostawiono w nim lub w plikach konfiguracyjnych informacje, które ktoś może wykorzystać. Są to hasła, certyfikaty, kody dostępu do różnych API (np. chmurowych), a nawet ścieżki dostępu pozwalające wywnioskować wiele na temat sieci firmowej.

GitGuardian skanuje ponad 2,5 miliona zmian w kodzie dziennie i analizuje go pod kątem tego typu wycieków. Według raportu firmy, wykrywa ona ponad 5 tysięcy tego typu „sekretów” dziennie - 20 proc. więcej w porównaniu z poprzednim rokiem. Rozkład tych niepożądanych wycieków jest dość łatwy do przewidzenia: 85 proc. z nich znajduje się w kodzie na personalnych kontach indywidualnych developerów, a zaledwie 15 proc. na kontach firmowych.

W krajach, w których programiści najczęściej zapominają o wykasowaniu haseł z kodu, przodują Indie oraz Brazylia, ze Stanami Zjednoczonymi Ameryki na trzecim miejscu.

Co najczęściej znajdowano w kodzie

Najczęstszą znajdźką, bo obejmującą aż 27 proc. przypadków, to klucz do usługi chmurowej Google. Może to dać niepożądany dostęp np. do backendowej bazy danych. Na drugim miejscu znajdują się narzędzia programistyczne pozostawione w repozytorium. Na trzecim, pliki z bazami danych. Najczęściej dane te były znajdywane w skryptach Pythona.

Odnalezienie tego typu sekretu w kodzie dużej firmy może być początkiem udanego włamania - po uzyskaniu dostępu do jednego zasobu firmowego (np. bazy danych), włamywacz dowiaduje się więcej o infrastukturze informatycznej firmy. Na przykład poznaje nazwy kont wewnętrznych systemów i adresy serwerów. I tak - po nitce do kłębka - można dokonać większego włamania.

Internet nie zapomina

Usunięcie zauważonej i wrzuconej do repozytorium informacji nie jest trywialne. Usunięcie jej w kolejnej zmianie nie powoduje jej zniknięcia. Jak pisze GitGuardian w swoim raporcie, ciekawe wyniki daje przeszukanie kodu pod kątem np. napisu „removed AWS key” (ang. usunięto klucze AWS). I rzeczywiście - źle usunięta historia zmian pokazuje usunięte informacje jak na dłoni:

Istnieją oczywiście sposoby na wykasowanie zmian również z historii - wymaga to jednak dodatkowych starań. W czasach, kiedy wszystko, łącznie z kodem źródłowym komercyjnych aplikacji, przechowywane jest w chmurze, warto pamiętać o pilnowaniu własnych tajemnic.

przeczytaj następny tekst


przeczytaj następny tekst


przeczytaj następny tekst


przeczytaj następny tekst


przeczytaj następny tekst