Способ обнаружения вредоносных файлов, противодействующих анализу в изолированной среде
METHOD OF DETECTING MALICIOUS FILES THAT COUNTERACT ANALYSIS IN ISOLATED ENVIRONMENT

Область техники
Изобретение относится к решениям для выявления вредоносных файлов, а более конкретно к способам признания вредоносными файлов, использующих средства для противодействия анализу в изолированной среде.
Уровень техники
В настоящее время растет количество вредоносного программного обеспечения (например, компьютерные вирусы, трояны, сетевые черви), направленного на причинение ущерба как данным пользователя, так и самому пользователю электронного устройства, зараженного вредоносным программным обеспечением. Ущерб может быть причинен повреждением или удалением файлов пользователя, использованием ресурсов вычислительного устройства пользователя для "добычи" (англ. mining) криптовалют, кражей электронных и конфиденциальных данных пользователя (переписки, изображений, логинов, паролей, данных банковских карт) и прочими действиями. Кроме того, вредоносное программное обеспечение постоянно изменяется, так как его авторы прибегают к все более новым механизмам атак и защиты от приложений безопасности. Используются различные механизмы, например, обфускация (другими словами приведение исходного текста или исполняемого кода программы к виду, сохраняющему ее функциональность, но затрудняющему анализ, понимание алгоритмов работы и модификацию при декомпиляции) вредоносного кода или использование механизмов противодействия эмуляции (например, вредоносное программное обеспечение наделено функциями распознавания того, что оно исполняется в эмуляторе, и не проявляет свою вредоносную активность).
Кроме того, зачастую вредоносное программное обеспечение не проявляет свою вредоносную активность сразу, вместо этого производит множество (порядка миллионов) вызовов API-функций, огромные циклы (порядка миллиардов итераций), приостанавливает свою работу на некоторое время сразу после запуска (например, на 1 час использованием функции «Sleep()»). Вычислительные устройства пользователя в настоящее время имеют высокую производительность, многоядерные процессоры (есть и многопроцессорные системы), поэтому пользователь может не увидеть или не придать значения загруженности одного из ядер. Кроме того, обычно пользователь пользуется устройством после включения более одного часа. Поэтому вредоносному программному обеспечению, если оно запустилось, нет необходимости сразу проявлять свою активность.
Для борьбы с упомянутыми подходами производителями приложений безопасности (например, антивирусных приложений) используются подходы с использованием виртуальных машин в виде изолированной среды для безопасного исполнения файлов. Зачастую такие виртуальные машины называются песочницами (от англ. sandbox). Гипервизоры, под управлением которых работают такие виртуальные машины, содержат механизмы перехвата функций, вызываемых исполняемыми в них приложениями.
Стоит отметить, что приложения безопасности используют различные методы определения вредоносного программного обеспечения, например такие технологии, как сигнатурный и/или эвристический анализ. Если в процессе анализа вредоносность файла не была определена, он может быть передан приложением безопасности на анализ поведения в упомянутую виртуальную машину (например, если не имеет цифровой подписи доверенного производителя программного обеспечения). Затем переданный файл исполняется в виртуальной машине, в процессе исполнения происходит перехват его действий и событий, исполняемых вызовами различных функций, перехваченные события и действия сохраняются в журнал и в дальнейшем анализируются приложением безопасности или экспертом по информационной безопасности.
Таким образом, известные системы перехвата и агрегации событий и действий работают в два шага. На первом шаге информация собирается, на втором она анализируется.
Так, например, публикация US 7779472 B1 описывает классический способ исполнения файла в виртуальной машине. В процессе исполнения происходит перехват вызовов API-функций и их параметров. Список вызванных API-функций сравнивается с наборами вызовов, соответствующих вредоносному поведению. В случае соответствия выносится решение о вредоносности файла.
Однако, если файл не был признан вредоносным по результатам его исполнения в виртуальной машине, это не всегда свидетельствует о его безопасности. Например, если процесс, запущенный из анализируемого файла (или из приложения, которым анализируемый файл был открыт), приостановил свое исполнение на час или атакует какой-либо почтовый клиент или мессенджер (программу для обмена сообщениями), обращаясь к файлу с сохраненными паролями, но в виртуальной машине атакуемая программа отсутствует, то вредоносность поведения файла выявлена не будет (так как, не обнаружив требуемого файла с паролями, вредоносный файл закончит свое исполнение сам и не проявит вредоносной активности).
Настоящее изобретение позволяет упростить процесс признания файла вредоносным в дальнейшем путем использования уже имеющихся результатов анализа исполнения файла в виртуальной машине.
Раскрытие изобретения
Настоящее изобретение предназначено для признания вредоносными файлов, использующих средства для противодействия анализу в изолированной среде.
Технический результат настоящего изобретения заключается в расширении арсенала средств, предназначенных для признания вредоносными файлов, использующих средства для противодействия анализу в изолированной среде.
В одном из вариантов осуществления данного изобретения реализуется способ признания файла вредоносным, по которому: (а) открывают файл в виртуальной машине в виде среды для безопасного исполнения файлов; (б) формируют журнал, в который сохраняют события, возникающие во время исполнения по меньшей мере одного потока процесса, созданного при открытии файла в упомянутой виртуальной машине; (в) формируют из журнала шаблон поведения, который состоит из тех событий, которые имеют отношение к безопасности; (г) отслеживают события, возникающие во время исполнения по меньшей мере одного потока процесса, созданного при открытии файла на компьютерной системе; (д) признают файл вредоносным при обнаружении по меньшей мере одного события, которое имеет отношение к безопасности и отсутствует в упомянутом шаблоне.
В другом варианте осуществления данного изобретения дополнительно: вычисляют коэффициент опасности файла по событиям из шаблона; и увеличивают коэффициент опасности файла каждый раз при обнаружении события, которое имеют отношение к безопасности и отсутствует в упомянутом шаблоне.
Еще в одном варианте осуществления данного изобретения признают файл вредоносным, когда коэффициент опасности файла превышает установленный порог.
В другом варианте осуществления данного изобретения открытием файла является исполнение файла, если файл исполняемый.
В другом варианте осуществления данного изобретения открытием файла является открытие файла приложением, если файл не исполняемый.
В другом варианте осуществления данного изобретения шаблон поведения содержит по меньшей мере одно событие.
Еще в одном варианте осуществления данного изобретения шаблон поведения содержит по меньшей мере один контекст процессора.
Краткое описание чертежей
Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:
Фиг. 1 показывает пример анализа файла на вредоносность в виртуальной машине.
Фиг. 2 показывает пример реализации предлагаемого способа признания файла вредоносным.
Фиг. 3 способ признания файла вредоносным.
Фиг. 4 показывает пример компьютерной системы общего назначения.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.
Введем ряд определений и понятий, которые будут использоваться при описании вариантов осуществления изобретения.
Виртуальная машина в виде среды для безопасного исполнения файла - это набор (комплекс) программно-аппаратных средств, который предоставляет ресурсы хостовой операционной системы (ГОСТ 56938-2016) для гостевой операционной системы, при этом гостевая операционная система не имеет связи с хостовой операционной системой.
Под средствами системы анализа файла на вредоносность в виртуальной машине в настоящем изобретении понимаются реальные устройства, системы, компоненты, группы компонентов, реализованные с использованием аппаратных средств, таких как интегральные микросхемы (англ. application-specific integrated circuit, ASIC) или программируемые вентильные матрицы (англ. field-programmable gate array, FPGA) или, например, в виде комбинации программных и аппаратных средств, таких как микропроцессорная система и набор программных инструкций, а также на нейроморфных чипах (англ. neurosynaptic chips). Функциональность указанных средств может быть реализована исключительно аппаратными средствами, а также в виде комбинации, где часть функциональности средств реализована программными средствами, а часть аппаратными. В некоторых вариантах реализации часть средств, или все средства, могут быть исполнены на процессоре компьютера общего назначения (например, который изображен на Фиг. 4). При этом компоненты каждого из средств могут быть реализованы в рамках как одного вычислительного устройства, так и разнесены между несколькими, связанными между собой вычислительными устройствами.
Фиг. 1 показывает пример анализа файла на вредоносность в виртуальной машине.
В общем случае для анализа на вредоносность файл 100 открывается в виртуальной машине 120 в виде изолированной среды для исполнения файлов. Средство безопасности 110 (или первое средство безопасности) передает виртуальной машине 120 файл 100. В одном из вариантов реализации виртуальная машина 120 создается средством безопасности 110. В другом варианте реализации виртуальная машина 120 выбирается средством безопасности 110 из ранее созданных виртуальных машин.
Стоит отметить, что в рамках настоящего изобретения файлом 100 является:
- исполняемый файл;
- динамическая библиотека;
- сценарий, исполняемый каким-либо интерпретатором (например, файлы Microsoft PowerShell);
- файлы, содержащие сценарии исполнения (например, файлы форматов Microsoft Office или Adobe Acrobat);
- веб-страница;
- изображение;
- прочие известные из уровня техники файлы, которые могут при использовании (например, при исполнении или открытии другими приложениями) нанести вред данным пользователя вычислительного устройства.
В одном из вариантов реализации под файлом 100 понимается ссылка (например, URL) и под открытием ссылки подразумевается переход по ссылке в веб-браузере, установленном в виртуальной машине.
В общем случае анализ файла 100 осуществляется после его открытия в операционной системе виртуальной машины 120. Под открытием файла 100 понимается одно из:
- исполнение файла 100, если файл 100 исполняемый;
- открытие файла 100 приложением, если файл 100 не исполняемый.
Результатом открытия файла 100 является создание и запуск на исполнение процесса (англ. process) в виртуальной машине 120. При этом создается по меньшей мере один поток (англ. thread).
В одном из вариантов реализации средство безопасности 110 и монитор виртуальных машин 115 (далее по тексту - гипервизор), под управлением которого работает виртуальная машина 120, исполняются на вычислительном устройстве пользователя. В данном случае средство безопасности 110 является приложением безопасности (например, антивирусным приложением). Примером такого средства безопасности является средство безопасности 210 (или второе средство безопасности), которое будет рассмотрено далее на фиг. 2. В другом случае средство безопасности 110 и гипервизор 115 исполняются на удаленном сервере (или на разных серверах) или в качестве облачного сервиса. Средство безопасности 110 в этом случае получает файл 100 от сторонних источников (например, от средства безопасности 210, работающего на вычислительных устройствах пользователя), и передает его виртуальной машине 120, где происходит открытие файла 100. Еще в одном случае средство безопасности 110 получает файл от других средств безопасности, которые осуществляют мониторинг и перехват данных сетевого трафика.
В общем случае гипервизор 115 содержит средство перехвата 130 (средство перехвата 130 является модулем, компонентом или функциональной частью гипервизора 115). Средство перехвата 130 перехватывает события в потоках процесса, созданного при открытии файла 100.
Событиями являются по меньшей мере:
- вызов API-функции потоком;
- возврат из API-функции;
- системный вызов или, другими словами, обращение потока к ядру операционной системы для исполнения какой-либо операции (англ. system call);
- возврат из системного вызова;
- оповещение (уведомление, нотификация) от операционной системы (например, создание потока, создание процесса, загрузка модуля).
Стоит отметить, что перехват возможен на разных кольцах защиты операционной системы виртуальной машины 120, реализующих аппаратное разделение системного и пользовательского уровня привилегий, что обеспечивает перехват событий на:
- уровне ядра (англ. kernel mode),
- уровне приложений (англ. user mode).
Также стоит отметить, что в общем случае реализации во время исполнения потоков процесса, созданного при открытии файла 100, средство перехвата 130 определяет стандарт кодирования (англ. coding convention) вызываемых потоками API-функций. Это позволяет однозначно определить использование регистров процессора для передачи параметров в вызываемые API-функции. Так, например, параметры вызовов будут находиться в регистрах ЕСХ (первый параметр), EDX (второй параметр), остальные параметры будут в стеке (регистр ESP). Кроме того, стандарт кодирования позволяет однозначно определить возвращаемые значения. Например, если API-функция возвращает значение «0», то делает это в регистре ЕАХ.
Перехваченное событие и контекст процессора средство перехвата 130 сохраняет в журнал 150 и передает их средству безопасности 110 после исполнения процесса, созданного при открытии файла 100. Средство безопасности 110 в свою очередь выносит на основании данных от средства перехвата 130 вердикт о вредоносности файла 100. В общем случае вердикт выносится после анализа сохраненных данных, например, в зависимости от того, в какой последовательности и с какими параметрами производился вызов API-функций потоками процесса, созданного при открытии файла 100. В одном из вариантов реализации, если вердикт не был вынесен, по меньшей мере часть данных, сохраненных средством перехвата 130 в журнал 150, передается средством безопасности 110 другому средству безопасности, например, средству безопасности 210. При этом данные могут передаваться как в исходном виде, так и в измененном, например, могут быть преобразованы в иную форму представления данных (формат данных), отличную от формы представления данных в журнале 150.
В одном из вариантов реализации заявленного изобретения, если по результатам анализа сохраненных в журнале 150 данных вердикт не был вынесен, то средство безопасности 110 формирует из журнала 150 шаблон поведения 220. Шаблон поведения 220 ассоциируется с файлом 100 посредством уникального идентификатора, например, контрольной суммы файла 100, вычисленной к примеру при помощи таких алгоритмов как MD5, SHA-1, SHA-2 или SHA-3. Шаблон поведения 220 предназначен для использования средством безопасности 210 (или средством безопасности 110) или его компонентами и подсистемами для дальнейшего исследования файла 100 при его открытии на компьютерной системе 200 и, в частном случае, для признания файла 100 вредоносным. В одном варианте реализации средство безопасности 210 запрашивает шаблон поведения 220 у средства безопасности 110 или из облачного хранилища, где хранится шаблон поведения 220, полученный от средства безопасности 110, при этом запрос по меньшей мере содержит уникальный идентификатор файла 100.
Журнал 150, сформированный из событий (и соответствующих событиям контекстов процессора), имевших место во время исполнения потока процесса, созданного при открытии файла 100 в виртуальной машине 120 в виде среды для безопасного исполнения файлов, содержит большое количество записей. Большой объем данных, наполняющих журнал 150, затрудняет, хотя и не исключает, возможности его передачи, хранения и использования средством безопасности 210 для дальнейшего исследования файла 100 при его открытии на компьютерной системе 200. Поэтому в одном из вариантов реализации заявленного изобретения из журнала 150 при помощи средства безопасности 110 формируется шаблон поведения 220, который в одном варианте реализации является компактным вариантом представления журнала 150. Шаблон поведения 220 включает в себя лишь ту информацию, которая необходима для целей дальнейшего исследования файла 100 при его открытии на компьютерной системе 200. Целью такого исследование является подтверждение того, что события (или события и упомянутый контекст процессора), возникающие во время исполнения потока процесса, созданного при открытии файла 100 на компьютерной системе 200, не отличаются (или отличия обусловлены лишь разницей в среде исполнения) от событий, возникших во время исполнения потока процесса, созданного при открытии файла 100 в виртуальной машине 120.
События, возникающие во время исполнения потока процесса, созданного при открытии файла 100 в виртуальной машине 120 или на реальной компьютерной системе 200, можно разделить на две категории: на события, которые представляют ценность для анализа файла на предмет его вредоносности, и события, не представляющие таковой. События, представляющие интерес для упомянутого анализа, именуются событиями, имеющими отношение к безопасности (от англ. security-related events).
В общем случае события, имеющие отношение к безопасности, по меньшей мере от части определяются средством безопасности 110 (210) по API-функциям и/или контексту процессора. Например, путем классификации API-функций по типам (к примеру «работа с реестром», «работа с памятью», «взаимодействие с другими процессами» и т.п.) и последующего отнесения определенных типов API-функций к событиям, имеющим отношение к безопасности. А в случае с контекстом процессора примером может быть изменение конкретного системного файла, ссылка на который является параметром вызываемой API-функции. Приведем пример. Средство перехвата 130 выявляет при исполнении потока процесса, созданного при открытии файла 100, возникновение события, которое связано с изменением страницы виртуальной памяти (далее по тексту страница памяти). В общем случае событие, связанное с изменением страницы памяти, представляет собой вызов API-функции потоком. Изменение данных в странице памяти может происходить как напрямую, например, вызовом WriteProcessMemory(), так и скрыто, например посредством записи данных с использованием SetWindowLong(). При этом в контексте процессора можно выявить, например, описатель (англ. handle) окна. Запись в память другого процесса вполне легальная (безвредная) операция с точки зрения операционной системы. Но вредоносные программы также очень часто используют подобные механизмы для внедрения вредоносного кода в адресное пространство других процессов. Такие события будут классифицированы средством безопасности 110 (и 210) как события, имеющие отношение к безопасности.
Средство безопасности 110 формирует шаблон поведения 220 из журнала 150 путем включения в шаблон поведения 220 всех событий, имеющих отношение к безопасности, сохраненных в журнале 150. В другом варианте реализации шаблон поведения 220 формируется средством безопасности 110 путем включения в шаблон поведения 220 по меньшей мере части событий, имеющих отношение к безопасности, сохраненных в журнале 150.
Фиг. 2 показывает пример реализации предлагаемого способа признания файла вредоносным. В рамках заявленного изобретения для каждого файла 100, анализируемого с использованием виртуальной машины 120, в отношении которого не был вынесен вердикт о его вредоносности, средство безопасности 110 формирует из журнала 150 уникальный шаблон поведения 220, в который, как упоминалось ранее, включаются все или по меньшей мере часть событий, имеющих отношение к безопасности, сохраненных средством перехвата 130 в журнале 150. Данный шаблон поведения далее используется средством безопасности 210, которое обеспечивает защиту компьютерной системы 200.
После того как файл 100 был открыт и проанализирован в виртуальной машине 120 и не был признан вредоносным, он попадает на вычислительное устройство пользователя компьютерную систему 200. Например, файл 100 был извлечен каким-либо средством сетевой безопасности, осуществляющим мониторинг сетевого трафика, например реализованном в рамках прокси-сервера в сети, в которой находится компьютерная система 200, и передан средству безопасности 110 на проверку, после прохождения которой уже беспрепятственно попал на компьютерную систему 200. При открытии файла 100 на компьютерной системе 200 средство безопасности 210 запрашивает и получает от средства безопасности 110 шаблон поведения 220. В другом варианте реализации средство безопасности 110 запрашивает и получает шаблон поведения 220 от облачного сервиса, которым шаблон поведения 220 был получен от средства защиты 110. Еще в одном варианте реализации средство безопасности 210 уже обладает шаблоном поведения 220, так как средство безопасности 110 совпадает со средством безопасности 210. Под открытием файла 100 на компьютерной системе 200 также понимается одно из:
- исполнение файла 100, если файл 100 исполняемый;
- открытие файла 100 приложением, если файл 100 не исполняемый.
При помощи модуля мониторинга активности 230 средство безопасности 210 отслеживает события, возникающие во время исполнения потока процесса, созданного при открытии файла 100 на компьютерной системе 200. Аналогично средству перехвата 130 модуль мониторинга активности 230 перехватывает события в потоках процесса, созданного при открытии файла 100 на компьютерной системе 200. При этом событиями также являются по меньшей мере:
- вызов API-функции потоком;
- возврат из API-функции;
- системный вызов или, другими словами, обращение потока к ядру операционной системы для исполнения какой-либо операции (англ. system call);
- возврат из системного вызова;
- оповещение (уведомление, нотификация) от операционной системы (например, создание потока, создание процесса, загрузка модуля).
Перехваченное событие и контекст процессора модуль мониторинга активности 230 сохраняет в специальную базу (аналогичную журналу 150), которая в реальном времени анализируется при помощи средства безопасности 210. В рамках заявленного изобретения средство безопасности 210 анализирует события, отслеживаемые модулем мониторинга активности 230. Средство безопасности 210 сравнивает события, имеющие отношения к безопасности, с событиями из шаблона поведения 220, и, если событие, имеющее отношение к безопасности, отсутствует в шаблоне поведения 220, то средство безопасности 210 делает вывод о том, что данный файл 100 использовал средства противодействия анализу в изолированной среде (виртуальной машине 120), и признает файл 100 вредоносным.
Стоит отметить, что модуль мониторинга активности 230 - компонент защиты компьютерной системы 200, который позволяет средству безопасности 210 признать файл 100 вредоносным самостоятельно, без использования шаблона поведения 220. Это осуществляется средством безопасности 210 путем сравнения последовательностей событий и контекстов, перехваченных модулем мониторинга активности 230, со специальными правилами, по которым выявляется вредоносная активность, и на этом основании файл 100 признается вредоносным. Такие же правила используются средством безопасности 110 при анализе журнала 150. Однако при самостоятельном анализе средством безопасности 210 такой же последовательности событий (плюс контексты) как из шаблона поведения 220 плюс одно событие, имеющее отношение к безопасности, может быть недостаточно для признания файла 100 вредоносным, в виду отсутствия знания о том, что при открытии файла 100 в виртуальной машине 120 последнее событие зафиксировано не было (свидетельство того, что файл 100 использовал средства противодействия анализу в изолированной среде). Таким образом в рамках заявленного изобретения достигается технический результат более раннего обнаружения вредоносного файла путем выявления расхождения в событиях, имеющих отношение к безопасности, возникающих во время исполнения потока процесса, созданного при открытии файла в виртуальной машине и на компьютерной системе.
В одном варианте реализации заявленного изобретения каждому событию, имеющему отношение к безопасности, присваивается (или ставится в соответствие) индивидуальная оценка. Например событие сравнивается средством безопасности 110 с набором критериев и получает индивидуальную оценку. Данная оценка имеет числовое значение. Чем больше значение оценки, тем опаснее событие. По этим оценкам средство безопасности 110 вычисляет коэффициент опасности файла 100. Если коэффициент опасности файла 100 превышает заранее установленный порог, то средство безопасности 110 признает файл 100 вредоносным. Таким образом, когда файл 100 будет открыт на компьютерной системе 200, средству безопасности 210 вместе с шаблоном поведения 220 будет передан коэффициент опасности файла 100, вычисленный средством безопасности 110, при исследовании файла 100 в виртуальной машине 120. Средство безопасности 210 будет по-прежнему сравнивать события, имеющие отношения к безопасности, с событиями из шаблона поведения 220. Однако каждый раз, когда событие, имеющее отношение к безопасности, будет отсутствовать в шаблоне поведения 220, то средство безопасности 210 будет присваивать оценку этому событию и пересчитывать коэффициент опасности файла 100 (или повышать коэффициент опасности файла 100). Средство безопасности 210 признает файл 100 вредоносным тогда, когда коэффициент опасности файла 100 превысит установленный порог.
На Фиг. 3 приведена блок-схема способа признания файла вредоносным. Согласно реализованному в рамках изобретения способу до момента, когда файл 100 будет открыт на вычислительном устройстве пользователя (компьютерной системе 200), например в процессе его загрузки на компьютерную систему 200 файл 100 перехватывается из сетевого трафика и передается средству безопасности 110. Средство безопасности 110 на этапе 310 открывает файл 100 в виртуальной машине 120 в виде среды для безопасного исполнения файлов. При этом открытием файла 100 является исполнение файла, если файл 100 исполняемый или открытием файла 100 является открытие файла приложением, если файл 100 не исполняемый. Далее, на этапе 320, средство перехвата 130 гипервизора 115 формирует журнал 150, в который средство перехвата 130 сохраняет события, возникающие во время исполнения по меньшей мере одного потока процесса, созданного при открытии файла 100 в виртуальной машине 120. В другом варианте реализации средство перехвата 130 гипервизора 115 формирует журнал 150, в который сохраняет события, возникающие во время исполнения всех потоков и процессов, связанных с файлом 100 в виртуальной машине 120. Анализируя журнал 150, средство безопасности 110 не выносит вердикт о вредоносности файла 100, после чего на этапе 330 средство безопасности 110 формирует из журнала 150 шаблон поведения 220, в который включаются лишь те события из журнала 150, которые имеют отношение к безопасности. Если файл 100 не был признан вредоносным при помощи средства безопасности 110, то файл 100 может быть открыт на компьютерной системе 200, где под открытием файла 100 на компьютерной системе 200 также понимается исполнение файла, если файл 100 исполняемый или открытие файла приложением, если файл 100 не исполняемый. Например, открытие файла 100 на компьютерной системе 200 может быть инициировано пользователем после его загрузки из сети. Далее, на этапе 340, средство безопасности 210 при помощи модуля мониторинга активности 230 отслеживает события, возникающие во время исполнения по меньшей мере одного потока процесса, созданного при открытии файла 100 на компьютерной системе 200. В другом варианте реализации средство безопасности 210 при помощи модуля мониторинга активности 230 отслеживает события, возникающие во время исполнения всех потоков и процессов, связанных с файлом 100 на компьютерной системе 200. Средство безопасности 210 признает файл 100 вредоносным на этапе 350 в случае обнаружения по меньшей мере одного события, которое имеет отношение к безопасности и отсутствует в шаблоне поведения 220. В другом варианте реализации средство безопасности 210 отправляет информацию о упомянутых событиях, отслеживаемых при помощи модуля мониторинга активности 230, средству безопасности 110, и средство безопасности 110 признает файл 100 вредоносным в случае обнаружения по меньшей мере одного события, которое имеет отношение к безопасности и отсутствует в шаблоне поведения 220. Средство безопасности 210 прекращает исполнение всех потоков процесса, созданных при открытии файла 100 на компьютерной системе 200, удаляет файл 100 или помещает его на карантин.
На Фиг. 4 представлен пример компьютерной системы общего назначения, персональный компьютер или сервер 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, представленного на Фиг. 4. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В заключение следует отметить, что приведенные в описании сведения являются только примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.