Stan zagrożeń w internecie znajduje się obecnie na poziomie standardowym. Nie występują duże epidemie a eksperci z Kaspersky Lab nie zanotowali żadnych poważnych incydentów związanych z bezpieczeństwem. Poziom zagrożenia: 1

Krótka historia wirusa Induc

Aleksander Gostiew
Kaspersky Lab Expert
Dodany 3 września 2009, 09:31 CEST
Tagi:

Ostatnio jeden wirus spowodował dużo szumu w mediach, które drukowały i przedrukowywały informacje od wszystkich największych firm antywirusowych. Wszystkie te newsy były na ten sam temat - czegoś podobnego nie widzieliśmy od czasu robaka Kido (Conficker) i najnowszych luk w zabezpieczeniach Adobe. Kto wywołał całe to zamieszanie? Virus.Win32.Induc.a.

Induc był tak niezwykłym przypadkiem, że opublikowaliśmy krótkiego bloga podając dane techniczne tego wirusa. Teraz przyszedł czas, aby spojrzeć na to z dystansu, wziąć oddech i ocenić rzeczywiste znaczenie wirusa Induc.

Nazwa wirusa nawiązuje bezpośrednio do jego funkcjonalności. Jak tylko szkodnik znajdzie się na maszynie, sprawdza, czy zainstalowano na niej Delphi (atakuje wersje 4.0, 5.0, 6.0 oraz 7.0). Jeżeli wykryje jedną z tych wersji, skopiuje plik .pas, który zostanie później wykorzystany (w tym przypadku sysconst.pas), do \Source do \Lib i doda do niego swój kod. Wykona kopię zapasową sysconst.dcu, nadając mu nazwę sysconst.bak, i skompiluje zainfekowany plik .pas, w wyniku czego powstanie nowy plik sysconst.dcu zawierający szkodliwy kod. Zainfekowany plik .pas zostanie następnie usunięty.

Tak więc mamy wirusa, który dodaje swój kod do pliku z rozszerzeniem .dcu - można powiedzieć, że kod jest (po angielsku) "in dcu". Gdy zmienimy kolejność kilku liter (co zwykle ma miejsce podczas nadawania nazw wirusom), otrzymamy Induc. (Naturalnie, czasami różne firmy antywirusowe nadają wirusom różne nazwy). To, że każda nazywa tego wirusa "Induc", oznacza, że rzeczywiście byliśmy pierwszą firmą, która dodała do swoich baz wykrywanie i leczenie dla tego szkodnika - zwykle do szkodnika przylega pierwsza nadana mu nazwa).

Po tym, jak wirus wstrzyknie swój kod do sysconst.dcu, zainfekowany zostanie każdy program w Delphi skompilowany na maszynie. Oprócz możliwości samodzielnego rozprzestrzeniania się Induc nie posiada żadnej innej szkodliwej funkcji. Interesujący jest sposób rozprzestrzeniania się tego szkodnika - program ten nie infekuje plików exe, ale pliki kompilacji języka programistycznego.

Nie jest to nowe podejście. Niektórzy z was być może przypominają sobie podobnego wirusa z lat 90, wirusa, którego celem były pliki MS-DOS i który infekował pliki języka programowania Pascal. Są też inne przykłady z mniej odległej przeszłości: Lykov, który pojawił się w 2003 roku, dodaje swój kod do plików źródłowych programów w języku Visual Basic. Jego następca, Lykov.b, który infekuje pliki źródłowe programów w języku VB.NET, pojawił się kilka lat później.

Jednak o ile nam wiadomo, nikt wcześniej nie próbował bezpośrednio infekować plików usług kompilatora. Takie podejście jest tak nietypowe, że nie pasuje do naszego aktualnego systemu klasyfikacji. Induc nie jest wirusem w ścisłym znaczeniu tego terminu, ponieważ nie infekuje bezpośrednio plików. Modyfikuje jeden plik systemowy, a nie każdy napotkany plik. Induc nie może być zaliczony do robaków ani do trojanów, chociaż posiada pewne cechy charakterystyczne dla tego typu szkodliwych programów. Tak więc, Induc rzeczywiście jest czymś nowym.

Interesujące jest również to, jak szeroko rozprzestrzeniał się ten wirus. Dzień po tym, jak dodaliśmy wykrywanie dla tego szkodnika, z danych systemu Kaspersky Security Network wynikało, że Induc jest jednym z 70 najpopularniejszych szkodliwych programów. Nie bylibyśmy zaskoczeni, gdyby Induc pojawił się w naszych sierpniowych statystykach dotyczących szkodliwego oprogramowania. Na całym świecie istnieją prawdopodobnie miliony kopii tego wirusa - być może mamy do czynienia z epidemią porównywalną do tej spowodowanej przez Kido!

Trzecią interesującą rzeczą są aplikacje zainfekowane przez wirusa Induc - wirus znalazł się między innymi na komputerach programistów; niektórzy z nich tworzyli bardzo popularne aplikacje. Wykryliśmy na przykład kilka zainfekowanych wersji odtwarzacza AIMP oraz QIP, popularnego klienta komunikatorów internetowych. Induc został wykryty w aplikacjach na całym świecie, na stronach z oprogramowaniem oraz na płytach CD dołączanych gratis do magazynów.

