Packj - zestaw narzędzi do identyfikacji złośliwych bibliotek w Pythonie i JavaScript

Twórcy platformy Packj, która analizuje bezpieczeństwo bibliotek, opublikowali otwarty zestaw narzędzi wiersza poleceń, który pozwala im identyfikować ryzykowne struktury w pakietach, które mogą być powiązane z realizacją złośliwego działania lub obecnością luk wykorzystywanych do przeprowadzania ataków na projektach wykorzystujących przedmiotowe pakiety („łańcuch dostaw”). Sprawdzanie pakietów jest obsługiwane w językach Python i JavaScript, hostowanych w katalogach PyPi i NPM (w tym miesiącu planują także dodać obsługę Ruby i RubyGems). Kod zestawu narzędzi jest napisany w języku Python i rozpowszechniany na licencji AGPLv3.

Podczas analizy 330 tys. pakietów przy użyciu proponowanych narzędzi w repozytorium PyPi zidentyfikowano 42 szkodliwe pakiety z backdoorami i 2.4 tys. pakietów ryzykownych. Podczas inspekcji przeprowadzana jest statyczna analiza kodu w celu identyfikacji funkcji API i oceny obecności znanych luk w zabezpieczeniach odnotowanych w bazie danych OSV. Do analizy API służy pakiet MalOSS. Kod pakietu jest analizowany pod kątem obecności typowych wzorców powszechnie stosowanych w złośliwym oprogramowaniu. Szablony przygotowano na podstawie badania 651 pakietów z potwierdzoną złośliwą aktywnością.

Identyfikuje także atrybuty i metadane, które prowadzą do zwiększonego ryzyka nadużyć, takich jak wykonywanie bloków za pomocą „eval” lub „exec”, generowanie nowego kodu w czasie wykonywania, używanie technik zaciemnionego kodu, manipulowanie zmiennymi środowiskowymi, dostęp do plików innych niż docelowe, dostęp do zasobów sieciowych w skryptach instalacyjnych (setup.py), stosowanie typequattingu (nadawanie nazw podobnych do nazw popularnych bibliotek), identyfikowanie przestarzałych i porzuconych projektów, określanie nieistniejących e-maili i stron internetowych, brak publicznego repozytorium z kodem.

Dodatkowo możemy odnotować identyfikację przez innych badaczy bezpieczeństwa pięciu szkodliwych pakietów w repozytorium PyPi, które wysyłały zawartość zmiennych środowiskowych na serwer zewnętrzny w oczekiwaniu na kradzież tokenów dla AWS i systemów ciągłej integracji: moduły loglib (przedstawiane jako moduły dla legalnej biblioteki loglib), pyg-modules, pygrata i pygrata-utils (reklamowane jako dodatki do legalnej biblioteki pyg) i hkg-sol-utils.

Packj - zestaw narzędzi do identyfikacji złośliwych bibliotek w Pythonie i JavaScript


Źródło: opennet.ru

Dodaj komentarz