FUD czy malware zero day? Co to jest i jak brzmi poprawne nazewnictwo?
13.06.2013 10:48
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.
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.
- 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