СИСТЕМА И СПОСОБ ОБНАРУЖЕНИЯ ВРЕДОНОСНЫХ ФАЙЛОВ ОПРЕДЕЛЕННОГО ТИПА
SYSTEM AND METHOD OF DETECTING MALICIOUS FILES OF CERTAIN TYPE

Область техники
Изобретение относится к антивирусным технологиям, а более конкретно к системам обнаружения вредоносных файлов определенного типа.
Уровень техники
В настоящее время все большее распространение получают всевозможные вредоносные программы, которые заражают компьютеры пользователей различными способами. Некоторые из них, такие как троянские программы, как правило, маскируются под безвредные или полезные программы, чтобы пользователь запустил их на своем компьютере. Вирусы и черви имеют возможность самокопирования, что может привести к их лавинообразному росту в том случае, если на компьютерах отсутствует антивирусное программное обеспечение (ПО).
На Фиг. 1 приведена структура PDF документа. Любой документ такого формата обязательно содержит четыре раздела: заголовок, тело, таблицу перекрестных ссылок, а также окончание. В общем случае PDF документ может быть представлен как иерархия объектов (страницы, изображения, шрифты), которые хранятся в теле файла, а таблица перекрестных ссылок содержит информацию об этих объектах. В настоящий момент в тело файла можно вставить не просто текст, но даже сценарий, в том числе и вредоносный. Кроме того, популярные программы по работе с PDF (тот же Acrobat Reader) по-прежнему имеют множество уязвимостей, и документ может быть составлен таким образом, что при его открытии появляется возможность запуска произвольного кода, в том числе и вредоносного.
Известно, что на данный момент антивирусная индустрия также предлагает технологии, направленные на автоматическое создание сигнатур для обнаружения вредоносных программ (в качестве примера можно привести публикацию US 8464345), однако в настоящий момент не предложено подхода по сбору, анализу и созданию сигнатуры для обнаружения вредоносных файлов определенного формата (например, PDF или SWF). Такой подход позволил бы создать полностью автоматическую систему по поиску и обнаружению подобных вредоносных файлов.
Анализ предшествующего уровня техники позволяет сделать вывод о неэффективности и в некоторых случаях о невозможности применения предшествующих технологий, недостатки которых решаются настоящим изобретением, а именно способом и системой обнаружения вредоносных файлов определенного типа.
Раскрытие изобретения
Технический результат настоящего изобретения заключается в обеспечении возможности обнаружения вредоносного кода в файлах определенного типа с помощью соответствующих сигнатур. Создание сигнатур основано на использовании способа создания сигнатуры для обнаружения вредоносных файлов определенного формата, при этом способ содержит этапы, на которых: обнаруживают подозрительный файл; распознают формат подозрительного файла; проверяют файл с помощью антивируса с учетом распознанного формата подозрительного файла; проверяют подозрительный файл с помощью виртуальной машины в том случае, если подозрительный файл не является безопасным или вредоносным после его проверки антивирусом, при этом проверка с помощью виртуальной машины включает открытие подозрительного файла в рамках виртуальной машины с помощью программы, поддерживающей распознанный формат подозрительного файла; производят анализ результатов проверки подозрительного файла с помощью виртуальной машины; создают сигнатуру для обнаружения подозрительного файла, если анализ результатов показал, что подозрительный файл является вредоносным, при этом сигнатура создается на основании данных о распознанном формате файла.
Согласно одному из вариантов реализации файл является подозрительным, по меньшей мере, по одному из критериев: файл имеет определенный рейтинг опасности; файл был получен из недоверенного источника и помещен в карантин; файл содержит вложенные ссылки или сценарии; при открытии файла происходит запуск недоверенной программы.
Согласно еще одному из вариантов реализации распознают формат подозрительного файла на основании, по меньшей мере, одного из: анализа заголовка файла, энтропии значения байт файла.
Согласно частному варианту реализации конфигурация виртуальной машины может включать различные варианты операционной системы, установленной в виртуальной машине, и установленных программ.
Согласно одному из вариантов реализации программой, поддерживающей распознанный формат подозрительного файла, является наиболее популярная программа для открытия файлов распознанного формата.
Согласно еще одному из вариантов реализации анализ результатов проверки подозрительного файла включает, по меньшей мере, анализ одного из: всех системных вызовов, дампа памяти процесса.
Согласно еще одному варианту реализации предлагается система обнаружения вредоносных файлов определенного формата, при этом система содержит следующие средства: средство сбора данных, связанное со средством распознания формата, при этом средство сбора данных предназначено для обнаружения подозрительного файла; средство распознания формата, связанное с антивирусом, при этом средство распознания формата предназначено для распознания формата подозрительного файла; антивирус, связанный с виртуальной машиной, при этом антивирус предназначен для антивирусной проверки подозрительного файла с учетом его распознанного формата; виртуальная машина, связанная с анализатором, при этом виртуальная машина предназначена для проверки подозрительного файла в том случае, если подозрительный файл не является безопасным или вредоносным после его проверки антивирусом, при этом проверка с помощью виртуальной машины включает открытие подозрительного файла в рамках виртуальной машины с помощью программы, поддерживающий распознанный формат подозрительного файла; анализатор, связанный со средством создания записей, при этом анализатор предназначен для анализа результатов проверки подозрительного файла с помощью виртуальной машины; средство создания записей, предназначенное для создания сигнатуры для обнаружения подозрительного файла, если анализ результатов показал, что подозрительный файл является вредоносным, при этом сигнатура создается на основании данных о распознанном формате подозрительного файла.
Согласно одному из вариантов реализации файл является подозрительным, по меньшей мере, по одному из критериев: файл имеет определенный рейтинг опасности; файл был получен из недоверенного источника и помещен в карантин; файл содержит вложенные ссылки или сценарии; при открытии файла происходит запуск недоверенной программы.
Согласно еще одному из вариантов реализации распознание формата подозрительного файла основано, по меньшей мере, на одном из: анализа заголовка файла, энтропии значения байт файла.
Согласно частному варианту реализации конфигурация виртуальной машины может включать различные варианты операционной системы, установленной в виртуальной машине, и установленных программ.
Согласно одному из вариантов реализации программой, поддерживающий распознанный формат подозрительного файла, является наиболее популярная программа для открытия файлов распознанного формата.
Согласно еще одному из вариантов реализации анализ результатов проверки подозрительного файла включает, по меньшей мере, анализ одного из: всех системных вызовов, дампа памяти процесса.
Краткое описание чертежей
Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:
Фиг. 1 приводит структуру PDF документа.
Фиг. 2 представляет систему настоящего изобретения.
Фиг. 3 приводит примерную структуру хранения сигнатур в базе данных.
Фиг. 4 иллюстрирует способ реализации настоящего изобретения.
Фиг. 5 представляет пример компьютерной системы общего назначения, на которой может быть реализовано настоящее изобретение.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.
Фиг. 2 представляет систему настоящего изобретения. Средство сбора данных 110 собирает информацию о подозрительных файлах. Средство 110 может содержать различные источники файлов: сервис virustotal (https://www.virustotal.com/), компьютеры пользователей, различные хост-приманки (англ. honeypot), также неизвестные файлы могут быть присланы самими пользователями посредством электронной почты или иными средствами (например, через FTP).
С компьютеров пользователей неизвестные подозрительные файлы могут автоматически собираться с помощью антивирусного приложения, которое может выявлять подозрительные файлы по ряду критериев:
- проверка с помощью антивирусных баз не показала, что файл является вредоносным, однако, тем не менее, файл имеет определенный рейтинг опасности (пример вычисления подобного рейтинга приведен в публикации US 7530106);
- файл был получен из подозрительного (недоверенного) источника и помещен в карантин;
- при открытии файла происходит запуск недоверенной программы.
Затем средство распознания формата 120 определяет формат подозрительного файла. Определение формата может быть реализовано известными способами, например, приведенными в публикации US 20090013408. Например, определение формата может быть основано на анализе заголовка: заголовок GIF содержит байты 'GIF', исполняемый файл содержит запись 'MZ', а файл формата OLE содержит набор байт '0×D0 0×CF'. Также формат файла может быть распознан на основании энтропии значения байт.
После того как формат файла был определен, файл передается на анализ антивирусу 130, который проверяет файл с помощью всех известных методов проверки: сигнатурная, эвристическая, использование сторонних баз других производителей антивирусных продуктов и т.д. Отличие антивирусной проверки с помощью антивируса 130 от антивирусной проверки, которая может быть проведена на компьютере пользователя, как правило, заключается в неограниченном количестве времени, которое можно потратить на проверку, а также настройками проверки (например, более глубокая эвристическая проверка) и использованием расширенных антивирусных баз данных, недоступных пользователю напрямую (например, ввиду их объема). Также антивирусная проверка может быть произведена с учетом определенного формата файла для того, чтобы провести антивирусную проверку максимально эффективно, например, выбрав соответствующую базу сигнатур или настроив эвристический анализатор.
В том случае, если антивирус 130 определил неизвестный файл как известный вредоносный или чистый файл, то он обновляет или исправляет локальные базы данных по известным вредоносным/чистым файлам данного формата (коллекции 140). Исправление баз может быть основано на обновлении методов проверки, в результате которых файл, который ранее не определялся как вредоносный, теперь определяется как таковой. В будущем этот файл будет отсеиваться из антивирусной проверки (например, по значению хэш-суммы), чтобы избежать лишней проверки.
В том случае, если антивирус не определил неизвестный файл как вредоносный, он попадает в виртуальную машину 150. Виртуальная машина может быть реализована с помощью любых известных методов реализации, например, с помощью VirtualBox/QEMU, Virtual PC или WMware Workstation. Детализация реализации виртуальных машин для различных форматов файлов может быть различной. Например, для формата PDF это виртуальные машины с различными версиями Adobe Reader (возможны другие программы для открытия PDF, например, Foxit Reader).
Приложение для открытия файлов определенного формата может включать наиболее популярное приложение для открытия таких файлов. Образы виртуальных машин могут иметь различную конфигурацию: кроме установленной операционной системы (ОС) Windows также может быть установлен Microsoft Office, а также популярные браузеры. Сами виртуальные машины состоят из управляющей машины, которая распределяет задачи, и самих проверяющих машин, на которых происходит открытие поступившего файла.
Проверка файла в виртуальной машине 150 заключается в открытии этого файла с помощью необходимой программы (например, для формата PDF это будет, как правило, Adobe Reader). После того как файл был открыт, также возможно выполнение действий, связанных с активностью пользователя, например, согласие на запуск сценария (т.е. автоматически выполнять действия пользователя, например, нажимать на кнопки интерфейса или переходить по ссылкам URL) или иное действие пользователя.
После того как файл был открыт, идет сбор данных, связанных с активностью на виртуальной машине 150. Например, происходит регистрация всех системных API вызовов (для ОС Windows это, как правило, будут вызовы через Win32 API), а также снимается дамп памяти процесса, открывшего файл (т.е. для файла PDF это будет дамп процесса Adobe Reader). Окончание работы виртуальной машины может быть ограничено по времени или же на основании регистрируемой активности (например, файловой или по результатам активности использования основных ресурсов, таких как CPU).
После того как с помощью виртуальной машины 150 было произведено открытие файла, анализатор 160 производит проверку полученных результатов. Пример анализа приведен ниже:
Пример №1
Данный пример показывает, что произойдет срабатывание сигнатуры при выполнении ряда действий при открытии PDF файла, например, при скачивании файла с URL адреса, запуска процесса или командной строки.
Если анализатор 160 выявил вредоносный функционал в неизвестном файле, то средство создания записей 170 создает сигнатуру для обнаружения этого файла в будущем. Сигнатура представляет из себя набор характерных байт из различных частей файла, который позволяет однозначно идентифицировать вредоносный файл. Сигнатура, как правило, включает одно из следующих полей (или их части):
- заголовок, содержащий версию PDF документа;
- количество записей об объектах;
- признак linearized (специальный тип форматирования PDF, который подходит для просмотра в сети Интернет);
- часть таблицы перекрестных ссылок;
- некоторые уникальные объекты самого документа или их часть(например, уникальная часть сценария, характерная для целого ряда вредоносных файлов).
Также может использоваться древовидная структура сигнатур для обнаружения вредоносных файлов. Дерево строится на основании даты (год-месяц-….). На Фиг. 3 приведена примерная структура хранения сигнатур в базе данных. Корневыми каталогами являются годы, затем следуют месяцы и далее дни, которые уже в свою очередь содержат соответствующие сигнатуры. Подобная структура позволяет легко ориентироваться по базе данных сигнатур, отслеживать историю появления новых вредоносных файлов и их особенностей.
Фиг. 4 иллюстрирует способ реализации настоящего изобретения. На этапе 410 находят подозрительный файл через различные источники файлов: сервис virustotal, компьютеры пользователей, различные хост-приманки, также неизвестные файлы могут быть присланы самими пользователями посредством электронной почты или иными средствами (например, через ftp). Далее на этапе 420 распознают формат файла и на этапе 430 проверяют его с помощью антивируса с последней версией антивирусных баз. Если на этапе 440 файл был определен как чистый (безопасный) или вредоносный, то на этапе 450 происходит обновление коллекции чистых (безопасных) или вредоносных файлов в зависимости от вердикта антивируса. В ином случае на этапе 460 происходит проверка с помощью виртуальной машины 150, в которой файл открывается с использованием специализированного приложения для его запуска. После этого на этапе 470 происходит анализ результатов проверки файла в виртуальной машине 150. Если файл признан вредоносным на основании анализа на этапе 480, то файл будет добавлен в коллекцию в виде сигнатуры, созданной на этапе 490 (в ином случае способ завершит свою работу на этапе 485).
Стоит отметить, что для избегания ложных срабатываний в рамках данной схемы может происходить сбор наиболее популярных файлов заданного формата. Примерами подобных файлов можно считать различные руководства пользователя для популярных продуктов (в том числе и ПО) или пресс-релизы. В таких случаях на этапе 410 в качестве подозрительного файла выбираются файлы с наибольшей частотой встречаемости, после чего они проходят антивирусный анализ на этапах 430-440 и пополняют коллекцию чистых (безопасных) файлов.
Фиг. 5 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26, содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.
Персональный компьютер 20 в свою очередь содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.
Настоящее описание раскрывает реализацию системы, которая использует жесткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флеш-карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.
Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканнер и т.п. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединен к системной шине, но могут быть подключены иным способом, например, при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например, колонками, принтером и т.п.
Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг. 5. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.