PyTorch: zestaw narzędzi do uczenia maszynowego dostępny od Świąt Bożego Narodzenia do Nowego Roku PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

PyTorch: zestaw narzędzi do uczenia maszynowego dostępny od Bożego Narodzenia do Nowego Roku

PyTorch to jeden z najpopularniejszych i najczęściej używanych zestawów narzędzi do uczenia maszynowego.

(Nie będziemy uzależniać się od tego, gdzie zajmuje miejsce w tabeli liderów sztucznej inteligencji – podobnie jak w przypadku wielu powszechnie używanych narzędzi open source w konkurencyjnej dziedzinie, odpowiedź wydaje się zależeć od tego, kogo zapytasz i jakiego zestawu narzędzi akurat używają sobie.)

Pierwotnie opracowane i wydane jako projekt open-source przez Facebooka, obecnie Meta, oprogramowanie zostało przekazane Linux Foundation pod koniec 2022 roku, która teraz prowadzi je pod egidą Fundacji PyTorch.

Niestety, projekt został naruszony poprzez atak na łańcuch dostaw w okresie świątecznym pod koniec 2022 roku, w okresie między Bożym Narodzeniem [2022-12-25] a dniem poprzedzającym Sylwestra [2022-12-30].

Atakujący w złowrogi sposób stworzyli pakiet Pythona o nazwie torchtriton na PyPI, popularnym repozytorium Python Package Index.

Nazwa torchtriton został wybrany tak, aby pasował do nazwy pakietu w samym systemie PyTorch, co prowadzi do niebezpiecznej sytuacji wyjaśnione przez zespół PyTorch (podkreślenie nasze) w następujący sposób:

[A] złośliwy pakiet zależności (torchtriton) […] został przesłany do repozytorium kodu Python Package Index (PyPI) z taką samą nazwą pakietu, jak ten, który wysyłamy w nocnym indeksie pakietów PyTorch. Ponieważ indeks PyPI ma pierwszeństwo, ten złośliwy pakiet był instalowany zamiast wersji z naszego oficjalnego repozytorium. Ten projekt umożliwia komuś zarejestrowanie pakietu pod taką samą nazwą, jak ten, który istnieje w indeksie strony trzeciej, i pip domyślnie zainstaluje swoją wersję.

Program pip, nawiasem mówiąc, kiedyś znany jako pyinstalli jest najwyraźniej rekurencyjnym żartem, który jest skrótem pip installs packages. Pomimo swojej oryginalnej nazwy nie służy do instalowania samego Pythona – jest to standardowy sposób zarządzania bibliotekami oprogramowania i aplikacjami napisanymi w Pythonie, takimi jak PyTorch i wieloma innymi popularnymi narzędziami.

Złapany przez sztuczkę łańcucha dostaw

Każdy, kto miał pecha i zainstalował wersję Pwned PyTorch w okresie zagrożenia, prawie na pewno skończył z wszczepionym na jego komputer złośliwym oprogramowaniem kradnącym dane.

Według własnego krótkiego, ale przydatnego PyTorch analiza złośliwego oprogramowania, osoby atakujące ukradły niektóre, większość lub wszystkie z następujących istotnych danych z zainfekowanych systemów:

  • Informacje systemowe, w tym nazwa hosta, nazwa użytkownika, znani użytkownicy w systemie oraz zawartość wszystkich systemowych zmiennych środowiskowych. Zmienne środowiskowe to sposób dostarczania danych wejściowych tylko do pamięci, do których programy mają dostęp podczas uruchamiania, często w tym danych, które nie powinny być zapisywane na dysku, takich jak klucze kryptograficzne i tokeny uwierzytelniające umożliwiające dostęp do usług w chmurze. Lista znanych użytkowników jest pobierana z /etc/passwd, który na szczęście w rzeczywistości nie zawiera żadnych haseł ani skrótów haseł.
  • Twoja lokalna konfiguracja Git. To jest skradzione z $HOME/.gitconfigi zwykle zawiera przydatne informacje o osobistej konfiguracji każdego użytkownika popularnego systemu zarządzania kodem źródłowym Git.
  • Twoje klucze SSH. Są one skradzione z katalogu $HOME/.ssh. Klucze SSH zazwyczaj obejmują klucze prywatne używane do bezpiecznego łączenia się przez SSH (bezpieczna powłoka) lub przy użyciu SCP (bezpieczna kopia) z innymi serwerami we własnych sieciach lub w chmurze. Wielu programistów przechowuje przynajmniej część swoich kluczy prywatnych niezaszyfrowanych, dzięki czemu używane przez nich skrypty i narzędzia programowe mogą automatycznie łączyć się ze zdalnymi systemami bez każdorazowego zatrzymywania się i proszenia o podanie hasła lub sprzętowego klucza bezpieczeństwa.
  • Pierwsze 1000 innych plików w twoim katalogu domowym ma rozmiar mniejszy niż 100 kilobajtów. Opis złośliwego oprogramowania PyTorch nie mówi, w jaki sposób obliczana jest „pierwsza lista 1000 plików”. Zawartość i kolejność list plików zależy od tego, czy lista jest posortowana alfabetycznie; czy podkatalogi są odwiedzane przed, w trakcie lub po przetworzeniu plików w dowolnym katalogu; czy uwzględniane są ukryte pliki; i czy w kodzie, który przechodzi przez katalogi, zastosowano jakąkolwiek losowość. Prawdopodobnie powinieneś założyć, że wszelkie pliki poniżej progu rozmiaru mogą być tymi, które zostaną skradzione.

