Development2022.01.12 3 min. czytania
Bezpieczeństwo systemów ML

Dane 89% organizacji opieki zdrowotnej zostało wykradzione w przeciągu dwóch minionych lat na skutek cyberataków. 81% incydentów związanych z cyberbezpieczeństwem w służbie zdrowia spowodowanych jest zaniedbaniem pracowników. Dokumentacja zdrowotna pacjenta może być sprzedana na czarnym rynku nawet za 363 USD, czyli więcej niż jakakolwiek informacja z innych branż [źródło: PurpleSec]. Te statystyki brzmią poważnie, a to tylko wierzchołek góry lodowej. Aspekt bezpieczeństwa systemów informatycznych to z roku na rok coraz poważniejszy temat. Liczba ataków stale rośnie, a wraz z nią powstają nowe rodzaje złośliwego oprogramowania.
Pomimo że cyberbezpieczeństwo dotyczy wszystkich serwisów internetowych dostępnych w sieci publicznej (i nie tylko) to w przypadku systemów wykorzystujących uczenie maszynowe temat robi się bardziej skomplikowany. Modele będące podstawą działania takiego oprogramowania, z uwagi na silną zależność od danych wejściowych, narażone są na specyficzne rodzaje ataków. Najpopularniejszymi z nich są data poisoning, adversarial attack, inversion by surrogate model. Oczywiście lista zagrożeń jest znacznie dłuższa, a wraz z upływem czasu powstają coraz to bardziej zaawansowane i skuteczne sposoby ataku. W dalszej części artykułu postaram się scharakteryzować wymienione wyżej metody oraz nakreślić, w jaki sposób można proaktywnie zabezpieczyć system ML przed ewentualnym ryzykiem.
Data Poisoning

Atak polega na, “zatruciu” zestawu danych wykorzystywanego do trenowania modelu uczenia maszynowego. Taka modyfikacja może mieć na celu skuteczne pogorszenie jakości dokonywanych predykcji. Konkretnym wariantem tego ataku jest zmiana etykiet. Takie działanie może prowadzić do zamierzonego ukierunkowania wyników inferencji, np. nauczenia modelu akceptowania niekorzystnych wniosków kredytowych. W celu zatrucia danych, atakujący musiałby jednak uzyskać dostęp do części lub całości zestawu treningowego. Niemniej jednak może to nastąpić, chociażby poprzez sprzęt pracownika lub podwykonawcy danej firmy, który ma dostęp do znacznej liczby repozytoriów. Taki atak może również polegać na uzupełnieniu zestawu treningowego o pozornie niegroźne kolumny . Za ich pomocą atakujący byłby w stanie celowo wywołać konkretny mechanizm w modelu prowadzący do uzyskania zamierzonych predykcji.
Adversarial attack
W tej metodzie atakujący usiłuje metodą prób i błędów dokonać niewielkich różnic w danych wejściowych, tak aby uzyskać nieoczekiwaną predykcję. Idealnym przykładem jest oszukanie sieci neuronowej pozwalającej na klasyfikację obrazów. Za pomocą zmiany wyłącznie jednego piksela, atakujący jest w stanie zupełnie zmienić wyniki generowane przez system. Niemniej jednak ten rodzaj ataku może zostać również wykorzystany w innych systemach dokonujących prognoz, na podstawie tekstu naturalnego lub wyłącznie danych skalarnych.

Inversion by surrogate model
Metoda ta polega na wydobyciu poufnych informacji dotyczących modelu, będącego podstawą działania danego systemu ML. W tym celu atakujący musi być w stanie, na podstawie odpowiednio przygotowanych danych wejściowych, wygenerować dużą liczbę predykcji za pomocą API, strony internetowej lub aplikacji. Na podstawie otrzymanych wyników oraz użytego wsadu możliwe jest wytrenowanie nowego modelu, który swoim działaniem przypominałby ten wykorzystany we wspomnianym wcześniej systemie. W przypadku bardzo dużej liczby otrzymanych predykcji atakujący jest w stanie wytrenować niemal identyczną replikę. Tak spreparowany model może następnie służyć jako podstawa do eksploracji potencjalnie słabych punktów systemu, pozwalających na zamierzone generowanie predykcji (jak w przypadku adversarial attack).
Jak się skutecznie bronić?
Choć na w pełni bezpieczny system ML nie ma gotowej receptury, to przed przedstawionymi wyżej metodami ataku można skutecznie się uchronić. W wielu atakach na modele ML procesy monitorowania stanowią pierwszą linię, która może ostrzegać i identyfikować potencjalne zagrożenia. Cykliczna analiza danych, przetwarzanych przez system, jest w stanie poinformować o ewentualnych anomaliach oraz nietypowych wzorcach. Poza monitoringiem działającego modelu można również skupić się na zapewnieniu bezpieczeństwa w trakcie jego implementacji. Za przykład może posłużyć ochrona RONI (ang. Reject On Negative Impact). Technika ta polega na określeniu empirycznego efektu każdej próbki treningowej i eliminacji ze zbioru punktów, mających negatywny wpływ na dokładność inferencji [źródło: The security of machine learning]. Wykorzystanie tej techniki może skutkować zbudowaniem modelu zdecydowanie bardziej odpornego na ewentualne ataki. Ponadto warto wprowadzić zabezpieczenia znane również klasycznym aplikacjom internetowym:
- wymaganie uwierzytelniania wielopoziomowego (ang. two-factor authentication),
- ograniczenie dużej liczby żądań od pojedynczego klienta,
- monitorowanie ruchu sieciowego.
Temat poruszony w artykule stanowi ostatnią część cyklu tekstów o roli MLOps w biznesie. Wierzę, że tym oraz poprzednimi tekstami przybliżyłem wiele użytecznych informacji z dziedziny tworzenia systemów ML. M nadzieję, że przedstawiona wiedza okazała się interesująca i pozwoli na dalszy rozwój oraz implementację jeszcze lepszego oprogramowania. Dziękuję!
Źródła:
- https://purplesec.us/resources/cyber-security-statistics/
- https://www.excella.com/insights/ml-model-security-preventing-the-6-most-common-attacks
- https://www.h2o.ai/blog/can-your-machine-learning-model-be-hacked/
- https://www.oreilly.com/content/proposals-for-model-vulnerability-and-security/
- https://people.eecs.berkeley.edu/~adj/publications/paper-files/SecML-MLJ2010.pdf
- https://www.belfercenter.org/sites/default/files/2019-08/AttackingAI/AttackingAI.pdf
Potrzebujesz więcej informacji?
Skontaktuj się z opiekunem handlowym.

Joanna Bartoszek
Account Manager