Przytulanie twarzy, szeroko stosowana platforma do udostępniania modeli uczenia maszynowego (ML), zmaga się z problemami bezpieczeństwa po tym, jak naukowcy zidentyfikowali złośliwe oprogramowanie ukryte w dwóch modelach hostowanych.

Te złośliwe pliki wykorzystywały luki w Format serializacji marynowania Pythona , umożliwiając atakującym wykonywanie szkodliwego kodu podczas procesu ładowania modelu. Ustalenia, opublikowane przez reversinglabs , Ujawnij krytyczne słabości w przytulaniu miar bezpieczeństwa Face i podkreśl szersze ryzyko otwartych platform AI.

Pickle Serializacja, popularna metoda oszczędzania i dzielenia obiektów Python, ma kluczowe znaczenie dla ram takich jak Pytorch, które przytulają twarz. wspiera szeroko.

Jednak jego zdolność do wykonywania osadzonego kodu w trakcie Deserializacja czyni ją z natury ryzykowną. Zaryskiwane modele zawierały odwrotne skorupy-oprogramowanie Malware zaprojektowane do łączenia się ze zdalnymi serwerami i umożliwiające atakującym kontrolowanie dotkniętych systemów. Pomimo przytulania narzędzia bezpieczeństwa o nazwie PicklesCan, pliki te omijały wykrywanie.

To odkrycie zwiększa rosnące obawy dotyczące bezpieczeństwa otwartych platform ML. Przytulanie środowiska współpracy FACE, które ułatwia udostępnianie zestawów danych, modeli i kodu, stało się kluczowym zasobem dla rozwoju sztucznej inteligencji. Jednak jego otwartość stwarza również luki.

Zrozumienie serializacji marynaty i jej ryzyka

moduł Python używany do serializacji obiektów w strumienie bajtów, umożliwia dane danych Aby zostać zapisanym i udostępnianym skutecznie. Proces ten, znany jako serializacja, umożliwia ponowne wykorzystanie wstępnie wyszkolonych modeli bez ich przekwalifikowania od zera.

Jednak proces deserializacji Pickle, który ładuje dane z powrotem do pamięci, wykonuje również każdy wbudowany kod Pythona-cecha, którą atakujący mogą wykorzystać, aby wstrzykiwać złośliwe skrypty.

Według oficjalna dokumentacja Pythona :„ Możliwe jest zbudowanie Złośliwe dane marynatowe, które będą wykonywać dowolny kod podczas odblokowania. Nigdy nie rozbijaj danych, które mogły pochodzić z niezaufanego źródła. “

Pomimo tego ostrzeżenia, marynata pozostaje popularna ze względu na jego prostotę i zgodność z ramami takimi jak Pytorch . Na przytulaniu twarzy, w której użytkownicy swobodnie dzielą się serializowanymi modelami, tworzy to idealne środowisko dla hakerów i innych złośliwych aktorów.

w sprawie odkrytych przez odwrócenie, atakujący, atakujący, atakujący Wbudowane powłoki do plików hostowanych na twarzy przytulania./github.com/maitre314/picklescan”>picklescan , skaner bezpieczeństwa wykrywający pliki Python Phil Phils wykonujące podejrzane działania, od prawidłowego analizy plików, umożliwiając złośliwe oprogramowanie do wykrywania.

W jaki sposób atakujący ominęli narzędzia bezpieczeństwa przytulania twarzy

Picklescan identyfikuje potencjalnie złośliwe pliki, oznaczając określone metody czarnej listy, takie jak Eval lub Exec. Jednak naukowcy z reversinglabs i wykazał, że obronę te można ominąć na wiele sposobów. Na przykład atakujący używali modułu debugowania Pythona, bdb.bdb.run , Które funkcjonują podobnie do flagowanych poleceń, ale unikało wykrycia.

Inna metoda wykorzystała nowsze protokoły marynat. Korzystając z Protocol Version 4, atakujący zoptymalizowani wywołania metod w sposób, który uniknął czarnej listy Picklescan.

Dodatkowo naukowcy zwrócili uwagę, że narzędzia takie jak PicklesCan koncentrują się na sprawdzaniu poprawności plików przed skanowaniem ich pod kątem złośliwych treści. Proces ten brakuje wczesnie wykonanych ładunków osadzonych w uszkodzonych plikach marynat, wada projektowa podkreślona przez Eksperymenty ReversingLabs .

„ Brak wykrycia obecności złośliwej funkcji stanowi poważny problem dla organizacji rozwojowych AI “-wyjaśnili naukowcy w ich Raport.

Naukowcy z CheckMarx dalej skrytykowali stosowanie czarnych list, zauważając, że nawet jeśli wszystkie znane metody Pythona zostały oznaczone, atakujący mogą po prostu zwrócić się do bibliotek innych firm. asyncio, wbudowany moduł Python do programowania asynchronicznego , można by objąć Picklescan. „Podejście listy bloków do całkowicie dynamicznego kodu w postaci złośliwych modeli pochodnych/marynisk pozwala atakującym pozostawić te rozwiązania w pyle”, wyjaśniali badacze CheckMarx w swoich

Aby zająć się tymi lukami, eksperci zalecają przejście z serializacji marynowania do bezpieczniejszych formatów, takich jak Safetensors . Alternatywa dla udostępniania modeli uczenia maszynowego.

Programiści są również zachęcani do przeglądu modeli kodu dodatkowego i unikania konfiguracji, które umożliwiają wykonanie zdalnego kodu, takie jak Trust_remote_code. Przytulanie twarzy zapewnia „niebezpieczny” przycisk, który flaguje potencjalnie szkodliwe pliki, ale naukowcy ostrzegają, że same narzędzia takie narzędzia nie mogą zagwarantować bezpieczeństwa.

Zarówno reversingLabs, jak i CheckMarx podkreślają znaczenie przyjęcia modeli bezpieczeństwa opartych na zezwoleniu. Niezależnie od BlackLists , które flagę znane jest, zezwala na listy wyraźnie definiują zaufane metody i obiekty, oferując bardziej solidną obronę./P>

Szersze implikacje tych ustaleń wykraczają poza twarz, ponieważ uczenie maszynowe stają się integralną częścią branż, takich jak opieka zdrowotna i bezpieczeństwo cybernetyczne, zabezpieczenie infrastruktury, która jest krytyczna. i bezpieczeństwo, inwestowanie w technologie, które mogą dostosować się do ewoluujących zagrożeń.

Podczas gdy przytulanie twarzy zaktualizowało PicklesCan, w tym rozszerzoną zasięg czarnej listy, miary te są tymczasowe poprawki. Podstawowe luki w serializacji marynaty, w połączeniu z wspólnym charakterem otwartych platform AI, oznaczają, że atakujący będą nadal znajdować nowe metody wyzysku.

Categories: IT Info