Czkawka po latach

Andrey Bayor udowodnił, że wiele programów antywirusowych można oszukać w prosty sposób. Na odkrytą przez niego metodę ataku podatnych jest osiemnaście popularnych systemów antywirusowych.

Andrey Bayor udowodnił, że wiele programów antywirusowych można oszukać w prosty sposób. Na odkrytą przez niego metodę ataku podatnych jest osiemnaście popularnych systemów antywirusowych.

Przyzwyczailiśmy się do tego, że luki w zabezpieczeniach wykrywane są codziennie. Zwykle są to błędy wynikające z niedostatecznego testowania, umożliwiające przepełnienie bufora i wykonanie kodu, który pobiera z Internetu właściwego wirusa lub konia trojańskiego. Bayor nie odkrył jeszcze jednej "drobnej dziurki" w jednym programie, przez którą złośliwy kod mógłby się dostać do wnętrza niewielkiej sieci w sprzyjających okolicznościach. Znalazł sposób, dzięki któremu oszukać można kilkanaście popularnych skanerów antywirusowych. Metoda jest bardzo prosta i rzuca nowe światło na wirusy i ich przyszłość. Ważniejsza jest jednak odpowiedź na pytanie, jak to możliwe, że taki błąd tak długo pozostawał "oficjalnie" niewykryty i ile osób o nim wiedziało.

Sto dwadzieścia bajtów

Problem wykryty przez Andreya Bayora dotyczy podsystemu identyfikacji pliku skanerów antywirusowych. Przed rozpoczęciem skanowania programy antywirusowe wykrywają, jaki format pliku będzie skanowany - czy będzie to plik muzyczny mp3, czy może plik wykonywalny. exe. Starsze programy antywirusowe po prostu sprawdzały rozszerzenie pliku, jednak taka identyfikacja szybko okazała się zawodna. Zastąpiono ją identyfikowaniem typu pliku po nagłówkach binarnych. Przykładowo, pliki wykonywalne (bez względu na rozszerzenie nazwy widoczne dla użytkownika) zawierają w nagłówku litery MZ (w zapisie szesnastkowym będzie to ciąg znaków 0x4D5A).

Na tej metodzie wykrywania opiera się większość popularnych systemów antywirusowych. Nic w tym złego, jednak jest pewien szkopuł: skanowanie wstępne kończy się w momencie znalezienia nagłówka binarnego. W każdym pliku .exe po takim nagłówku jest wolne miejsce. To jedynie 120 bajtów - w sumie nic. Ale nie dla osoby wprawnej w programowaniu w asemblerze! Bayor udowodnił, że ta niewielka ilość miejsca wystarczy, by umieścić w nim kod będący wirusem lub taki, który wywoła wirusa ukrytego w innym miejscu systemu. Jeśli w tym domyślnie wypełnionym zerami obszarze umieszczony będzie kod wirusa, komputer zostanie zainfekowany całkowicie "bezszelestnie". Skaner antywirusowy nie zareaguje, ponieważ wcześniej odnalazł już nagłówek binarny charakterystyczny dla plików .exe i dalszego skanowania nagłówka zaniechał.

Schowek za nagłówkiem

Wiadomo już, że w miejscu "tuż za nagłówkiem" pliku można przechować inne pliki w formacie .bat, .html czy .eml. Przechować, lecz nie uruchamiać. Umieszczenie ukrytego kodu w takim pliku nie spowoduje żadnego niepożądanego działania i plik .exe z osadzonym "obcym" kodem (np. wersja instalacyjna popularnego programu pobieranego z Internetu) będzie dalej normalnie funkcjonować. Jeżeli jednak zmienimy rozszerzenie na inne, np. .html to zostanie wyświetlona strona WWW, która może być zawirusowana. Jeżeli zmienimy rozszerzenie na .eml zostanie wyświetlona wiadomość e-mail, a jeżeli na .bat, będzie uruchomiony jakiś skrypt.

Bayor pokazał, że poleganie na identyfikacji binarnej nie jest tak niezawodne, jak dotychczas sądzono. Programy antywirusowe mogą nie wykryć żadnych problemów, nawet jeżeli w pliku naprawdę znajduje się wirus. Według Bayora inne pliki można z powodzeniem osadzać także wewnątrz plików .bat. Pojawia się pytanie, w jakich jeszcze innych plikach jesteśmy w stanie przenosić ukryte dane? Napisanie niewykrywalnego wirusa będzie teraz banalnie proste. Wystarczy stworzyć plik .exe w asemblerze i kazać mu zmienić jego własną nazwę na taką samą, tyle że z rozszerzeniem .html, a następnie uruchomić jeszcze raz. Po takim zabiegu komputer zostanie zainfekowany bez wiedzy skanera antywirusowego.