W tym momencie wspomnimy o dobrej nowinie: tylko ci, którzy pobrali tak zwaną „nocną” lub eksperymentalną wersję oprogramowania, byli zagrożeni. (Nazwa „nightly” pochodzi od faktu, że jest to najnowsza kompilacja, zwykle tworzona automatycznie na koniec każdego dnia roboczego).

Większość użytkowników PyTorch prawdopodobnie będzie się tego trzymać tak zwaną „stabilną” wersję, na którą ten atak nie miał wpływu.

Ponadto z raportu PyTorch wynika, że plik wykonywalny złośliwego oprogramowania Triton był specjalnie ukierunkowany na 64-bitowe środowiska Linux.

Dlatego zakładamy, że ten złośliwy program działałby na komputerach z systemem Windows tylko wtedy, gdyby zainstalowano Podsystem Windows dla systemu Linux (WSL).

Nie zapominaj jednak, że osoby, które najprawdopodobniej zainstalują regularne „nightly”, to twórcy samego PyTorch lub aplikacji, które go używają – być może w tym twoi wewnętrzni programiści, którzy mogą mieć dostęp do kompilacji korporacyjnej oparty na kluczu prywatnym serwery testowe i produkcyjne.

Kradzież danych DNS

Co ciekawe, złośliwe oprogramowanie Triton nie eksfiltruje swoich danych (militarystyczny termin żargonowy, którego branża cyberbezpieczeństwa lubi używać zamiast ukraść or kopiować nielegalnie) przy użyciu protokołu HTTP, HTTPS, SSH lub dowolnego innego protokołu wysokiego poziomu.

Zamiast tego szyfruje i koduje dane, które chce ukraść, tworząc sekwencję czegoś, co wygląda jak „nazwy serwerów”, które należą do nazwy domeny kontrolowanej przez przestępców.

Oznacza to, że wykonując sekwencję wyszukiwań DNS, oszuści mogą wykraść niewielką ilość danych w każdym fałszywym żądaniu.

To ten sam rodzaj sztuczki, którego użył m.in Hakerzy Log4Shell pod koniec 2021 r., który ujawnił klucze szyfrujące, przeprowadzając wyszukiwanie DNS „serwerów” z „nazwami”, które akurat były wartością twojego tajnego klucza dostępu AWS, splądrowanego ze zmiennej środowiskowej w pamięci.

Więc to, co wyglądało na niewinne, choć bezsensowne, wyszukiwanie DNS dla „serwera”, takiego jak S3CR3TPA55W0RD.DODGY.EXAMPLE po cichu wyciekłby twój klucz dostępu pod pozorem prostego wyszukiwania, które kierowało do oficjalnego serwera DNS wymienionego dla DODGY.EXAMPLE domeny.


DEMO LOG4SHELL NA ŻYWO WYJAŚNIAJĄCE EKSPLOATACJĘ DANYCH PRZEZ DNS

[Osadzone treści]

Jeśli nie możesz wyraźnie odczytać tekstu tutaj, spróbuj użyć trybu pełnoekranowego lub oglądaj bezpośrednio na YouTube.
Kliknij trybik w odtwarzaczu wideo, aby przyspieszyć odtwarzanie lub włączyć napisy.


Jeśli oszuści są właścicielami domeny DODGY.EXAMPLE, mogą powiedzieć światu, z którym serwerem DNS się połączyć podczas wyszukiwania.

Co ważniejsze, nawet sieci, które ściśle filtrują połączenia sieciowe oparte na protokole TCP przy użyciu HTTP, SSH i innych protokołów udostępniania danych wysokiego poziomu…

…czasami w ogóle nie filtrują połączeń sieciowych opartych na protokole UDP używanych do wyszukiwania DNS.

Jedynym minusem dla oszustów jest to, że żądania DNS mają raczej ograniczony rozmiar.

Poszczególne nazwy serwerów są ograniczone do 64 znaków z zestawu 37 (AZ, 0-9 i symbol myślnika lub łącznika), a wiele sieci ogranicza indywidualne pakiety DNS, w tym wszystkie dołączone żądania, nagłówki i metadane, do zaledwie 512 bajtów każdy.

