14/08/2018

iŚmierć eVoldemorta

Projekt specjalny

Bajki i historie fantastyczne od dawna powtarzają mit o tym, że nie można pokonać wszechmocnych agentów ani złoczyńców (my od ponad 20 lat walczymy z tym samym mitem w cyberprzestrzeni). Każdy Voldemort wierzy, że jego pamiętnik, pierścień, wąż itd. są bezpieczne (nie będę wymieniał dalej — na pewno wszystko wiecie o horkruksach). Sukces w wojnie ze złymi mocami — obojętne, czy w świecie bajkowym, czy wirtualnym — zależy od dwóch kluczowych cech: wytrwałości i intelektu (czyli technologii). Dziś opowiem Wam, jak ta wytrwałość i intelekt, w połączeniu z wbudowanymi w nasze produkty sieciami neuronowymi, uczeniem maszynowymochroną w chmurze i wiedzą ekspercką, chronią przed cyberzagrożeniami, które mogą potencjalnie pojawić się w przyszłości.

Nie raz już opisywałem technologie służące do ochrony przed przyszłymi cyberzagrożeniami: tututu. Pewnie zastanawiacie się, dlaczego mam na ich punkcie taką obsesję.

Technologie te pozwalają nam odróżnić silną ochronę od fałszywej sztucznej inteligencji i produktów, które używają kradzionych informacji do wykrywania szkodliwych programów. Nikt nie potrzebuje rozpoznawania sekwencji kodu na podstawie znanej sygnatury, gdy szkodliwy program już przedostał się do systemu i zrobił swoje. Kolos na glinianych nogach.

Przewidywanie schematów myślowych, którymi kierują się cybernetyczni złoczyńcy, eliminowanie luk, które są dla nich atrakcyjne, czy rozprzestrzenianie niewidocznych sieci potrafiących wykrywać w sposób automatyczny i natychmiastowy — niestety to potrafi niewielu graczy w naszej branży. A tak naprawdę bardzo niewielu, jak pokazują niezależne testy. Najlepszym przykładem jest tu WannaCry, największa epidemia tego dziesięciolecia: dzięki technologii Kontrola systemu nasze produkty proaktywnie chroniły naszych użytkowników przed tym cyberatakiem.

Nie można za bardzo ochronić się przed cyberzagrożeniami, które pojawią się w przyszłości. Nie istnieje żaden emulator czy system, który potrafiłby profesjonalnie analizować wielkie zbiory danych i który brałby pod uwagę wszystkie prawdopodobne wektory zagrożeń. Niewidzialne sieci powinny w maksymalnie możliwym stopniu objąć każdy poziom i kanał, nieustannie śledząc aktywność wszystkich obiektów w systemie w celu uniemożliwienia im wyrządzania szkód; a wszystko przy minimalnym wykorzystaniu zasobów, bez wywoływania fałszywych alarmów i w całkowitej zgodności z innymi aplikacjami, aby nie wywoływać niebieskich ekranów śmierci.

Rynek szkodliwych programów także się rozwija. Cyberoszuści nauczyli (i nie spoczywają na laurach) swoje twory, jak efektywnie ukrywać się w systemie: zmieniać swoją strukturę i zachowanie, przełączać się w „niespieszny” tryb działania (minimalizować użycie zasobów obliczeniowych, wychodzić z trybu uśpienia zgodnie z harmonogramem, nie wykonywać żadnych działań tuż po przedostaniu się do komputera docelowego itp.), zagnieżdżać się głęboko w systemie, ukrywać swoje ślady, używać „czystych” lub „prawie czystych” metod działania. Ale tam, gdzie jest Voldemort, tam są również horkruksy, które można zniszczyć, aby zakończyć jego marny żywot. Pozostaje pytanie, jak je znaleźć.

Kilka lat temu w naszych produktach zastosowaliśmy ciekawy wynalazek (patent RU2654151), który ulepszył technologie proaktywne służące do ochrony przed zaawansowanymi cyberzagrożeniami. Wykorzystuje on możliwy do wytrenowania model zachowania obiektów w celu precyzyjnego rozpoznawania podejrzanych anomalii w systemie, lokalizacji źródła i eliminowania nawet najbardziej „ostrożnych” robaków.

Jak to działa?

Każdy aktywny obiekt pozostawia na komputerze ślady. Korzystanie z dysku twardego, pamięci, dostęp do zasobów systemowych, przesyłanie plików przez sieć — w ten czy inny sposób każdy szkodliwy program ostatecznie się ujawni, nawet ten najbardziej wyrafinowany. Co ciekawe, takich śladów nie można całkowicie usunąć, a próby ich zatarcia generują jeszcze więcej oznak.

