CIM-вирусы в Windows: методика и инструмент обнаружения А.В. Попов, Е.А. Шикин Мордовский госуниверситет, кафедра технологий программирования, Саранск, 2005 E-mail: wmi_popov@mail.ru «Технологии Microsoft в теории и практике программирования», Москва, 17-18 февраля 2005 План доклада Стандартный механизм действия вирусов Репозиторий CIM как универсальная объектно-ориентированная БД Механизм действия CIM-вирусов Пример CIM-вируса Опасность CIM-вирусов Утилита ScanCIM.hta Заключение Стандартный механизм действия вирусов Запуск исполняемого кода (самим пользователем или через лазейку в ОС) Сохранение вредоносного кода на диске: отдельные файлы (исполняемые файлы, библиотеки, сценарии WSH) Внедрение в офисные документы (макровирусы) ресурсы или Модификация системного реестра: ассоциации файлов (HKCR) разделы автоматической загрузки (HKLM\…\Run и RunOnce, HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon) список запускаемых служб (HKLM\System\CurrentControlSet) … Вирус запускается при каждой загрузке системы или открытии документа Общая схема WMI Системный реестр (Registry) Журнал событий (Event Log) Registry API Event Log API Провайдер реестра (Registry provider) Провайдер журнала событий (Event Log provider) WMI API WMI API ... Подсистема Win32 УПРАВЛЯЕМЫЕ РЕСУРСЫ Win32 API ... Провайдер подсистемы Win32 (Win32 provider) ЯДРО WMI WMI API Репозиторий CIM (CIM repository) CIMOM (служба WMI) Библиотека поддержки сценариев WMI (WMI Scripting Library) WMI COM API WMI ODBC Adapter Сценарии WMI Приложения Win32 Приложения БД УПРАВЛЯЮЩИЕ ПРОГРАММЫ Репозиторий CIM как универсальная объектноориентированная БД CIM–универсальное иерархическое хранилище классов и объектов модели компьютерной системы постоянные фильтры и потребители событий Обработка событий с помощью WMI Применение фильтра событий (WQL-запрос) Нет Событие произошло? Да Запуск потребителя событий LogFileEventConsumer Запись в текстовый файл … ActiveScriptEventConsumer Запуск cценария WSH Механизм действия CIM-вирусов Запускается исполняемый код (самим пользователем или через лазейку в ОС) Настраиваются постоянные фильтры и потребители событий WMI (WMI API, WMI Scripting Library или компиляция MOF-файла) Вредоносный код помещается в репозиторий CIM Вирус запускается при наступлении определенного системного события Пример CIM-«вируса» Инициирующее событие (Фильтр 1) Появление файла c:\klop.js (Фильтр 2) Создание файла c:\klop.js с вредоносным кодом (LogFileEventConsumer) Запуск сценария c:\klop.js (ActiveScriptEventConsumer) Удаление файла c:\klop.js (ActiveScriptEventConsumer) Опасность CIM-вирусов Исполняемый код сценария хранится внутри репозитория CIM (антивирусным программам тяжело опознать деструктивный код) Реестр и системные файлы не изменяются (нет признаков инфицированности) В Windows отсутствует удобные стандартные средства для работы с репозиторием CIM Утилита ScanCIM.hta Заключение Репозиторий CIM является потенциальной целью вирусов CIM-вирусы тяжело обнаружить с помощью стандартных средств Необходимы проверять, какие постоянные фильтры и потребители событий зарегистрированы на компьютерах Желательно иметь в составе Windows удобную утилиту для работы с репозиторием CIM