Delphi

индекс
66,81

Induc по-прежнему угроза для Delphi из песочницы

Приветствую всякого на этой странице!

Сегодня мой товарищ увлекающийся, помимо всего прочего, разработкой 2D-игр на Delphi прислал мне очередную свою вещицу. Доверяй, но проверяй! — подумал я и по старой доброй традиции отправил файл на VirusTotal. Дождавшись результатов проверки желание побыстрее запустить игрушку как-то пропало… В некоторых ячейках таблицы результатов проверки красивым красным цветом было написано уже знакомое слово «Induc». Немного удившись отсутствию визга (ой, кажется, он так уже давно не делает) своего антивируса я пошёл разбираться. Но не с представителями антивирусной компании, а с устройством заражённого файла.

Вспоминая конец лета 2009 года, когда Induc'у удалось заразить среды не только любителей по программировать в Delphi, но и многие популярные программы, такие как QIP и AIMP, и учитывая то, что не впервые раз запускаю файлы своего приятеля, я первым делом решил проверить свою установку. Откомпилировав пустой проект послал его на тот же VirusTotal — индюка нет!
Немного успокоившись запускаю виртуальную машину и начитаю устанавливать Delphi 7. Не успев забыть опять вспоминаю конец лета 2009 и обсуждения на многих форумах интернета о том, как эта гадость работает, размножается, чем живёт и понимаю, что нужно воспользоваться чем-то вроде гугла. Однако, лень сильнее, да и к тому же инсталлятор отрапортовал об успешном завершении установки IDE.
Первое, что пришло мне в голову, это запустить Process Monitor и посмотреть куда суётся инфицированный файл. Сказано — сделано!



На скриншоте видно, что после многократной записи чего-то там в файл SysConst.pas игрушка обращается к компилятору Delphi (dcc32.exe), очевидно, с попыткой этот pas-файл откомпилировать.
Не мудрствуя лукаво, откатившись в исходное состояние виртуалки после установки делфи, подсовываю вместо файла DCC32.EXE свой exe-шник с исходным кодом такого содержания:



И так, в файле copy.pas имеем вот что pastebin.com/QT0tEVJb
Сравнивая с оригинальным SysConst.pas видим, что он дополнен вредоносными строчками.

Немного поковырявшись, я получил отформатированный исходник pastebin.com/KpmuSii9 (комментарии мои).

Как видно, при запуске прежде всего кое-как проверяется не находиться ли программа под отладчиком (зачем?) и запускается на NT-системе или нет, иначе выполнение прекращается.
Далее вирус копошится в реестре в поисках установленной версии Delphi и пути к её папке.
Затем вызывается процедура, которая считывает исходный файл SysConst.pas, добавляет к нему вредные строки и сохраняет в папку lib, то есть туда же, где расположен файл SysConst.dcu. После этого та же процедура запускает компилятор, получая тем самым заражённый файл SysConst.dcu. Здесь же удаляется вредоносный исходник и выставляется время создания, последнего доступа и модификации для нового файла SysConst.dcu таким, каким оно было у его предшественника.
И ещё в файл SysConst.pas записывается строка 'Carpathian Forest CF1.3 BondedByBlood'

Вот вроде бы и всё, своё дело Induc сделал… Но осталось ещё несколько незадействованных процедур, которые реализуют не менее вредоносный функционал. Так при запуске процедуры Check проверяется не 13-е ли сегодня октября 2010 года или более, если так оно и есть, то запускается процедура Analize. Эта процедура затирает в первую очередь файлы hal.dll, urlmon.dll, userinit.exe, logoff.exe, rasapi32.dll, explorer.exe, ntdetect.com, затем ищет все файлы на дисках от C: до Z: и точно так же их портит записывая циклично строку 'Carpathian Forest CF1.3 BondedByBlood' разбавленную килобайтом нулевых символов. В конце всего этого открывается окно с заголовком 'TODAY IS A NICE DAY TO DIE.' и текстом 'Carpathian Forest CF1.3 BondedByBlood'.
Однако, автор предпочёл скрыть все эти фичи (или просто забыл подключить).

Примечательно ещё то, что вируснятинка немного устаревшая (так как в исходниках фигурирует дата 2010-10-13), а большинство популярных антивирусов как бы ни сном, ни духом… В чем же заключается сложность обнаружения такого достаточно простого вируса?
+33
23 января 2012, 18:29
18

комментарии (18)

0
int5c #
В названии наверно delphi, а не «Dephi»)
0
rst59 #
ой, спасибо...)
+1
entze #
В антивирусные компании отправили?
+1
rst59 #
Да, отправил.
–6
acmer #
Школьные вирусы такие школьные))
Наверное автор жутко гордится написанным квайном.
–6
acmer #
В смысле автор вируса, а не статьи
+2
rst59 #
Вирус действительно не сложный. Написан на базе индюка «первой версии», но отличается наличием шифрования текста, который будет дописан в «хороший» файл из исходной установки Delphi. Это наверное мешает детектированию его с помощью баз вирусных сигнатур.
–4
acmer #
Щкольный еще потому что не дает никакой пользы создателю (не сливает данных, ничего не ддосит), кроме неконтролируемого локального вредительства. Ну а на вирус-террорист тоже не тянет.
+1
rst59 #
Кстати, мне кажется, такой вирус как раз и опасен тем, что никакого вреда как такового он не делает. И используя свою неприметность, может успешно распространиться на другие компьютеры.
0
Disasm #
Всё так, только какой смысл в таком вирусе, если у него нет полезной нагрузки?
0
ddosia #
Proof of concept?
+1
Grebenshikov #
Знаете, учитывая его распространенность примерно год назад (а может и больше), я бы «школьным» его не называл.

Гениальное не значит сложное ;)
0
Derailed #
«вируснятика» --> наверное хотели написать «вируснятинка»?
0
rst59 #
Именно!
0
Derailed #
Чувствуется «двухлапость» — сам постоянно попадаю на перестановку букаф… Интересно, с чем связан такой side-effect?
+7
AHrEJI #
Очень понравился отформатированный исходник!)
Читал, как детектив :)
0
LivingDead #
Охх попортил он мне нервы изрядно, правда Касперский в момент компиляции вируса его ловил, что сейчас правда не знаю.
p.s. А что за игра то ?)
0
rst59 #
Игру прислал друг, которую он написал сам. Свою среду, как оказалось, заразил при «помощи» файла скачанного где-то глубоко в интернетах, который содержал пример реализации какого-то визуального эффекта для игры.
А именно сейчас он занимается поиском «больных» файлов на своём компьютере :) (пока нашёл 37 штук).

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.