Żądny wiedzy? Wbijaj na Mega Sekurak Hacking Party w maju! -30% z kodem: majearly

Wykorzystanie modeli AI do atakowania deweloperów

04 marca 2024, 18:05 | W biegu | 1 komentarz

Nie wygląda na to, aby popularność na to, co powszechnie określane jest skrótem AI, w nadchodzących miesiącach miały ulec zmianie. Od początku przyglądamy się oraz prowadzimy własne badania w zakresie modeli i ich wpływu na bezpieczeństwo użytkowników końcowych, systemów, na których są uruchamiane oraz środowisk deweloperskich. Możliwości i zagrożenia, wynikające z wykorzystania np. szczególnie popularnych LLM (ang. Large Language Models) są imponujące, ale jesteśmy jeszcze na początku drogi. Złośliwe oprogramowanie wykorzystujące w jakimś stopniu AI dopiero zaczynają się pojawiać i jest to częściej wynik prac badawczych niż prowadzonej przez cyberprzestępców kampanii. 

Hugging Face to bardzo popularne miejsce wśród osób zainteresowanych AI.Platforma stworzona została do współdzielenia komponentów potrzebnych do rozwoju i badań nad modelami AI. Użytkownicy mogą wymieniać się modelami, zbiorami danych, a także przemyśleniami na zintegrowanym forum dyskusyjnym. Pełni ona podobną rolę dla deweloperów AI jak npm registry dla programistów JS czy PyPI dla programistów Pythona czy DockerHub dla DevOpsów. Można więc przypuszczać, że podobnego rodzaju ataki polegające na wgrywaniu “bibliotek” zawierających złośliwy kod mogą i tutaj mieć zastosowanie. Nie jest żadną nowością, że deweloperzy mogą natknąć się na specjalnie spreparowane repozytoria mające na celu infekcję ich komputera, przejęcie maszyny lub wykradanie informacji np. tych powiązanych z portfelami kryptowalut. 

Na blogu JFrog pojawił się wpis donoszący o tylnej furtce (ang. backdoor) dodanym do jednego z repozytoriów. 

Rys. 1. Lista frameworków oraz wykorzystywanych formatów wykorzystywanych do serializacji wytrenowanych modeli (źródło: JFrog)

Jak pokazuje zestawienie zaprezentowane na rysunku 1, frameworki uczenia maszynowego często wykorzystują do przechowywania potrzebnych informacji binarne formaty służące do serializacji danych. Dodając do siebie niebezpieczeństwo wynikające z deserializacji (niezaufanych) danych oraz współdzielone repozytorium, przeznaczonym między innymi do przechowywania tego typu plików, dojść można do prostego wniosku, że jest to całkiem dobra platforma do przeprowadzenia ataków wycelowanych w programistów i naukowców pracujących nad ML. Publikując odpowiednio przygotowane pliki modelu, można doprowadzić np. do wykonania kodu podczas ich ładowania do pamięci programu.

Hugging Face stosuje różne metody wykrywania potencjalnych zagrożeń jak skanowanie sekretów, zserializowanych danych oraz poszukuje po prostu malware w przesyłanych plikach. 

Rys. 2. Ostrzeżenie o niezaufanych plikach wyświetlane w repozytorium modelu (źródło: JFrog)

Badacze bezpieczeństwa mogą wykorzystywać platformy, takie jak Hugging Face, do przeprowadzania różnego rodzaju badań, publikując np. PoC-e na podatności publikowanych modeli. Należy jednak pamiętać o tym, że takie eksperymenty powinny być prowadzone w sposób etyczny i być niegroźne dla użytkowników końcowych. W przypadku opisywanym przez JFrog, ktoś poszedł o krok za daleko, ponieważ wykorzystał kod zestawiający połączenie zwrotne do swojego C2 pozwalające na wykonywanie poleceń na systemie ofiary (reverse shell). Istnieją pewne przesłanki, wskazujące, że przedstawiony projekt, a także jego forki (chociaż nie wszystkie) mogą być powiązane z instytutem badawczym KREONET – Korea Research Environment Open Network. Wskazuje na to wykorzystanie hostów z puli adresowej należącej do KREONET-u. 

Rys. 3. Kod reverse shella (źródło: JFrog)

Analitycy z JFrog ustalili, że nie tylko repozytorium udostępnione przez użytkownika o nazwie baller423 zawierało złośliwy payload. Odkryto powiązane projekty, które różniły się kosmetycznymi zmianami jak np. numer portu oraz adres IP serwera C2. Niestety próba detonacji złośliwego payloadu nie powiodła się w 100%. Wykorzystując specjalnie przygotowane środowisko uruchomieniowe (monitorujące między innymi nawiązywanie połączenia, uruchamiane procesy i komendy etc.), badacze załadowali zainfekowany model. Niestety serwery C2 w czasie wykonywania tego eksperymentu nie pozwalały na nawiązanie połączenia na zdefiniowanych portach. 

Rys. 4. HoneyPot monitorujący wykonywane polecenia na zainfekowanym systemie (źródło: JFrog)

Reasumując, ataki ingerujące w łańcuchy dostaw zostaną z nami na dłużej i dotykać będzie coraz to nowszych aspektów rozwoju oprogramowania. Sama koncepcja nie jest nowa, jednak nie wszyscy końcowi użytkownicy są świadomi zagrożeń. Rozwiązania wdrażane przez organizacje, takie jak Hugging Face, stanowią pewne bariery, jednak jak widać nie są one wystarczające. Dlatego odpowiednie, odseparowane środowisko oraz ostrożność deweloperów ML (ang. Machine Learning) jest obecnie kluczowym aspektem, od którego zależy bezpieczeństwo wykorzystywanych systemów. 

Przy okazji tematu AI zapraszamy do zapisania się na drugą część Narzędziownika AI czyli przeglądu ciekawych narzędzi i techniki AI w kontekście pracy i życia prywatnego. Więcej informacji w tym artykule: https://sekurak.pl/pierwsza-czesc-narzedziownika-ai-za-nami-jak-bylo-i-co-was-czeka-w-czesci-drugiej-mamy-tez-niespodzianki/

~fc

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



Komentarze

  1. Daniel

    Warto wspomnieć także o bezpieczniejszych formatach. Problematyczny format „pickle” to jest zserializowany obiekt Pythona i jest to pewien uproszczony sposób dystrybucji modeli (ekspertem Pythona nie jestem, więc mogę się mylić). Istnieją bezpieczniejsze formaty i tego należałoby szukać podczas ściągania danego modelu, bo najczęściej dany model jest dostępny w różnych formatach.

    https://huggingface.co/docs/diffusers/main/en/using-diffusers/using_safetensors

    Odpowiedz

Odpowiedz