Malware + Machine Learning (ML) - czy to ma sens? Kamil Frankowicz SECURE 2018, Warszawa
$whoami Kamil Frankowicz Senior Security Engineer @ CERT.pl Wyszukiwanie & analiza podatności Analiza złośliwego oprogramowania kamil.frankowicz@cert.pl frankowicz.me @fumfel
O czym będzie? Wprowadzenie do ML oraz procesu analizy złośliwego oprogramowania Ile czasu zajmuje dokładne poznanie rodziny malware? Ile zarabia analityk malware w USA? W jaki sposób można usprawnić proces analizy manualnej? Zagrożenia analizy wspomaganej AI Czy można uzyskać 99,5% skuteczności detekcji?
Uczenie maszynowe (ML)
Po co wprowadzenie?
Uczenie maszynowe (ML) Machine Learning - algorytmiczny sposób opisu cech danych i ich rozpoznawania: Nadzorowany - wykorzystanie danych testowych Bez nadzoru - rozwiązanie problemu optymalizacyjnego (np. klastrowanie)
Praktyczne uczenie maszynowe to nie...
Praktyczne uczenie maszynowe to......rozpoznawanie wzorców z wykorzystaniem metod statystycznych.
ML - Usystematyzowanie
Typowa analiza malware
Od próbki do biurka analityka...
Analiza nowej rodziny od zera Mniej więcej około trzy miesiące do wstępnej automatyzacji. Ale niestety często dłużej! Analizę mogą przyspieszyć różne wydarzenia: wyciek kodu źródłowego, wiedza od innych badaczy, posiadanie informacji o powiązanych kampaniach.
Analiza nowej rodziny = $$$$ Średnie roczne zarobki analityka malware w USA: 100-130 tysięcy USD (373 tysiące PLN - 485 tysięcy PLN; 1 PLN = 0.268 USD). ML ma duże szanse zmniejszyć koszty analizy i czas trwania analizy...co przekłada się na szybsze zabezpieczenie systemów klientów oraz wymianę informacji.
Gdzie w tym procesie jest nisza dla ML?
Jak ML usprawnia ręczną analizę?
95% manualnej analizy
Automatyzacja ręcznej analizy class XrefsForm(idaapi.PluginForm): def init (self, target): idaapi.pluginform. init (self) self.target = target if type(self.target) == idaapi.cfunc_t: self. type = XREF_EA self. ea = self.target.entry_ea elif type(self.target) == idaapi.cexpr_t and \ self.target.opname == 'obj': self. type = XREF_EA self. ea = self.target.obj_ea
Statyczne rozpoznawanie rodzin
Statyczne rozpoznawanie rodzin Metadane, Rozkład entropii między ciągami bajtów, Dystrybucja opkodów, Częstotliwość wykorzystania rejestrów CPU, Deklaracje zmiennych w ASM, Wykorzystanie WinAPI, Własności sekcji pliku PE.
Statyczne rozpoznawanie rodzin
Statyczne rozpoznawanie rodzin
Dynamiczna detekcja złośliwego kodu
Dynamiczna detekcja złośliwego kodu "api": "NtAllocateVirtualMemory", "return_value": 0, "arguments": {"process_identifier": 2560, "region_size": 4096, "stack_dep_bypass": 0, [...] }
Klasyfikacja próbki
ML + malware =?
Zagrożenia ML w domenie malware u Niewłaściwa klasteryzacja próbki Kradzieże mechanizmu rozpoznawania (modelu) Umieszczenie backdoora w klasyfikatorze Smart malware
Adversarial examples
Adversarial examples Znalezienie modyfikacji reprezentacji danych wejściowych, generującej zmianę granicy decyzyjnej - inaczej: pandy w gibona. Systemy Computer Vision są bardzo wrażliwe, nawet na niewielkie perturbacje danych (przyciemnienie, zmiana balansu bieli).
Po co kraść model malware owy? Trening wymaga dużo zasobów: Dane Wiedza Sprzęt Czas Można go sprzedać lub udostępnić w modelu MLaaS, Pozyskanie danych uczących - informacja dla przestępców jak mogą się bronić!
Backdoory w modelach
Smart malware Co się stanie kiedy malware zacznie korzystać z ML lub AI? Skuteczniejsze wykorzystanie podatności do infekcji, Osadzenie złośliwej logiki w AI, Zaawansowane wykrywanie celu i środowiska ataku: Rozpoznawanie twarzy i głosu otoczenia, Śledzenie aktywności systemu operacyjnego i użytkownika, Śledzenie lokalizacji (geograficznej, sieciowej)
AI versus AI?
AI versus AI? - Pytania ciągle otwarte... Jak wykrywać ataki na mechanizmy uczenia? Jak monitorować wykorzystanie AI? W jaki sposób rozpoznać czy malware wykorzystuje AI? Jak przeprowadzać analizę smart malware? Jak stwarzać warunki do sandbox owania inteligentnego malware u?
Jak przeprowadzać analizę AI? 1) 2)
Fuzzing sieci neuronowych! ( ʖ )
Wykrywalność > 99,5%?
To możliwe! ( ʖ ) Źródło
Zagadnienie jest gorące ( ʖ ) Najwięksi dostawcy oprogramowania już to robią, np. Microsoft pokazał na przykładzie ataku malware Emotet jak wykrywa zagrożenia w ten sposób. Pojawia się bardzo dużo nowych podejść w pracach naukowych, które oferują podobny stopień wykrywalności jak w pracy zwycięzców Microsoft Malware Classification Challenge.
Zagadnienie jest gorące ( ʖ ) Równolegle rodzi się olbrzymi postęp w tematyce bezpieczeństwa AI, jego analizy oraz sposobów exploitacji. Jako analitycy czekamy na pierwszą rodzinę malware, która zaskoczy nas w tej kwestii :-)
Slajdy frankowicz.me/secure201 8
Q&A Pytania?
Kontakt kamil.frankowicz@cert.pl fumfel@cert.pl kamil@frankowicz.me @fumfel cert@cert.pl