Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book

Oprogramowanie Mercedesa dostępne dla każdego przez pozostawiony w repozytorium token

01 lutego 2024, 12:48 | W biegu | 1 komentarz

To nie jest pierwsza (i pewnie nie ostatnia) wpadka związana z niewłaściwym zarządzaniem sekretami w kodzie źródłowym. Pracownik firmy pozostawił w publicznie dostępnym repozytorium token dostępowy do serwera GitHub Enterprise. 

Uprawnienia dla tego tokenu pozwalały na nieograniczony, jak piszą badacze z redhuntlabs.com, dostęp do wewnętrznych zasobów firmy takich jak kod źródłowy oprogramowania znajdującego się w samochodach, kontrolujący narzędzia diagnostyczne czy zarządzający bateriami w pojazdach elektrycznych. 

Według historii commitów, token wyciekł pod koniec września 2023, ale został unieważniony dopiero 24 stycznia 2024. Przez tak długi czas potencjalny atakujący mógł mieć dostęp do wewnętrznych zasobów firmy. Mercedes-Benz na razie w lakonicznym oświadczeniu dla BleepingComputer potwierdza jedynie, że do incydentu doszło. Zapewnia też, że potencjalny atakujący nie uzyskałby dostępu do wszystkich, a jedynie do części prywatnych repozytoriów firmy. Dane klientów firmy nie zostały narażone.

We can confirm that source code containing an internal access token was published on a public GitHub repository by human error.

This token gave access to a certain number of repositories, but not to the entire source code hosted at the Internal GitHub Enterprise Server.

We have revoked the respective token and removed the public repository immediately. Customer data was not affected as our current analysis shows. 

We will continue to analyse this case according to our normal processes. – Mercedes-Benz

Wycieki sekretów, tokenów API, kluczy prywatnych to powszechne zjawisko. Powstały nawet specjalne usługi, które mają zapobiegać tego typu zdarzeniom. Badacze regularnie skanują powszechnie dostępne repozytoria w poszukiwaniu poufnych informacji. Robią to też przestępcy, dlatego powstało wiele projektów, mających na celu ochronę haseł i tokenów przed trafieniem do repozytoriów. Przykładem jest otwartoźródłowe oprogramowanie gitleaks, które może zostać skonfigurowane ze skryptem pre-commit, co uniemożliwi deweloperowi wypchnięcie zmian naruszających poufność poświadczeń. Projekt przygotowano też z myślą o wykorzystaniu CI/CD. Integracja wyszukiwania wycieków poświadczeń możliwa jest np. z GitHub Actions. 

trufflehog to z kolei golangowy projekt pozwalający na przeskanowanie dowolnego publicznego repozytorium w poszukiwaniu pozostawionych przez programistów „niespodzianek”. Jak słusznie zauważyli autorzy tego projektu, commity to nie jedyne miejsce, do którego trafić mogą sekrety. Dlatego oprogramowanie umożliwia przeszukiwanie też pull requestów czy komentarzy. 

Trzymanie sekretów, nawet w prywatnych repozytoriach, to bardzo zły pomysł. Naraża on chronione zasoby na bezprawny dostęp, utrudnia ich rotowanie i zarządzanie dostępem. W przypadku konieczności przechowywania takich informacji w repozytoriach powstały specjalne projekty, takie jak blackbox, które pozwalają na automatyczne i ręczne szyfrowanie tajnych informacji trafiających na zdalny serwer. Nie jest to rozwiązanie idealne, ale na pewno lepsze niż beztroskie pozostawianie tokenów w kodzie źródłowym. W takich przypadkach, jak zwykle, przed dokonaniem wyboru strategii zarządzania sekretami zalecamy zrobienie własnej analizy ryzyka. Zdajemy sobie sprawę, że nie każdy projekt wymaga utrzymania własnej instancji kombajnów jak HashiCorp Vault

~fc

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. io

    Pytanie czy zostawil to w commitcie, PR czy w PR ktore zostalo zmergowane do mastera. W ostatnim przypadku wine ponosza wszyscy, ktorzy brali udzial w procesie.

    Odpowiedz

Odpowiedz