BTC Process Classification – schemat działania

Funkcjonalność ta wykorzystuje analizę sekcji, funkcji i plików dll używanych przez badany plik wykonywalny (uruchamiany proces). Pozwala to na spojrzenie „głębiej” w strukturę danego procesu. Pozyskiwane są w ten sposób następujące cechy:   

  • ścieżka instalacji; 
  • nazwa firmy – producenta; 
  • wersja pliku; 
  • wersja produktu; 
  • Copyrights; 
  • Trademarks; 
  • informacje dotyczące sekcji: .text – kod wykonywalny:
    a)  .rsrc – zasoby takie jak: obrazki, audio, tekst itp.;  
    b)  .data – dane inicjalizacyjne; 
    c)  .rdata – dane inicjalizacyjne tylko do odczytu;   
  • lista nazw plików dll, z których korzysta program; 
  • funkcje z plików dll, wykorzystywane przez program; 
  • wszystkie łańcuchy znaków, które niosą informacje o programie. 

Cechy te w wyniku zadziałania narzędzia opisane zostają cechami takimi, jak:  

  • rozmiar; 
  • entropia; 
  • status możliwości zapisywania (czy tylko do odczytu). 

 Analiza powyższych cech pozwala wyodrębnić zestawy charakterystyczne dla każdej z kategorii, co z kolei pozwala na skuteczną klasyfikacje nieznanych procesów do jakich kategorii powinny należeć. Wykorzystanie klasyfikatora liniowego machine learning pozwala na ponad 92% skuteczność predykcji. 

Przykład działania klasyfikatora procesów

Gry komputerowe często wykorzystują funkcje związane z renderowaniem grafiki trójwymiarowej, z kolei komunikatory mają funkcje odpowiedzialne za wysyłanie i wymianę informacji między użytkownikami. Niestety zbiory te nie są rozłączne, tzn. występują takie przypadki, że jeden z procesów posiada cechę lub kilka cech zaobserwowanych w innych procesach z innych klas. Doprowadza to do wniosku, że nie jest możliwe dokonanie klasyfikacji poprzez jedynie wyznaczenie wektora cech analizowanego procesu i porównanie ich z apriorycznie utworzonym wzorcem dla każdej z analizowanych klas.  

Konieczne jest zastosowanie metodologii uczenia maszynowego. Wytworzony w ten sposób model pozwala wnioskować, że odnajdywane są pewne bardziej złożone związki między funkcjami, plikami dll, a kategoriami, na co wskazuje działający z wysoką skutecznością model. Przy czym model ten, nawet w przypadku testowania go uczącym plikiem wykonywalnym, nie zwraca informacji, że dany proces w 100% przynależy do tylko jednej klasy, ale wskazuje na jego przynależność także do innych klas. Należy tu nadmienić, że występują duże dysproporcje w tych wskazaniach, tzn. jedna z klas jest wskazywana jako znacząco dominująca – co uważa się za właściwość bardzo pożądaną. Opisany sposób działania klasyfikatora, oraz wnikliwa analiza macierzy cech doprowadzają do wniosku, że wynikiem działania klasyfikatora nie będzie przypisanie badanego procesu do klasy, a wskazanie na te klasy, których cechy badany proces posiada – ze wskazaniem procentowego stopnia zawierania się w każdej z klas. I tak, np. pomimo istnienia klasy „Gry”, procesy, które są w rzeczywistości typowymi grami komputerowymi mogą posiadać cechy charakterystyczne dla kategorii „Komunikatory”, na przykład wtedy, kiedy w grze komputerowej istnieje moduł odpowiadający za komunikacje między graczami – oznacza to, że wynikiem badania takiego procesu będzie przypisanie go do zbioru oznaczonego jako „Gry” oraz „Komunikatory”, z odpowiednim stopniem przynależności dla każdej z tych klas. 

 Przykładowa odpowiedź z klasyfikatora została pokazana na rysunku poniżej. Plik „matlab.exe” jest plikiem uruchamiającym środowisko do obliczeń matematycznych i przeprowadzania symulacji. Z klasyfikatora procesów otrzymaliśmy informację, że proces ten uznany został jako należący do klasy „Narzędzia deweloperskie” – na poziomie 88%. Biorąc pod uwagę zbiór zdefiniowanych klas uznać należy, że klasyfikator wskazał najtrafniejszą klasę. W środowisku tym możliwe jest programowanie i wykonywanie obliczeń inżynieryjnych. 

BTC Process Classification

Drugie zdjęcie wskazuje odpowiedź klasyfikatora na proces związany z biurowym pakietem Office. 

BTC Process Classification

Stworzona metryka macierzy pomyłek – pokazana poniżej – przedstawia skuteczność klasyfikacji dla każdej kategorii w odniesieniu do innej kategorii; metryka ta pozwala wnioskować, dla której klasy istnieje największe ryzyko pomyłki (wartość na przekątnej jest daleka od wartości 1), a także, dla których kategorii model powinien działać najskuteczniej – wartość na przekątnej jest bliska wartości 1. 

BTC Process Clasification
BTC Projekt EU