Uczenie maszynowe dla przestępców komputerowych

Czyli trochę o tym, jak hakerzy mogą wykorzystać uczenie maszynowe do przestępstw.

Ten artykuł nie ma na celu zachęcania kogokolwiek do przechodzenia na ciemną stronę mocy. Bardziej chodzi mi to, żeby uświadomić programistów i zespoły odpowiedzialne za bezpieczeństwo cybernetyczne, jak hakerzy mogą wykorzystać uczenie maszynowe do przeprowadzania coraz to bardziej wyrafinowanych ataków.

Uczenie maszynowe ostatnio szturmem zdobywa prawie każdą gałąź gospodarki internetowej. Bezpieczeństwo cybernetyczne także zaczyna wykorzystywać zdobycze ML do coraz lepszego zabezpieczenia swoich zasobów. Cały czas pojawia się wiele informacji o tym, jak wykorzystać uczenie maszynowe zarówno podczas ataku jak i obrony. Jednocześnie jedna dziedzina, mianowicie cyberprzestępczość wciąż pozostaje tematem tabu dla większości ludzi związanych z bezpieczeństwem.

Niemniej jednak cała międzynarodowa społeczność wywiadowcza martwi się tym, że już niedługo przestępcy będą w coraz większej mierze opierać swoje ataki na sztucznej inteligencji. Kilka grup przestępczych już powoli wdraża uczenie maszynowe, aby ataki na systemy były lepszej jakości, szybsze i znacznie tańsze w wykonaniu.

Głównym celem tego wpisu jest więc próba usystematyzowania wiedzy na temat możliwych lub rzeczywistych prób wdrażania uczenia maszynowego przez grupy przestępcze. Dodatkowym założeniem jest pomoc ludziom zajmującym się bezpieczeństwem w przygotowaniu się na bezpośredni atak.

Główne zadania przestępców, które mogą zostać wspomożone przez sztuczną inteligencję

Tak naprawdę wszystkie działania przestępców, które może wspomóc sztuczna inteligencja, to bardzo obszerny temat. Zaczynają się już od etapu wstępnego gromadzenia informacji, aż do rzeczywistego naruszenia konkretnego systemu komputerowego. Oczywiście wszystkie te zadania można podzielić na kilka grup:

  • Zbieranie informacji, czyli przygotowanie do ataku.
  • Podszywanie się, czyli próba naśladowania zaufanych użytkowników lub systemów.
  • Nieautoryzowany dostęp, czyli omijanie ograniczeń w celu uzyskania dostępu do niektórych zasobów lub kont użytkowników.
  • Atak na system, czyli wykonanie rzeczywistego ataku, takiego jak wysłanie złośliwego oprogramowania lub ataku DDoS.
  • Automatyzacja, czyli automatyczna eksploatacja i poeksploatacja podatności.

Uczenie maszynowe w służbie zbierania informacji

Gromadzenie informacji o celach to zawsze pierwszy krok każdego potężnego ataku hakerskiego, niezależnie od tego, czy jest on ukierunkowany, czy skierowany przeciwko większej ilości celów. Z założenia im więcej informacji się zbierze, tym większe szanse na sukces.

