Złośliwe oprogramowanie infekuje urządzenie docelowe, rozpoczyna swoje działanie, wykonuje instrukcję odpowiedzialną za usunięcie swoich wszystkich plików binarnych lub pozostaje w ukryciu czekając na kolejną okazję uruchomienia konkretnej strony internetowej lub programu, po której znowu się uaktywni. Tak w dużym uproszczeniu działają współczesne szkodniki.
Wraz z postępującą technologią teleinformatyczną, przyzwyczailiśmy się do tego, że wirusy komputerowe są przesyłane zazwyczaj pocztą elektroniczną lub są rozprzestrzeniane przez samych użytkowników na nośnikach optycznych lub pamięciach masowych. Najpopularniejsza droga dystrybucji złośliwego kodu wiedzie oczywiście przez e-mail. Jest to najłatwiejszy sposób i zarazem najtańszy – dlatego tak bardzo lubiany i często wykorzystywany przez spamerów i przestępców. Wirusy, tak jak każde inne programy zostały napisane w różnych językach programowania i skompilowane (zazwyczaj) do plików wykonywalnych EXE. Są wyjątki od reguły i to bardzo ciekawe, jak np. ukrywanie złośliwego kodu w plikach pomocy .CHK, w skrótach do plików .LNK, oraz w plikach .HTM, które są połączeniem HTML, CSS i JavaScript. Ważną rolę w tym wszystkim odgrywają makrowirusy pisane w języku programowania VBA, które są integralną częścią pakietu MS Office.
Steganografia – nauka o ukrywaniu komunikacji
Jednak zdecydowanie ciekawszą techniką ukrywania malware jest steganografia komputerowa. Istnieje mnóstwo bezpłatnych (lepszych lub gorszych) programów do automatycznego osadzania w plikach graficznych, szyfrogramach, plikach audio i wideo własnego tekstu, kodu lub innych plików. Steganografia jest nauką o ukrywaniu komunikatów, jednak w odróżnieniu od kryptografii, która nie neguje przesłanej wiadomości, ukrywa sam fakt dostarczenia niejawnej informacji do odbiorcy (zazwyczaj pod postacią zwykłych plików graficznych lub wideo – w dodatku pliki te nie są w żaden sposób uszkodzone). Steganografii używano już przed naszą erą, ale dopiero wynalazek radia oraz telewizji przyczynił się do jej popularyzacji. Dzisiaj możemy mówić o steganografii technicznej lub komputerowej.
Zadaniem steganografii jest ukrycie informacji i przesłanie jej do odbiorcy w sposób (na pierwszy rzut oka lub ucha) niejawny. Wysłany plik może zawierać nie tylko ukrytą wiadomość, ale także rozbudowany złośliwy kod składający się z wielu plików, procedur i funkcji.
Steganografia nie jest doskonała, jednak świetnie nadaje się jako narzędzie do dystrybucji exploitów lub downloaderów pod postacią kodu JavaScript zaszytego w plikach BMP, JPEG, GIF, PNG i innych.
Steganografia jest wykorzystywana zarówno przez przestępców, autorów wirusów, ale także przez osoby represjonowane. Znany jest przypadek ukrytej informacji w piosence, która uratowała zakładników z kolumbijskiej dżungli. Z kolei dystrybucja trojanów bankowych w zwykłym pliku graficznym także nie jest niczym szczególnym. Ze steganografii korzystali też terroryści przed atakiem na WTC 11 września 2001 roku. Potwierdzają do amerykańskie źródła, według których do ukrywania komunikacji wykorzystywano obrazy umiejscowione na pornograficznych stronach i sportowych czatach internetowych. Inne przykłady użycia steganografii to:
- znak wodny w dokumentach,
- bezbarwny atrament, który jest widoczny dopiero po podgrzaniu,
- tajemnicze kropki na papierze po wydruku, które identyfikują szczegółowe informacje na temat drukarki,
- zdjęcia osadzone w plikach wideo widoczne po zmianie prędkości odtwarzania,
- malware ukrywające swoją komunikację z C&C w plikach graficznych lub pliki binarne: Duqu, w tym niektóre warianty Zeusa, Stegoloader, Stegosploit, Vawtrak.
Steganografia nie zastąpi kryptografii. Jej zadaniem jest ukrycie tajnej wiadomości w obrazie, filmie, muzyce, która na pierwszy rzut oka jest bezużyteczna. Z punktu widzenia bezpieczeństwa komputerowego, w pliku graficznym “szyfruje się” tekst, inny obraz lub kod, który będzie dostępny po odtworzeniu procesu w drugą stronę. Najciekawsze jest jednak to, że tak zmodyfikowane pliki działają prawidłowo, więc nie wzbudzą podejrzenia co do swojej szkodliwości.
W steganografii nierzadko stosuje się kryptografię, więc informacja może być podwójnie chroniona. Najpierw wiadomość jest szyfrowana, ukryta w pliku, więc jej odczytanie jest podwójnie trudne. Z punktu widzenia nauk kryptograficznych nie ma żadnej mowy o szyfrowaniu danych, a o ich ukrywaniu dla ludzkiego oka lub ucha. Jednak współcześnie, dla zwiększenia tajności informacji stosuje się algorytm RSA z kluczem prywatnym i publicznym, aby mieć pewność, że tylko osoba uprawniona odczyta wiadomość.
Sposób ukrywania tekstu w plikach graficznych jest badaczom bezpieczeństwa znany od dawno. Jeśli widziany kolor na ekranie monitora możemy przedstawić za pomocą czerwonej, zielonej i niebieskiej barwy (RGB), to dla procesora będzie on widoczny jako ciąg bitów: po 8 bitów dla każdego koloru. Teraz, aby najpopularniejszą metodą (LSB) ukryć ciąg znaków w obrazie, ósmy bit zaczynając od lewej powinien być zmodyfikowany lub należy dopisać kolejne bity po nim, zaczynając od prawej strony (nigdy przed). Zmodyfikowany w ten sposób plik zachowa swoje właściwości oraz ukrytą wiadomość. Dla ludzkiego oka kolory obrazu przedstawione w RGB nie zmienią się, jednak dla procesora będzie to zmiana istotna. Oczywiście, tą operacje można przeprowadzić za pomocą odpowiednich programów lub gotowych skryptów, więc ich użycie nie wymaga zaawansowanej znajomości informatyki, a jedynie zgrabne poruszanie się w wierszu poleceń / terminalu.
Więcej na temat steganografii wykorzystywanej do ukrywania złośliwego kodu przeczytacie w dokumencie zaprezentowanym na konferencji BlackHat w Europie 2015 przez Saumila Shaha oraz na http://stegosploit.info
Czy ten artykuł był pomocny?
Oceniono: 0 razy