ИССЛЕДОВАНИЕ ВРЕДОНОСНОГО КОДА
Д.В. Черемушкин
Научный руководитель - доктор технических наук, профессор Л.Г. Осовецкий
С развитием информационных технологий все большее значение и актуальность приобретает вопрос информационной безопасности. Говоря об информационной безопасности, нельзя не упомянуть о таком источнике угроз, как вредоносные программы. При защите от подобного вида угроз большую роль играет анализ механизмов работы вредоносных программ.
Среди проведенных исследований в данной области можно выделить работы [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.