Система и способ создания антивирусной записи
SYSTEM AND METHOD OF CREATING ANTIVIRUS RECORD

Область техники
Изобретение относится к области компьютерной безопасности, а более конкретно к системам и способам создания антивирусных записей.
Уровень техники
Традиционный сигнатурный анализ имеет низкую эффективность обнаружения вредоносных файлов, особенно полиморфных вирусов, обфусцированных (англ. obfuscated) файлов, а также шелл-кода (англ. shellcode, код запуска оболочки).
Поэтому современные антивирусные приложения дополнительно используют другие технологии обнаружения вредоносного программного обеспечения (ПО). Например, проверка с использованием т.н. «песочницы» (от англ. «sandbox» - специально выделенная изолированная от остальной системы среда, ограничивающая выполняемым в ней процессам доступ и использование ресурсов). «Песочница» может быть реализована, например, на виртуальной машине, на основе частичной виртуализации файловой системы и реестра, на основе правил доступа к файловой системе и реестру или на основе смешанного подхода. Проверяемый файл выполняется в «песочнице». В ходе выполнения файла, записи (т.е. информация) о вызовах API-функций, системных событиях (а также об анализируемых, передаваемых и получаемых данных, а также сетевых соединениях и пр.) записывается в журнал вызовов. Антивирусное приложение далее осуществляет поиск поведенческих правил (известных шаблонов вредоносного поведения), которым удовлетворяют записи полученного журнала вызовов. В журнале вызовов обычно сохраняют записи о вызовах API-функций (англ. application programming interface, API), произведенных упомянутым файлом во время выполнения. Вызов API-функции или вызов процедуры (команда CALL, англ. call a procedure) определяется как безусловная передача управления, выполняющая вызов процедуры (API-функции). По команде CALL происходит запоминание в стеке адреса возврата и переход к выполнению API-функции. Информация о вызываемой API-функции содержит: данные, передаваемые в API-функцию, данные, возвращаемые API-функцией, процесс, вызывающий API-функцию, библиотеку/приложение/ядро, предоставляющую API-функцию, код API-функции, адрес по которому вызывают API функцию, адрес расположения API-функции, адрес возврата и т.д. Также в журнале вызовов сохраняют информацию о командах возврата (команда RET, англ. return from procedure) из вызванных API-функций - при выполнении команды возврата из API-функции адрес возврата извлекается из стека и происходит передача управления по этому адресу. Выполнение файла в песочнице обычно происходит в течение ограниченного промежутка времени (до нескольких десятков секунд).
Еще одной технологией обнаружения вредоносного функционала в файле является технология, использующая эмуляцию, которая заключается в имитации гостевой системы во время выполнения кода в эмуляторе.
В современных антивирусах упомянутые технологии применяются совместно. Обычно, вначале производится сигнатурный анализ файла, затем, если не было обнаружено вредоносное поведение, производится выполнение файла в эмуляторе или «песочнице» (выполнение в «песочнице» обычно происходит на стороне производителя антивирусного ПО ввиду больших вычислительных возможностей). В случае, если вредоносный функционал не был обнаружен, файл будет передан на выполнение на компьютере пользователя. Однако, все еще существует вероятность того, что вредоносный функционал не был обнаружен. Для обеспечения более эффективной защиты, выполнение на компьютере пользователя неизвестных файлов осуществляется под контролем поведенческого анализатора (модуля проактивной защиты). Поведенческий анализатор, по аналогии с «песочницей» и эмулятором собирает и анализирует журнал вызовов API-функций в ходу выполнения файла на компьютере пользователя. Для упомянутых детектирующих технологий журналы вызовов и поведенческие правила могут иметь как общие, так и индивидуальные записи, ввиду отличия в принципах работы. Поведенческий анализатор, с использованием установленных драйверов-перехватчиков, выполняет перехват вызовов API-функций, производимых во время выполнения вредоносного кода, а также команд возврата из вызванных API-функций и сохраняет их в журнал вызовов. Затем поведенческий анализатор производит поиск в журнале вызовов поведенческих правил (шаблонов известного вредоносного поведения) и выносит вердикт (например, компьютерный вирус, сетевой червь, троянская программа или условно нежелательное ПО). Принцип анализа журнала вызовов поведенческим анализатором схож с работой «песочницы» и эмулятора. Но у поведенческого анализатора отсутствуют недостатки, присущие упомянутым модулям - нет ограничений на время выполнения файла, не работают техники обнаружения и обхода эмулятора и «песочницы», т.к. файл выполняется на компьютере пользователя, а не в изолированной среде и не в эмуляторе. В то же время, при выполнении полезной нагрузки, вредоносный файл может навредить системе, прежде чем будет обнаружен и обезврежен поведенческим анализатором.
Для проведения более тщательного анализа, «песочница» обычно находится на сервере, который располагает большими вычислительными мощностями и большим временем выполнения исследуемого файла. Неизвестные подозрительные файлы, поступающие в антивирусную компанию, анализируются в «песочнице» и, в случае соответствия поведенческому правилу, файл признается вредоносным. Затем аналитик может создать антивирусную запись или поведенческое правило для обнаружения этого файла средством защиты на вычислительном устройстве пользователя - например, антивирусная запись для сигнатурного анализа или поведенческое правило для поведенческого анализатора или поведенческое правило для эмулятора. Однако между обнаружением вредоносного файла на виртуальной машине и созданием аналитиком антивирусной записи для антивирусного приложения (т.е. средства защиты вычислительного устройства) может пройти значительный промежуток времени. Таким образом, техническая проблема заключается в создании антивирусных записей для средства защиты вычислительного устройства на основании выявленного поведенческого правила, которому соответствуют записи журнала вызовов виртуальной машины («песочницы»).
Известен способ анализа вредоносного ПО путем выполнения на виртуальной машине и на реальной компьютерной системе, и последующего сравнения поведения вредоносного ПО во время выполнения (US 9516060 B2). Однако данный способ не решает заявленную техническую проблему.
Раскрытие сущности изобретения
Первый технический результат заключается в реализации назначения.
Второй технический результат заключается в увеличении количества выявляемых вредоносных файлов путем создания антивирусной записи для средства защиты вычислительного устройства на основании выявленного поведенческого правила, которому соответствуют записи журнала вызовов виртуальной машины.
Третий технический результат заключается в сокращении времени создания антивирусной записи для средства защиты за счет создания антивирусной записи для средства защиты вычислительного устройства на основании выявленного поведенческого правила, которому соответствуют записи журнала вызовов виртуальной машины.
Согласно варианту реализации используется реализуемый на сервере способ создания антивирусной записи с использованием журнала вызовов, содержащего зарегистрированные во время выполнения файла на виртуальной машине по крайней мере записи о вызовах API-функций, в котором при выявлении поведенческого правила, соответствующего по крайней мере одной записи из журнала вызовов, определяют файл как вредоносный, затем извлекают из выявленного поведенческого правила по крайней мере записи о вызовах API-функций и создают антивирусную запись для средства защиты вычислительного устройства, состоящую по крайней мере из извлеченных записей о вызовах API-функций, при этом упомянутое средство защиты вычислительного устройства предназначено для выполнения антивирусной проверки файла.
Согласно одному из частных вариантов реализации определяют файл как вредоносный путем проведения дополнительного анализа файла, включающего, в частности: проверку с использованием сервиса репутации; проверку с использованием YARA-правил; экспертный анализ.
Согласно другому частному варианту реализации перед созданием антивирусной записи проверяют, поддерживает ли средство защиты вычислительного устройства регистрацию по меньшей мере одной из извлеченных записей о вызове API-функции, и в случае положительного ответа создают антивирусную запись для средства защиты вычислительного устройства, состоящую из извлеченных записей о вызовах API-функций.
Согласно еще одному из частных вариантов реализации в случае, если средство защиты вычислительного устройства не поддерживает регистрацию по меньшей мере одной извлеченной записи о вызове API-функции, добавляют в упомянутое средство защиты поддержку регистрации упомянутой по меньшей мере одной извлеченной записи о вызове API-функции, после чего создают антивирусную запись, состоящую из извлеченных записей о вызовах API-функций.
Согласно одному из частных вариантов реализации в случае, если средство защиты вычислительного устройства не поддерживает регистрацию по меньшей мере одной извлеченной записи о вызове API-функции, создают антивирусную запись, включающую только поддерживаемые записи о вызовах API-функций, при условии, что процентное соотношение поддерживаемых записей о вызовах API-функций по отношению к числу всех записей о вызовах API-функций, которые содержатся в поведенческом правиле, превышает заданное число.
Согласно другому частному варианту реализации антивирусной записью является одна из: поведенческое правило эмулятора; поведенческое правило поведенческого анализатора.
Согласно еще одному частному варианту реализации журнал вызовов содержит дополнительно следующую информацию: команды передачи управления по адресу возврата из API-функций; прямые вызовы Windows NT Native API-функций; команды возврата из Windows NT Native API-функций; изменение состояния компьютерной системы, в частности события выключения или перезагрузки компьютерной системы; события в операционной системе; показатели компрометации; системные вызовы; вердикты средства защиты; контрольную сумму от файла или контрольную сумму от части файла; источник появления файла; результаты эмуляции выполнения файла; время появления файла на вычислительном устройстве; данные, получаемые по сети файлом; данные, передаваемые по сети файлом; подмена DNS-сервера на компьютере; отключение автоматического обновления операционной системы; отключение сетевого экрана; отключение средства защиты; отключение компоненты «Контроль учетных записей пользователей»; отключение компонента операционной системы «восстановление системы»; отключение опции «показывать скрытые файлы, папки и диски» в файловом менеджере; изменение правил сетевого экрана; изменение файла hosts; удаление файлом самого себя, при этом поведенческое правило и антивирусная запись дополнительно включает записи о приведенной выше информации.
Согласно варианту реализации используется система создания антивирусной записи, расположенная на сервере, содержащая: средство журналирования, служащее для регистрации в журнал вызовов во время выполнения файла на виртуальной машине по крайней мере одной записи о вызовах API-функций; средство защиты от направленных атак, связанное со средством журналирования и служащее для: выявления поведенческого правила в упомянутом журнале вызовов; определения файла, являющегося вредоносным при выявлении поведенческого правила, соответствующего по крайней мере одной записи из журнала вызовов; извлечения из выявленного поведенческого правила по крайней мере одной записи о вызовах API-функций; создания антивирусной записи для средства защиты вычислительного устройства, состоящей по крайней мере из извлеченных записей о вызовах API-функций, при этом упомянутое средство защиты расположено на вычислительном устройстве и предназначено для выполнения антивирусной проверки файла.
Согласно одному из частных вариантов реализации средство защиты от направленных атак предназначено для проведения дополнительного анализа файла, для того, чтобы определить, что упомянутый файл является вредоносным, при этом упомянутый дополнительный анализ файла включает, в частности: проверку с использованием сервиса репутации; проверку с использованием YARA-правил; экспертный анализ.
Согласно другому частному варианту реализации с помощью средства защиты от направленных атак перед созданием антивирусной записи проверяют, поддерживает ли средство защиты вычислительного устройства регистрацию по меньшей мере одной из извлеченных записей о вызове API-функции, и в случае положительного ответа создают антивирусную запись для средства защиты вычислительного устройства, состоящую из извлеченных записей о вызовах API-функций.
Согласно еще одному частному варианту реализации в случае, если средство защиты вычислительного устройства не поддерживает регистрацию по меньшей мере одного извлеченного вызова API-функции, средство защиты от направленных атак дополнительно служит для добавления в средство защиты вычислительного устройства поддержки регистрации упомянутого по меньшей мере одного извлеченного вызова API-функции, а также для создания антивирусной записи для средства защиты вычислительного устройства, состоящей из извлеченных вызовов API-функций.
Согласно одному из частных вариантов реализации в случае, если средство защиты вычислительного устройства не поддерживает регистрацию по меньшей мере одной извлеченной записи о вызове API-функции, средство защиты от направленных атак служит для создания антивирусной записи, включающей только поддерживаемые записи о вызовах API-функций, при условии, что процентное соотношение поддерживаемых записей о вызовах API-функций по отношению к числу всех записей о вызовах API-функций, которые содержатся в поведенческом правиле, превышает заданное число.
Согласно другому частному варианту реализации антивирусной записью является одна из: поведенческое правило эмулятора; поведенческое правило поведенческого анализатора.
Согласно еще одному частному варианту реализации во время выполнения файла на виртуальной машине средство журналирования дополнительно служит для регистрации следующей информации: процедуры передачи управления по адресу команды возврата из API-функций; прямые вызовы Windows NT Native API-функций; команды возврата из Windows NT Native API-функций; изменение состояния компьютерной системы, в частности события выключения или перезагрузки компьютерной системы; события в операционной системе; показатели компрометации; системные вызовы; вердикты средства защиты; контрольную сумму от файла или контрольную сумму от части файла; источник появления файла; результаты эмуляции выполнения файла; время появления файла на вычислительном устройстве; данные, получаемые по сети файлом; данные, передаваемые по сети файлом; подмена DNS-сервера на компьютере; отключение автоматического обновления операционной системы; отключение сетевого экрана; отключение средства защиты; отключение компоненты «Контроль учетных записей пользователей»; отключение компонента операционной системы «восстановление системы»; отключение опции «показывать скрытые файлы, папки и диски» в файловом менеджере; изменение правил сетевого экрана; изменение файла hosts; удаление файлом самого себя, при этом поведенческое правило и антивирусная запись дополнительно включает приведенную выше информацию.
Краткое описание чертежей
Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:
На Фиг. 1 представлена схема настоящего изобретения.
На Фиг. 2 представлена схема «песочницы».
На Фиг. 3 приведен возможный пример модулей средства защиты вычислительного устройства.
На Фиг. 4 приведен возможный пример модулей средства защиты от направленных атак.
На Фиг. 5 представлен способ создания антивирусной записи.
Фиг. 6 представляет пример компьютерной системы общего назначения.
Осуществление изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако, настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, обеспеченными для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.
Глоссарий
Определим ряд терминов, которые будут использоваться при описании вариантов осуществления изобретения.
Показатели компрометации (англ. indicator of compromise, IOC, реже - индикаторы заражения) - артефакты или остаточные признаки вторжения в информационную систему, наблюдаемые на компьютере или в сети. Типичными показателями компрометации являются антивирусные записи, IP-адреса, контрольные суммы файлов, URL-адреса, доменные имена командных центров ботнетов и др. Существует ряд стандартов показателей компрометации, в частности:
- OpenIOC (http://blogs.rsa.com/understanding-indicators-of-compromise-ioc-part-i/, http://openioc.org/),
- STIX (https://stix.mitre.org/),
- CybOX (https://cybox.mitre.org) и др.
Компьютерная атака (также кибератака, от англ. cyber attack) - целенаправленное воздействие на информационные системы и информационно-телекоммуникационные сети программно-техническими средствами, осуществляемое в целях нарушения безопасности информации в этих системах и сетях (см. «Основные направления государственной политики в области обеспечения безопасности автоматизированных систем управления производственными и технологическими процессами критически важных объектов инфраструктуры Российской Федерации» (утв. Президентом РФ 03.02.2012 N 803)).
Направленная атака (также целевая или целенаправленная атака, от англ. targeted attack - ТА) - частный случай компьютерной атаки, направленной на конкретную организацию или конкретного физического лица.
Неточный хеш (англ. fuzzy hash) или гибкая свертка (англ. locality sensitive hash) - свертка файла, устойчивая к изменениям файла по которому она формируется. То есть при обнаружении вредоносного файла при помощи значения его свертки также будет детектироваться множество похожих (возможно неизвестных) вредоносных файлов. Главная особенность такой свертки - инвариантность к небольшим изменениям файла. См., например: RU 2580036, RU 2614561.
Неточный вердикт - срабатывание средства защиты (антивирусного приложения) при обнаружении подозрительных действий во время выполнения файла, характерных для вредоносного файла. Неточный вердикт срабатывает, например, при обнаружении файла при помощи гибкой свертки. Неточный вердикт свидетельствует, что найденный файл является вредоносным с некоторой долей вероятности.
На Фиг. 1 представлена компьютерная система, служащая для создания антивирусной записи. Информационная система 100 включает по меньшей мере одно вычислительное устройство 101 (также, для краткости, компьютер), подключенное к компьютерной сети 109. Под вычислительным устройством 101 в общем случае понимается любое вычислительное устройство, в частности, персональный компьютер, ноутбук, смартфон, а также сетевое оборудование, такое как: маршрутизатор, коммутатор, концентратор и пр. Стоит отметить, что вычислительное устройство 101 может быть, как физическим устройством, так и программным средством, работающим на физическом устройстве - например виртуальной машиной. Информационная система 100 может быть организована с использованием любой известной из уровня техники топологии сети 109, например одного из следующих типов: полносвязная, шина, звезда, кольцо, ячеистая или смешанного типа. На вычислительном устройстве 101 установлено средство защиты вычислительного устройства 102. Стоит отметить, что если информационная система 100 содержит два и более вычислительных устройств 101, то на некоторых вычислительных устройствах 101 может быть не установлено средство защиты 102. Информационная система 100 включает средство защиты от направленных атак 103, которое может быть расположено, например, на отдельном сервере и связано посредством компьютерной сети 109 по меньшей мере с одним вычислительным устройством 101. Для подключения вычислительных устройств 101 посредством сети 109 к Интернету и средству обнаружения 110, могут быть использованы прокси-серверы (на фигуре не указаны). Средство защиты от направленных атак 103 содержит базу данных угроз 105, журнал вызовов 104 и виртуальную машину 106, о которых подробнее будет описано ниже.
Система включает по меньшей мере одно вычислительное устройство 101 с работающим на нем средством защиты 102 (в качестве примера на Фиг. 1 приведены два средства защиты 102).
Средство защиты 102 может содержать журнал вызовов 107 вычислительного устройства 101. Модули средства защиты 102 (см. подробнее на Фиг. 3), такие как: эмулятор, поведенческий анализатор и другие, могут регистрировать в журнал вызовов 107 записи о вызовах API-функций во время выполнения исследуемого файла (например, имя функции, передаваемые параметры, время вызова функции).
В частном варианте реализации каждая запись журнала вызовов 107 о вызовах API-функций содержит, в частности, следующую информацию:
- идентификатор (например, имя) вызванной функции;
- уникальный идентификатор процесса (process identifier, PID), запущенного из упомянутого файла;
- уникальный идентификатор потока (thread identifier, TID), выполняющего инструкции адресного пространства процесса;
- набор аргументов упомянутой функции;
- время вызова функции.
Под антивирусной записью понимается сигнатура и/или правило для соответствующего модуля средства защиты 102, например, антивирусная запись сканера по доступу, поведенческое правило для поведенческого анализатора или поведенческое правило эмулятора. В случае сигнатуры, антивирусная запись может представлять, например, хэш-сумму от участка кода файла, набор хэш-сумм от различных участков кода файла и правила выбора указанных хэш-сумм (например, если встречается две из трех хэш-сумм, содержащихся в сигнатуре, считается, что встречается вся сигнатура) и т.д. Примеры поведенческих правил для поведенческого анализатора и эмулятора будут приведены далее.
Средство обнаружения 110 расположено на удаленном сервере, который связан со средствами защиты 102-103 посредством компьютерной сети 109, и служит для проведения более детального анализа файлов.
На Фиг. 2 представлена схема «песочницы». «Песочница» (от англ. sandbox) представляет собой компьютерную среду для безопасного выполнения процессов. В частном варианте реализации, «песочница» может быть реализована, например, в виде виртуальной машины, на основе частичной виртуализации файловой системы и реестра, на основе правил доступа к файловой системе и реестру или на основе смешанного подхода. На Фиг. 2 представлен пример реализации «песочницы» в виде виртуальной машины 106, на которой установлена операционная система (ОС) 131. Виртуальная машина 106 предназначена для выполнения файла 133, под контролем средства защиты от направленных атак 103. Стоит отметить, что файл 133 может являться файлом любого формата данных и может содержать любые данные.
Во время выполнения файла 133, средство журналирования 132, содержащееся внутри виртуальной машины 106, перехватывает вызовы API-функций и последовательно вносит записи о них в журнал вызовов 134, также расположенный в виртуальной машине 106. Журнал вызовов виртуальной машины 134 содержит записи о зарегистрированных во время выполнения файла на виртуальной машине по крайней мере вызовах API-функций.
Вызов API-функции или вызов процедуры (команда CALL, англ. call а procedure) определяется как безусловная передача управления, выполняющая вызов процедуры (API-функции). По команде CALL происходит запоминание в стеке адреса возврата и переход к выполнению API-функции. Информация о вызываемой API-функции содержит: данные, передаваемые в API-функцию, данные, возвращаемые API-функцией, процесс, вызывающий API-функцию, библиотеку/приложение/ядро, предоставляющую API-функцию, код API-функции, адрес по которому вызывают API функцию, адрес расположения API-функции, адрес возврата и т.д. Также в журнале вызовов сохраняют информацию о командах возврата (команда RET, англ. return from procedure) из вызванных API-функций - при выполнении команды возврата из API-функции адрес возврата извлекается из стека и происходит передача управления по этому адресу. Выполнение файла в песочнице обычно происходит в течение ограниченного промежутка времени (до нескольких десятков секунд).
В частном варианте реализации каждая запись журнала вызовов 134 (и, соответственно, журнала вызовов 104) о вызовах API-функций содержит следующую информацию:
- идентификатор (например, имя) вызванной функции;
- уникальный идентификатор процесса (process identifier, PID), запущенного из упомянутого файла 133;
- уникальный идентификатор потока (thread identifier, TID), выполняющего инструкции адресного пространства процесса;
- набор аргументов упомянутой функции.
В еще одном частном примере реализации во время выполнения файла 133 на виртуальной машине 106 регистрируют дополнительно следующую информацию:
- команды передачи управления по адресу возврата из API-функций;
- прямые вызовы Windows NT Native API-функций;
- команды возврата из Windows NT Native API-функций;
- способ изменения состояния компьютерной системы, в частности события выключения или перезагрузки компьютерной системы;
- события в операционной системе;
- показатели компрометации;
- системные вызовы;
- вердикты средства защиты;
- контрольную сумму от файла или контрольную сумму от части файла;
- источник появления файла;
- результаты эмуляции выполнения файла;
- время появления файла на вычислительном устройстве;
- данные, получаемые по сети файлом;
- данные, передаваемые по сети файлом;
- подмена DNS-сервера на компьютере;
- отключение автоматического обновления операционной системы;
- отключение сетевого экрана;
- отключение средства защиты;
- отключение компоненты «Контроль учетных записей пользователей»;
- отключение компонента операционной системы «восстановление системы»;
- отключение опции «показывать скрытые файлы, папки и диски» в файловом менеджере;
- изменение правил сетевого экрана;
- изменение файла hosts;
- удаление файлом самого себя.
При этом поведенческое правило и антивирусная запись дополнительно включает приведенную выше информацию.
Выполнение файла 133 на виртуальной машине 130 завершается, если выполнилось одно из следующих условий выхода:
- процесс завершился;
- истек заданный период времени;
- предыдущие шаги были выполнены заданное число повторений (например, 3 раза);
- количество выполненных процессом инструкций превысило заданный порог количества инструкций (например, 100000 инструкций).
Если условие выхода выполнилось, т.е. завершено выполнение файла 133 на виртуальной машине 106, средство защиты 103 сохраняет записи журнала вызовов 134, содержащегося в виртуальной машине, в журнал вызовов 104, содержащийся в операционной системе, в которой работает средство защиты 103.
В еще одном частном варианте реализации, средство журналирования 132 производит перехват и внесение в журнал вызовов 134 записей, содержащих информацию о системных вызовах, отвечающих за операцию работы с сетью, реестром, файловой системой, операционной памятью, процессами и потоками.
Стоит отметить, когда средство журналирования 132 перехватывает вызовы API-функций, средство журналирования 132 имеет доступ к стеку вызовов и к выполняющимся на процессоре инструкциям. В частном варианте реализации, средство журналирования 132 сохраняет в журнал вызовов 134 записи об исключительных ситуациях (совокупность определенных условий, возникновение которых приводит к нарушению предусмотренной последовательности выполнения в программе согласно ГОСТ 28397 89) и выполняющихся на процессоре инструкциях.
В еще одном частном варианте реализации средство журналирования 132 предназначено для выявления следующих исключительных ситуаций:
- нарушение прав доступа при выполнении инструкции call;
- нарушение прав доступа при записи в память;
- нарушение прав доступа при чтении памяти по адресу счетчика команд, а также по адресам, которые совпадают с адресом счетчика команд с заданной точностью;
- нарушение политики предотвращения выполнения данных;
- переполнение буфера на стеке;
- повреждение динамической памяти (англ. heap corruption);
- попытка выполнить запрещенную, некорректную или привилегированную инструкцию.
Например, средство журналирования 132 выявит исключительную ситуацию «нарушение прав доступа при записи в память» при анализе содержимого реестра, системных структур, стека вызовов при перехвате вызова API-функции KiUserExceptionDispatcher.
Средство защиты 103 предназначено для выявления поведенческого правила, которому соответствуют записи журнала вызовов 104 из числа поведенческих правил, которые содержатся в базе данных угроз 105. Поведенческое правило включает информацию о вызове по меньшей мере одной API-функции и вердикт (например, компьютерный вирус, сетевой червь, троянская программа или условно нежелательное ПО), в случае, если это правило сработает. В одном примере реализации поведенческие правила состоят, в частности, из набора вызовов API-функций и логических выражений над ними. Например, если были вызваны определенные API-функции с определенными параметрами, заданные поведенческим правилом, то средство защиты 103 найдет упомянутое правило в журнале вызовов 104. В другом варианте реализации поведенческое правило дополнительно может содержать условия, накладываемые на другие записи этого же правила. Такими условиями могут быть, например проверка количества записей антивирусной записи, проверка порядка следования записей антивирусной записи и т.д.
Таким образом поведенческие правила используются, как в поведенческом анализаторе, так и в «песочнице» при выполнении на виртуальной машине и эмуляторе. Отличия поведенческих правил могут заключаться в информации о вызовах API-функций и в условиях над ними. Например, поведенческий анализатор может регистрировать записи о вызовах API-функций из одного списка, который может частично или полностью отличаться от списка вызовов API-функций, которые может регистрировать виртуальная машина или эмулятор. В то же время в частном примере реализации упомянутые списки вызовов API-функций поведенческого анализатора, виртуальной машины и эмулятора могут совпадать.
На Фиг. 3 приведен возможный пример модулей средства защиты вычислительного устройства. Средство защиты вычислительного устройства 102 может содержать модули, предназначенные для обеспечения информационной безопасности вычислительного устройства 101: сканер по доступу, сканер по требованию, почтовый антивирус, веб-антивирус, поведенческий анализатор (модуль проактивной защиты), модуль HIPS (англ. Host Intrusion Prevention System - система предотвращения вторжений), DLP-модуль (англ. data loss prevention - предотвращение утечки данных), сканер уязвимостей, эмулятор, сетевой экран и др. В частном примере реализации указанные модули могут быть составной частью средства защиты 102. В еще одном примере реализации данные модули могут быть реализованы в виде отдельных программных компонент.
Сканер по доступу содержит функционал обнаружения вредоносной активности всех открываемых, запускаемых и сохраняемых файлов на компьютерной системе пользователя. Сканер по требованию отличается от сканера по доступу тем, что сканирует заданные пользователем файлы и директории по требованию пользователя.
Почтовый антивирус необходим для контроля входящей и исходящей электронной почты на предмет содержания вредоносных файлов. Веб-антивирус служит для предотвращения выполнения вредоносного кода, который может содержаться на веб-сайтах, посещаемых пользователем, а также для блокирования открытия веб-сайтов. Модуль HIPS служит для обнаружения нежелательной и вредоносной активности программ и блокирования ее в момент выполнения. DLP-модуль служит для обнаружения и предотвращения утечки конфиденциальных данных за пределы компьютера или сети. Сканер уязвимостей необходим для обнаружения уязвимостей на вычислительном устройстве 101 (например, отключены некоторые компоненты средства защиты 102, устаревшие вирусные базы, закрыт сетевой порт и пр.). Сетевой экран осуществляет контроль и фильтрацию сетевого трафика в соответствии с заданными правилами. Работа эмулятора заключается в имитации гостевой системы во время выполнения кода в эмуляторе. Поведенческий анализатор использует поведенческие правила для обнаружения поведения выполняемых файлов и их классификации по уровню доверия - в процессе выполнения файла поведенческий анализатор осуществляет поиск в журнале вызовов 107 зарегистрированных по меньшей мере записей о вызовах API-функций, которые соответствуют поведенческим правилам из базы данных угроз 108. В частном варианте реализации журнал вызовов 107 и база данных угроз 108 расположены на вычислительном устройстве 101.
Поведенческое правило включает запись о вызове по меньшей мере одной API-функции и вердикт (например, компьютерный вирус, сетевой червь, троянская программа или условно нежелательное ПО), в случае, если это правило сработает. В частном примере реализации поведенческие правила состоят, в частности, из набора вызовов API-функций и логических выражений над ними. Например, если были вызваны определенные API-функции с определенными параметрами, заданные поведенческим правилом, то средство защиты 102 найдет упомянутое правило в журнале вызовов 107.
Поведенческому правилу также соответствует вердикт, который выдается при срабатывании этого правила - то есть наиболее вероятная категория вредоносного или нежелательного ПО, которой соответствует упомянутое правило. Вердикт может быть, например, следующим: компьютерный вирус, сетевой червь, троянская программа или условно нежелательное ПО.
В частном примере реализации поведенческие правила (поведенческого анализатор, эмулятора и «песочницы») включают, в частности, следующие:
- вызов API-функции из списка подозрительных API-функций (например, список может содержать следующие API-функции: WinExec, CreateProcess, GetFileSize, CreateFile);
- вызов API-функции GetFileSize был совершен 10 раз;
- после вызова API-функции WriteFile (запись в файл) будет следовать вызов API-функции WinExec (запуск файла на выполнение);
- подмену DNS-сервера на компьютере;
- отключение автоматического обновления операционной системы;
- отключение сетевого экрана;
- отключение средства защиты;
- отключение UAC (англ. User Account Control, UAC - компонент ОС Windows, Контроль учетных записей пользователей).
Приведенные модули при обнаружении вредоносного программного обеспечения (подозрительного поведения, спама и др. признаков компьютерной угрозы), создают соответствующее уведомление (которое далее может быть преобразовано в вердикт средства защиты 102), указывающее средству защиты об обнаруженной угрозе и необходимости выполнить действия по устранению угрозы (например, удаление или изменение файла, запрет выполнения и пр.). В частном примере реализации, сам модуль, обнаруживший вредоносное ПО, может выполнить действия по устранению угрозы. В еще одном примере вердикт может быть неточным или тестовым (т.к. данный вердикт может давать ложные срабатывания) - в этом случае, средство защиты не будет выполнять действий по устранению угрозы, но передаст уведомление далее, на удаленный сервер (на фигуре не указан). В частном варианте реализации вредоносное программное обеспечение включает следующие категории (вердикт соответствует категории) - вредоносное ПО и условно нежелательное ПО. Вредоносное ПО может иметь подкатегории - вирусы, черви, троянские программы, упаковщики, вредоносные утилиты. Условно нежелательное ПО - рекламное ПО (англ. adware), ПО связанное с порнографическим содержимым (англ. pornware), легальное ПО, использование которого может причинить вред компьютеру (англ. riskware) и др.
На Фиг. 4 приведен возможный пример модулей средства защиты от направленных атак. Средство защиты от направленных атак 103, расположенное на сервере, может содержать, например, следующие модули защиты: «песочницу», систему обнаружения вторжений (англ. - Intrusion Detection System, IDS), сервис репутации, модуль проверки YARA правил и другие модули обнаружения.
Модуль «песочница» имеет функционал, аналогичный эмулятору средства защиты вычислительного устройства 102 с тем отличием, что «песочница» может использовать дополнительные вычислительные мощности и работать в течение большего времени, так как у средства защиты от направленных атак 103 отсутствуют ограничения по времени, присущие средству защиты вычислительного устройства 102.
«Песочница» является компьютерной средой для безопасного выполнения процессов и служит для определения подозрительной активности при выполнении процесса, запущенного из файла.
«Песочница» может быть реализована, например, в виде виртуальной машины (см. пример на Фиг. 2), на основе частичной виртуализации файловой системы и реестра, на основе правил доступа к файловой системе и реестру или на основе смешанного подхода.
Система обнаружения вторжений является средством выявления фактов неавторизованного доступа на вычислительное устройство 101 или сеть 109 либо несанкционированного управления ими.
Сервис репутации может содержать информацию о популярности файлов на вычислительных устройствах 101 (количество вычислительных устройств 101, на которых имеется файл, количество запусков файла и пр.).
Модуль проверки YARA правил служит для проверки сигнатур YARA - открытого формата сигнатур (см., http://yararules.com/).
DLP-модуль служит для обнаружения и предотвращения утечки конфиденциальных данных за пределы компьютера или сети.
На Фиг. 5 представлен способ создания антивирусной записи.
Средство защиты от направленных атак 103, расположенное на сервере, передает средству журналирования 132 исследуемый файл 133 на выполнение в виртуальной машине 106. Во время выполнения файла 133, средство журналирования 132 регистрирует в журнал вызовов 134 по меньшей мере записи о вызовах API-функций (например, имя функции, передаваемые параметры, время вызова функции). Таким образом, журнал вызовов виртуальной машины 134 содержит зарегистрированные во время выполнения файла 133 на виртуальной машине 106 по крайней мере записи о вызовах API-функций. Как уже было описано ранее, после завершения выполнения файла 133 на виртуальной машине 106, средство защиты 103 сохраняет записи журнала вызовов 134, содержащегося в виртуальной машине, в журнал вызовов 104.
Настоящее изобретение начинает работать в том случае, когда было выявлено поведенческое правило из базы данных угроз 105, соответствующее записям журнала вызовов 104 - т.е. с помощью виртуальной машины был обнаружен вредоносный файл.
Также, как и поведенческое правило для поведенческого анализатора, поведенческое правило для виртуальной машины включает информацию о вызове по меньшей мере одной API-функции и вердикт (например, компьютерный вирус, сетевой червь, троянская программа или условно нежелательное ПО), в случае, если это правило сработает. В частном примере реализации поведенческие правила состоят, в частности, из набора вызовов API-функций и логических выражений над ними. Например, если были вызваны определенные API-функции с определенными параметрами, заданные поведенческим правилом, то средство защиты 103 найдет упомянутое правило в журнале вызовов 104.
Поведенческому правилу также соответствует вердикт, который выдается при срабатывании этого правила - то есть наиболее вероятная категория вредоносного или нежелательного ПО, которой соответствует упомянутое правило. Вердикт может быть, например, следующим: компьютерный вирус, сетевой червь, троянская программа или условно нежелательное ПО.
В частном примере реализации поведенческие правила включают, в частности, следующие:
- вызов API-функции из списка подозрительных API-функций (например, список может содержать следующие API-функции: WinExec, CreateProcess, GetFileSize, CreateFile);
- вызов API-функции GetFileSize был совершен 10 раз;
- после вызова API-функции WriteFile (запись в файл) будет следовать вызов API-функции WinExec (запуск файла на выполнение);
- подмену DNS-сервера на компьютере;
- отключение автоматического обновления операционной системы;
- отключение сетевого экрана;
- отключение средства защиты;
- отключение UAC (англ. User Account Control, UAC - компонент ОС Windows, Контроль учетных записей пользователей).
Таким образом, на шаге 501 при выявлении поведенческого правила, соответствующего записям журнала вызовов виртуальной машины определяют, что упомянутый файл 133 является вредоносным. Затем, на шаге 502 из упомянутого поведенческого правила извлекают по крайней мере записи о вызовах API-функций. После чего, на шаге 503 создают антивирусную запись для средства защиты 102. Антивирусная запись состоит по крайней мере из извлеченных записей о вызовах API-функций.
Таким образом, за счет создания антивирусной записи для средства защиты 102 будет решена заявленная техническая проблема и достигнуты заявленные технические результаты. А именно, улучшено качество обнаружения вредоносного файла за счет того, что созданная антивирусная запись для средства защиты 102 позволяет обнаружить вредоносные файлы, которые ранее не могли быть обнаружены ввиду отсутствия соответствующей антивирусной записи. А также будет сокращено время создания антивирусной записи для средства защиты 102 в сравнении с известными из уровня техники способами.
В одном частном примере реализации создают поведенческое правило для средства обнаружения 110, которое расположено на удаленном сервере. В другом частном примере реализации создают антивирусную запись для средства защиты 102 на вычислительном устройстве 101. Под антивирусной записью понимается сигнатура и/или правило для соответствующего модуля средства защиты 102, например, антивирусная запись сканера по доступу, поведенческое правило для поведенческого анализатора или поведенческое правило эмулятора.
В частном примере реализации на шаге 501 с помощью средства защиты 103 определяют, что файл 133 является вредоносным путем проведения дополнительного анализа файла 133, включающего, в частности, проверку с использованием сервиса репутации, проверку с использованием YARA-правил, экспертный анализ - т.е. ручной анализ файла экспертом в области компьютерной безопасности.
В частном примере реализации с помощью средства защиты от направленных атак 103 перед созданием антивирусной записи проверяют возможность регистрации средством защиты вычислительного устройства 102 по меньшей мере одной извлеченной записи о вызове API-функции, и в случае положительного ответа создают антивирусную запись для средства защиты вычислительного устройства 102, состоящую из извлеченных записей о вызовах API-функций. В другом частном примере реализации в случае, если средство защиты 102 (установленное на вычислительном устройстве 101) не поддерживает регистрацию по меньшей мере одной извлеченной записи о вызове API-функции, добавляют в средство защиты 102 поддержку регистрации неподдерживаемых записей о вызовах API-функций, после чего на шаге 503 создают антивирусную запись для средства защиты 102, состоящую из извлеченных записей о вызовах API-функций. Например, в виртуальной машине 106 средство журналирования 132 поддерживает регистрацию записи о вызове API-функции GetFileSize, однако поведенческий анализатор средства защиты 102 на вычислительном устройстве 101 не поддерживает регистрацию вызова этой функции. При этом поведенческое правило содержит запись вызова упомянутой API-функции (например, поведенческое правило следующее: «вызов API-функции GetFileSize был совершен 10 раз»). В этом примере реализации, в средство защиты 102 будет добавлена поддержка регистрации записи о вызове API-функции GetFileSize, после чего на шаге 503 создают антивирусную запись для средства защиты 102 (в данном примере поведенческое правило для поведенческого анализатора), состоящую из извлеченных записей о вызовах API-функций.
В еще одном частном примере реализации в случае, если средство защиты 102 (установленное на вычислительном устройстве 101) не поддерживает регистрацию по меньшей мере одной извлеченной записи о вызове API-функции, будет создана антивирусная запись, включающая только поддерживаемые записи о вызовах API-функций, при условии, что процентное соотношение поддерживаемых записей о вызовах API-функций по отношению к числу всех записей о вызовах API-функций, которые содержатся в поведенческом правиле, превышает заданное число (например, 75%). В качестве примера допустим, что сработало следующее поведенческое правило: «вызов следующих API-функций из списка подозрительных API-функций: WinExec, CreateProcess, GetFileSize, CreateFile, после вызова API-функции WriteFile будет следовать вызов API-функции WinExec». Предположим, что средство защиты 102 поддерживает регистрацию вызовов API-функций WinExec, CreateProcess, CreateFile, WriteFile, но не поддерживает регистрацию записи о вызове API-функции GetFileSize. В этом случае, процент поддерживаемых API-функций из числа всех API-функций, содержащихся в сработавшем поведенческом правиле составляет 80%, что больше 75% (пример заданного числа), таким образом, будет создана антивирусная запись.
Фиг. 6 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 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, представленного на Фиг. 6. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях (также - информационных системах), внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В соответствии с описанием, компоненты, этапы выполнения, структура данных, описанные выше, могут быть выполнены, используя различные типы операционных систем, компьютерных платформ, программ.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.