11/08/2016

Rozbrajanie exploitów dla Flasha

Informacje Zagrożenia

Powiedz mi, co myślisz o programie Adobe Flash, a powiem Ci, czy zajmujesz się cyberbezpieczeństwem. Dla większości ludzi kojarzy Flasha z tym, że przeglądarka chce go zaktualizować przed odtworzeniem znanego filmu. Osoby, które mają jakieś pojęcie o nowych technologiach, mocno się irytują z powodu błędów tej platformy, umożliwiających sianie spustoszenia.

flash-malware-detection-featured

Adobe Flash okupował naszą listę najbardziej dziurawych programów w 2015 r. Tuż za nim znalazły się inne popularne programy, np. Java, Adobe Reader czy Microsoft Office i Silverlight, lecz cały szkopuł polega na tym, że Flash jest niesamowicie popularny, ma wiele luk i nie jest tak regularnie aktualizowany przez użytkowników, jak powinien.

I tu mam dobrą wiadomość: firma Kaspersky Lab uzyskała patent dla technologii, która pomaga w zwalczaniu exploitów atakujących zwłaszcza program Flash.

Czym różnią się exploity Flasha?

Zasadniczo komputer PC można zainfekować na dwa sposoby. Pierwszy wymaga bezpośredniego udziału użytkownika, który pobiera i uruchamia pliki wykonywalne, otwiera dokumenty zawierające szkodliwe makra, klika szkodliwe adresy URL i tym podobne.

W drugiej metodzie użytkownik nie musi robić nic: cyberprzestępcy znajdują i wykorzystują lukę w systemie operacyjnym urządzenia lub w jednym z zainstalowanych programów, z którego korzysta użytkownik. Jeśli luka znajduje się w przeglądarce, może wystarczyć na przykład samo otwarcie szkodliwej strony internetowej. (Czytelnicy Kaspersky Daily nie są zaskoczeni, bo wiedzą, że szkodliwych stron jest naprawdę wiele.)

Najłatwiejszym sposobem zainfekowania komputera jest wykorzystanie internetu, dlatego cyberprzestępcy lubią umieszczać exploity na stronach. Nie zawsze wykorzystują luki w przeglądarkach — często przedostają się poprzez komponenty Java czy Adobe Flash Player, które odpowiadają za odtwarzanie materiałów multimedialnych na stronach internetowych.

Pomyśl o filmach Flash nie jak o plikach, które są otwierane w programie, ale jak o samych programach. Są one pobierane wraz z inną zawartością strony, ale są uruchamiane oddzielnie przy pomocy komponentu Adobe Flash zainstalowanego w systemie (tak naprawdę proces ten jest znacznie bardziej skomplikowany). Aby bezpiecznie uruchamiać te programy, Adobe Flash wykonuje je w swoim własnych środowisku wirtualnym — innymi słowy, programy te są uruchamiane na symulowanym komputerze wewnątrz komputera.

Czy użycie maszyny wirtualnej sprawia, że można bezpiecznie korzystać z Flasha?

Świetne pytanie! Flash uruchamia pliki w chronionym środowisku wirtualnym, ponieważ wykonywanie kodu bezpośrednio z internetu jest ryzykowne. Gdy cały kod jest wykonywany w obrębie maszyny wirtualnej, ryzyko, że będzie próbował wykonać coś niepożądanego na komputerze, zostanie zminimalizowane, ponieważ nie uzyska on dostępu do plików i dokumentów lub krytycznych komponentów systemu operacyjnego. Niestety jest to prawda tylko w teorii; zdarza się, że exploity omijają zabezpieczenia Flasha (np. wirtualizację) przy użyciu luk w programie Adobe Flash.

W tym miejscu pojawia się kolejny problem: połączenie natury pliku oraz maszyny wirtualnej Flash sprawia, że stają się one wygodnym środowiskiem, w którym można ukryć przed systemem intencje szkodliwego programu. Wówczas hakerzy mogą nawet tworzyć unikatowe pliki dla każdej ofiary.

Stanowi to nie lada wyzwanie dla tradycyjnego wykrywania wirusów, które opiera się na długiej liście plików. Chociaż zasada działania dla wszystkich exploitów jest taka sama, program zabezpieczający ma problem z ich odróżnieniem. Co więcej, programy Adobe Flash mogą być napisane w jednym z trzech języków programowania, co dodatkowo komplikuje reakcję systemu podczas rozróżniania zawartości szkodliwej od oryginalnej Flasha.

Jeśli nie można polegać na nazwach plików, a środowisko wirtualnie nie jest bezpieczne, to co można zrobić?

Nad tym pytaniem zastanawiają się od jakiegoś czasu ludzie zajmujący się bezpieczeństwem. Potrzebny jest sposób na zidentyfikowanie szkodliwiej natury kodu przed wykonaniem go. Teoretycznie możemy uruchomić program na własnej maszynie wirtualnej przed przekazaniem kodu do programu Adobe Flash, ale takie podejście jest zbyt skomplikowane i kłopotliwe w codziennym użytkowaniu.

A gdy wygląda jak exploit…

Tu pojawia się nowa technologia Kaspersky Lab, którą utworzyli Anton Ivanov i Alexander Liskin. Metoda ta wykorzystuje emulację podejrzanego kodu, przez co szybciej analizuje wiele podobnych obiektów z niewielkimi różnicami. Twórcy tej metody zastosowali wirtualną maszynę stosową nie do uruchomienia kodu, ale do zebrania o nim wywiadu.

Jak się okazało, szkodliwe obiekty Flash nie muszą zostać uruchomione, aby ujawnić swoją prawdziwą naturę. Po zastosowaniu naszej metody szkodliwych intencji programu nie ukryją nawet modyfikacje wprowadzone przez twórców szkodliwego programu do każdej z próbek kodu.

Dopóki będzie znana ta jedna metoda wykorzystywania Flasha, dopóty będziemy mogli automatycznie blokować wszystkie szkodliwe programy, które ją wykorzystują. Po zastosowaniu tej technologii w produktach Kaspersky Internet Security i Kaspersky Total Security nasz współczynnik wykrywania tego zagrożenia podwoił się.

Warto jednak dodać, że firmy antywirusowe nieustannie starają się zwiększyć swoje współczynniki wykrywania choćby o ułamek procenta, więc nasze podwojenie tego współczynnika wykrywania nie jest niczym oszałamiającym.