Domyślamy się, że właśnie dlatego złośliwe oprogramowanie w tym przypadku zaczęło od zdobycia kluczy prywatnych, a następnie ograniczyło się do co najwyżej 1000 plików, z których każdy jest mniejszy niż 100,000 XNUMX bajtów.

W ten sposób oszuści mogą ukraść mnóstwo prywatnych danych, w szczególności klucze dostępu do serwera, bez generowania niemożliwej do zarządzania dużej liczby wyszukiwań DNS.

Niezwykle duża liczba wyszukiwań DNS może zostać zauważona z rutynowych powodów operacyjnych, nawet w przypadku braku jakiejkolwiek kontroli stosowanej specjalnie do celów cyberbezpieczeństwa.

Co robić?

PyTorch podjął już działania mające na celu powstrzymanie tego ataku, więc jeśli jeszcze nie zostałeś trafiony, prawie na pewno nie zostaniesz trafiony teraz, ponieważ złośliwy torchtriton pakiet na PyPI został celowo zastąpiony „niewypałem”, pustym pakietem o tej samej nazwie.

Oznacza to, że każda osoba lub oprogramowanie, które próbowało zainstalować torchtriton z PyPI po 2022-12-30T08:38:06Z, przypadkowo lub celowo, nie otrzymałby złośliwego oprogramowania.

Nieuczciwy pakiet PyPI po interwencji PyTorch.

PyTorch opublikował przydatną listę IoC, lub wskaźniki kompromisu, które możesz wyszukiwać w swojej sieci.

Pamiętaj, jak wspomnieliśmy powyżej, że nawet jeśli prawie wszyscy Twoi użytkownicy trzymają się wersji „stabilnej”, na którą atak nie miał wpływu, możesz mieć programistów lub entuzjastów, którzy eksperymentują z „nocnymi”, nawet jeśli używają wersji stabilnej zwolnić również.

Według PyTorcha:

  • Złośliwe oprogramowanie jest instalowane z nazwą pliku triton. Domyślnie spodziewałbyś się go znaleźć w podkatalogu triton/runtime w katalogu pakietów witryn Pythona. Biorąc jednak pod uwagę, że same nazwy plików są słabymi wskaźnikami złośliwego oprogramowania, obecność tego pliku należy traktować jako dowód zagrożenia; nie traktuj jego nieobecności jako absolutnej jasności.
  • Złośliwe oprogramowanie w tym konkretnym ataku ma sumę SHA256 2385b294­89cd9e35­f92c0727­80f903ae­2e517ed4­22eae672­46ae50a5cc738a0e. Po raz kolejny złośliwe oprogramowanie można łatwo przekompilować, aby wygenerować inną sumę kontrolną, więc brak tego pliku nie jest oznaką określonego stanu zdrowia, ale jego obecność można potraktować jako oznakę infekcji.
  • Wyszukiwania DNS wykorzystywane do kradzieży danych kończyły się nazwą domeny H4CK.CFD. Jeśli masz dzienniki sieciowe rejestrujące wyszukiwania DNS według nazwy, możesz wyszukać ten ciąg tekstowy jako dowód na wyciek tajnych danych.
  • Złośliwe odpowiedzi DNS najwyraźniej trafiały do, a odpowiedzi, jeśli w ogóle, pochodziły z serwera DNS o nazwie WHEEZY.IO. W tej chwili nie możemy znaleźć żadnych numerów IP powiązanych z tą usługą, a PyTorch nie dostarczył żadnych danych IP, które powiązałyby DNS taffic z tym złośliwym oprogramowaniem, więc nie jesteśmy pewni, w jakim stopniu te informacje są przydatne do polowania na zagrożenia w tej chwili [2023-01-01T21:05:00Z].

Na szczęście zgadujemy, że większość użytkowników PyTorch nie zostanie dotknięta tym problemem, ponieważ albo nie używają nocnych kompilacji, albo nie pracowali w okresie wakacyjnym, albo jedno i drugie.

Ale jeśli jesteś entuzjastą PyTorch, który majstruje przy nocnych kompilacjach i jeśli pracowałeś w czasie wakacji, to nawet jeśli nie możesz znaleźć żadnych wyraźnych dowodów na to, że zostałeś naruszony…

…mimo to możesz rozważyć wygenerowanie nowych par kluczy SSH jako środek ostrożności i aktualizację kluczy publicznych, które przesłałeś na różne serwery, do których masz dostęp przez SSH.

Jeśli oczywiście podejrzewasz, że doszło do naruszenia bezpieczeństwa, nie odkładaj aktualizacji klucza SSH — jeśli jeszcze tego nie zrobiłeś, zrób to teraz!


Znak czasu:

Więcej z Nagie bezpieczeństwo