Система и способ определения вредоносного файла
SYSTEM AND METHOD FOR IDENTIFYING MALICIOUS FILES

Область техники
Изобретение относится к области компьютерной безопасности, а более конкретно к системам и способам определения вредоносного кода.
Уровень техники
Традиционный сигнатурный анализ не всегда позволяет обнаружить вредоносные файлы, особенно полиморфные вирусы, обфусцированные (англ. obfuscated) файлы, а также шелл-код (англ. shellcode, код запуска оболочки).
Поэтому современные антивирусные приложения дополнительно используют проверку с использованием т.н. «песочницы» (от англ. «sandbox» - специально выделенная изолированная от остальной системы среда, ограничивающая выполняемым в ней процессам доступ и использование ресурсов). «Песочница» может быть реализована, например, в виде виртуальной машины, на основе частичной виртуализации файловой системы и реестра, на основе правил доступа к файловой системе и реестру или на основе смешанного подхода. Проверяемый файл исполняется в «песочнице». В ходе выполнения файла, информация о вызовах API-функций, системных событиях записывается в журнал вызовов. Антивирусное приложение далее анализирует полученный журнал вызовов. В журнале вызовов обычно сохраняют информацию о вызовах API-функций (англ. application programming interface, API), произведенных упомянутым файлом во время выполнения, а также информацию о возвратах из вызванных API-функций (передача управления по адресу возврата). Выполнение файла в песочнице обычно происходит в течение ограниченного промежутка времени (до нескольких десятков секунд). В то же время, при выполнении в «песочнице» файла, содержащего шелл-код, его обнаружение путем анализа журналов вызовов API-функций может быть затруднительным. Т.к. шелл-код мог быть загружен в память процесса, но выполнение процесса в песочнице прекратилось раньше, чем управление должно было быть передано на участок памяти, содержащей шелл-код.
Еще одной технологией обнаружения вредоносного кода в файле является эмуляция, которая заключается в имитации гостевой системы во время выполнения кода в эмуляторе.
В современных антивирусах упомянутые технологии применяются совместно. Обычно, вначале производится сигнатурный анализ файла, затем, если не было обнаружено вредоносное поведение, производится выполнение файла в эмуляторе или «песочнице». В случае, если вредоносное поведение не было обнаружено, файл будет выполнен непосредственно на компьютере пользователя (не в изолированной среде, как в случае «песочницы»). На этом этапе начинает работу еще один важный антивирусный модуль - поведенческий анализатор, который собирает и анализирует журнал вызовов API-функций в ходу выполнения файла на компьютере пользователя. С использованием установленных драйверов-перехватчиков, поведенческий анализатор выполняет перехват вызовов API-функций, производимых во время выполнения вредоносного кода, а также возвратов из вызванный API-функций и сохраняет их в журнал вызовов. Затем поведенческий анализатор производит поиск в журнале вызовов шаблонов известного вредоносного поведения и выдает вердикт (например, вирус, червь, троянская программа или условно нежелательное ПО). Принцип анализа журнала вызовов поведенческим анализатором схож с работой «песочницы» и эмулятора. Но у поведенческого анализатора отсутствуют недостатки, присущие упомянутым модулям - нет ограничений на время выполнения файла, не работают техники обнаружения и обхода эмулятора и «песочницы», т.к. файл выполняется на компьютере пользователя, а не в изолированной среде и не в эмуляторе.
Но в то же время, поведение файла может отличаться в зависимости от среды выполнения или даже при запуске на одном компьютере с различными входными параметрами. Таким образом, поведение вредоносного файла при каждом запуске может не подпадать под известный шаблон вредоносного поведения. Техническая проблема заключается в низком качестве определения вредоносных файлов, поведение которых не подпадает под известные шаблоны вредоносного поведения.
Известен метод обнаружения вредоносного программного обеспечения в реальной среде выполнения (ЕР 3140732 А1). Метод заключается в регистрации производимых программным обеспечением операций в журнал и в поиске в данном журнале известных шаблонов вредоносного поведения. Однако, данные метод не позволяет решить заявленную техническую проблему, т.е. не сможет определить вредоносный файл, поведение которого не подпадает под известные шаблоны вредоносного поведения.
Раскрытие сущности изобретения
Технический результат заключается в реализации назначения.
Технический результат заключается в повышении качества определения вредоносного файла с использованием поведенческих правил за счет осуществления поиска соответствия записей из объединенного журнала вызовов по меньшей мере одному поведенческому правилу из базы данных угроз, где объединенный журнал вызовов получен путем объединения различных локальных журналов вызовов для одинаковых файлов по меньшей мере с двух вычислительных устройств.
Согласно варианту реализации используется способ определения вредоносного файла, в котором: с использованием средств защиты, работающих по меньшей мере на двух вычислительных устройствах, регистрируют в локальный журнал вызовов каждого вычислительного устройства по меньшей мере вызовы API-функций во время выполнения одинаковых файлов; на каждом вычислительном устройстве с помощью средства защиты во время выполнения файла осуществляют поиск в локальном журнале вызовов соответствия зарегистрированных по меньшей мере вызовов API-функций поведенческим правилам из локальной базы данных угроз, расположенной на вычислительном устройстве, при этом в случае, когда не найдено ни одного соответствия поведенческим правилам, то средство защиты передает локальный журнал вызовов средству обнаружения, находящемуся на удаленном сервере; с помощью средства обнаружения объединяют локальные журналы вызовов одинаковых файлов, полученные по меньшей мере от двух средств защиты, в объединенный журнал вызовов, таким образом, что для каждого локального журнала вызовов, в объединенном журнале вызовов содержится по меньшей мере одна запись, отсутствующая в упомянутом локальном журнале вызовов; с помощью средства обнаружения осуществляют поиск соответствия записей из объединенного журнала вызовов по меньшей мере одному поведенческому правилу из базы данных угроз, при этом упомянутая база данных угроз расположена на удаленном сервере и содержит по меньшей мере все правила локальной базы данных угроз каждого упомянутого вычислительного устройства; при нахождении соответствия записей из объединенного журнала вызовов по меньшей мере одному поведенческому правилу из базы данных угроз, определяют файл как вредоносный согласно найденному поведенческому правилу.
Согласно одному из частных вариантов реализации с помощью средств защиты дополнительно регистрируют, в частности, следующую информацию: процедуры передачи управления по адресу возврата из API-функций; прямые вызовы Windows NT Native API-функций; возвраты из Windows NT Native API-функций; события выключения или перезагрузки компьютерной системы; события в операционной системе; показатели компрометации; системные вызовы; вердикты средства защиты; контрольную сумму от файла или контрольную сумму от части файла; источник появления файла; результаты эмуляции выполнения файла; время появления файла на вычислительном устройстве; данные, получаемые по сети файлом; данные, передаваемые по сети файлом; подмена DNS-сервера на компьютере; отключение автоматического обновления операционной системы; отключение сетевого экрана; отключение средства защиты; отключение компоненты «Контроль учетных записей пользователей»; отключение компонента операционной системы «восстановление системы»; отключение опции «показывать скрытые файлы, папки и диски» в файловом менеджере; изменение правил сетевого экрана; изменение файла hosts; удаление файлом самого себя.
Согласно другому частному варианту реализации дополнительно регистрируют информацию, аналогичную приведенной ранее и связанную с дочерними процессами и новыми файлами, созданными упомянутым файлом.
Согласно еще одному частному варианту реализации дополнительно с помощью средства защиты от направленных атак, которое расположено на отдельном удаленном сервере и связано посредством компьютерной сети по меньшей мере с одним вычислительным устройством, регистрируют в локальный журнал вызовов упомянутого средства защиты от направленных атак информацию, связанную с файлом, выполняемым на упомянутом вычислительном устройстве и проходящую через компьютерную сеть, после чего передают упомянутый локальный журнал вызовов средству обнаружения.
Согласно одному из частных вариантов реализации с помощью средства защиты от направленных атак регистрируют, в частности, следующую информацию: показатели компрометации; вердикты средства защиты; контрольную сумму от файла или контрольную сумму от части файла; источник загрузки файла на вычислительное устройство; данные, передаваемые по сети файлом; данные, получаемые по сети файлом; подмена DNS-сервера на компьютере.
Согласно варианту реализации используется способ определения вредоносного файла, в котором: получают от каждого из по меньшей мере двух средств защиты, установленных на различных вычислительных устройствах, локальные журналы вызовов, которые содержат по меньшей мере записи о вызовах API-функций во время выполнения одинаковых файлов на каждом из упомянутых вычислительных устройств; объединяют упомянутые локальные журналы вызовов в объединенный журнал вызовов, таким образом, что для каждого локального журнала вызовов, в объединенном журнале вызовов содержится по меньшей мере одна запись, отсутствующая в упомянутом локальном журнале вызовов; с помощью средства обнаружения осуществляют поиск соответствия записей из объединенного журнала вызовов по меньшей мере одному поведенческому правилу из базы данных угроз; при нахождении соответствия записей из объединенного журнала вызовов по меньшей мере одному поведенческому правилу из базы данных угроз, определяют файл как вредоносный согласно найденному поведенческому правилу.
Согласно одному из частных вариантов реализации с помощью средств защиты дополнительно регистрируют, в частности, следующую информацию: процедуры передачи управления по адресу возврата из API-функций; прямые вызовы Windows NT Native API-функций; возвраты из Windows NT Native API-функций; события выключения или перезагрузки компьютерной системы; события в операционной системе; показатели компрометации; системные вызовы; вердикты средства защиты; контрольную сумму от файла или контрольную сумму от части файла; источник появления файла; результаты эмуляции выполнения файла; время появления файла на вычислительном устройстве; данные, получаемые по сети файлом; данные, передаваемые по сети файлом; подмена DNS-сервера на компьютере; отключение автоматического обновления операционной системы; отключение сетевого экрана; отключение средства защиты; отключение компоненты «Контроль учетных записей пользователей»; отключение компонента операционной системы «восстановление системы»; отключение опции «показывать скрытые файлы, папки и диски» в файловом менеджере; изменение правил сетевого экрана; изменение файла hosts; удаление файлом самого себя.
Согласно одному из частных вариантов реализации дополнительно регистрируют информацию, аналогичную приведенной ранее и связанную с дочерними процессами и новыми файлами, созданными упомянутым файлом.
Согласно другому частному варианту реализации дополнительно получают локальный журнал вызовов от средства защиты от направленных атак, которое расположено на отдельном удаленном сервере и связано посредством компьютерной сети по меньшей мере с одним вычислительным устройством, при этом упомянутый локальный журнал вызовов содержит информацию, связанную с файлом, выполняемым на упомянутом вычислительном устройстве и проходящую через компьютерную сеть.
Согласно еще одному частному варианту реализации локальный журнал вызовов от средства защиты от направленных атак содержит, в частности, следующую информацию: показатели компрометации; вердикты средства защиты; контрольную сумму от файла или контрольную сумму от части файла; источник загрузки файла на вычислительное устройство; данные, передаваемые по сети файлом; данные, получаемые по сети файлом; подмена DNS-сервера на компьютере.
Согласно варианту реализации используется система определения вредоносного файла, содержащая: по меньшей мере два вычислительных устройства, на каждом из которых содержится локальная база данных угроз и установлено средство защиты, с использованием которого: регистрируют в локальный журнал вызовов каждого вычислительного устройства по меньшей мере вызовы API-функций во время выполнения одинаковых файлов; во время выполнения файла осуществляют поиск в локальном журнале вызовов соответствия зарегистрированных по меньшей мере вызовов API-функций поведенческим правилам из локальной базы данных угроз, расположенной на вычислительном устройстве; передают локальный журнал вызовов средству обнаружения, находящемуся на удаленном сервере в случае, когда не найдено ни одного поведенческого правила; удаленный сервер, содержащий базу данных угроз, которая содержит по меньшей мере все записи локальной базы данных угроз каждого упомянутого вычислительного устройства; средство обнаружения, связанное с базой данных угроз и предназначенное для: объединения локальных журналов вызовов одинаковых файлов, полученных по меньшей мере от двух средств защиты, в объединенный журнал вызовов, таким образом, что для каждого локального журнала вызовов, в объединенном журнале вызовов содержится по меньшей мере одна запись, отсутствующая в упомянутом локальном журнале вызовов; осуществления поиска соответствия записей из объединенного журнала вызовов по меньшей мере одному поведенческому правилу из базы данных угроз; определения файла как вредоносный при нахождении соответствия записей из объединенного журнала вызовов по меньшей мере одному поведенческому правилу из базы данных угроз.
Согласно одному из частных вариантов реализации средства защиты дополнительно предназначены для регистрации, в частности, следующую информацию: процедуры передачи управления по адресу возврата из API-функций; прямые вызовы Windows NT Native API-функций; возвраты из Windows NT Native API-функций; события выключения или перезагрузки компьютерной системы; события в операционной системе; показатели компрометации; системные вызовы; вердикты средства защиты; контрольную сумму файла или его части; источник появления файла; результаты эмуляции выполнения файла; время появления файла на вычислительном устройстве; данные, получаемые по сети файлом; данные, передаваемые по сети файлом; подмена DNS-сервера на компьютере; отключение автоматического обновления операционной системы; отключение сетевого экрана; отключение средства защиты; отключение компоненты «Контроль учетных записей пользователей»; отключение компонента операционной системы «восстановление системы»; отключение опции «показывать скрытые файлы, папки и диски» в файловом менеджере; изменение правил сетевого экрана; изменение файла hosts; удаление файлом самого себя.
Согласно одному из частных вариантов реализации средство защиты дополнительно предназначено регистрации информации, аналогичной приведенной ранее и связанной с дочерними процессами и новыми файлами, созданными упомянутым файлом.
Согласно другому частному варианту реализации система определения вредоносного файла дополнительно содержит средство защиты от направленных атак, которое расположено на отдельном удаленном сервере и связано посредством компьютерной сети по меньшей мере с одним вычислительным устройством, при этом предназначено для регистрации в локальный журнал вызовов упомянутого средства защиты от направленных атак информации, связанной с упомянутым файлом и проходящей через компьютерную сеть, а также для передачи упомянутого локального журнала вызовов средству обнаружения.
Согласно еще одному частному варианту реализации с помощью средства защиты от направленных атак регистрируют, в частности, следующую информацию: показатели компрометации; вердикты средства защиты; контрольную сумму от файла или контрольную сумму от части файла; источник загрузки файла на вычислительное устройство; данные, передаваемые по сети файлом; данные, получаемые по сети файлом; подмена DNS-сервера на компьютере.
Краткое описание чертежей
Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:
На Фиг. 1 представлена схема настоящего изобретения.
На Фиг. 2 приведен возможный пример модулей средства защиты вычислительного устройства.
На Фиг. 3 приведен возможный пример модулей средства защиты от направленных атак.
На Фиг. 4 представлена схема способа определения вредоносного файла.
Фиг. 5 представляет пример компьютерной системы общего назначения.
Осуществление изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако, настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, обеспеченными для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.
Глоссарий
Определим ряд терминов, которые будут использоваться при описании вариантов осуществления изобретения.
Показатели компрометации (англ. indicator of compromise, ЮС, реже - индикаторы заражения) - артефакты или остаточные признаки вторжения в информационную систему, наблюдаемые на компьютере или в сети. Типичными показателями компрометации являются вирусные сигнатуры, IP-адреса, контрольные суммы файлов, URL-адреса, доменные имена командных центров ботнетов и др. Существует ряд стандартов показателей компрометации, в частности:
- ОреnIOC (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 - ТА) - частный случай компьютерной атаки, направленной на конкретную организацию или конкретного физического лица.
Сложные атаки (англ. Advanced Persistent Threat - APT, также развитая устойчивая угроза или также целевая атака) - сложная, продолжительная, хорошо спланированная многоходовая компьютерная атака, использующая сложное вредоносное программное обеспечение (ПО), методы социальной инженерии и данные об информационной системе атакуемого.
Неточный хеш (англ. fuzzy hash) или гибкая свертка (англ. locality sensitive hash) - свертка файла, устойчивая к изменениям файла по которому она формируется. То есть при обнаружении вредоносного файла при помощи значения его свертки также будет детектироваться множество похожих (возможно неизвестных) вредоносных файлов. Главная особенность такой свертки - инвариантность к небольшим изменениям файла. См, например: RU 2580036, RU 2614561.
Неточный вердикт - срабатывание средства защиты (антивирусного приложения) при обнаружении подозрительных действий во время выполнения файла, характерных для вредоносного файла. Неточный вердикт срабатывает, например, при обнаружении файла при помощи гибкой свертки. Неточный вердикт свидетельствует, что найденный файл является вредоносным с некоторой долей вероятности.
На Фиг. 1 представлена компьютерная система, служащая для определения вредоносного файла с использованием поведенческих правил. Информационная система 100 (также - корпоративная инфраструктура) включает совокупность вычислительных устройств 101 (также, для краткости, компьютеры), связанных между собой компьютерной сетью 105. Под вычислительными устройствами 101 в общем случае понимаются любые вычислительные устройства и сенсоры, в частности, персональные компьютеры, ноутбуки, смартфоны, а также коммуникационные устройства, такие как: маршрутизаторы, коммутаторы, концентраторы и пр. Стоит отметить, что вычислительное устройство 101 может быть, как физическим устройством, так и виртуальной машиной. Информационная система 100 может быть организована с использованием любой известной из уровня техники топологии сети 105, например одного из следующих типов: полносвязная, шина, звезда, кольцо, ячеистая или смешанного типа. На части вычислительных устройств 101 установлены средства защиты вычислительных устройств 102. Стоит отметить, что на некоторых вычислительных устройствах 101 может быть не установлено средство защиты 102. Информационная система 100 может включать средство защиты от направленных атак 103, которое может быть расположено, например, на отдельном удаленном сервере и связано посредством компьютерной сети 105 по меньшей мере с одним вычислительным устройством 101. Для подключения вычислительных устройств 101 посредством сети 105 к Интернету и средству обнаружения 110, могут быть использованы прокси-серверы (на фигуре не указаны).
В одном частном примере реализации дополнительно средства защиты от направленных атак 103 предназначено для регистрации в локальный журнал вызовов 109 информации, связанной с упомянутым файлом, который выполняется на упомянутом вычислительном устройстве 101, и проходящей через компьютерную сеть 105, в частности:
- показатели компрометации;
- вердикты средства защиты (например, вердикт песочницы, IDS);
- контрольную сумму от файла или контрольную сумму от части файла;
- источник загрузки файла на вычислительное устройство 101 (например, IP-адрес источника, флеш-накопитель с которого файл был загружен на компьютер и др.);
- данные, передаваемые по сети файлом (например, по каким IP-адресам происходит обращение, какие пакеты передаются и пр.);
- данные, получаемые по сети файлом (например, с каких IP-адресов происходит обращение, какие пакеты передаются и пр.);
- подмена DNS-сервера на компьютере.
Средство защиты от направленный атак 103 также предназначено для передачи локального журнала вызовов 109 средство обнаружения 110.
Система включает по меньшей мере два вычислительных устройства 101 с работающими на них средствами защиты 102. Средства защиты 102 регистрируют в локальный журнал вызовов 107 каждого вычислительного устройства 101 по меньшей мере вызовы API-функций во время выполнения исследуемого файла (например, имя функции, передаваемые параметры, время вызова функции).
В частном варианте реализации каждая запись локального журнала вызовов 107 о вызовах API-функций содержит, в частности, следующую информацию:
- имя вызванной функции;
- уникальный идентификатор процесса (process identifier, PID), запущенного из упомянутого файла 134;
- уникальный идентификатор потока (thread identifier, TID), выполняющего инструкции адресного пространства процесса;
- набор аргументов упомянутой функции;
- время вызова функции.
Средство защиты 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 не нашло соответствия записей локального журнала вызовов 107 ни одному поведенческому правилу из локальной базы данных угроз 108, то средство защиты 102 передает локальный журнал вызовов 107 средству обнаружения 110, находящемуся на удаленном сервере.
В частном варианте реализации средство защиты 102 может передавать локальный журнал вызовов 107 средству обнаружения 110 только, если было найдено поведенческое правило, которому соответствует вердикт вредоносного ПО. В другом примере реализации локальный журнал вызовов 107 будет передан также, если найдено поведенческое правило, которому соответствует вердикт условно нежелательное ПО.
Средство обнаружения 110 объединяет для анализируемого файла локальные журналы вызовов 107, полученные по меньшей мере от двух средств защиты 102 в объединенный журнал вызовов 116, расположенный на удаленном сервере.
Стоит отметить, что объединение локальных журналов вызовов 107 происходит в том случае, когда для каждого локального журнала вызовов 107, в объединенном журнале вызовов 116 содержится по меньшей мере одна запись, отсутствующая в упомянутом локальном журнале вызовов 107. Таким образом, объединенный журнал вызовов 116 является более полным чем каждый отдельно взятый локальный журнал вызовов 107.
Приведем пример - пусть имеется три локальных журнала вызовов. Первый журнал содержит записи А, В, С, второй - А, В, D, а третий - А, С, D. В этом примере будет создан объединенный журнал вызовов, содержащий записи А, В, С, D. При этом, для каждого локального журнала вызовов 107, в объединенном журнале вызовов 116 содержится по меньшей мере одна запись, отсутствующая в упомянутом локальном журнале вызовов 107. Запись D отсутствует в первом журнале, запись С отсутствует во втором журнале, а запись В - в третьем журнале.
Приведем еще один пример - пусть имеется три локальных журнала вызовов. Первый журнал содержит записи А, В, второй - А, В, С, а третий - А, С. В этом примере объединенный журнал вызовов не будет создан, так как он бы содержал записи А, В, С, и совпадал бы со вторым локальным журналом (т.е. в объединенном журнале не было бы записей, отсутствующий во втором журнале).
В одном частном примере реализации объединенный журнал вызовов 116 будет содержать все записи каждого локального журнала вызовов 107. В другом частном примере реализации объединенный журнал вызовов 116 будет содержать все записи одного локального журнала вызовов 107 (например, первого) и записи других локальных журналов вызовов 107, отсутствующие в первом журнале вызовов.
В частном примере реализации объединение локальных журналов вызовов 107 в журнал вызовов 116 происходит путем объединения записей упомянутых локальных журналов вызовов 107. При этом, пересекающиеся записи могут как дублироваться, так и не дублироваться в объединенном журнале вызовов 116. В еще одном примере реализации локальные журналы вызовов 107 могут дополнительно содержать граф потока управления процесса (англ. control flow graph, CFG), запущенного из файла и, в этом примере, объединенный журнал вызовов 116 будет содержать объединенный граф потока управления для упомянутого файла, полученный путем объединения нескольких графов потока управления.
Средство обнаружения 110 осуществляет поиск соответствия записей из объединенного журнала вызовов 116 по меньшей мере одному поведенческому правилу из базы данных угроз 111. При этом упомянутая база данных угроз расположена на удаленном сервере и содержит по меньшей мере все записи локальной базы данных угроз 108 каждого вычислительного устройства 101.
На Фиг. 2 приведен возможный пример модулей средства защиты вычислительного устройства. Средство защиты вычислительного устройства 102 может содержать модули, предназначенные для обеспечения безопасности вычислительного устройства 101: сканер по доступу, сканер по требованию, почтовый антивирус, веб-антивирус, модуль проактивной защиты, модуль HIPS (англ. Host Intrusion Prevention System - система предотвращения вторжений), DLP-модуль (англ. data loss prevention - предотвращение утечки данных), сканер уязвимостей, эмулятор, сетевой экран и др. В частном примере реализации указанные модули могут быть составной частью средства защиты 102. В еще одном примере реализации данные модули могут быть реализованы в виде отдельных программных компонент.
Сканер по доступу содержит функционал обнаружения вредоносной активности всех открываемых, запускаемых и сохраняемых файлов на компьютерной системе пользователя. Сканер по требованию отличается от сканера по доступу тем, что сканирует заданные пользователем файлы и директории по требованию пользователя.
Почтовый антивирус необходим для контроля входящей и исходящей электронной почты на предмет содержания вредоносных файлов. Веб-антивирус служит для предотвращения выполнения вредоносного кода, который может содержаться на веб-сайтах, помещаемых пользователем, а также для блокирования открытия веб-сайтов. Модуль HIPS служит для обнаружения нежелательной и вредоносной активности программ и блокирования ее в момент выполнения. DLP-модуль служит для обнаружения и предотвращения утечки конфиденциальных данных за пределы компьютера или сети. Сканер уязвимостей необходим для обнаружения уязвимостей на вычислительном устройстве 101 (например, отключены некоторые компоненты средства защиты 102, устаревшие вирусные базы, закрыт сетевой порт и пр.). Сетевой экран осуществляет контроль и фильтрацию сетевого трафика в соответствии с заданными правилами. Работа эмулятора заключается в имитации гостевой системы во время выполнения кода в эмуляторе. Модуль проактивной защиты использует поведенческие сигнатуры для обнаружения поведения исполняемых файлов и их классификации по уровню доверия.
Приведенные модули при обнаружении вредоносного программного обеспечения (подозрительного поведения, спама и др. признаков компьютерной угрозы), создают соответствующее уведомление (которое далее может быть преобразовано в вердикт средства защиты 102), указывающее средству защиты об обнаруженной угрозе и необходимости выполнить действия по устранению угрозы (например, удаление или изменение файла, запрет выполнения и пр.). В частном примере реализации, сам модуль, обнаруживший вредоносное ПО, может выполнить действия по устранению угрозы. В еще одном примере вердикт может быть неточным или тестовым (т.к. данный вердикт может давать ложные срабатывания) - в этом случае, средство защиты не будет выполнять действий по устранению угрозы, но передаст уведомление далее, средству обнаружения 110. Стоит отметить, что вердикт средства защиты 102 является частью информации об файле, которая затем будет передана средству обнаружения 110 в виде уведомления безопасности. В частном варианте реализации вредоносное программное обеспечение включает следующие категории (вердикт соответствует категории) - вредоносное ПО и условно нежелательное ПО. Вредоносное ПО может иметь подкатегории - вирусы, черви, троянские программы, упаковщики, вредоносные утилиты. Условно нежелательное ПО - рекламное ПО (англ. adware), ПО связанное с порнографическим содержимым (pornware), легальное ПО использование которого может причинить вред компьютеру (riskware) и др.
На Фиг. 3 приведен возможный пример модулей средства защиты от направленных атак. Средство защиты от направленных атак 103 может содержать, например, следующие модули защиты: «песочницу», систему обнаружения вторжений (англ. - Intrusion Detection System, IDS), репутационный сервис, модуль проверки YARA правил и другие модули обнаружения.
Модуль «песочница» имеют функционал, аналогичный эмулятору средства защиты вычислительного устройства 102 с тем отличием, что «песочница» может использовать дополнительные вычислительные мощности и работать большее время, так как у средства защиты от направленных атак 103 отсутствуют ограничения по времени, присущие средству защиты вычислительного устройства 102.
«Песочница» является компьютерной средой для безопасного выполнения процессов и служит для определения подозрительной активности при выполнении процесса, запущенного из файла.
Песочница может быть реализована, например, в виде виртуальной машины, на основе частичной виртуализации файловой системы и реестра, на основе правил доступа к файловой системе и реестру или на основе смешанного подхода.
Система обнаружения вторжений является средством выявления фактов неавторизованного доступа на вычислительное устройство 101 или сеть 105 либо несанкционированного управления ими.
Сервер репутации может содержит информацию о популярности файлов на вычислительных устройствах 101 (количество вычислительных устройств 101, на которых имеется файл, количество запусков файла и пр.).
Модуль проверки YARA правил служит для проверки сигнатур YARA - открытого формата сигнатур (см., http://yararules.com/).
DLP-модуль служит для обнаружения и предотвращения утечки конфиденциальных данных за пределы компьютера или сети.
На Фиг. 4 представлена схема способа определения вредоносного файла. Так, на шаге 401 с использованием средств защиты 102, работающих по меньшей мере на двух вычислительных устройствах 101, регистрируют в локальный журнал вызовов 107 каждого вычислительного устройства 101 по меньшей мере вызовы API-функций во время выполнения одинаковых файлов (то есть на каждом вычислительном устройстве выполняются идентичные файлы).
При этом, вычислительные устройства 101 могут иметь различное окружение (операционная система (ОС) и ее версии, установленные обновления ОС, установленное программное обеспечение и драйверы, выполняемые сервисы и процессы, наличие подключение к сети Интернет, периферийные устройства и пр.). Кроме того, файл (анализируемый) может быть открыт на выполнение с различными параметрами в зависимости от вычислительного устройства 101 или времени открытия или других факторов. Такими параметрами могут быть, например права пользователя (с правами администратора или правами пользователя), объект запуска (например, исполняемому файлу передается на вход какой-либо объект или другой файл), с различными ключами запуска (например, команда "ie.exe -k" интерпретатора командной строки Windows "Cmd.exe" запускает браузер Internet Explorer в полноэкранном режиме) и другими. Таким образом, во время выполнения одного файла на различных вычислительных устройствах 101 (или даже на одном устройстве), упомянутый файл может иметь различное поведение, производить вызовы различных API-функций и т.д. Например, если на одном вычислительном устройстве 101 отсутствует подключение к сети Интернет, файл не сможет обратиться по IP-адресам, по которым он может обратиться при выполнении на другом вычислительном устройстве 101, на котором присутствует подключение к сети Интернет.
На шаге 402 на каждом из упомянутых вычислительных устройств 101 с помощью средства защиты 102 (установленном на соответствующем вычислительном устройстве 101) в процессе выполнения файла в локальном журнале вызовов 107 осуществляется поиск соответствия зарегистрированных по меньшей мере вызовов API-функций поведенческим правилам из локальной базы данных угроз 108. Если средство защиты 102 выявило соответствие хотя бы одному поведенческому правилу, то файл будет определен вредоносным непосредственно на вычислительном устройстве 101 и дальнейшее выполнение файла будет завершено средством защиты 102.
Иначе - на шаге 403 средство защиты 102 передаст локальный журнал вызовов 107 средству обнаружения 110.
На шаге 404 с помощью средства обнаружения 110 объединяют для упомянутого файла полученные локальные журналы вызовов 107 в объединенный журнал вызовов 116. Стоит отметить, что шаг 404 будет применим, когда для каждого локального журнала вызовов 107 в объединенном журнале вызовов 116 содержится по меньшей мере одна запись, отсутствующая в упомянутом локальном журнале вызовов 107.
На шаге 405 средство обнаружения 110 осуществляет поиск соответствия записей из объединенного журнала вызовов 116 по меньшей мере одному поведенческому правилу из базы данных угроз 111. В частном варианте реализации локальная база данных угроз 108 и база данных угроз 111 являются копиями. В другом частном варианте реализации база данных угроз 111 содержит по меньшей мере все записи локальной базы данных угроз 108 и, возможно, другие записи. Например, с целью экономии места на вычислительных устройствах 101, локальные базы данных угроз 108 могут содержать записи о наиболее распространенных угрозах, которые характерны для данного региона, в данный момент времени или для компании-владельца информационно системы 100. В еще одном примере, локальные базы данных угроз 108 являются зеркальной копией базы данных угроз 111 и обновляются периодически. В этом случае, очевидно, что с момента последнего обновления локальной базы данных угроз 108 и до момента следующего запланированного обновления, база данных угроз 111 могла пополниться новыми записями об угрозах, отсутствующими в локальных базах данных угроз 108.
В итоге, на шаге 406, если была найдено соответствие записей из объединенного журнала вызовов 116 по меньшей мере одному поведенческому правилу из базы данных угроз 111, файл будет определен как вредоносный согласно найденному поведенческому правилу. При этом, в зависимости от найденного поведенческого правила, на шаге 407 средство обнаружения 110 выдать вердикт определенному файлу (например, вирус, червь, троянская программа или условно нежелательное ПО) и может создать вирусную сигнатуру для средства защиты 102. Под вирусной сигнатурой понимается, например, сигнатура для модуля сигнатурного анализа средства защиты 102 или сигнатура эмулятора.
Таким образом, будет решена заявленная техническая проблема - с использованием приведенного способа будет определен вредоносный файл, который не был определен средством защиты 102. И будет достигнут технический результат - повышено качество определения вредоносного файла с использованием поведенческих правил за счет осуществления поиска соответствия записей из объединенного журнала вызовов по меньшей мере одному поведенческому правилу из базы данных угроз, где объединенный журнал вызовов получен путем объединения различных локальных журналов вызовов для одинаковых файлов по меньшей мере с двух вычислительных устройств.
Приведем несколько примеров различного поведения во время выполнения файла на различных вычислительных устройствах 101 в зависимости от их окружения.
Например, если файл содержит код для обнаружения и обхода эмулятора, то на вычислительном устройстве 101 с работающим эмулятором, файл может выполнять безопасные действия, в то время как на другом вычислительном устройстве 101, на котором эмулятор не работает, файл будет выполнять вредоносные действия.
В еще одном примере файл может проверять местоположение вычислительного устройства 101 (например, по локализации ОС) и выполнять различные действия в зависимости от местоположения. В другом примере во время выполнения файла могут быть выполнены вредоносные действия по отношения к конкретным приложениям и получены соответствующие вердикты, и если на одном вычислительном устройстве 101 эти приложения не установлены, то вредоносные действия не будут выполнены, вердикты получены не будут.
В еще одном примере файл может загружать по сети дополнительные вредоносные модули в зависимости от архитектуры ОС (32- или 64-битная). В еще одном примере, файл может использовать различные каналы доступа к командному центру - например, через HTTPs, DNS, Twitter, Yandex. Disk или другие каналы доступа. В этом случае, на одном вычислительном устройстве 101 файл может обратиться через HTTPs, а на другом через Twitter из-за того, что не получилось получить доступ через HTTPs.
В еще одном примере файл, запущенный на вычислительном устройстве 101 с правами администратора может сразу начать выполнять вредоносную активность. А при запуске этого же файла на вычислительном устройстве 101 без прав администратора, файл может пытаться повысить свои права.
В частном варианте реализации с помощью средства защиты 102 дополнительно регистрируют, в частности, следующую информацию:
- процедуры передачи управления по адресу возврата из API-функций;
- прямые вызовы Windows NT Native API-функций;
- возвраты из Windows NT Native API-функций;
- события выключения или перезагрузки компьютерной системы;
- системные события операционной системы;
- показатели компрометации;
- системные вызовы (например, fopen(), create());
- вердикты средства защиты (например, вирус, червь, троянская программа или условно нежелательное ПО);
- контрольную сумму от файла или контрольную сумму от части файла;
- источник загрузки файла на вычислительное устройство 101 (например, IP-адрес источника, флеш-накопитель с которого файл был загружен на компьютер и др.);
- результаты эмуляции выполнения файла (вердикт эмулятора);
- время появления файла на вычислительном устройстве;
- данные, передаваемые по сети файлом (например, по каким IP-адресам происходит обращение, какие пакеты передаются и пр.);
- данные, получаемые по сети файлом (например, с каких IP-адресов происходит обращение, какие пакеты передаются и пр.).
В другом частном примере реализации с помощью средства защиты 102 дополнительно регистрируют, в частности, следующую информацию:
- подмена DNS-сервера на компьютере;
- отключение автоматического обновления операционной системы;
- отключение сетевого экрана;
- отключение средства защиты;
- отключение компоненты «Контроль учетных записей пользователей»;
- отключение компонента операционной системы «восстановление системы».
В еще одном частном примере реализации с помощью средства защиты 102 дополнительно регистрируют, в частности, следующую информацию:
- отключение опции «показывать скрытые файлы, папки и диски» в файловом менеджере;
- изменение правил сетевого экрана;
- изменение файла hosts;
- удаление файлом самого себя (например, из анализируемого файла, являющегося вредоносным, выполняется процесс, который далее внедряет вредоносный код в контекст системного процесса svchost.exe, а затем удаляет анализируемый файл);
- событий выключения или перезагрузки компьютерной системы;
- исключительных ситуаций, произошедших в процессе;
- получение адресов дескрипторов системных библиотек (например, kernel32.dll, ntdll.dll);
- выделение памяти;
- чтение системных структур (англ. process environment block - РЕВ);
- последовательное получение дескрипторов файлов.
В еще одном частном варианте реализации, дополнительно регистрируют приведенную выше информацию, связанную с дочерними процессами и новыми файлами, которые были созданы в процессе выполнения анализируемого файла.
В одном частном примере реализации дополнительно с помощью средства защиты от направленных атак 103, которое расположено на отдельном удаленном сервере и связано посредством компьютерной сети 105 по меньшей мере с одним вычислительным устройством 101, регистрируют в локальный журнал вызовов 109 упомянутого средства защиты от направленных атак информацию, связанную с файлом, выполняемым на упомянутом вычислительном устройстве 101 и проходящую через компьютерную сеть, в частности:
- показатели компрометации;
- вердикты средства защиты (например, вердикт песочницы, IDS);
- контрольную сумму от файла или контрольную сумму от части файла;
- источник загрузки файла на вычислительное устройство 101 (например, IP-адрес источника, флеш-накопитель с которого файл был загружен на компьютер и др.);
- данные, передаваемые по сети файлом (например, по каким IP-адресам происходит обращение, какие пакеты передаются и пр.);
- данные, получаемые по сети файлом (например, с каких IP-адресов происходит обращение, какие пакеты передаются и пр.);
- подмена DNS-сервера на компьютере.
Средство защиты от направленный атак 103 в этом примере реализации далее передает локальный журнал вызовов 109 средство обнаружения 110, которое добавляет записи локального журнала вызовов 109 в объединенный журнал вызовов 116 на шаге 404.
В частном варианте реализации, средство защиты от направленных атак 103 также может быть связано с локальной базой данных угроз 112. В этом случае, средство защиты от направленных атак 103 может осуществить поиск соответствия записей локального журнала вызовов 109 поведенческим правилам из локальной базы данных угроз 112. В случае, если будет найдено соответствие по меньшей мере одному поведенческому правилу - файл может быть определен вредоносным, будет выдан соответствующий вердикт и будет направлено уведомление средству защиты 102, расположенному на вычислительном устройстве 101, на котором выполняется упомянутый файл. После чего средство защиты 102 выполнит необходимые действия по устранению файла, определенного вредоносным. Если же средство защиты от направленных атак 103 не выявит соответствия ни одному из поведенческих правил, то локальный журнал вызовов 109 будет передан средству обнаружения 110 на шаге 403.
В частном примере реализации локальный журнал вызовов 109, а также локальная база данных угроз 112 расположены на том же удаленном сервере, на котором расположено средство защиты от направленных атак 103.
В частном варианте реализации локальная база данных угроз 112 и база данных угроз 111 являются копиями. В другом частном варианте реализации база данных угроз 111 содержит по меньшей мере все записи локальной базы данных угроз 112 и, возможно, другие записи.
Фиг. 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. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В соответствии с описанием, компоненты, этапы исполнения, структура данных, описанные выше, могут быть выполнены, используя различные типы операционных систем, компьютерных платформ, программ.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.