Jeśli już jesteśmy przy wypuszczaniu w sieć wabików, czy przygotowanie do konkretnej infekcji, to hakerzy mogą wykorzystywać algorytmy klasyfikujące, aby określi, czy dana osoba lub system należy do odpowiedniej grupy. Wyobraźcie sobie sytuację, że posiadasz już tysiące adresów email i chcecie rozesłać swoje złośliwe oprogramowanie tylko do tych ludzi, którzy są najbardziej skłonni do kliknięcia danego linka, nie rozpoznają potencjalnego zagrożenia. W ten sposób można poważnie zmniejszyć szanse działu bezpieczeństwa. W tym przypadku można użyć kilku czynników. Na przykład można wydzielić użytkowników na takich, którzy piszą na tematy związane z IT na swoich kontach społecznościowych i na takich, którzy wolą jedzenie, koty, czy zdjęcia swoich dzieci. Jako napastnik na pewno wybrałbym tą drugą grupę. Oczywiście do grupowania potencjalnych celów można używać różnych algorytmów. Jeśli natomiast chodzi o gromadzenie informacji na potrzeby ataków kierunkowych, to tutaj tak naprawdę istnieje tylko jeden cel, jakim jest czasami złożona infrastruktura, a główną misją algorytmów uczenia maszynowego może być próba zebrania jak największej liczby informacji o danej sieci. Oczywiście tutaj głównym pomysłem będzie na pewno zautomatyzowanie wszystkich oczywistych czynników, jakie pomogą podczas gromadzenia informacji o sieci. Oczywiście istnieją narzędzia, które są z założenia skanerami sieciowymi czy snifferami ruchu, co de facto umożliwia analizę tradycyjnych sieci, ale należy pamiętać, że w przypadku sieci nowej generacji, gromadzenie informacji może być naprawdę utrudnione. I właśnie w przypadku sieci nowej generacji uczenie maszynowe może naprawdę pomóc przestępcy.

Jedną z mało znanych ale interesujących koncepcji jest tutaj atak nazywany Know Yur Enemy. Jest to przykład umożliwiający pozostanie w ukryciu oraz zebranie jak największej ilości informacji o sieci docelowej. Jest to wręcz idealny przykład użycia uczenia maszynowego do zadania zbierania informacji. Jeśli przestępca się naprawdę postara, to dane, które będą analizowane mogą obejmować zarówno konfigurację narzędzi bezpieczeństwa, jak i parametrów służących do wirtualizacji, a dopiero na koniec ogólne zasady sieciowe, takie jak QoS. Można analizować warunki, w jakich dana reguła jest wypychana z danego urządzenia sieciowego do sieci docelowej oraz jej typ. To wszystko może pozwolić na zebranie poufnych informacji na temat danej sieci.

Podczas samej fazy badania, która może się składać z szeregu prób wywołania przez atakującego instalacji i uruchomienia określonych reguł na określonym urządzeniu sieciowym, przestępca może uzyskać dostęp do jakiś specyficznych cech ruchu sieciowego, które mogą zawierać interesujące informacje.

W następnej fazie ataku można przeanalizować korelacje pomiędzy ruchem użytym do sondowania, a odpowiednimi regułami przepływu ruchu, jakie są zainstalowane w danej sieci. Na podstawie tej analizy można wywnioskować, jakie zasady sieciowe są wdrożone dla określonego typu ruchu sieciowego. Na przykład osoba atakująca może się dowiedzieć, że polityka obronna w danym segmencie sieci jest wdrażana poprzez filtrowanie ruchu sieciowego. W tym celu można oczywiście użyć dowolnego narzędzia do skanowania sieci, ale jeśli robi się to ręcznie, to samo zebranie odpowiednich danych może zająć setki roboczogodzin, a i tak w następnym kroku trzeba będzie stworzyć odpowiednie algorytmy ze wstępnie skonfigurowanymi parametrami. Przykładem może być liczba pakietów, które są niezbędne do podjęcia decyzji o włączeniu określonej reguły w ruchu sieciowym. Jest to bardzo trudne do określenia i tutaj może przyjść z pomocą właśnie uczenie maszynowe.

