Общие тенденции развития вредоносных программ
За 2006 год автором было обнаружено и проанализировано 49 697 уникальных разновидностей вредоносных программ, причем 47 907 из них принадлежат к основным семействам. По результатам их анализа построена диаграмма, отражающая процентный состав вредоносных программ по семействам за год (рис. 1).
Как видно из диаграммы, 37% всех исследованных программ составляют вредоносные программы типа Trojan-Downloader. Это устойчивая тенденция, которая прослеживается с 2005 года и связана с тем, что Trojan-Downloader применяются для установки вредоносных программ, обновления их версий и восстановления в случае удаления антивирусом. Большинство исследованных случаев поражения компьютера вредоносным ПО влечет за собой именно запуск Trojan-Downloader, вследствие применения эксплойта или методов социальной инженерии. Следующими по распространенности являются почтовые и сетевые черви, троянские программы различных типов и программы класса Dialer.
Статистический анализ динамики обнаружения ITW (in the Wild) образцов показывает, что разработчики вредоносных программ взяли на вооружение и активно применяют новую технологию борьбы с сигнатурными сканерами. Методика ее крайне проста и заключается в том, что разработчик создает сотни вариантов одной и той же вредоносной программы в течение небольшого промежутка времени. Наиболее простые методы получения различных вариантов следующие:
- переупаковка различными упаковщиками и криптерами — может выполняться периодически или в момент запроса файла, набор упаковщиков и их параметров может варьироваться случайным образом. Нередко авторы вредоносных программ применяют модифицированные упаковщики и криптеры, что затрудняет их проверку;
- перекомпиляция файла с внесением модификаций, достаточных для того, чтобы изменились сигнатуры файла, по которым производится его детектирование;
- помещение вредоносного файла в инсталляционный пакет, созданный при помощи инсталляторов типа NSIS (Scriptable Installation System). Наличие открытого исходного кода инсталлятора позволяет немного его модифицировать, что сделает невозможным автоматическую распаковку и анализ в ходе антивирусной проверки.
Перечисленные методики давно известны и могут применяться в различных сочетаниях, что позволяет автору вредоносной программы без особого труда создавать сотни вариантов одной и той же программы без применения классических полиморфных методик. Проследить это можно на примере Trojan-Downloader. Win32.Zlob. Рассмотрим статистику его обнаружений за последние 40 дней (рис. 2
За этот период автором было обнаружено 2198 ITW-образцов Trojan-Downloader.Win32. Zlob, из которых 1213 — уникальные. На графике показаны две кривые: количество обнаружений в день и количество уникальных разновидностей файлов. Из графика видно, что примерно каждый второй обнаруженный ITW-образец является уникальным файлом, и эта зависимость стабильно сохраняется в течение месяца. Если опираться на классификацию «Лаборатории Касперского», то рассмотренные 1213 образцов принадлежат к 169 подразновидностям данной вредоносной программы. Подобная статистика весьма показательна: существует множество вредоносных программ, для которых ежедневно обнаруживаются десятки новых модификаций.
Другую характерную тенденцию можно проследить на примере почтового червя Warezov. За месяц автором зафиксировано 5333 ITW-образцов, из них 459 — уникальные. График распределения активности показан на рис. 3.
Зубцы на графике — это периоды эпидемий, которые связаны с появлением новых разновидностей червя (в данном случае: Email-Worm.Win32.Warezov.gj, Email-Worm.Win32. Warezov.fb, Email-Worm.Win32.Warezov.hb). Из графика видно, что активная эпидемия длится в среднем 2-5 дней, после чего количество обнаружений Warezov падает до «фонового» уровня — 10-30 образцов в день. Появление подобных всплесков вполне объяснимо — новая разновидность червя не детектируется антивирусами, в результате червь поражает массу ПК и начинается эпидемия. Она быстро развивается, однако в течение дня сигнатуры червя попадают в базы антивирусов и эпидемия быстро идет на спад.
Отдельно следует отметить активное распространение троянских программ категории Trojan-SPY — шпионов, ворующих персональные данные пользователей. Среди них выделяется знаменитый Goldun, осуществляющий кражу информации об учетных записях системы e-gold. Последние варианты этой троянской программы активно применяют руткит-технологии для маскировки и шпионажа (рис. 4).
Анализ технологий, используемых создателями вредоносных программ, показывает, что за 2006 год не придумано никаких революционно новых технологий — разработчики вредоносного ПО берут количеством, а не качеством. Тем не менее появилось несколько новинок, которые заслуживают более подробного обсуждения.
В заключение рассмотрим сводный усредненный график, построенный по данным авторской системы автоматического мониторинга вирусной активности (рис. 5).
Rootkit-технологии
В 2006 году наблюдалось развитие и совершенствование различных типов руткитов и руткит-технологий. Эти технологии применяют многие вредоносные программы, причем существует несколько их направлений:
- руткит-технологии для маскировки, основное назначение которых — маскировка присутствия вредоносной программы и ее компонентов на диске и в памяти, а также маскировка ключей в реестре. Для решения этой задачи чаще всего используется перехват API-функций, причем в современных руткитах встречаются весьма изощренные методики перехвата, например внедрение кода в неэкспортируемые функции ядра, перехват прерывания Int2E, модификация SYSENTER. Отдельно следует отметить DKOM-руткиты (Direct Kernel Object Manipulation), которые приобретают все большую популярность;
- руткит-технологии для шпионажа — как следует из названия, они применяются для слежения за работой пользователя и сбора конфиденциальной информации. Наиболее характерный пример — Trojan-Spy.Win32.Goldun, который по руткит-принципу перехватывает обмен приложений с Интернетом для поиска в потоке передаваемой информации реквизитов кредитных карт пользователя.
Рассмотрим подробнее DKOM-руткиты. Принцип их работы основан на модификации системных структур, описывающих процессы, драйверы, потоки и дескрипторы. Подобное вмешательство в системные структуры, естественно, является недокументированной и весьма некорректной операцией, однако система после подобного вмешательства продолжает более или менее стабильно работать. Практическим последствием такого вмешательства является то, что у злоумышленника появляется возможность манипулирования структурами ядра в собственных целях. Например, для каждого из запущенных процессов в ядре заводится структура EPROCESS, хранящая массу информации о процессе, в частности его идентификатор (PID) и имя процесса. Эти структуры образуют двусвязный список и используются API-функциями, возвращающими информацию о запущенных процессах. Для маскировки процесса DKOM-руткиту достаточно удалить его структуру EPROCESS из списка. Реализация подобной маскировки крайне проста, и в Интернете можно найти десятки готовых реализаций с исходными текстами. Более сложные руткиты не ограничиваются удалением структуры маскируемого объекта из списка — они искажают содержащиеся в ней данные. В результате даже если антируткит сможет найти замаскированный процесс или драйвер, то он получит о нем неверную информацию. Ввиду простоты реализации подобные руткиты приобретают все большую популярность, и бороться с ними становится все сложнее. Исследования показали, что наиболее эффективным методом противодействия им является установка в систему монитора, следящего за запуском/завершением процессов и загрузкой/выгрузкой драйверов. Сравнение собранной подобным монитором информации с данными, возвращаемыми системой, позволяет обнаружить произведенные DKOM-руткитом модификации, понять их характер и обнаружить замаскированные процессы и драйверы.
Hoax-программы
Направление Hoax-программ продолжает активно развиваться, поэтому можно уверенно прогнозировать рост этого семейства в 2007 году. В буквальном переводе Hoax — это обман; ложь, мистификация, неправда. Идея Hoax-программ — обман пользователя, чаще всего с целью получения прибыли или похищения конфиденциальной информации. В последнее время наблюдается тенденция криминализации этой отрасли: если еще год назад большинство Hoax-программ производили сравнительно безобидные действия, имитируя заражение компьютера вирусами или SpyWare-кодом, то современные все чаще нацелены на похищение паролей или конфиденциальной информации. Пример такой программы показан на рис. 6.
Как следует из окна программы и ее описания, это генератор лицензий для «Антивируса Касперского». Программа предлагает для получения сгенерированной лицензии ввести адрес своей электронной почты и пароль на доступ к почтовому ящику. Если доверчивый пользователь сделает это и нажмет кнопку «Получить шифр», то введенные им данные будут переданы злоумышленнику по электронной почте. Подобных программ за прошедший год обнаружено более сотни: это разнообразные «креки», генераторы карт оплаты сотовых операторов, генераторы номеров кредитных карт, средства «взлома» почтовых ящиков и т.п. Общая черта подобных программ — обман пользователя, нацеленный на то, чтобы он самостоятельно ввел некую конфиденциальную информацию. Вторая характерная черта Hoax-приложений — их примитивность: они содержат массу ошибок и некорректностей в программном коде. Подобные программы зачастую создают начинающие вирусописатели.
Тенденцию развития Hoax-программ можно рассмотреть на примере Hoax.Win32.Renos (рис. 7).
Из графика видно, что автором в день обнаруживается, как минимум, одна новая уникальная разновидность этой вредоносной программы, а всего за месяц наблюдается 60 новых уникальных вариантов, входящих в 18 подразновидностей по классификации «Лаборатории Касперского».