Kolejnym problemem było to, że Induc został wykryty w legalnych aplikacjach, z których wiele zostało umieszczonych przez producentów na białych listach. Tym razem przyprawiło to o ból głowy branżę oferującą białe listy, głównie poprzez technologie "w chmurze". Po wykryciu zainfekowanych plików w bazach danych zawierających "czyste" pliki bazy te musiały zostać wyczyszczone. Świadczy to o słabym punkcie takich baz danych i jeżeli w przyszłości będą miały miejsce podobne incydenty, spowoduje to podważenie wiary w skuteczność białych list.

Wyleczenie zainfekowanych plików nie jest takie proste. Jest to możliwe, ale może mieć negatywne skutki: wiele programów (np. QIP) sprawdza integralność podczas startu przy użyciu sumy kontrolnej. Ponieważ jednak QIP został zainfekowany na etapie kompilacji, stworzona suma kontrolna zawiera szkodliwy komponent, dlatego po wyleczeniu QIP nie będzie działał poprawnie. Jednak programy, które nie sprawdzają integralności, po wyleczeniu nadal działają poprawnie.

Gdy zaczęliśmy otrzymywać zainfekowane pliki, niemal od razu zauważyliśmy, że niektóre trojany stworzone w celu kradzieży danych dotyczących kont bankowych zostały zainfekowane przez wirusa Induc. Autorzy tych trojanów sami padli ofiarą wirusa - wygląda na to, że skompilowali swoje pliki przy użyciu zainfekowanej wersji Delphi. Wszystkie zainfekowane Trojany, jakie widzieliśmy, pochodziły z Brazylii, mimo że zostały stworzone przez różne grupy twórców wirusów. Nie oznacza to, że sam Induc został stworzony w Brazylii - kraj ten jest po prostu jednym z niewielu, w których Delphi jest najbardziej rozpowszechnionym językiem programowania (w Rosji również jest dość popularny).

Zostawmy jednak zainfekowane trojany i przejdźmy do innej bardzo ważnej kwestii - jak długo wirus pozostał niewykryty na wolności i dlaczego.

Induc został po raz pierwszy zidentyfikowany 12 sierpnia 2009 roku przez rosyjskiego programistę Aleksandra Aleksjeewa, znanego również jako Gun Smoker. Był on jedyną osobą wśród tych, które natknęły się na tego wirusa, która nie tylko zorientowała się, co się dzieje, ale również rozpuściła wieści w społeczności komputerowej i wysłała podejrzane pliki firmom antywirusowym. Dzięki Gun Smoker!

Gun Smoker opublikował szczegółowy artykuł na temat swojego odkrycia (dostępny tutaj, tylko w języku rosyjskim). Według niego, zainfekowane pliki po raz pierwszy pojawiły się w styczniu 2009 roku. Z naszych danych wynika, że zainfekowane pliki pochodzą z okresu między listopadem a grudniem 2008 r., jednak podczas kompilacji plików Delphi nie zachowuje daty linkowania, dlatego nie możemy dokładnie określić, kiedy te pliki zostały stworzone. Możemy jednak powiedzieć, że Induc przez rok znajdował się na wolności.

To oznacza, że mamy do czynienia z sytuacją bezprecedensową - przez ponad rok szkodliwy program był "niewidzialny" - pozostał niewykryty przez firmy antywirusowe. Przypadek ten jest jeszcze bardziej zdumiewający niż przypadek Rustocka, rootkita, o którym dużo pisaliśmy w zeszłym roku. Zanim ktoś zacznie kogoś obwiniać, chciałbym wystąpić w obronie branży antywirusowej: Induc pozostawał niewykryty przez tak długi czas, ponieważ w rzeczywistości nie robi niczego, co mogłoby zostać wykryte przez obecne technologie antywirusowe.

Induc nie kradnie danych, nie nawiązuje żadnych połączeń sieciowych ani nie wysyła spamu - nie robi nic, co mogłoby zostać wykryte. Gdyby posiadał jakąkolwiek rzeczywistą funkcjonalność, zostałby już dawno zidentyfikowany.

W związku z tym nasuwa się kolejne pytanie - "co się stanie, jeżeli ta procedura rozprzestrzeniania rozpowszechni się?" Induc jest niewątpliwie kodem typu "proof of concept" - być może został stworzony dlatego, że ktoś się o to założył lub po prostu przez przypadek. Naturalnie koncepcja wykorzystana w wirusie Induc może zostać podchwycona przez cyberprzestępców, jednak nie są oni zainteresowani prostymi metodami rozprzestrzeniania się; cyberprzestępcy chcą móc coś zrobić w zainfekowanym systemie. Wszystko, co mogą zrobić, zostanie wykryte przez stosowane obecnie technologie. Lub, jeżeli przyjmiemy trochę inny punkt widzenia, nic nie mogłoby pozostać niewykryte przez tak długi okres czasu.

Nie bardzo wierzmy w to, że procedura rozprzestrzeniania wirusa Induc zostanie podchwycona przez cyberprzestępców - istnieje wiele prostszych sposobów przeprowadzania ataków. Jednak dzięki temu wirusowi odebraliśmy kilka cennych lekcji. Induc pokazał firmom antywirusowym, że koncepcja białych list nie jest pozbawiona wad. Uświadomił również twórcom oprogramowania, że muszą dokładnie zrozumieć swoje języki programowania. Ponadto, Induc uświadomił wszystkim, którzy korzystają z komputerów, że nawet zaufane aplikacje mogą nie być tak czyste, jak nam się wydaje.