Исследование вредоносного кода

ИССЛЕДОВАНИЕ ВРЕДОНОСНОГО КОДА

Д.В. Черемушкин

Научный руководитель - доктор технических наук, профессор Л.Г. Осовецкий

С развитием информационных технологий все большее значение и актуальность приобретает вопрос информационной безопасности. Говоря об информационной безопасности, нельзя не упомянуть о таком источнике угроз, как вредоносные программы. При защите от подобного вида угроз большую роль играет анализ механизмов работы вредоносных программ.

Среди проведенных исследований в данной области можно выделить работы [16]. Однако отмеченные исследования направлены в основном на изучение определенной вредоносной программы. Конечно, это способствует наилучшему пониманию особенностей работы отдельного кода и облегчает изучение его модификаций. Но, с другой стороны, недостаточно формализована общая методология, алгоритм проведения анализа вредоносного кода (ВК). Кроме того, информация по настоящей тематике представлена в основном в зарубежных источниках и, как правило, не отличается объемом. В настоящей работе преследуется цель - описать основные этапы исследования вредоносного кода, их взаимосвязь и некоторые особенности. Приведенная в работе информация относится к исследованию вредоносных программ, представляющих собой приложение Windows (PE-EXE файл).

Пожалуй, первоочередной задачей следует считать обнаружение вредоносного кода, поиск объекта анализа. Ниже перечислены способы получения вредоносного кода, в результате которых был достигнут положительный результат:

• Интернет-сайты, содержащие в информационных целях различную информацию о вредоносных программах, их исходные коды и готовые образцы;

• Интернет-сайты различных команд, занимающихся написанием вредоносных программ;

• отчеты специализированных программ, предназначенных для предупреждения пользователей о возможной опасности при посещении ресурсов сети Интернет (McAfee SiteAdvisor, StopBadware);

• электронная почта;

• файлообменные сети общего пользования;

• поисковые системы сети Интернет.

Другим этапом, который нельзя недооценивать, является систематизированное накопление вредоносного кода и полученных при его исследования результатов. Целесообразность такого подхода может быть обоснована следующим образом:

• часто имеет место ситуация, когда большая часть кода одной вредоносной программы повторяется в другой;

• нередко несколько вредоносных программ распространяются вместе, дополняя друг друга, а для выяснения связей необходимо иметь такой набор, а не каждую вредоносную программу в отдельности;

• могут существовать несколько различающихся экземпляров одного вредоносного кода;

• вредоносные программы классифицируются по семействам и классам, что может облегчить процесс исследования схожих вредоносных программ.

Одним из возможных вариантов присваивания имен файлам в вирусной коллекции является соответствие имени файла названию ВК согласно стандарту одной из антивирусных компаний. При наличии нескольких экземпляров одного ВК в имени при таком подходе используется индекс.

Основным этапом исследования является непосредственно анализ вредоносного кода. Для этого применяется reverse code engineering (RCE) — набор методик и инструментов для анализа разработанного ПО с целью выявления его архитектуры, методов и особенностей работы. На русский язык этот термин переводится как обратное проектирование, реверсивное программирование, реинжиниринг.

Процесс анализа вредоносного кода включает в себя следующие этапы (в скобках перечислены используемые программные средства):

1. проверку целостности исследуемого объекта (эту операцию могут осуществлять некоторые антивирусы, например, Антивирус Касперского);

2. проверка на наличие слоев паковки и их идентификация (PEiD);

3. распаковка, если требуется. Этот процесс зависит от использованного паковщика, наиболее популярным является UPX (upx.sourceforge.net);

4. получение информации о поведении исследуемого объекта средствами системного мониторинга;

5. контроль изменений среды, в которой выполнен исследуемый код.

Контролируемыми элементами в таком случае могут являться:

• файловая система (FileMon);

• реестр (RegMon, RegShot);

• запущенные процессы (Process Explorer);

• открытые порты (PortMon, netstat);

• сетевая активность (IRIS Network Traffic Analyzer, Ethereal);

