СИСТЕМА АВТОМАТИЧЕСКОГО СОСТАВЛЕНИЯ ОПИСАНИЯ И КЛАСТЕРИЗАЦИИ РАЗЛИЧНЫХ, В ТОМ ЧИСЛЕ И ВРЕДОНОСНЫХ, ОБЪЕКТОВ

Область техники
Полезная модель относится к компьютерным системам и более конкретно к системам автоматического составления описания и кластеризации различных, в том числе и вредоносных объектов.
Уровень техники
В настоящее время составление описания работы объектов является важным звеном обнаружения вредоносных объектов для дальнейшей возможности обнаружения схожих, а также для предоставления информации об объектах, вынесения вердикта о потенциально опасных объектах, кластеризации описаний для ведения статистики и предсказания появления тех или иных типов вредоносных объектов в будущем, варьирования широты описания для различных групп пользователей.
Одной из простых систем автоматического составления описания работы объектов является система, например, описанная в патенте US 20050010548, использующая метод, который анализирует файл с использованием дополнительного шаблона с описаниями. Далее, в результате построчного анализа, можно получить описание работы файла.
Однако эта система не позволяет анализировать потенциально опасное и новое вредоносное программное обеспечение, поскольку работает по заданному шаблону с описаниями.
Существуют системы автоматического составления описания работы программ, приведенные, например, в патенте ЕР 1026887, в которых происходит составление описания программы, а именно, ее функционала. Например, описание содержит сведения о том, что описываемая программа воспроизводит видеофайлы.
Однако эта система ограничена составлением описания программ путем сравнения с уже известными аналогичными программами, следовательно, поиск потенциального и нового вредоносного программного обеспечения затруднен.
Существуют системы обнаружения вредоносных объектов путем эмуляции кода в защищенной среде, представленная, например, в патентной заявке US 20080201129. Система способна фиксировать обращения к системным ресурсам и природу данных обращений. Система полезна для определения принадлежности исполняемого файла к неизвестному типу вредоносных объектов.
Используя технологию эмуляции для получения данных о поведении программы, можно получить данные для дальнейшего анализа, кластеризации (разбиения заданной выборки объектов на непересекающиеся подмножества, называемые кластерами, так, чтобы каждый кластер состоял из схожих объектов, а объекты разных кластеров существенно отличались) и описания программы.
В заявке US 20070186282 описана система оценки вредоносности объекта посредством определения потенциально вредоносного запроса при помощи присваивания рейтинга опасности полученным запросам в соответствии с одним или несколькими атрибутами и классификацией действий в соответствии с рейтингом опасности.
Однако использование системы отдельно не позволяет создавать полноценное описание объекта.
В патенте WO 06076638 описана система сравнения функциональности программ-графов. Под графом подразумеваются дерево узлов функциональности программ. Используя данный метод сравнения программ на основе данных, полученных при обработке программы с помощью различных утилит, и построенного графа, можно получить необходимые данные для составления описания программы.
Существуют патентные заявки и патенты, в которых описаны различные системы кластеризации данных, в том числе и документов. Например, в заявке US 20080195587 используется парное сравнение элементов для определения уровня схожести.
Однако с помощью данной системы невозможно произвести кластеризацию новых или потенциально опасных зловредных объектов ввиду отсутствия схожих элементов для сравнения.
Анализ предшествующего уровня техники и возможностей, которые появляются при комбинировании их в одной системе, позволяют получить новый результат, а именно систему автоматического составления описания и кластеризации как новых, так и уже известных объектов. Результат данной системы, предоставляется посредствам отчетов с возможностью визуализации, составленных по данным журналов совершенных действий, вердиктов, полученных в результате работы описываемого объекта в защищенной среде и дальнейшим сравнением с примерами поведений вредоносных объектов, известными вредоносными объектами и кластеризации объектов.
Сущность полезной модели
Настоящая полезная модель предназначена для автоматического составления описания известных объектов в удобном для восприятия формате, а также для обнаружения новых или потенциальных вредоносных объектов.
Технический результат настоящей полезной модели заключается в автоматическом формировании описания объектов различного уровня детализации и представления.
Система для автоматического составления описания и кластеризации объектов содержит: эмуляционный модуль, предназначенный для эмуляции и виртуализации исполнения кода объекта в защищенной среде, эмуляции исполнения скриптовых вредоносных объектов, сканирования описываемой программы и результирующих файлов после ее исполнения; модуль кластеризации, предназначенный для определения принадлежности неизвестного объекта к определенному семейству вредоносных объектов; анализатор, предназначенный для динамического и статического анализа журнала действий и вердиктов, полученных от эмуляционного модуля и модуля кластеризации соответственно, кластеризации и построения графа, а также поиска определенных подграфов, которым соответствуют различные вредоносные действия; базу характеристик вредоносных объектов, связанную с анализатором, предназначенную для выдачи определенных подграфов, которым соответствуют вредоносные действия; базу обработанных объектов для предоставления информации о семействах вредоносных объектов, а также об отдельных видах; модуль описаний, связанный с базой обработанных объектов и анализатором и предназначен для составления описания объекта, с возможностью выбора широты описания, на основе графа, полученного от анализатора, и данных базы обработанных вредоносных объектов; средство хранения файлов локализации, предназначенное для предоставления отчетов, полученных в результате работы модуля описания, на различных языках.
В частном варианте выполнения системы, объектами описания и кластеризации могут быть вредоносные объекты.
В другом частном варианте выполнения системы, эмуляционный модуль состоит из: эмулятора, который эмулирует исполнение поступившего объекта в защищенной среде, фиксируя результат эмуляции в журналах действий объектов; скриптового эмулятора, который эмулирует исполнение поступающих скриптовых объектов, с последующей фиксацией полученных результатов в журналах действий объектов; виртуальной машины, которая исполняет поступивший объект в изолированной среде исполнения на базе одной из нескольких виртуальных машин, и предоставляющий журналы действий объекта при завершении исполнения; средства для расчета рейтинга опасности объекта на основе данных, полученных при эмуляции и/или исполнения программы и предоставления результатов расчета в журналах действий объекта; средства для сканирования исходного объекта и созданных или измененных в процессе эмуляции файлов методом сигнатурного поиска и фиксирования результатов сканирования в журналах действий объекта; средства для сбора основной и расширенной информации о результатах исполнения объекта и занесения полученной информации в журнал действия объекта.
В еще одном частном варианте выполнения системы, эмуляционный модуль позволяет эмулировать действия пользователей.
В еще одном частном варианте выполнения системы, модуль кластеризации, производит определение принадлежности неизвестного объекта к определенному семейству вредоносных объектов и фиксирует результат в вердиктах.
В частном варианте выполнения системы, модуль анализатор производит расчет коэффициента схожести на основе: идентификационных строк, включающие вызываемые объектом API-функции; таблиц параметров API-функции, включающие параметры вызываемых объектом API-функций; количества совпадений API-функции либо параметров, вызываемых описываемым объектом, с количеством аналогичных API-функции либо параметров уже известного вредоносного объекта; количества не совпавших API-функций либо параметров.
В другом частном варианте выполнения системы, модуль анализатор производит отнесение описываемых объектов к кластерам, а также производит поиск объекта в коллекции на основе рассчитанного показателя схожести.
В еще одном частном варианте выполнения системы, модуль эмуляции может быть настроен для отслеживания событий различного уровня подробностей.
В частном варианте выполнения системы, система накапливает данные о проверенных объектах в базе данных обработанных объектов.
В частном варианте выполнения системы, система с помощью модуля описаний выводит описание объекта: в текстовом виде с возможностью выбора различной степени подробности описания; или в аудио, видео либо графическом изображении.
В другом частном варианте выполнения системы, описание включает: значения ключей реестра; имена созданных либо используемых файлов; URL-адреса; рассчитанный рейтинг опасности объекта; особенности поведения объекта; вердикт о принадлежности объекта к семейству вредоносных объектов; отправленные по почте письма, если таковые имеются; названия задействованных процессов; названия окон объекта; информацию о сетевой активности объекта.
Краткое описание чертежей
Дополнительные цели, признаки и преимущества настоящей полезной модели будут очевидными из прочтения последующего описания осуществления полезной модели со ссылкой на прилагаемые чертежи, на которых:
Фиг.1 показывает структурную схему заявленной системы автоматического описания программ;
Фиг.2 показывает процесс преобразования информации от этапа загрузки кода до генерации отчета;
Фиг.3 показывает построенный на основе действий вредоносной программы граф;
Описание вариантов осуществления полезной модели
Объекты и признаки настоящей полезной модели, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящая полезная модель не ограничивается примерными вариантами осуществления, раскрытыми ниже, она может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, обеспеченными для помощи специалисту в области техники в исчерпывающем понимании полезной модели, и настоящая полезная модель определяется только в объеме приложенной формулы.
Как видно на фиг.1, система 100 автоматического составления описания и кластеризации различных, в том числе и вредоносных, объектов в соответствии с настоящей полезной моделью содержит несколько модулей, а именно: модуль эмуляции 120; модуль кластеризации 130; анализатор 140; модуль базы данных характеристик вредоносных объектов 150; модуль базы данных обработанных вредоносных объектов 160; модуль описаний 170; файлы локализаций 180.
Каждый модуль системы может быть выполнен в виде как отдельного, так и одного компьютера, содержащего соединенные через шину процессор, память, а также другие устройства: устройства ввода-вывода, дисплей, устройство связи и т.д.
Модуль эмуляции 120 предназначен для эмуляции исполнения кода объекта в защищенной среде, эмуляции исполнения скриптовых вредоносных объектов, сканирования описываемой программы и результирующих файлов после ее исполнения. Сам модуль может состоять из нескольких частей, например, эмулятора, скриптового эмулятора, виртуальной машины, средства для расчета рейтинга опасности объекта, средства для сканирования исходного объекта и созданных или измененных в процессе эмуляции файлов методом сигнатурного поиска, средства для сбора основной и расширенной информации, которая может включать сведения о загружаемых и запускаемых объектах. Результатами работы модуля эмуляции 120 могут являться созданные и модифицированные процессом исполнения кода объекта файлы и результаты их анализа, а также упаковщик оригинального объекта и язык программирования на котором, вероятно, был написан объект.
Также эмуляционный модуль позволяет эмулировать действия пользователей и предоставлять описания эмуляции действий пользователей для конкретных групп пользователей.
Модуль кластеризации 130 предназначен для определения принадлежности неизвестного объекта к определенному семейству вредоносных объектов. Результатом работы модуля кластеризации 130 являются вынесенные вердикты о принадлежности описываемого объекта к одному или нескольким семействам вредоносных объектов.
Анализатор 140 предназначен для динамического и статического анализа собранных на этапе эмуляции и кластеризации данных. Далее, используя базу характеристик вредоносных объектов 150, которая содержит информацию об окнах, файлах, процессах, ключах реестра и прочих объектах, производится поиск определенных подграфов, которым соответствуют различные вредоносные действия. Результатом работы анализатора является построенный специального вида граф.
База обработанных вредоносных объектов 160 предназначена для использования при кластеризации объектов, для предоставления информации о семействах вредоносных объектов, а также об отдельных видах. База обработанных вредоносных объектов 160 пополняется данными обработанных объектов.
Модуль описаний 170 предназначен для составления описания объекта, с возможностью выбора широты описания, на основе графа, полученного на этапе работы анализатора 140, и пополнения базы данных обработанных вредоносных объектов 160. Также при помощи файла локализаций 180 предоставляется возможность получения отчетов на различных языках.
Отчет включает описание значений ключей реестра, имена созданных либо используемых файлов, URL-адреса, рассчитанный рейтинг опасности объекта, особенности поведения объекта, вердикт о принадлежности объекта к семейству вредоносных программ, отправленные по почте письма, если таковые имеются, имена задействованных процессов, названия окон, вызывающихся объектом, информацию о сетевой активности объекта.
Далее со ссылкой на фиг.2 и фиг.1, будет подробно описана работа системы в соответствии с настоящей полезной моделью.
После загрузки кода 210 в модуль эмуляции 120 производится эмуляция кода 220, другими словами происходит исполнение объекта в защищенной среде, при помощи эмулятора, либо скриптового эмулятора, который эмулирует исполнение скриптовых программ, либо виртуальной машины, которая исполняет объект в изолированной среде исполнения на базе одной из нескольких виртуальных машин. Результаты эмуляции передаются в модуль кластеризации 130 и производится кластеризация объектов. В результате эмуляции и кластеризации доступны для дальнейшей обработки журналы действий и вердикты, а также созданные и модифицированные процессом исполнения кода объекта файлы и результаты их анализа, а также упаковщик оригинального объекта и язык программирования на котором, вероятно, была написана программа.
Также на данном этапе предусмотрена возможность эмуляции действий пользователя, как, например, аутентификация. Благодаря этому появляется возможность предоставления конкретных описаний для определенных групп пользователей, например, банку и его клиентам.
Пример на основе конкретной программы из семейства Trojan-Banker, программы данного семейства похищают конфиденциальную информацию банковских систем, финансовых учреждений, платежных систем. У программы имеется следующий функционал:
1. Загружена в память, ожидает момента, когда пользователь зайдет на сайт банка.
2. Возможны варианты:
a) Имитирует форму ввода пароля, которую выводит поверх окна банка;
b) Перехватывает введенные данные, например, как Trojan-Spy (программа-шпион).
3. Перехваченные аутентификационные данные отправляет на некоторый почтовый адрес злоумышленника.
Для решения данной задачи система имитирует сайт банка и алгоритм действий пользователя, аутентифицирующегося на данном сайте. Затем система прогоняет все Trojan-Bankers из описываемой коллекции через модуль виртуализации «песочницу» и отслеживает все действия объекта. Таким образом, в описании исследуемого объекта можно получить такую информацию как: факт отправки информации, отправленную информацию, адрес, на который была отправлена информация, заключение о вредоносности программы и кластер к которому она принадлежит. Система способна выполнить аналогичные действия для объектов из поступающего потока.
Также модуль кластеризации 130 производит отнесение описываемых объектов к кластерам и выдает вердикт о принадлежности объекта к коллекции вредоносных объектов на основе рассчитанного показателя схожести. Система производит расчет показателя схожести на основе:
a) идентификационных строк, включающие вызываемые объектом API-функции;
b) таблиц параметров API-функции, включающие параметры вызываемых объектом API-функций;
c) количества совпадений API-функции либо параметров, вызываемых описываемым объектом, с количеством аналогичных API-функции либо параметров уже известного вредоносного объекта;
d) количества не совпавших API-функций либо параметров.
Приведем пример расчета показателя схожести. Первым этапом создается таблица-справочник API-функций таблица №1.
Таблица №1Справочник API-функций.
ID
API Name
1
GetModuleHandleA
2
GetProcessAddress
3
GetModuleFileNameA
4
LoadLibraryA
…
…
198
FindClose
199
InternetOpenUrlA
200
SelectObject
201
TranslateMessage
…
…
В таблице №1 приведены стандартные API-функции, как, например, функция GetModuleHandleA получает значение описателя для экземпляра нашего приложения, a InternetOpenUrlA открывает файл из данного источника.
Далее для вредоносной программы вычисляются 2 ключа:
a) FuncString - идентификационная строка
b) Par_Table - таблица параметров функций
Вторым этапом происходит построение ключа FuncString следующим образом. Пусть в программе последовательно вызываются API функции CreateFileA(), WriteFile(), CloseHandle() и WinExec(). Заметим, что в среднем в одной программе встречается около 70 функций. Тогда набор вызываемых API-функций выглядит следующим образом (Таблица №2)
Таблица №2Пример набора вызываемых функций.
Function
ID
CreateFileA()
10
WriteFile()
25
CloseHandle()
6
WinExec()
126
Для данного примера вредоносной программы получается FuncString равная «6; 10; 25; 126».
Теперь рассмотрим создание таблицы Par_Table. Par_Table - таблица, в которую сохраняются параметры вызываемых программой API функций. Отметим, что
a) сохраняются не все параметры API функций, а только важные для сравнения
b) дубликаты убираются
c) все строки приводятся к нижнему реестру
Рассмотрим пример создания таблицы Par_Table. Допустим, имеется следующий лог программы:
GetModuleFileNameA(«C:\WINDOWS\explorer.exe»)
_strupr(«C:\file://WINDOWS/explorer.exe»)
_mbscat("", "ХР")
_mbscpy("XP")
strstr("XP", "2003")
strstr("C:\WINDOWS\EXPLORER.EXE", "EXPLORER.EXE")
Тогда из данного лога программы получится следующая Par_Table-
Таблица №3.
Таблица №3Пример Par_Table.
Par_Table
c:\windows\explorer.exe
xp
2003
explorer.exe
Далее рассмотрим сравнение, производящееся в модуле анализатор 140 на этапе генерации графа 250, двух программ, которые имеют уже вычисленные идентификационные строки FuncString1, FuncString2 и таблицы параметров Par_Table1, Par_Table2
Сравнение может производится на основе обоих ключей.
а) Пример сравнения на основе FuncString.
Схожесть равна двум умноженным на количество совпадений функций в обеих FuncString деленным на сумму числа функций в обеих FuncString. S=2*Qf12/Sf12, где Sf - схожесть, Qf12 - количество совпавших функций в объектах, Sf12 - сумма функции обоих объектов.
Например, если FuncString1=«6; 10; 25; 126», a FuncString2=«6; 10; 25; 425», то S=(2*3)/8=0.75
b) На основе Par_Table
Схожесть равна двум умноженным на количество совпадений строк в обеих Par_Table деленным на сумму количества строк в обеих Par_Table.
Sp=2*Qp12/Sp12, где Sp - схожесть, Qp12 - количество совпавших строк в объектах, Sp12 - сумма строк обоих объектов.
На основе сравнения вызываемых API функций и их параметров производится поиск объекта в вирусной коллекции, а именно в базе обработанных вредоносных объектов 160. В частности, для особо распространенных вредоносных семейств будут сделаны «ручные описания», и если вновь пришедший файл будет детектироваться данным методом, то в описании эта информация будет дополнительно указана.
Все данные, собранные на этапах эмуляции и кластеризации по результатам динамического и статического анализа, обрабатываются анализатором 140, который на основе этих данных строит специального вида граф 250. Далее в графе выполняется поиск определенных подграфов, которым соответствуют различные вредоносные и не только вредоносные действия. Для этого используется база данных характеристик вредоносных программ 150, содержащая данные об окнах, файлах, процессах, ключах реестра и прочих объектах, используемых вредоносными программами. По результатам анализа графа заполняются специальные структуры данных по идентифицированным:
a) Поведениям, классам вредоносных программ, например, P2P-Worm;
b) Троянским аспектам поведения, например, изменение файла HOSTS;
c) Действиям, сопутствующим вредоносным, например, отключение звука - встречается в некоторых вредоносных программах, чтобы не было слышно оповещений антивируса;
d) Остальным действиям, например, удаление несуществующих ключей реестра.
Например, ниже приведен список действий вредоносной программы, на фиг.3 приведен построенный в соответствии с этими действиями граф.
Программа выполнила следующие действия:
1) Создание окна с текстом «Invalid CRC!» и заголовком окна «[WinZip 8.0 SFX Error!]»
2) Создание файла «C:\WINDOWS\system32\drvmmx32.exe».
3) Скачивание данных с электронного адреса
«http://www.egorievsk.net/bot.exe».
4) Запись скаченных файлов в файл
«С:\WIND0WS\system32\drvmmx32.ехе».
5) Открытие ключа реестра
«HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion».
6) Удаление ключа реестра
«HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\System32».
7) Открытие ключа реестра
«HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run».
8) Создание значения «main_module» в ключе реестра
«HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run» и присвоение значению строки
«C:\WINDOWS\system32\drvmmx32.ехе».
На фиг.3 красным цветом выделены те действия, свойственные вредоносным программам (запись скачанных данных в файл и присвоение файлу опции автозапуска). Стоит отметить, что система фиксирует удаление несуществующего ключа реестра (HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\System32). Это существенный момент. В продемонстрированном примере, вредоносным объектом является Trojan-Downloader, скачивающий из Интернета другого вредоносного объекта класса Backdoor (программа или набор программ, которые устанавливает злоумышленник на взломанном им компьютере после получения первоначального доступа с целью повторного получения доступа к системе). И как раз Backdoor хранит свою конфигурацию в упомянутой ветке реестра, поэтому Trojan-Downloader перед загрузкой Backdoor'a инициализирует ему окружение путем удаления, на всякий случай, ключа реестра по п.6.
Конечный результат, а именно отчет с детальной информацией о программе, создается в модуле описаний 170, на основе составленных в модуле описаний данных, полученных в формате XML, путем генерации и выводом отчета в формате HTML 270.
Отчет, может включать в себя информацию о:
a) значениях ключей реестра;
b) именах созданных либо используемых файлов;
c) URL-адресах;
d) рассчитанном рейтинге опасности объекта;
e) особенностях поведения объекта;
f) вердиктах принадлежности объекта к семейству вредоносных программ;
g) отправленных по почте письмах, если таковые имеются;
h) именах задействованных процессов;
i) названиях окон объекта;
j) информацию о сетевой активности объекта.
Предоставление отчета об исследуемом объекте происходит при помощи модуля описаний 170 с возможностью выбора широты описания, на основе графа 250, полученного на этапе работы анализатора 140, и данных базы характеристик вредоносных объектов 150, а также файлов локализаций 180 для возможности получения отчетов на различных языках. Данные, полученные на этапе генерации графа 250 в модуле анализатор 140, загружаются в модуль описаний 260, после чего происходит генерация отчета 270 с выбором параметров вывода.
В заключении следует отметить, что приведенные в описании сведения являются только примерами, которые не ограничивают объем настоящей полезной модели, определенной формулой. Специалисту в данной области становится понятным, что могут существовать и другие варианты осуществления настоящей полезной модели, согласующиеся с сущностью и объемом настоящей полезной модели.