W jaki sposób rozpoznajemy, które ślady należą do legalnych aplikacji, a które do szkodliwych? Skąd wiemy, że w komputerze brakuje mocy obliczeniowej?

Produkt antywirusowy gromadzi informacje na temat aktywności aplikacji (wykonywane polecenia, ich parametry, dostęp do krytycznych zasobów systemu itp.) i wykorzystuje je do tworzenia modeli zachowań, wykrywania anomalii i obliczania czynnika szkodliwości. Warto zauważyć, że zależy nam nie tylko na niezawodności, ale i szybkości działania. Dlatego stosujemy matematykę, a dokładniej skrót matematyczny.

Wynikowy model zachowania zostaje mocno spakowany — co z jednej strony zachowuje wymagany poziom szczegółowości informacji na temat zachowania obiektu, a z drugiej nie angażuje wielu zasobów systemowych. Działania tej technologii nie dostrzeże nawet osoba, która uważnie monitoruje wydajność komputera.

Przykład:

Obliczanie współczynnika szkodliwości wykorzystuje cztery atrybuty zewnętrzne:

  • typ obiektu (wykonywalny / inny niż wykonywalny),
  • rozmiar (więcej/mniej niż 100 kB),
  • źródło (pobrany z internetu czy rozpakowany z archiwum na dysk USB),
  • popularność (więcej/mniej niż 1000 instalacji na podstawie statystyk KSN).

I cztery atrybuty zachowania:

  • Czy obiekt przesyła dane przez sieć?
  • Czy obiekt odczytuje dane z dysku twardego?
  • Czy obiekt dodaje dane do rejestru?
  • Czy obiekt wchodzi w interakcje z użytkownikiem przy użyciu interfejsu okna?

Na każde pytanie można odpowiedzieć tylko Tak (1) lub Nie (0).

Wobec tego plik app.exe o rozmiarze 21 kB, wypakowany z archiwum otherstuff.zip, wykryty na 2113 komputerach, który nie odczytuje danych z dysku twardego, przesyła dane przez sieć, nie ma interfejsu okna i dodaje dane do rejestru, pojawi się jako:

1 0 0 1 1 0 1 0

Jeśli przedstawimy go jako 8-bitową liczbę całkowitą, otrzymamy 0b10011010 = 154. To właśnie nazywamy skrótem. Jednak inaczej niż w przypadku używania klasycznej funkcji skrótu (np. MD5 czy SHA-1), nasza technologia skrótu jest znacznie inteligentniejsza. W rzeczywistości rejestrowane są tysiące atrybutów obiektów tworzących wiele skrótów, które są wykorzystywane przez uczący się model do identyfikowania wzorców. Wszystko to składa się na tak dokładny wzór zachowania, jaki tylko można uzyskać. I dzieje się to bardzo szybko.

Zupełnie inną historią jest współczynnik szkodliwości; zarówno szkodliwy program, jak i legalne aplikacje mogą wykazywać identyczne zachowanie. Na przykład wiele aplikacji umieszcza dane w folderze systemowym. Jak rozpoznać, które z nich robią to w ramach swoich legalnych obowiązków, a które mają szkodliwe zamiary?

Po pierwsze, współczynnik ten działa na zasadzie kumulacji, a mówiąc dokładniej wzrasta jednostajnie. Z biegiem czasu umożliwia to wykrycie szkodliwego programu niższego szczebla bez wywoływania fałszywego alarmu — podejrzana aktywność (np. modyfikacja rejestru systemu występująca podczas instalacji każdej aplikacji) występująca w krótkim czasie nie wzbudzi podejrzeń antywirusa. Wynikowy skrót jest sprawdzany przez „czarną skrzynkę” wytrenowaną sieć neuronową, która wydaje werdykt, czy zachowanie obiektu ma naturę szkodliwą, czy nie.

Oczywiście technologia ta wiele informacji uzyskuje z KSN — ten wykorzystujący chmurę system umożliwia wymianę informacji na temat podejrzanych próbek oraz ich automatyczną analizę, a także samodoskonalenie się tej technologii w celu zwiększenia dokładności jej werdyktów. Możliwości oferowane przez KSN są wykorzystywane codziennie w celu udoskonalenia sieci neuronowej i wytrenowania jej przez inne algorytmy i ekspertów. Dzięki temu możemy wykrywać nie tylko niebezpieczne pliki, ale także sesje sieciowe, komponenty i inne nanoelementy składające się na całokształt jak puzzle, które ostatecznie prowadzą nas do eVoldemorta.