Ewolucja technologii autoochrony szkodliwego oprogramowania
Starszy analityk wirus贸w, Kaspersky Lab
Artyku艂 ten jest pr贸b膮 przyjrzenia si臋, w jaki spos贸b szkodliwe programy rozwin臋艂y techniki autoochrony. Opisuje ich ewolucj臋, w miar臋 jak przetrwanie wirus贸w stawa艂o si臋 coraz trudniejsze, oraz zawiera analiz臋 obecnej sytuacji.
Na pocz膮tku nale偶y zdefiniowa膰 znaczenie terminu "autoochrona szkodliwego oprogramowania", kt贸ry nie jest tak jednoznaczny, jak mog艂oby si臋 wydawa膰 na pierwszy rzut oka. Gdy szkodliwe oprogramowanie atakuje programy antywirusowe, bez w膮tpienia mamy do czynienia z form膮 autoochrony. Je艣li zaciera swoje 艣lady, jest to r贸wnie偶 pewien rodzaj autoochrony, chocia偶 nie jest to ju偶 tak oczywiste. Jeszcze mniej oczywist膮 form膮 autoochrony jest ewolucja szkodliwych program贸w. Jednak jednym z czynnik贸w motywuj膮cych tw贸rc贸w wirus贸w poszukuj膮cych nowych platform, kt贸re mog膮 zosta膰 zainfekowane, oraz nowych luk w systemie, jest rozprzestrzenianie nowych wirus贸w na wolno艣ci na obszary, gdzie do tej pory nikt nie zada艂 sobie trudu, aby szuka膰 szkodliwego kodu, poniewa偶 jeszcze nigdy go tam nie znaleziono.
Aby unikn膮膰 nieporozumienia odno艣nie tego, co jest technologi膮 autoochrony a co ni膮 nie jest, w artykule tym zbadano tylko najpopularniejsze i najbardziej oczywiste metody autoochrony szkodliwego oprogramowania. Obejmuj膮 one przede wszystkim r贸偶ne sposoby modyfikowania i kompresowania kodu w celu ukrycia obecno艣ci szkodliwego kodu w systemie oraz przerywania dzia艂ania rozwi膮za艅 antywirusowych.
- Klasyfikacja autoochrony szkodliwego oprogramowania
- 殴r贸d艂a: polimorfizm, zaciemnianie oraz szyfrowanie
- Wirusy ukrywaj膮ce si臋
- Kompresory
- Rootkity
- Zwalczanie rozwi膮za艅 antywirusowych
- Co przyniesie przysz艂o艣膰
- Trendy i prognozy
- Wnioski
Klasyfikacja autoochrony szkodliwego oprogramowania
Istnieje wiele r贸偶nych rodzaj贸w technik autoochrony szkodliwego oprogramowania, kt贸re mo偶na sklasyfikowa膰 na wiele r贸偶nych sposob贸w. Celem niekt贸rych z tych technologii jest obej艣cie baz danych sygnatur wirus贸w, podczas gdy inne maj膮 utrudni膰 analiz臋 szkodliwego kodu. Niekt贸re szkodliwe programy mog膮 pr贸bowa膰 ukry膰 si臋 w systemie, podczas gdy inne nie chc膮 marnowa膰 na to cennych zasob贸w procesora i zamiast tego wol膮 wyszukiwa膰 i zwalcza膰 okre艣lone typy ochrony antywirusowej. Te r贸偶ne taktyki mo偶na klasyfikowa膰 na wiele sposob贸w i zaszeregowa膰 do r贸偶nych kategorii.
Poniewa偶 celem tego artyku艂u nie jest stworzenie 艣cis艂ego systemu klasyfikacji technik autoochrony szkodliwego oprogramowania, rozwa偶my system klasyfikacji, kt贸ry umo偶liwi zrozumienie tego zagadnienia na poziomie intuicyjnym. Uwzgl臋dnili艣my dwa najwa偶niejsze naszym zdaniem kryteria, kt贸re pos艂u偶膮 nam do sporz膮dzenia wykresu punktowego, gdzie dwie osie reprezentuj膮 te kryteria.
Pierwszym kryterium jest poziom aktywno艣ci autoochrony szkodliwego programu. Najbardziej pasywny szkodliwy program w og贸le nie pr贸buje si臋 broni膰, tj. nie zawiera 偶adnego takiego kodu. Zamiast tego, autor takiego programu tworzy dla niego rodzaj tarczy. Aktywniejsze systemy autoochrony celowo stosuj膮 agresywne techniki.
Drugim kryterium jest stopie艅 wyspecjalizowania mechanizmu autoochrony szkodliwego programu. Formy autoochrony o najw臋偶szej specjalizacji stosowane s膮 przez szkodliwe programy, kt贸re w okre艣lony spos贸b zak艂贸caj膮 funkcjonowanie danego programu antywirusowego. Bardziej og贸lne mechanizmy autoochrony chroni膮 szkodliwe programy przed wszystkim poprzez utrudnianie wykrycia obecno艣ci wirusa w systemie na wszelkie mo偶liwe sposoby.
Na wykresie punktowym zosta艂y przedstawione r贸偶ne rodzaje mechanizm贸w autoochrony szkodliwych program贸w. Wykres ten stanowi jedynie prosty przyk艂ad, kt贸ry mo偶na wykorzysta膰 do kategoryzowania r贸偶nych sposob贸w autoochrony szkodliwego oprogramowania. Model ten opiera si臋 na dok艂adnej analizie zachowa艅 szkodliwego oprogramowania, z konieczno艣ci jest jednak subiektywny.
Rys. 1. Wykres punktowy technologii autoochrony szkodliwego oprogramowania.
Mechanizmy autoochrony szkodliwych program贸w mog膮 spe艂nia膰 jedno lub wi臋cej zada艅. Obejmuj膮 one:
- utrudnianie wykrywania wirusa przy u偶yciu metod opartych na sygnaturach;
- utrudnianie analitykom wirus贸w analizowania kodu;
- utrudnianie wykrywania szkodliwego programu w systemie;
- utrudnianie dzia艂ania oprogramowania bezpiecze艅stwa, takiego jak program antywirusowy czy zapora sieciowa.
Ze wzgl臋du na niecz臋ste wyst臋powanie i stosunkowo niewielk膮 liczb臋 szkodliwych program贸w dla innych platform, w artykule tym b臋d膮 analizowane tylko szkodliwe programy stworzone dla systemu operacyjnego Windows (oraz jego poprzednika DOS). Wszystkie zbadane w tym artykule trendy odnosz膮 si臋 do plik贸w wykonywalnych szkodliwego oprogramowania (EXE, DLL oraz SYS) oraz w pewnym stopniu r贸wnie偶 do makrowirus贸w i wirus贸w skryptowych, dlatego te偶 ta ostatnia kategoria nie b臋dzie rozpatrywana oddzielnie.
殴r贸d艂a: polimorfizm, zaciemnianie oraz szyfrowanie
Poniewa偶 polimorfizm, zaciemnianie oraz szyfrowanie spe艂niaj膮 t臋 sam膮 funkcj臋, chocia偶 w r贸偶nym stopniu, najlepiej rozpatrywa膰 je wszystkie razem. Pocz膮tkowo, modyfikowanie szkodliwego kodu s艂u偶y艂o dw贸m celom: utrudnianiu wykrycia plik贸w oraz utrudnianiu analitykom wirus贸w badania kodu.
Mimo 偶e pocz膮tki szkodliwego oprogramowania si臋gaj膮 lat 70. ubieg艂ego stulecia, programy te zacz臋艂y stosowa膰 autoochron臋 dopiero pod koniec lat 80. Pierwszym wirusem, kt贸ry pr贸bowa艂 broni膰 si臋 przed narz臋dziami antywirusowymi, by艂 wirus dla systemu DOS - Virus.DOS.Cascade. Szkodnik ten broni艂 si臋 poprzez cz臋艣ciowe szyfrowanie swojego kodu. Metoda ta nie by艂a jednak ca艂kiem skuteczna, poniewa偶 ka偶da nowa kopia tego wirusa - mimo 偶e r贸偶ni艂a si臋 od poprzednich - nadal zawiera艂a niezmieniony fragment kodu, kt贸ry za ka偶dym razem zdradza艂 wirusa. W rezultacie, wirus ten nadal by艂 wykrywany przez programy antywirusowe. Mimo to, tw贸rcy wirus贸w zacz臋li i艣膰 w nowym kierunku i dwa lata p贸藕niej pojawi艂 si臋 pierwszy wirus polimorficzny - Chameleon (Virus.DOS.Chameleon). Chameleon, znany r贸wnie偶 jako 1260, oraz Whale, kt贸ry pojawi艂 si臋 w tym samym czasie, w celu ochrony swojego kodu wykorzystywa艂y z艂o偶one metody szyfrowania i zaciemniania. Dwa lata p贸藕niej wy艂oni艂y si臋 tzw. generatory polimorficzne, kt贸re mo偶na by艂o wykorzysta膰 jako nowy mechanizm obrony szkodliwych program贸w.
Wyja艣nienia wymagaj膮 dwie kwestie: dlaczego modyfikowanie kodu mo偶e zosta膰 wykorzystane w celu utrudnienia wykrywania plik贸w oraz w jaki spos贸b dzia艂a wykrywanie plik贸w.
Do niedawna dzia艂anie program贸w antywirusowych polega艂o wy艂膮cznie na analizowaniu kodu plik贸w. Najwcze艣niejsze metody wykrywania, oparte na sygnaturach, koncentrowa艂y si臋 na szukaniu dok艂adnych sekwencji bajt贸w, cz臋sto w okre艣lonej pozycji od pocz膮tku pliku, w kodzie binarnym szkodliwego programu. P贸藕niejsze heurystyczne metody wykrywania r贸wnie偶 wykorzystywa艂y kod pliku, stosowa艂y jednak bardziej elastyczne, oparte na prawdopodobie艅stwie podej艣cie do szukania wsp贸lnych sekwencji bajt贸w szkodliwego oprogramowania. Naturalnie, szkodliwe programy 艂atwo mog膮 obej艣膰 ten rodzaj ochrony, je偶eli ka偶da kopia programu b臋dzie zawiera艂a now膮 sekwencj臋 bajt贸w.
W tym celu mo偶na zastosowa膰 techniki polimorficzne oraz metamorficzne, kt贸re zasadniczo - bez zag艂臋biania si臋 w szczeg贸艂y technologiczne - umo偶liwiaj膮 szkodliwemu programowi mutacj臋 na poziomie bajta podczas tworzenia swojej kopii. Jednocze艣nie funkcjonalno艣膰 programu pozostaje niezmieniona. Szyfrowanie i Zaciemnianie wykorzystywane s膮 przede wszystkim w celu utrudnienia analizy kodu, je艣li jednak zostan膮 zaimplementowane w okre艣lony spos贸b, rezultatem mo偶e by膰 odmiana polimorfizmu, czego przyk艂adem jest wirus Cascade, kt贸rego ka偶da kopia zosta艂a zaszyfrowana przy pomocy unikatowego klucza. Zaciemnianie mo偶e tylko utrudni膰 analiz臋, gdy jednak zostanie zastosowane do ka偶dej kopii szkodliwego programu w inny spos贸b, utrudnia skuteczne wykorzystanie metod wykrywania opartych na sygnaturach. Nie mo偶na jednak powiedzie膰, 偶e kt贸rakolwiek z wy偶ej wymienionych taktyk jest skuteczniejsza ni偶 jakakolwiek inna, je艣li chodzi o autoochron臋 szkodliwego oprogramowania. Nale偶a艂oby raczej powiedzie膰, 偶e skuteczno艣膰 tych technik zale偶y od konkretnych warunk贸w oraz sposobu ich zaimplementowania.
Wykorzystanie polimorfizmu jest stosunkowo rozpowszechnione jedynie w odniesieniu do wirus贸w plikowych dla systemu DOS. Nie bez przyczyny. Tworzenie kodu polimorficznego to bardzo czasoch艂onne zadanie, kt贸re jest uzasadnione jedynie w przypadkach, gdy szkodliwy program rozmna偶a si臋 samodzielnie: ka偶da nowa kopia zawiera bardziej lub mniej unikatow膮 sekwencj臋 bajt贸w. Wi臋kszo艣膰 wsp贸艂czesnych trojan贸w nie jest zdolnych do samodzielnego rozmna偶ania si臋, st膮d polimorfizm nie ma tu zastosowania. Z tego powodu od zmierzchu ery wirus贸w plikowych dla systemu DOS polimorfizm stosowany jest rzadziej. Metoda ta wykorzystywana by艂a g贸wnie przez tw贸rc贸w wirus贸w, kt贸rzy chcieli popisa膰 si臋 swoimi umiej臋tno艣ciami, a nie stworzy膰 jak膮艣 szczeg贸lnie u偶yteczn膮 funkcj臋.
Rys. 2. Kod polimorficzny robaka P2P-Worm.Win32.Polip
W przeciwie艅stwie do polimorfizmu, zaciemnianie wykorzystuje si臋 nadal, podobnie jak inne metody modyfikowania kodu, kt贸re w du偶ym stopniu utrudniaj膮 analiz臋 kodu.
Rys. 3. Zaciemniony kod w trojanie Trojan-Dropper.Win32.Small.ue
Od czasu, gdy pojawi艂y si臋 metody wykrywania oparte analizie zachowania i zacz臋艂y wypiera膰 metody oparte na sygnaturach, techniki modyfikacji kodu sta艂y si臋 mniej u偶yteczne je艣li chodzi o utrudnianie wykrywania szkodliwego oprogramowania. To wyja艣nia, dlaczego polimorfizm oraz podobne technologie nie s膮 obecnie powszechnie stosowane i tak naprawd臋 s膮 sposobem na utrudnienie analizy szkodliwego kodu.
Wirusy ukrywaj膮ce si臋
Ukrywanie szkodliwych program贸w w systemie sta艂o si臋 drug膮 metod膮 autoochrony przed wykryciem, jak膮 opanowali tw贸rcy wirus贸w w erze systemu DOS. Technika ta po raz pierwszy zosta艂a wykorzystana w 1990 r., a konkretnie stanowi艂a cz臋艣膰 arsena艂u wirusa, o kt贸rym ju偶 wspominali艣my - Whale. Ukryty wirus w ten czy inny spos贸b przechwytywa艂 us艂ugi systemowe DOS i przekazywa艂 fa艂szywe dane u偶ytkownikowi lub programowi antywirusowemu - na przyk艂ad "wyczy艣膰" zawarto艣膰 sektora startowego zamiast prawdziwej zawarto艣ci, kt贸ra zosta艂a zainfekowana przez szkodliwy program.
Technologie ukrywania si臋 stworzone dla systemu operacyjnego DOS odrodzi艂y si臋 10 lat p贸藕niej jako technologie rootkit dla systemu operacyjnego Windows.
Mechanizmy wykorzystywane w celu ukrywania wirus贸w w systemie zosta艂y szczeg贸艂owo om贸wione w sekcji o rootkitach.
Kompresory
Stopniowo wirusy - szkodliwe programy, kt贸re potrafi膮 funkcjonowa膰 jedynie w ciele ofiary i nie s膮 zdolne do istnienia jako oddzielne pliki - zast臋powane s膮 przez trojany, kt贸re stanowi膮 ca艂kowicie niezale偶ne szkodliwe programy. Proces ten rozpocz膮艂 si臋 w czasie, gdy Internet by艂 jeszcze wolny i bardziej ograniczony ni偶 obecnie. Dyski twarde i dyskietki by艂y niewielkie, co oznacza艂o, 偶e rozmiar programu mia艂 istotne znaczenie. W celu zmniejszenia rozmiaru trojana tw贸rcy wirus贸w zacz臋li wykorzystywa膰 tak zwane kompresory - nawet w erze systemu DOS. Kompresory to wyspecjalizowane programy, kt贸re kompresuj膮 i archiwizuj膮 pliki.
Efektem ubocznym stosowania kompresor贸w jest to, 偶e skompresowane szkodliwe programy s膮 trudniejsze do wykrycia przy u偶yciu metod plikowych.
Podczas tworzenia nowej modyfikacji istniej膮cego szkodliwego programu tw贸rca wirus贸w najcz臋艣ciej zmienia kilka linijek kodu, pozostawiaj膮c trzon programu nietkni臋ty. W skompilowanym pliku bajty okre艣lonej sekwencji kodu zostan膮 r贸wnie偶 zmienione, a je艣li sygnatura wirusa oprogramowania antywirusowego nie b臋dzie zawiera艂a tej konkretnej sekwencji, szkodliwy program nadal b臋dzie wykrywany tak jak poprzednio. Problem ten mo偶na rozwi膮za膰 poprzez spakowanie programu za pomoc膮 kompresora, poniewa偶 zmiana nawet jednego bajta w 藕r贸d艂owym pliku wykonywalnym generuje zupe艂nie now膮 sekwencj臋 bajt贸w w spakowanym pliku.
Rys. 4. Widoczna r贸偶nica pomi臋dzy kodem spakowanym i niespakowanym
Kompresory nadal s膮 powszechnie wykorzystywane. R贸偶norodno艣膰 program贸w kompresuj膮cych i poziom ich zaawansowania zwi臋ksza si臋. Wiele wsp贸艂czesnych kompresor贸w, opr贸cz kompresowania pliku 藕r贸d艂owego, wyposa偶a go r贸wnie偶 w dodatkowe funkcje autoochrony, kt贸rych celem jest utrudnienie rozpakowania i analizy pliku przy u偶yciu debuggera.
Rootkity
W celu ukrycia swojej obecno艣ci w systemie w pierwszych latach nowego tysi膮clecia szkodliwe programy dla systemu operacyjnego Windows zacz臋艂y stosowa膰 technologie ukrywania si臋. Jak ju偶 wspomniano wcze艣niej, nast膮pi艂o to oko艂o 10 lat po wy艂onieniu si臋 koncepcji program贸w ukrywaj膮cych si臋 i zaimplementowaniu jej dla systemu DOS. Na pocz膮tku 2004 roku firma Kaspersky Lab natrafi艂a na zaskakuj膮cy program, kt贸rego nie mo偶na by艂o zobaczy膰 w procesach Windows oraz na li艣cie plik贸w. Dla wielu ekspert贸w zajmuj膮cych si臋 wirusami by艂 to pocz膮tek czego艣 nowego - poznania technologii ukrywania si臋 szkodliwych program贸w dla systemu Windows - oraz zapowied藕 nowego trendu w przemy艣le tworzenia wirus贸w.
Termin "rootkit" wywodzi si臋 od narz臋dzi uniksowych przeznaczonych do zapewnienia u偶ytkownikowi niesankcjonowanych uprawnie艅 administratora w systemie, tak aby nie zosta艂 zauwa偶ony przez administratora systemu. Obecnie termin rootkit obejmuje wyspecjalizowane narz臋dzia wykorzystywane w celu ukrywania informacji w systemie, jak r贸wnie偶 szkodliwe programy o funkcjonalno艣ci umo偶liwiaj膮cej im maskowanie swojej obecno艣ci. Mo偶na tu zaliczy膰 oznaki zarejestrowanych aplikacji od tzw. os贸b trzecich: ci膮g tekstowy na li艣cie proces贸w, plik na dysku, klucz rejestru czy nawet ruch sieciowy.
W jaki spos贸b technologie rootkit, kt贸re maj膮 na celu ukrycie szkodliwych program贸w w systemie, tak bardzo utrudniaj膮 wykrywanie szkodliwych program贸w przy u偶yciu programu antywirusowego lub innego oprogramowania bezpiecze艅stwa? Odpowied藕 jest bardzo prosta: narz臋dzie antywirusowe to zewn臋trzny agent, podobnie jak u偶ytkownik. Zazwyczaj, je艣li u偶ytkownik nie widzi czego艣, program antywirusowy r贸wnie偶 tego nie zobaczy. Jednak niekt贸re rozwi膮zania antywirusowe implementuj膮 technologie, dzi臋ki kt贸rym "widz膮 wi臋cej", przez co wykrywaj膮 wirusy, kt贸rych u偶ytkownicy nie mog膮 zobaczy膰.
Rootkit opiera si臋 na tej samej zasadzie co wirusy ukrywaj膮ce si臋 dla systemu DOS. Spora liczba rootkit贸w posiada mechanizmy, kt贸re modyfikuj膮 艂a艅cuch odwo艂a艅 systemowych (Execution Path Modification). Ten rodzaj rootkita mo偶e dzia艂a膰 jak funkcja przechwytywania zlokalizowana w okre艣lonym punkcie drogi, na kt贸rej nast臋puje wymiana polece艅 lub informacji. Tego typu rootkit modyfikuje polecenia i informacje w celu zniekszta艂cenia ich lub kontrolowania tego, co ma miejsce po stronie odbiorcy bez jego wiedzy. Teoretycznie liczba punkt贸w, w kt贸rych mo偶e by膰 zlokalizowana funkcja przechwytywania, jest nieograniczona. W praktyce, istnieje obecnie kilka r贸偶nych metod powszechnie stosowanych w celu przechwytywania funkcji API oraz funkcji systemowych j膮dra. Przyk艂adem tego rodzaju rootkita s膮 powszechnie znane narz臋dzia Vanquish oraz Hacker Defender, jak r贸wnie偶 szkodliwe programy takie jak Backdoor.Win32.Haxdoor, Email-Worm.Win32.Mailbot i niekt贸re wersje robaka Email-Worm.Win32.Bagle.
Rys. 5.Przechwycenie ZwQueryDirectoryFile powoduje ukrycie pliku sterownika na li艣cie plik贸w.
Innym powszechnym typem technologii rootkit jest Direct Kernel Object Modification (DKOM), kt贸ry mo偶e by膰 traktowany jako "insider" modyfikuj膮cy informacje i polecenia bezpo艣rednio w ich 藕r贸d艂ach. Rootkity te zmieniaj膮 dane systemowe. Typowym przyk艂adem jest narz臋dzie FU; te same funkcje mo偶na znale藕膰 w Gromozonie (Trojan.Win32.Gromp).
Nowsza technologia, kt贸ra oficjalnie mie艣ci si臋 w klasyfikacji rootkit贸w, ukrywa pliki w alternatywnych strumieniach danych (ADS) w systemach plik贸w NTFS. Technologia ta po raz pierwszy zosta艂a zaimplementowana w 2000 r. w szkodliwym programie Stream (
Rys. 6. Szkodliwy program Mailbot (Rustock) wykorzystuje strumie艅 foldera systemowego.
Mo偶na wyr贸偶ni膰 jeszcze inn膮 rzadk膮 technologi臋, kt贸ra tylko cz臋艣ciowo kwalifikuje si臋 do kategorii rootkit贸w (jednak w jeszcze mniejszym stopniu odpowiada ona innym rodzajom autoochrony szkodliwego oprogramowania om贸wionym w tym artykule). Tego typu szkodliwe programy nie posiadaj膮 cia艂a na dysku. Obecnie znamy dw贸ch przedstawicieli tej podgrupy: Codered, kt贸ry pojawi艂 si臋 w 2001 r. (
Obecnie technologie rootkit zmierzaj膮 w kierunku wirtualizacji i wykorzystywania funkcji systemowych - innymi s艂owy, przenikaj膮 jeszcze g艂臋biej do systemu.
Zwalczanie rozwi膮za艅 antywirusowych
Szkodliwe programy stosuj膮ce aktywn膮 obron臋 istnia艂y od zawsze. Mechanizmy autoochrony obejmuj膮:
- Przeszukiwanie systemu w celu znalezienia produktu antywirusowego, zapory sieciowej lub innego narz臋dzia bezpiecze艅stwa, a nast臋pnie przerwanie dzia艂ania tego narz臋dzia. Przyk艂adem mo偶e by膰 szkodliwy program, kt贸ry szuka okre艣lonego produktu antywirusowego na li艣cie proces贸w, a nast臋pnie pr贸buje przerwa膰 dzia艂anie tego programu.
- Blokowanie plik贸w i otwieranie ich z wy艂膮cznym dost臋pem jako ochrona przed skanowaniem plik贸w przeprowadzanym przez oprogramowanie antywirusowe.
- Modyfikowanie pliku hosts w celu zablokowania dost臋pu do stron z uaktualnieniami antywirusowymi.
- Wykrywanie zapyta艅 wysy艂anych przez system bezpiecze艅stwa (na przyk艂ad okno zapory sieciowej wy艣wietlaj膮ce zapytanie "Czy zezwoli膰 na to po艂膮czenie?") oraz imitowanie klikania klawisza "Zezw贸l".
W rzeczywisto艣ci, sprecyzowany atak na rozwi膮zanie bezpiecze艅stwa bardziej przypomina reakcj臋 kogo艣, kto zosta艂 przyparty do muru, ni偶 aktywny atak. Teraz, gdy firmy antywirusowe analizuj膮 nie tylko kod zawarty w szkodliwych programach, ale r贸wnie偶 ich zachowanie, szkodliwe programy s膮 mniej lub bardziej bezsilne. Ani polimorfizm, ani kompresory, ani nawet technologie ukrywania si臋 nie zapewni膮 szkodliwym programom ca艂kowitej ochrony. Z tego powodu szkodliwe programy koncentruj膮 si臋 na pewnych przejawach lub funkcjach tzw. wroga. Naturalnie, czasami mechanizmy autoochrony stanowi膮 jedyne rozwi膮zanie; w przeciwnym razie nie by艂yby tak rozpowszechnione, poniewa偶 posiadaj膮 zbyt wiele wad z punktu widzenia maksymalnej, wszechstronnej obrony.
Co przyniesie przysz艂o艣膰?
Ochrona antywirusowa nieustannie ewoluuje: od analizy plik贸w po analiz臋 zachowania program贸w. W przeciwie艅stwie do analizy plik贸w, kt贸rej podstawy zosta艂y wyja艣nione w sekcji dotycz膮cej polimorfizmu i zaciemniania, analiza zachowa艅 nie opiera si臋 na pracy z plikami, ale ze zdarzeniami wyst臋puj膮cymi na poziomie systemu, jak "wyszczeg贸lnij wszystkie aktywne procesy w systemie", "utw贸rz plik o tej nazwie w pokazanym folderze" oraz "otw贸rz port wskazany przez dane przychodz膮ce". Poprzez analizowanie 艂a艅cucha tych zdarze艅 program antywirusowy mo偶e oszacowa膰 stopie艅, w jakim komponent generuj膮cy te procesy jest potencjalnie szkodliwy, i w razie konieczno艣ci wy艣wietli膰 ostrze偶enie.
Analiza zachowa艅 mo偶e by膰 jednak myl膮ca, je艣li chodzi o terminologi臋. Na przyk艂ad mechanizm analizy behawioralnej mo偶e wyst臋powa膰 pod r贸偶nymi nazwami: HIPS, ochrona proaktywna, heurystyczna lub sandbox. Jednak niezale偶nie od nazwy, jedna rzecz jest jasna: szkodliwe programy okazuj膮 si臋 bezsilne wobec analizy zachowa艅. B臋dzie to najprawdopodobniej mia艂o wp艂yw na przysz艂膮 ewolucj臋 szkodliwych program贸w.
Innymi s艂owy, tw贸rcy wirus贸w musz膮 znale藕膰 jaki艣 spos贸b na obej艣cie analizy zachowa艅. Nie wiadomo, w jaki spos贸b b臋d膮 pr贸bowali pokona膰 t臋 przeszkod臋. Pewne jest to, 偶e wykorzystywanie zaciemniania na poziomie zachowa艅 jest zasadniczo nieskuteczne. Ewolucja diagnostyki 艣rodowiskowej jest jednak bardzo interesuj膮ca, poniewa偶 cz臋艣ciowo zak艂ada ona wzrost "samo艣wiadomo艣ci" wirusa, co umo偶liwi艂oby mu okre艣lenie, gdzie dok艂adnie jest zlokalizowany: w "rzeczywistym 艣wiecie" (w czystym 艣rodowisku roboczym u偶ytkownika) czy te偶 w "matriksie" (pod kontrol膮 oprogramowania antywirusowego).
Technologie diagnostyczne maj膮 swoje precedensy: niekt贸re szkodliwe programy, je艣li zostan膮 uruchomione w 艣rodowisku wirtualnym (takim jak VMWare lub Virtual PC), natychmiast unicestwiaj膮 siebie. Poprzez wbudowanie takiego mechanizmu autodestrukcji do szkodliwego oprogramowania jego autor uniemo偶liwia analiz臋 szkodnika, kt贸ra cz臋sto przeprowadzana jest w 艣rodowisku wirtualnym.
Trendy i prognozy
Po zbadaniu obecnych trend贸w oraz skuteczno艣ci stosowanych podej艣膰 mo偶na sformu艂owa膰 nast臋puj膮ce wnioski odno艣nie om贸wionych wy偶ej metod autoochrony szkodliwego oprogramowania:
- Rootkity wykazuj膮 tendencj臋 w kierunku wykorzystywania funkcji sprz臋towych oraz w kierunku wirtualizacji. Jednak metoda ta nie osi膮gn臋艂a jeszcze punktu szczytowego i w nadchodz膮cych latach prawdopodobnie nie stanie si臋 g艂贸wnym zagro偶eniem ani nie b臋dzie powszechnie wykorzystywana.
- Technologia blokuj膮ca pliki na dysku: znane s膮 dwa programy typu " proof of concept", kt贸re udowodni艂y, 偶e mo偶na spodziewa膰 si臋 rozwoju na tym obszarze w niedalekiej przysz艂o艣ci.
- Wykorzystanie technologii zaciemniania nie odgrywa istotnej roli, nadal jest jednak stosowane.
- Wykorzystanie technologii, kt贸re wykrywaj膮 narz臋dzia bezpiecze艅stwa oraz zak艂贸caj膮 ich dzia艂anie, jest bardzo popularne i szeroko stosowane.
- Wykorzystanie kompresor贸w jest rozpowszechnione i ci膮gle wzrasta (zar贸wno pod wzgl臋dem ilo艣ciowym, jak i jako艣ciowym).
- Przewidywany jest rozw贸j wykorzystywania technologii wykrywaj膮cych debuggery, emulator贸w oraz wirtualnych maszyn, jak r贸wnie偶 technologii diagnozy 艣rodowiska w celu zrekompensowania masowego przej艣cia produkt贸w antywirusowych na wykorzystywanie analizy zachowa艅.
Rys. 7. Przybli偶ony rozk艂ad technologii autoochrony szkodliwego oprogramowania od pocz膮tku 2007 r.Nie trudno zauwa偶y膰, 偶e kierunki ewolucji technologii autoochrony szkodliwego oprogramowania zmieniaj膮 si臋 zgodnie z ewolucj膮 szkodliwych program贸w oraz ochrony przed nimi. Gdy wi臋kszo艣膰 szkodliwych program贸w infekowa艂o pliki, a programy antywirusowe stosowa艂y wykrywanie oparte na sygnaturach, dominuj膮cymi formami autoochrony szkodliwego oprogramowania by艂 polimorfizm oraz ochrona kodu. Obecnie szkodliwe programy s膮 w wi臋kszo艣ci niezale偶ne, a programy antywirusowe staj膮 si臋 coraz bardziej proaktywne. Na podstawie tych fakt贸w mo偶na przewidywa膰, kt贸re mechanizmy autoochrony szkodliwych program贸w b臋d膮 rozwija艂y si臋 intensywniej ni偶 inne:
- Rootkity. Dzi臋ki temu, 偶e s膮 niewidoczne w systemie, maj膮 oczywist膮 przewag臋 - nawet je艣li nie mog膮 w ten spos贸b unikn膮膰 wykrycia. Z du偶ym prawdopodobie艅stwem mo偶emy spodziewa膰 si臋 nowych rodzaj贸w szkodliwych program贸w, kt贸re nie b臋d膮 posiada艂y cia艂a, a nast臋pnie - implementacji technologii wirtualizacji.
- Zaciemnianie i szyfrowanie. Metoda ta b臋dzie powszechnie stosowana do czasu, gdy b臋dzie utrudnia艂a analiz臋 kodu.
- Technologie wykorzystywane do zwalczania rozwi膮za艅 bezpiecze艅stwa opartych na analizie zachowa艅. Mo偶na spodziewa膰 si臋 pojawienia si臋 nowych technologii, poniewa偶 obecnie wykorzystywane (ukierunkowane ataki na programy antywirusowe) nie s膮 skuteczne. Mo偶liwe, 偶e pojawi膮 si臋 metody wykrywania wirtualnych 艣rodowisk lub rodzaj szyfrowania behawioralnego.
Wniosek
Co mo偶na jeszcze doda膰 na zako艅czenie? Samo istnienie szkodliwych program贸w spowodowa艂o powstanie i rozw贸j ochrony przed nimi. Teraz b臋dziemy 艣wiadkami wy艂onienia si臋 i rozwoju autoochrony szkodliwego oprogramowania przed szkodliwymi programami. To z kolei grozi nigdy nieko艅cz膮cym si臋 konfliktem, w kt贸rym nie natura, a technologia jest uzbrojona po z臋by.
W ostatnich kilku latach sytuacja staje si臋 coraz bardziej krytyczna. Kto艣 z podziemia cyberprzest臋pczego (lub "badacze" ubrani w bia艂e kapelusze) rozwija kod typu "proof of concept" w celu unikni臋cia stosowanych obecnie 艣rodk贸w ochrony. Osoba ta, w celu promowania siebie, og艂osi, 偶e kod jest "niewykrywalny". Trzeba jednak podkre艣li膰, 偶e kod ten b臋dzie niewykrywalny jedynie na poziomie jedno lub dwustopniowego obej艣cia znanych funkcji bezpiecze艅stwa, nie b臋dzie jednak niewykrywalny w 100%. Stworzenie jednostopniowego obej艣cia jest stosunkowo proste, je艣li kto艣 jest zaznajomiony z mechanizmami ochrony.
Informacje takie powoduj膮 zaniepokojenie w艣r贸d pewnej liczby u偶ytkownik贸w, kt贸rzy nie wiedz膮, jak dzia艂aj膮 szkodliwe programy oraz programy antywirusowe ("Czy m贸j program antywirusowy ochroni mnie przed tym nowym typem zagro偶enia?"). W takiej sytuacji osoby tworz膮ce metody autoochrony musz膮 tylko wykorzysta膰 cz臋艣膰 zasob贸w, aby odzyska膰 swoj膮 reputacj臋 i rozwin膮膰 obej艣cie, zazwyczaj jednostopniowe. W ko艅cu ich reputacja zostanie uratowana, a system: szkodliwe oprogramowanie - oprogramowanie antywirusowe - u偶ytkownik powr贸ci do stanu pocz膮tkowego i zn贸w b臋dziemy mieli do czynienia z tym samym b艂臋dnym ko艂em. Ka偶da nowa iteracja prowadzi do jeszcze bardziej zaawansowanego szkodliwego oprogramowania oraz silniejszych 艣rodk贸w obrony.
Chcia艂abym podkre艣li膰, 偶e proces ten zu偶ywa wiele zasob贸w, jest bezsensowny i nie ma ko艅ca. Wszystkie trzy strony w tym konflikcie musz膮 zwi臋kszy膰 swoj膮 艣wiadomo艣膰 sytuacji. Zach臋cam u偶ytkownik贸w do poszerzenia wiedzy w tym zakresie, aby mogli przekona膰 si臋, 偶e 偶aden 艣rodek ochrony nie gwarantuje 100% zabezpieczenia, a najlepsza metoda ochrony przed zagro偶eniami to zapobieganie im. Namawiam osoby, kt贸re pisz膮 wirusy, aby rozwa偶y艂y swoje intencje oraz motywy, jakie kieruj膮 nimi podczas publikowania kodu "proof of concept", kt贸ry tylko dolewa oliwy do ognia. Wzywam r贸wnie偶 osoby zajmuj膮ce si臋 tworzeniem ochrony, aby stara艂y si臋 spojrze膰 na problem z nowej strony i wyprzedza艂y wroga nie tylko o jeden krok. By膰 mo偶e nie ujrzymy szybko ko艅ca tego wy艣cigu zbroje艅, mo偶emy jednak nie dopu艣ci膰 do tego, aby wymkn膮艂 si臋 spod kontroli.
* Polimorfizm — technologia pozwalaj膮ca samodzielnie rozmna偶aj膮cemu si臋 programowi na ca艂kowite lub cz臋艣ciowe zmodyfikowanie swojego wygl膮du zewn臋trznego i/lub struktury kodu podczas procesu replikacji.
* Zaciemnianie — po艂膮czenie r贸偶nych podej艣膰 stosowanych w celu maskowania kodu 藕r贸d艂owego programu, tak aby jak najbardziej utrudni膰 czytanie go i analizowanie przy jednoczesnym zachowaniu jego pe艂nej funkcjonalno艣ci. Technologie zaciemniania mog膮 by膰 stosowane na poziomie ka偶dego j臋zyka programowania (艂膮cznie z j臋zykami wysokiego poziomu, j臋zykami skryptowymi i asemblera). Przyk艂adem bardzo prostego zaciemniania jest dodawanie do kodu neutralnych instrukcji (kt贸re nie zmieniaj膮 funkcjonalno艣ci programu) lub sprawianie, 偶e kod jest trudniejszy do odczytania poprzez wykorzystanie nadmiernej ilo艣ci przeskok贸w bezwarunkowych (lub bezwarunkowych prze艂膮cze艅 pod postaci膮 przeskok贸w warunkowych).
* Jest to odniesienie do kilku termin贸w stosowanych w 偶argonie bezpiecze艅stwa komputerowego:Czarny Kapelusz (z艂o艣liwy haker) oraz Bia艂y Kapelusz (specjalista od zabezpiecze艅 wykorzystuj膮cy techniki hakerskie do legalnych, etycznych cel贸w).
殴r贸d艂o:![]() |