Odkrycie Bayora rzuca całkiem nowe światło na to, jak niebezpieczne może się stać otrzymanie wiadomości, z kodem HTML ze skryptem VBScript. Jeżeli w jednym pliku można przechować dwa lub nawet trzy inne, które nie zostaną zbadane przez skanery antywirusowe, gama możliwości przenoszenia i uruchamiania kodu bez wiedzy mechanizmów ochronnych jest ogromna. To już nie mała tylna furtka, ale szeroka brama, umożliwiająca dowolną manipulację komputerem bez wiedzy użytkownika i administratora. Chyba że firmy tworzące systemy antywirusowe pójdą po rozum do głowy i ich produkty zaczną wreszcie skanować całą zawartość plików. To jednak nie jest takie proste. Firmy antywirusowe staną bowiem wtedy przed dylematem: wydajność czy bezpieczeństwo. Problem z "ukrywaniem" kodu w plikach i niezbyt wnikliwe, jak się okazuje, systemy skanowania na pewno zmuszą dostawców do napisania nowych systemów skanowania, co wiąże się z dużymi kosztami. Ale zmiana technologii skanowania będzie konieczna, ponieważ dzisiejsze skanery antywirusowe nie zostały zoptymalizowane do skanowania całych plików.

Wiadomo było od dawna

O tym, że ignorowanie partii kodu będzie potencjalnie niebezpieczne, wiadomo było od dawna. Producenci nie mogli nie wiedzieć, jak bardzo sytuacja jest poważna. Nie mogli nie wiedzieć, że scena hakerska jest świadoma problemu i na pewno go wykorzysta. Historie o źle skanowanych nagłówkach już kilka lat temu krążyły jak mit po grupach dyskusyjnych (monitorowanych przez środowisko producentów) i budziły wielkie zainteresowanie wśród dyskutantów.

Jako przykład można podać wirus sprzed 3 lat (nazwy już nie pamiętam). Wykorzystywał on błąd w interpretacji nagłówka, umożliwiając zapisanie na dysku strony WWW zawierającej moduł ActiveX, a przy tym nie był rozpoznawany przez żadne skanery antywirusowe. Owego wirusa stworzyła grupa o niedwuznacznej nazwie Blackhat, o której w owym czasie było w półświatku głośno. Scena wiedziała o problemie, potrafiła go nawet użyć, lecz niestety programy te były tylko przekompilowanymi uruchamialnymi plikami, nie można było podejrzeć ich kodu źródłowego ani przeanalizować. Grupy hakerskie dobrze dbały o swoje tajemnice.

Dlaczego doszło do tak poważnego problemu - i to z aż tak dużą ilością produktów? Najprawdopodobniej zwyciężyły względy "praktyczno-marketingowe". Pozostawianie tylnych wejść hakerom na pewno nie jest rozwiązaniem rozsądnym i musi spotkać się z szybką reakcją. Ale jak tu mówić o szybkości, skoro o zagrożeniu było już wiadomo przynajmniej od opublikowania problemów związanych z obsługą plików w formacie .jpg w systemach Windows (MS04-028).

Już wtedy wiadomo było, że nadchodzi nowa era wirusów, na którą społeczność użytkowników komputerów nie jest gotowa. Kilka firm, takich jak Symantec czy F-Secure, zainwestowało w rozwój swoich systemów skanowania i dziś nie ma ich na czarnej liście Bayora (patrz ramka). Pozostali, jak się wydaje, założyli, że za zwiększenie bezpieczeństwa klienci będą musieli w sowim czasie zapłacić. I zapłacą. Jako pierwsze wyłożą pieniądze firmy i organizacje, które otrzymują dużo spamu oraz te, które mają nieskuteczne systemy antywirusowe.

Problem od lat ten sam

To, że wirusy wykorzystujące opisane przez Bayora mechanizmy przełamywania zabezpieczeń pojawią się wkrótce, jest pewne. Hakerzy będą mogli popisać się oryginalnością, bo sama idea luki w systemach antywirusowych jest dostatecznie atrakcyjnym wyzwaniem. W połączeniu z ukrywaniem plików w plikach stwarza jeszcze więcej różnych możliwości. Przecież, jeżeli nie ma pliku docelowego, w którym zapisywane są dane, ciężko wykryć, czy jakikolwiek program podsłuchujący działa.

Skutków pojawienia się nowej klasy wirusów nie odczują raczej firmy, które planują bezpieczeństwo dokładnie i segmentowo. Ponieważ w skutecznym planowaniu bezpieczeństwa przewiduje się, że jeden element może zawieść (skaner antywirusowy) i używa się dodatkowych środków kontroli, np. zapór sieciowych, serwerów logujących, co umożliwia automatyczne wykrycie działalności intruza lub wirusa w sieci. Nie jest to niestety polski standard, wiele firm ignoruje planowanie segmentowe, na poziomie standardów i procedur. Z czasem przekonają się, że jest to zła strategia.

Podatne i niepodatne

Problem dotyczy następujących produktów: ArcaVir 2005, AVG 7, CA eTrust, Dr. Web, F-Prot, Ikarus, Kaspersky, McAfee Internet Security Suite 7.1.5, McAfee Corporate, Norman, TrendMicro PC Clin 2005, Trend Micro Office Scan, Panda Titanium 2005, UNA, Sophos 3.91, CAT-Quick-Heal, Fortinet, TheHacker. Na powyższych produktach Andrey Bayor potwierdził swoje spostrzeżenia empirycznie, ale stwierdził, że inne programy również mogą być podatne. Wymienił też jednak produkty antywirusowe, które pozostają bezpieczne. Są to: F-Secure, Avast, BitDefender, ClamWin, NOD32, Symantec Corporate AntiVirus, Norton Internet Security 2005, VBA32, HBEDV oraz Sophos.


TOP 200