Podróbki bibliotek Pythona kradły klucze SSH i GPG z użyciem typosquattingu

Maciej Olanicki , 04.12.2019 r.
python

Dynamika wzrostu popularności Pythona jest imponująca – w tym roku język ten zastąpił Javę na drugim miejscu w rankingu popularności języków programowania wykorzystywanych na GitHubie. Niestety, popularność Pythona ma swoją cenę. Im więcej deweloperów wykorzystuje ten język w swoich projektach, tym większym cieszy się on zainteresowaniem ze strony cyberprzestępców wykorzystujących taktykę typosquattingu w nazwach bibliotek.

W bibliotece paczek Pythona znanej jako PyPl (od Python Package Index) znajduje się w tej chwili ponad 200 tys. projektów, z repozytorium aktywnie korzysta niemal 400 tys. użytkowników. Nic więc dziwnego, że nie brakuje chętnych, by spenetrować tę infrastrukturę i wykorzystać ją do ataku. O ile samo przejęcie łańcucha dostaw prawdziwych paczek byłoby dość złożone, tak próby lokowania paczek pod nazwami przypominającymi popularne pakiety staje się coraz powszechniejszą praktyką.

W ciągu ostatnich lat mieliśmy do czynienia z co najmniej dwiema próbami dystrybucji złośliwego oprogramowania za pośrednictwem PyPl. Niestety, do listy należy dopisać kolejny incydent. Z repozytorium usunięto już bowiem paczki python3-dateutil (naśladującą dateutil) oraz jeIlyfish (z dużym „i” zamiast pierwszego „l”), co oczywiście ma wprowadzić w błąd użytkowników chcących pobrać popularną bibliotekę jellyfish. Konsekwencje takiej pomyłki mogą być opłakane w skutkach.

W pakiecie jeIlyfish znajdował się bowiem złośliwy kod, natomiast jedną z „funkcji” paczki python3-dateutil było pobieranie podróbki jellyfish. Jak informuje ZDNet, złośliwy kod pobierał plik o nazwie hashsum, który następnie był dekodowany do pliku PY. Skrypt był następnie wykonywany, co skutkowało kradzieżą kluczy SSH i GPG z maszyny ofiary i wysłaniem ich na adres 68.183.212.246:32258. Niebezpieczne pliki umieścił w repozytorium ten sam użytkownik kryjący się po nickiem olgired2017, który działa też pod tą nazwą na GitLabie.

Oczywiście złośliwe oprogramowania kradnące klucze SSH i GPG zostało już usunięte z PyPl, ale programiści piszących w Pythonie administracji prosi o weryfikacje, czy wykorzystywana przez nich wersja jellyfishdateutil posiada odpowiednią sygnaturę. Zwłaszcza że podróbka tej pierwszej paczki trafiła do repozytorium w grudniu 2018 roku.

Zobacz też: GitHub publikuje raport State of Octoverse: w tym roku Python wyprzedził Javę

Najnowsze oferty pracy:

Polecane wpisy na blogu IT: