Steganografia – technika ukrywania malware w plikach graficznych

16 maja, 2016

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. 

steganografia wynik
Weźmy dwa zwykłe pliki graficzne z rozszerzeniem PNG. Po prawej „secondary.png” może być ukryty w „primary.png” (po lewej). Przechwycone pliki graficzne i audio mogą zostać przeanalizowane pod kątem ukrytej wiadomości, ale kto z punktu widzenia kryptografii zwraca na to uwagę? W szczegółach diabeł tkwi.

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. 

Mini-zagadka. Tytułowe zdjęcie artykułu zawiera zakodowaną wiadomość. Oczywiście nie jest to wirus, a informacja o tym, jak zdobyć pełną licencję na oprogramowanie Bitdefender Internet Security 2016. Licencję zdobędzie pierwsza osoba, która wykona ukrytą instrukcję.    

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

PODZIEL SIĘ:

Czy ten artykuł był pomocny?

Kliknij na gwiazdkę, aby zagłosować!

Średnia ocena: 0 / 5. Liczba głosów: 0

Jak na razie nikt nie podzielił się opinią.

guest
0 komentarzy
Inline Feedbacks
View all comments

Zapisz się na newsletter i odbierz unikatowy poradnik

„Jak bezpiecznie funkcjonować w cyfrowym świecie”

Wyrażam zgodę na przesłanie oferty drogą telefoniczną przez IT Partners security sp. z o.o. z siedzibą Katowicach ul.Padereskiego 35 na podany przeze mnie adres e-mail zgodnie z ustawą z dnia 10 maja 2018 roku o ochronie danych osobowych (Dz. Ustaw z 2018, poz. 1000) oraz zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (RODO).

Wyrażam zgodę na przesłanie oferty drogą mailową przez IT Partners security sp. z o.o. z siedzibą Katowicach ul.Padereskiego 35 na podany przeze mnie adres e-mail zgodnie z ustawą z dnia 10 maja 2018 roku o ochronie danych osobowych (Dz. Ustaw z 2018, poz. 1000) oraz zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (RODO).

[ninja_tables id=”27481″]