Mimo że powyżej podaliśmy dwa ogólne przykłady, to należy pamiętać, że wszystkie zadania związane ze zbieraniem informacji wymagają dużej ilości czasu. Najfajniejsze jest właśnie to, że nawet automatyczne skanery, na przykład DirBuster (narzędzie do skanowania dostępnych plików i katalogów, także można ulepszyć, dodając jakiś rodzaj algorytmów genetycznych, LSTM lub GAN, aby generować nazwy katalogów, które są podobne do tych już istniejących.

Uczenie maszynowe do personifikacji

W dzisiejszych czasach cyberprzestępcy coraz częściej podszywają się pod inne osoby, aby atakować swoje ofiary na różne wyrafinowane sposoby, w zależności od kanału komunikacji z potencjalną ofiarą oraz swoich potrzeb. Bardzo często atakujący są w stanie przekonać swoje ofiary do kliknięcia linka zawierającego exploit lub złośliwe oprogramowanie. Zwykle robią to za pomocą odpowiednio spreparowanych wiadomości email lub innych metod inżynierii społecznej. Jednocześnie dzisiaj nawet rozmowa telefoniczna może spowodować wymuszenie odpowiedniego zachowania. Przecież tak działają metody na wnuczka lub policjanta. Spamowe wiadomości email to jeden z najstarszych obszarów, w jakim zastosowano uczenie maszynowe w dziedzinie bezpieczeństwa. Jednocześnie można powiedzieć, że będzie to na pewno jeden z pierwszych obszarów, jakim powinni się także przestępcy. Zamiast ręcznie generować wiadomości spamowe, mogą nauczyć sieć neuronową pisania wiadomości, które będą wyglądały jak prawdziwy adres email.

Jednak jeżeli mamy już do czynienia ze spamem email, to bardzo trudno jest napisać wiadomość w ten sposób, w jaki by to zrobiła dana osoba. Zauważcie, że nawet jeśli poprosicie pracowników za pomocą wiadomości email o zmianę hasła lub kliknięcie na jakiś link i pobranie aktualizacji w imieniu administratora firmy, to nigdy nie napiszesz tego maila dokładnie tak jak dana osoba. Po prostu nie da się skopiować określonego stylu nie mając wystarczająco dużo próbek.

Całkowicie inaczej ma się rzecz w przypadku ataków phishingowych w mediach społecznościowych. Największą przewagą tego typu ataku jest rozgłos (czyli można spokojnie obstawić, że więcej użytkowników kliknie) oraz łatwość dostępu do danych użytkowników. Tutaj można między innymi obserwować oraz uczyć się zachowania użytkowników po prostu czytając ich posty. Pomysł ten został przeanalizowany w jednym z badań o tytule Weaponizing Data Science for Social Engineering - Automated E2E spear phishing in Twitter. W tym badaniu zaprezentowano narzędzie SNAP_R, które jest zautomatyzowanym narzędziem, pozwalającym zwiększyć zasięg kampanii phishingowych. Wyniki badania pokazują, że automatyczny pishing posiada dokładność od 5 d 14%, ręcznie ukierunkowany atak około 45%, natomiast phishing przy użyciu SNAP_R wacha się pomiędzy 30 a 66%. W tym nietypowym przypadku został wykorzystany model Markova do generowania tweedów na podstawie poprzednich tweetów użytkowników, a następnie został on przepuszczony przez sieć neuronoą LSTM. LSTM zapewnia większą dokładność, ale wymaga więcej czasu na szkolenie.

Należy pamiętać, że w całkowicie nowej erze sztucznej inteligencji firmy są w stanie stworzyć nie tylko fałszywy tekst, ale także fałszywy głos lub fałszywe filmy. Udowodnił to Lyrebird, startup specjalizujący się w obróbce mediów oraz wideo, tworząc bota, który może nie tylko naśladować głos, ale także mówić jak dana osoba. Należy pamiętać, że z coraz większą ilością danych można tworzyć coraz lepsze rozwiązania. W praktyce jednak nikt nie wie jak działa Lyrebird i przestępcy nie są w stanie używać tej usługi do własnych potrzeb, a więc zwrócą się w kierunku usługi WaveNet od Google, która zapewnia podobne usługi.

Uczenie maszynowe w służbie nieautoryzowanego dostępu

Zawsze po zebraniu informacji o danej aplikacji jest uzyskanie nieautoryzowanego dostępu do kont użytkowników. Każdy cyberprzestępca chciałby uzyskać nieautoryzowany dostęp do sesji danego użytkownika. Najszybszym sposobem jest oczywiście przejęcie konta, ale w przypadku masowego włamywania się na konta użytkowników, pewną blokadę stanowi captcha. Oczywiście problem nie jest nowy i wiele programów może bez problemu rozwiązać proste testy, generowane przez captcha. Rzeczą trochę bardziej skomplikowaną jest segmentacja obiektów. Pierwszy raz segmentacja obiektów została upokorzona 27 czerwca 2012 roku przez Caludię Cruz, Fernando Ucedę i Leobardo Reyesa. Została wtedy wykorzystana metoda maszyn wektorów nośnych (SVM), a reCaptcha było pokonywane z dokładnością do 82 procent. Po tym ataku reCaptcha została znacząco ulepszona, ale zaraz po tym pojawiła się fala artykułów, w których wykorzystano metody głębokiego uczenia do przełamania mechanizmów captcha. W 2016 roku badaczom udało się przełamać simple-captcha z dokładnością 92%, używając głębokiego uczenia maszynowego.

W kolejnym badaniu wykorzystano jedno z najnowszych osiągnięć w rozpoznawaniu obrazu – głębokie sieci szczątkowe z 34 warstwami, które przełamały captcha w IRCTC, popularnej indyjskiej witrynie internetowej, również z dokładnością 95-98%. Artykuły te obejmowały głównie łamanie captcha opartego na znakach. Ale na przełom miał dopiero nadejść.

Najbardziej inspirującycm badaniem była publikacja na jednej z konferencji BlackHat. Całość badania nazwano „I’m the robot”. Badacze złamali najnowsze obrazy semantyczne w reCaptcha i pokazali różne algorytmy uczenia maszynowego, które potrafią złamać semantyczne obrazy, niektóre z dokładnością do 98%. Obecnie czas potrzebny na złamanie captcha wacha się od kilku sekund do kilku minut.

Kolejnym ważnym obszarem, jaki może zostać wykorzystany przez przestępców jest testowanie hasła za pomocą brutalnej siły. Temat ten jest starszy od samego głębokiego uczenia. Modele Markova były pierwszymi modelami, jakich używało się do zgadywania haseł i działo się to już w 2005 roku. Jeśli interesujecie się tematem uczenia maszynowego i znacie obecne sieci neuronowe, to zapewne słyszeliście o sieciach neuronowych, które generują nowy tekst na podstawie wyuczonego tekstu. Na przykład, jeśli nakarmimy sieci neuronowe działami Franka Herberta, to sieć na tej podstawie będzie mogła stworzyć całkowicie nowy tekst. Ten sam pomysł można oczywiście wykorzystać przy próbach generowania nowych haseł. Jeśli wytrenujemy sieć neuronową na podstawie najpopularniejszych haseł, to możemy ją zmusić do wygenerowania kolejnych. Ta metoda jest o wiele bardziej skuteczna niż zastępowanie liter znakami specjalnymi czy cyframi.

Oczywiście do łamania haseł można zastosować także inne podejście o nazwie PassGAN. W tym przypadku wykorzystuje się GAN – generatywne sieci neuronowe – do generowania haseł. GAN to specjalny typ sieci neuronowych, który składa się z dwóch sieci, jedna z nich jest generatywna, a druga dyskryminująca. Podczas gdy sieć generatywna generuje kontradyktoryjne przykłady, sieć dyskryminująca sprawdza, które elementy mogą rozwiązać problem. Załóżmy, że szkolenie oprzemy o dane, jakie wyszły podczas wszystkich naruszeń danych, a pomysł może wyglądać naprawdę obiecująco dla cyberprzestępców.

Machine Learning przechodzi do ataku

Czwartym obszarem, w jakim uczenie maszynowe może zostać użyte przez przestępców jest faktyczny atak. Ogólnie rzecz biorąc istnieją trzy główne cele ataków: szpiegostwo, sabotaż i oszustwo. W dzisiejszych czasach tego typu ataki odbywają się przy użyciu złośliwego oprogramowania, oprogramowania szpiegującego, ransomware, lub innego rodzaju złośliwego oprogramowania, które użytkownik może pobrać w wyniku ataku phishingowego lub po prostu znajdują jakiś inny sposób na umieszczenie danego programu na komputerze ofiary.

Należy pamiętać, że jeśli chodzi o samą obronę, to wszelkiego rodzaju uczenie maszynowe było pierwszym zastosowaniem uczenia maszynowego w bezpieczeństwie. Istnieją setki prac opisujących wykrywanie złośliwego oprogramowania za pomocą sztucznej inteligencji.

Ale teraz odwróćmy trochę role i zastanówmy się, jak wykorzystać uczenie maszynowe do tworzenia złośliwego oprogramowania. Temat także nie jest nowy. Pierwszy dobrze znany przykład wykorzystania sztucznej inteligencji został przedstawiony w roku 2017 w opracowaniu pod tytułem Generating Adversarial Malware Examples for Black-Box Attacks Based on GAN”. Autorzy zbudowali sieć o nazwie MalGAN.

W tym badaniu zaproponowano algorytm do generowania złośliwego oprogramowania, które będzie w stanie minąć modele wykrywania oparte na uczeniu maszynowym za pomocą czarnej skrzynki. Przedstawiony algorytm okazał się znacznie lepszy niż tradycyjne przykłady algorytmów generacyjnych opartych na gradiencie i jest w stanie zredukować współczynnik detekcji praktycznie do zera. Algorytm był dosyć prosty. System pobierał oryginalne próbki złośliwego oprogramowania jako dane wyjściowe i wejściowe. Nieliniowa struktura sieci neuronowych umożliwia generowanie bardziej złożonych i elastycznych przykładów w celu oszukania modelu docelowego.

Wspomniałem wcześniej, że istnieją trzy główne cele ataków: szpiegostwo, sabotaż i oszustwo, a większość z nich jest przeprowadzana przez złośliwe oprogramowanie. Niemniej jednak istnieje inny stosunkowo nowy typ ataków, który można uznać za sabotaż i nazywa się go Crowdturfing. Mówiąc prościej, crowdfunding to złośliwe wykorzystanie usług crowdsourcingowych. Na przykład osoba atakująca płaci pracownikom trochę gotówki za napisanie negatywnych recenzji online na strnach konkurencyjnej firmy. Ponieważ piszą je prawdziwi ludzie, recenzje te często pozostają niewykryte, ponieważ zautomatyzowane narzędzia szukają atakujących oprogramowania.

Inne opcje mogą obejmować masowe śledzenie, ataki DoS lub generowanie fałszywych informacji. Przy pomocy uczenia maszynowego cyberprzestępcy mogą obniżyć koszty tych ataków i zautomatyzować je. W artykule badawczym „Automated Crowdturfing Attacks and Defenses in Online Review Systems”, opublikowanym we wrześniu 2017 r., Przedstawiono przykład systemu, który generuje fałszywe recenzje na Yelp. Zaletą były nie tylko świetne recenzje, których nie można wykryć, ale także recenzje z lepszymi wynikami w porównaniu z ocenami od człowieka.

Uczenie maszynowe w służbie przestępcom – zastosowania zaawansowane

Doświadczeni hakerzy mogą korzystać z uczenia maszynowego w różnych obszarach, aby zautomatyzować określone niezbędne zadania. Trudno powiedzieć, kiedy i co dokładnie zostanie zautomatyzowane, ale ponieważ organizacje zajmujące się cyberprzestępczością mają setki członków, różne rodzaje oprogramowania, np. mogą pojawić się portale wsparcia lub boty wsparcia. Jeśli chodzi o konkretną cyberprzestępczość, istnieje nowy termin - Hivenet - czyli inteligentne botnety. Chodzi o to, że jeśli botnety są zarządzane ręcznie przez cyberprzestępców, hivenety mogą mieć coś w rodzaju mózgu, aby dotrzeć do określonego zdarzenia i, w zależności od zdarzenia, zmienić jego zachowanie. Wiele botów będzie siedzieć na urządzeniach i, w zależności od zadania, zdecydują, kto będzie teraz korzystał z zasobów ofiary. To jak łańcuch pasożytów żyjących w organizmie.