Metody heurystyczne w cyberbezpieczeństwie
Powszechnie wiadomo, że programy chroniące przed złośliwym oprogramowaniem – wirusami, robakami, trojanami i innymi zagrożeniami typu malware działają poprzez skanowanie plików przy użyciu już posiadanych sygnatur przechowywanych w bazie danych „identyfikatorów” złośliwego oprogramowania. Podpis może być tak prosty, jak wyszukanie ciągu znaków lub tak złożony, jak małe makro lub podprogram, który mówi silnikowi skanującemu, czego szukać i gdzie to znaleźć. Skanowanie sygnatur działa bardzo dobrze w przypadku wykrywania zagrożeń, które zostały już zidentyfikowane, ale w jaki sposób programy antymalware wykrywają nowe, wcześniej niewidziane zagrożenia? Jedną z zastosowanych metod jest heurystyka.
Heurystyka wywodzi się ze starogreckiego słowa oznaczającego „odkrywać”, analiza heurystyczna to podejście do odkrywania, uczenia się i rozwiązywania problemów, które wykorzystuje reguły, estymacje i oparte na wiedzy domysły w celu znalezienia zadowalającego rozwiązania określonego problemu. W informatyce algorytm heurystyczny to algorytm, który jest w stanie stworzyć akceptowalne rozwiązanie problemu w wielu praktycznych scenariuszach, na wzór ogólnego podobieństwa, ale dla którego nie ma jednoznacznie wskazującego, idealnego dowodu na jego istnienie. bazuje na poprawności.
Chociaż ten sposób rozwiązywania problemów może nie być doskonały, jest bardzo skuteczny, gdy zostanie zastosowany w procesach komputerowych, w których wymagana jest szybka odpowiedź lub ostrzeżenie w odpowiednim czasie w oparciu o intuicyjną ocenę. Działa konsekwentnie, szybko i/lu zapewnia dobre wyniki. Ale w przypadku oprogramowania chroniącego przed złośliwym oprogramowaniem heurystyka może mieć również bardziej wyspecjalizowane znaczenie: heurystyka odnosi się do zestawu reguł w przeciwieństwie do określonego zestawu instrukcji programu używanych do wykrywania złośliwego zachowania bez konieczności jednoznacznej identyfikacji programu odpowiedzialnego (jak klasyczny „skaner antywirusowy” oparty na sygnaturach).
Silnik heurystyczny używany przez program chroniący przed złośliwym oprogramowaniem może zawierać reguły dotyczące znajdywania programów, które:
- próbują kopiować się do innych programów (innymi słowy, klasyczny wirus komputerowy),
- próbują zapisywać dane bezpośrednio na dysk,
- starają się usunąć ślady w pamięci po zakończeniu wykonywania,
- odszyfrowują się po uruchomieniu (metoda często używana przez złośliwe oprogramowanie w celu uniknięcia skanerów sygnaturowych),
- łączą się z portem TCP/IP i nasłuchują instrukcji przez połączenie sieciowe (tak właśnie robi bot czasami nazywany też dronem lub zombie),
- manipulują (kopiować, usuwać, modyfikować, zmieniać nazwy,
- zastępować itd.) plikami wymaganymi przez system operacyjny,
- mają zestaw aktywności, który jest podobny do programów znanych już jako szkodliwe.
Dodatkowo analizy mogą obejmować techniki takie jak:
- Analiza plików – podczas analizy plików oprogramowanie skanujące dokładnie sprawdza plik, aby określić jego przeznaczenie, konstrukcję i sposób działania. Na przykład, jeśli celem pliku jest usunięcie określonych plików, może zostać oznaczony jako wirus.
- Emulacja plików – nazywana również skanowaniem dynamicznym lub testowaniem w piaskownicy, emulacja plików testuje plik w kontrolowanym środowisku wirtualnym, aby zobaczyć, co się stanie. Jeśli plik zachowuje się jak wirus, prawdopodobnie jest to wirus.
- Wykrywanie korelacji sygnatur – zaprojektowane do lokalizowania różnych odmian wirusa, wykrywanie korelacji w sygnaturach wykorzystuje poprzednie definicje wirusów do wykrywania wirusów z tej samej rodziny.
Różne reguły heurystyczne mogą mieć większą wagę (a tym samym uzyskiwać wyższe wyniki) niż inne, co oznacza, że dopasowanie jednej konkretnej reguły stanowi o stworzeniu incydentu bardziej, niż kilka dopasowań powiązanych z innymi regułami. Reguły o największej wadze stanowią zwykle o przekazaniu podejrzanego pliku do sandboxingu celem dalszej analizy.
Ogólnie rzecz biorąc – co nie jest deterministyczne (ścisłe powiązanie input-output), jest heurystyczne.A niewątpliwą zaletą heurystycznej analizy kodu jest to, że może ona wykrywać nie tylko warianty (zmodyfikowane formy) istniejących szkodliwych programów, ale także nowe, wcześniej nieznane złośliwe programy – zero days. W połączeniu z innymi sposobami wyszukiwania złośliwego oprogramowania, takimi jak wykrywanie sygnatur, monitorowanie behawioralne i analiza reputacji, heurystyka może zapewnić imponującą dokładność. Oznacza to, że prawidłowo wykrywa dużą część prawdziwego złośliwego oprogramowania i wykazuje stosunkowo niski wskaźnik false-positives. Pamiętajmy, że stosunkowo – w przypadku algorytmu polegającego na podobieństwach – to pojęcie bardzo względne.