Rozwiązania sztucznej inteligencji i uczenia maszynowego zaczynają korzystać z poprzeczki usterek procesu Security Development Lifecycle

Autorzy: Andrew Marshall, Jugal Parikh, Emre Kiciman i Ram Shankar Siva Kumar

Listopad 2019

Ten dokument jest efektem pracy grupy roboczej AETHER zajmującej się rozwiązaniami inżynieryjnymi w zakresie sztucznej inteligencji w firmie Microsoft. Uzupełnia on istniejącą poprzeczkę usterek procesu SDL używaną do klasyfikowania tradycyjnych luk w zabezpieczeniach. W zamierzeniu ma on być punktem odniesienia podczas klasyfikowania problemów dotyczących zabezpieczeń rozwiązań sztucznej inteligencji i uczenia maszynowego. Aby uzyskać bardziej szczegółowe informacje dotyczące analizy zagrożeń i ograniczania ich wpływu, zapoznaj się z artykułem Modelowanie zagrożeń systemów i zależności dotyczących rozwiązań sztucznej inteligencji i uczenia maszynowego.

Te wskazówki w szerokim zakresie opierają się na taksonomii zagrożeń uczenia maszynowego, której autorami są Ram Shankar Siva Kumar, David O’Brien, Kendra Albert, Salome Viljoen i Jeffrey Snover, przedstawionej w dokumencie Tryby awarii w uczeniu maszynowym. Należy zauważyć, że chociaż ta zawartość opisuje zarówno zamierzone/złośliwe, jak i przypadkowe zachowania w trybach awarii w uczeniu maszynowym, to uzupełniająca poprzeczka usterek skupia się wyłącznie na zachowaniach zamierzonych/złośliwych prowadzących do zdarzeń naruszenia zabezpieczeń i wdrażania poprawek.

Zagrożenie Ważność Opis/ryzyko biznesowe/przykłady
Zatrucie danych „Ważne” lub „krytyczne”

Uszkodzenie danych treningowych — celem osoby atakującej jest zmodyfikowanie modelu maszynowego generowanego w fazie trenowania, co przekłada się na zmianę przewidywań tworzonych na podstawie nowych danych w fazie testowania.

W przypadku celowanego ataku zatruwającego atakujący dąży do nieprawidłowego sklasyfikowania określonych przykładów, aby wywołać określone działania lub im zapobiec.

Zgłoszenie oprogramowania antywirusowego jako złośliwego oprogramowania, co powoduje, że to oprogramowanie zostanie sklasyfikowane jako złośliwe i nie będzie używane w systemach klienta.

Firma trenuje modele, używając danych dotyczących kontraktów terminowych z dobrze znanej i zaufanej witryny internetowej. Witryna internetowa dostawcy danych zostaje następnie zaatakowana przez wstrzyknięcie kodu SQL. Atakujący może dowolnie zatruć zestaw danych, a model będzie dalej trenowany bez świadomości naruszenia danych.

Kradzież modelu „Ważne” lub „krytyczne”

Odtworzenie bazowego modelu przez wysłanie do niego zwyczajnego zapytania. Nowy model ma taką samą funkcjonalność jak model bazowy. Gdy model zostanie odtworzony, można go odwrócić, aby odtworzyć informacje dotyczące funkcji lub wywnioskować dane treningowe.

Rozwiązywanie równań — w przypadku modelu, który zwraca prawdopodobieństwa klas za pośrednictwem danych wyjściowych interfejsu API, atakujący może utworzyć zapytania w celu określenia nieznanych zmiennych w modelu.

Znajdowanie ścieżki — atak, który wykorzystuje cechy interfejsu API w celu wyodrębnienia „decyzji” podjętych przez drzewo podczas klasyfikowania danych wejściowych.

Atak z możliwością przeniesienia — osoba niepożądana może wytrenować lokalny model, na przykład przez kierowanie zapytań dotyczących przewidywania do docelowego modelu, i użyć go do utworzenia wrogich przykładów, które można przenieść do modelu docelowego. Jeśli model zostanie w ten sposób wyodrębniony i okaże się, że jest podatny na określony typ niepożądanych danych wejściowych, atakujący dysponujący kopią modelu może całkowicie w trybie online opracować nowe ataki na Twój model wdrożony w środowisku produkcyjnym.

W sytuacji, gdy model uczenia maszynowego służy do wykrywania wrogiego zachowania — na przykład do rozpoznawania spamu, klasyfikacji złośliwego oprogramowania, czy wykrywania anomalii sieciowych — wyodrębnienie modelu może ułatwić przeprowadzenie ataków omijających model.

