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

Modele AI wektorem ataku na infrastrukturę AaaS

09 kwietnia 2024, 07:57 | W biegu | 0 komentarzy

Niedawno pisaliśmy o tym, jak wykorzystanie niebezpiecznych mechanizmów serializacji może być metodą ataku na developerów. Tym razem przedstawiamy research przeprowadzony przez WIZ, który korzystając z podobnych mechanizmów umożliwia atak na infrastrukturę usługi AI-as-a-Service. 

AaaS jest kuszącym rozwiązaniem w dobie AI ze względu na spore wymagania sprzętowe. Skorzystanie z rozwiązań chmurowych może być korzystne pod wieloma względami, ponieważ znacznie przyspiesza cykl rozwoju projektu, ułatwia jego sprawne wdrożenie i skalowanie. Nie ma jednak róży bez kolców, a współdzielone środowiska chmurowe (nawet jeśli zwykle implementują mechanizmy izolacji zasobów klientów) niosą za sobą zagrożenia związane z obejściem tych ograniczeń. 

Tak jak w przypadku opisywanego wcześniej badania, wykonanie kodu zostało osiągnięte przez wykorzystanie formatu Pickle, który od dawna uchodzi za niebezpieczny o czym informacja znajduje się w dokumentacji Pythona. Platformy takie jak Hugging Face dokonują skanu przesłanego modelu, ale nawet jeśli zostanie on uznany za złośliwy, to wciąż istnieje możliwość jego uruchomienia. 

Rysunek 1 – skaner oznacza model jak “unsafe” (źródło: wiz)

Badacze sklonowali jeden z dostępnych na platformie modeli, który został przygotowany w taki sposób aby możliwe było jego uruchomienie na platformie. Ręcznie wprowadzili relatywnie proste zmiany umożliwiające wykonanie kodu przez deserializację danych przy wykorzystaniu biblioteki Pickle (jest to wciąż wykorzystywane rozwiązanie przez PyTorch, dlatego jest wspierane przez serwisy takie jak Hugging Face). W efekcie wgrania i uruchomienia projektu na infrastrukturze serwisu, udało się uzyskać połączenie zwrotne. 

Rysunek 2 – netcat odbierający połączenie reverse shella z wnętrza kontenera (źródło: wiz)

Dodatkowo hakerzy wykorzystali ciekawą sztuczkę pozwalającą na ominięcie etapu wgrywania nowego modelu ilekroć potrzebują uzyskać shella w kontenerze. Przez modyfikację modelu oraz kodu Pythona dostarczonego w projekcie udało się dodać funkcję uruchamiania poleceń korzystając z inference API. Dzięki temu wykonywanie komend możliwe jest przez prompt. 

Rysunek 3 – zbackdoorowany model wykonuje polecenie przesłane przez prompt (źródło: wiz)

Zdalne wykonanie kodu to nie wszystko. Skoro atakujący uzyskał dostęp do infrastruktury, to może próbować dokonać ataku ucieczki z kontenera oraz eskalacji z wnętrza środowiska chmurowego. Ponieważ Hugging Face API jest uruchomione na klastrach Kubernetesa w usłudze Amazon EKS, możliwe było wykorzystanie błędów w konfiguracji tej usługi. Wykorzystano możliwość dostępu do IMDS, dzięki któremu wygenerowano poprawne tokeny K8s z rolą węzłów. Dalsza eksploracja środowiska pozwoliła na zdobycie sekretów (przy pomocy polecenia kubectl get secrets), co w efekcie pozwoliło na dalsze ‘buszowanie’ po klastrze, w szczególności umożliwiło przeskoczenie do środowisk innych klientów.

Inna usługa – Hugging Face Spaces pozwala na przygotowanie swojej usługi dzięki środowisku uruchomieniowemu opartemu na Dockerze. Eksperymenty badaczy potwierdzają, że możliwe jest wykonywanie poleceń wewnątrz kontenera przy pomocy standardowych poleceń CMD oraz RUN. Jednak przez wprowadzone błędy w konfiguracji sieci oraz uprawnień, atakujący może uzyskać dostęp do obrazów trzymanych w wewnętrznym rejestrze. To z kolei pozwala nadpisać istniejące już kontenery klientów przez atak na łańcuch dostaw. 

Rysunek 4 – uruchomienie złośliwego modelu (źródło: wiz)

Z raportu opublikowanego przez Hugging Face wynika, że zaimplementowano rozwiązania na wszystkie wskazane podatności. Dodatkowo wpis wzbogacono o zbiory dobrych praktyk oraz ogólnych przemyśleń dotyczących bezpieczeństwa środowisk uruchomieniowych modeli AI. 

Patrząc na tempo rozwoju AI nie trudno odnieść wrażenie, że tego typu ataki, jak ten zaprezentowany przez badaczy z WIZ to dopiero początek. Uruchamianie zasobożernych implementacji na skalowalnych środowiskach chmurowych to rozwiązanie wygodne i relatywnie tanie (zależy oczywiście od rzeczywistych potrzeb oraz modelu biznesowego), dlatego jest to metoda kusząca dla prężnie rozwijających się firm z tej branży. Przeoczenia w zabezpieczeniu środowisk klientów mogą prowadzić do katastrofalnych skutków, takich jak te, które zostały zaprezentowane w cytowanym raporcie. 

~fc

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



Komentarze

Odpowiedz