Artykuł ten ma na celu zbadanie poprawności nazewnictwa wirusów FUD – całkowicie niewykrywalny / nieusuwalny, z jęz. ang. Fully Undetecdable lub Fully Unremovable; UD – wykrywalny; oraz tak powszechnie stosowana nomenklatura malware zero day.
Do napisania tego artykułu zainspirowała mnie informacja, jakoby Zero Day odnosił się tylko do exploitów, a w przypadku nowego malware – FUD. Tak więc, czy „malware 0-day” jest poprawną nomenklaturą niewykrywalnych wirusów?
Czym jest FUD?
Całkowicie niewykrywalny nie odnosi się tylko do nowych i nienznaych wirusów. Przykład: jeśli złośliwy kod napisany w PHP zostanie wykryty przez program antywirusowy będzie on wykrywalny, ale jeśli ten sam kod zaszyfrujemy w Base64, który najpierw powinien odszyfrować się z Base64, a później wykonać zawarty tam kod, w ten sposób plik będzie znowu niewykrywalny. Jednak czasami pozyskanie kodu źródłowego malware staje się niemożliwe dla ponownej kompilacji w FUD. W takim wypadku stosuje się cryptory lub cryptery. Crypter posiada dwa pliki: builder oraz stub. Stub jest „mini” programem, który w zależności od autora będzie przechowywał drugi plik. Builder szyfruje wybrany plik zazwyczaj algorytmami XOR, RC4, TEA, 3DES. Np. builder szyfruje wykrywalny plik przy pomocy algorytmu z kluczem i zapisuje go w postaci RESOURCES w stub’ie. Stub jest niewykrywalny, zbudowany z dekodera oraz loadera. Stub pobiera z sekcji RESOURCES zaszyfrowany malware, by następnie przy pomocy klucza odszyfrować malware w pamięci. W następnym kroku, loader uruchamia malware z dropem lub bez drop’u. Z drop’em – oznacza to, że dekoder odkodowuje plik, zapisuje go na dysku i dopiero teraz loader uruchamia malware. Jeśli malware uruchamiane jest bez drop’u – oznacza to, że uruchamiany jest bezpośrednio w pamięci.
Tak więc, czym różni się FUD od UD?
UD jest wykrywalny przez co najmniej jeden program antywirusowy. UD – undectable odnosi się do znanych malware (know malware), ale tylko o ograniczonym zakresie zdolnych do wykrycia / usunięcia go skanerów antywirusowych. UD odnosi się także do unremovable (nie do usunięcia) – nieznany w sygnaturach, ale malware UD może być wykryte przez analizę heurystyczną.
Jeśli znany jest przynajmniej jeden sposób usunięcia – skanerem antywirusowym lub ręcznie np. po analizie logów z aplikacji firm trzecich takich jak OTL czy GMER (w przypadku rootkitów) to malware nie jest już FUD – mówi Arkadiusz Zakrzewski – Specjalista pomocy technicznej AVG.
Z chwilą pierwszego ataku, który powoduje ujawnienie się malware`u, następuje wykorzystanie 0-day`a i rusza proces zdobycia sampla, analiza i zniesienie statusu FUD, dystrybucja aktualizacji, która obejmuje nowy malware.>
FUD – dotyczy tylko wyłącznie procesu „wykrywania”. Przedmiotem wspomnianej detekcji może być exploit, shellcode czy payload. Najcześciej w parze z 0day idzie FUD exploit, FUD shellcode (często) oraz FUD payload (czyli malware, który został pobrany za pomocą shellcode).
Czym jest Zero Day?
– Wypowiedź nie jest oficjalnym stanowiskiem AVG, lecz opinią Arkadiusza Zakrzewskiego, specjalisty pomocy technicznej.
Moim zdaniem 0day jest określeniem powagi zagrożenia, a nie jego typu. Zero day to zawsze priority very high/critical czyli incydent o bardzo dużym zagrożeniu, bo albo jest możliwy atak na bardzo dużej liczbie użytkowników np. luka w bardzo popularnym oprogramowaniu – przykład idealny to od zatrzęsienia 0day na IE czy Flasha albo atak 0-day jest bardzo dużym zagrożeniem np. kompletne rozkładanie na łopatki Windowsów przez exploit..
0-day to też atak z wykorzystaniem luki, która nie jest nikomu znana, szczególnie developerom danej aplikacji. Nowy exploit na starą dziurę w Windows już nie będzie 0-day`em bo do ataku wykorzystuje już znaną lukę, dla której albo istnieje już patch/workaround i infekcja ma szanse powodzenia tylko na nieaktualnym oprogramowaniu albo taki patch jest w trakcie opracowywania, a więc żywot infekcji na taką lukę będzie bardzo krótki.”
0-day odnosi się tylko do luk w oprogramowaniu czyli exploitów. Zero-day mówi nam, ile dni miał producent danego oprogramowania na załatanie dziury. Jak nazwa wskazuje, producent miał 0 dni, czyli mamy do czynienia ze scenariuszem:
- wykrycie dziury
- stworzenie exploita
- dystrybucja wild
Pierwsze informacje o luce pochodzą z dystrybucji „wild” czyli od userów, którzy padli ofiarą exploita. Specjaliści analizują exploita i dowiadują się o lokalizacji dziury w programie. Sumarycznie, producent miał 0 dni na załatanie dziury, bo nawet o niej nie wiedział (lub wiedział ale nic nie zrobił).
„Malware zaś to ogólne określenie złośliwego oprogramowania. Zarówno exploit jak i backdoor czy trojan mieszczą się w definicji malware`u i każdy z nich może być poziomu 0day threat, czyli po pierwsze wykorzystywać nieznaną i niezabezpieczoną wcześniej lukę, a po drugie atakować popularne oprogramowanie (to najczęściej spotykane 0-day`e) – mówi Arkadiusz Zakrzewski.
Nomenklatura wg F-Secure
_Jakaś_Nazwa_.0Day.Malware jest to nazwa dla nowego, niezdefiniowanego malware wykrytego przez sygnatury generyczne. Jeśli o takiej nazwie zostanie zablokowane zagrożenie oznacza to, że malware jest niezdefiniowane i nie posiada podpisu w postaci definicji. Jednakże zagrożenie może zostać wykryte za pomocą analizy heurystycznej, czyli w przypadku F-Secure – za pomocą technologii zwanej Zero-Hour Protection zaimplementowanej w niektóre produkty F-Secure z rodziny Antivirus. W przypadku przeanalizowania wirusa, nomenklatura np. Email.0Day.Malware zostaje zastąpiona generyczną, rodzajową nazwą malware.
Podsumowując
– nomenklatura zero day to nie tylko luka w oprogramowaniu, ale także powaga zagrożenia
– malware 0 day to poprawne nazewnictwo nowych wirusów, które wykorzystują nowe, nieznane luki lub atakują oprogramowanie (backdoor, exploit, trojan)
– malware FUD to nazewnictwo niewykrywalnych wirusów przez skanery antywirusowe (z definicji oraz poprzez heurystykę)
– FUD dotyczy wyłącznie procesu wykrywania
Malware 0 day = malware FUD
Czy ten artykuł był pomocny?
Oceniono: 0 razy