Odwrócenie modelu „Ważne” lub „krytyczne”

Prywatne funkcje używane w modelach uczenia maszynowego można odtworzyć. Obejmuje to zrekonstruowanie prywatnych danych treningowych, do których atakujący nie ma dostępu. Polega to na odnalezieniu danych wejściowych, które maksymalizują zwracany poziom ufności, w zależności od tego, czy klasyfikacja odpowiada wartości docelowej.

Przykład: Rekonstrukcja danych rozpoznawania twarzy z odgadniętych lub znanych nazw i dostępu do interfejsu API w celu wykonywania zapytań dotyczących modelu.

Niepożądany przykład w domenie fizycznej Krytyczne Takie przykłady mogą też istnieć w domenie fizycznej. Może to być na przykład zmanipulowanie autonomicznego samochodu tak, aby nie zatrzymał się przed znakiem stop, na który skierowano światło w określonym kolorze (niepożądany element wejściowy), co uniemożliwia systemowi rozpoznawania obrazów prawidłowe rozpoznanie znaku stop.
Atak na łańcuch dostaw uczenia maszynowego Krytyczne

Ze względu na duże zasoby (dane i obliczenia) wymagane do trenowania algorytmów, bieżącą praktyką jest ponowne użycie modeli wytrenowanych przez duże korporacje i nieznaczne zmodyfikowanie ich pod kątem zadań (np. ResNet jest popularnym modelem rozpoznawania obrazów od firmy Microsoft).

Te modele są przechowywane w tak zwanym zoo modeli (popularne modele rozpoznawania obrazów są hostowane na platformie Caffe).

W tym przypadku atakujący przeprowadza atak na modele hostowane na platformie Caffe, w ten sposób „zatruwając źródło”, z którego korzystają wszyscy.

Tylne wejście w algorytmie pozostawione przez złośliwego dostawcę uczenia maszynowego Krytyczne

Naruszenie algorytmu bazowego

Złośliwy dostawca uczenia maszynowego jako usługi może wprowadzić do algorytmu tylne wejście i odtworzyć prywatne dane treningowe. Dzięki temu osoba atakująca może odtworzyć poufne dane, takie jak twarze i teksty, dysponując tylko modelem.

Przeprogramowanie sieci neuronowych „Ważne” lub „krytyczne”

Przy użyciu specjalnie spreparowanego zapytania osoba atakująca może przeprogramować systemy uczenia maszynowego tak, aby wykonywały zadania niezgodne z pierwotnym zamiarem ich twórcy.

Słaba kontrola dostępu do interfejsu API rozpoznawania twarzy umożliwiająca osobom trzecim wprowadzenie do aplikacji elementów utworzonych w celu zaszkodzenia użytkownikom, takich jak generator obrazów typu „deep fake”.

Jest to scenariusz nadużycia/przejęcia konta

Niepożądane zakłócenia „Ważne” lub „krytyczne”

Podczas ataku zakłócającego atakujący niepostrzeżenie modyfikuje zapytanie w celu uzyskania określonej odpowiedzi od modelu wdrożonego w środowisku produkcyjnym. Jest to naruszenie integralności danych wejściowych modelu, które umożliwia wprowadzenie błędnych danych, a w efekcie, choć nie musi dojść do naruszenia dostępu lub uzyskania wyższego poziomu uprawnień, zostaje zaburzona zdolność modelu do klasyfikacji.

Przykładem może być używanie konkretnych słów przez trolli, tak aby sztuczna inteligencja je blokowała, co w efekcie prowadzi do odmowy dostępu uprawnionym użytkownikom, których nazwy odpowiadają zablokowanemu słowu.

Wymuszanie sklasyfikowania nieszkodliwych wiadomości e-mail jako spamu lub niewykrywania złośliwych przykładów. Takie ataki nazywa się także omijaniem modelu lub mimikrą.

Dane wejściowe utworzone przez osobę atakującą mogą zmniejszyć poziom ufności prawidłowej klasyfikacji, zwłaszcza w scenariuszach o poważnych konsekwencjach. Może to przyjąć formę dużej liczby wyników fałszywie dodatnich, których celem jest przeciążenie administratorów lub systemów monitorowania fałszywymi alertami nieodróżnialnymi od prawidłowych alertów.

Wnioskowanie o członkostwie „Umiarkowane” lub „krytyczne”

Wnioskowanie na podstawie poszczególnych członkostw w grupie używane do trenowania modelu

Przykład: prognozowanie procedur chirurgicznych na podstawie wieku/płci/szpitala