• вызов API-функций (Kerberos, ApiMonitor, ApiSpy32);

• данные о пользователях, группах, сервисах.

6. Совместное использование дизассемблера и отладчика для более детального изучения программы (IDA; Softlce, OllyDbg).

Последним этапом в исследовании является оформление результатов. Ниже в качестве примера приведены результаты, полученные в результате исследования вредоносной программы Backdoor.Win32.Sumatrix.

Объект исследования. Троянская программа, предоставляющая удаленный доступ к компьютеру. Является приложением Windows (PE EXE-файл). Упакована с помощью UPX. Имеет размер в упакованном виде 4 608 байт, в неупакованном - 7 168 байт.

Инсталляция. После запуска вредоносная программа помещает свою копию в корневой каталог Windows под именем "rundIl32.exe". Затем в зависимости от собственных настроек троян способен добавлять следующие данные в реестр:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] a = "%WinDir%\rundIl32.exe"

• [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]

c = "%WinDir%\rundIl32.exe" В ОС Windows NT 4.0, 2000, XP, 2003 кроме того вносятся изменения в следующие ветви реестра:

• [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]

Shell = "explorer.exe rundIl32.exe"

• [HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows]

load = "%WinDir%\rundIl32.exe" run = "%WinDir%\rundIl32.exe" В ОС Windows 9x, ME модифицируются:

• секция [boot] файла "%WinDir%\system.ini",

параметр shell = "explorer.exe rundIl32.exe" • секция [windows] файла "%WinDir%\win.ini", параметр load = "%WinDir%\rundIl32.exe" параметр run = "%WinDir%\rundIl32.exe" Также троянская программа скрывает свое присутствие в списке задач в ОС Windows 95, 98, ME.

Деструктивная активность. Backdoor.Win32.Sumatrix сочетает в себе следующие функции:

• при установке связи с сетью Интернет - отправка «хозяину» ICQ-сообщения, содержащего сетевое имя компьютера, IP-адрес, версию ОС, информацию для установки удаленного доступа (открытый порт, пароль) - функция не работоспособна;

• завершение сеанса текущего пользователя (ОС Windows NT 4.0, 2000, XP, 2003) или выключение компьютера (ОС Windows 9x, ME);

• получение сведений о местонахождении системных директорий ОС;

• загрузка на зараженный компьютер произвольной информации. Имя файла и каталог, где сохраняются данные, определяются злоумышленником;

• запуск программ, указанных злоумышленником;

• удаление ссылок на программу из секций автозапуска реестра, конфигурационных файлов.

Кроме того, вредоносная программа имеет простой механизм аутентификации (по паролю).

Рекомендации по удалению:

1. завершить процесс «rundIl32.exe»;

2. удалить файл «rundIl32.exe» из каталога Windows;

3. удалить указанные выше параметры в реестре и конфигурационных файлах.

В заключение следует отметить, что изучение вредоносных программ, оказываемого ими влияния важно и необходимо. Полученные в результате таких исследований результаты могут использоваться для:

• создания вирусных энциклопедий в информационных целях;

• анализа существующих и развивающихся возможностей вредоносных программ и связанных с этим угроз;

• разработки сигнатур, позволяющих идентифицировать вредоносный код;

• защиты от вредоносного ПО.

Литература

1. Rozinov Konstantin. Reverse Code Engineering: An In-Depth Analysis of the Bagle Virus. 2004.

2. Hines Eric S. MyDoom.B Worm Analysis. 2004.

3. Friedl Stephen J. Analysis & reverse engineering of the "Iraq Oil" worm. 2005.

4. Friedl Stephen J. Analysis of the Troj/Winser-A Malware. 2005.

5. Roculan Jensenn, Hittel Sean, Hanson Daniel, Miller Jason V., Kostanecki Bartek, Gough Jesse, Mario van Velzen, Friedrichs Oliver. SQLExp SQL Server Worm Analysis. 2003.

6. Eduardo Labir. VX Reversing III - Yellow Fever, 2005.