RU2756186C2 - Система и способ категоризации .NET приложений - Google Patents

Система и способ категоризации .NET приложений Download PDF

Info

Publication number
RU2756186C2
RU2756186C2 RU2018104434A RU2018104434A RU2756186C2 RU 2756186 C2 RU2756186 C2 RU 2756186C2 RU 2018104434 A RU2018104434 A RU 2018104434A RU 2018104434 A RU2018104434 A RU 2018104434A RU 2756186 C2 RU2756186 C2 RU 2756186C2
Authority
RU
Russia
Prior art keywords
application
net
execution
clr
profiler
Prior art date
Application number
RU2018104434A
Other languages
English (en)
Other versions
RU2018104434A3 (ru
RU2018104434A (ru
Inventor
Владимир Анатольевич Кусков
Денис Вячеславович Аникин
Дмитрий Александрович Кирсанов
Original Assignee
Акционерное общество "Лаборатория Касперского"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Акционерное общество "Лаборатория Касперского" filed Critical Акционерное общество "Лаборатория Касперского"
Priority to RU2018104434A priority Critical patent/RU2756186C2/ru
Priority to US16/134,208 priority patent/US11397812B2/en
Publication of RU2018104434A3 publication Critical patent/RU2018104434A3/ru
Publication of RU2018104434A publication Critical patent/RU2018104434A/ru
Application granted granted Critical
Publication of RU2756186C2 publication Critical patent/RU2756186C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/568Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Abstract

Изобретение относится к области вычислительной техники. Техническим результатом является обеспечение категоризации приложения, созданного с использованием платформы .NET. Раскрыт способ категоризации приложения, созданного с использованием платформы .NET (далее - приложение), реализуемый при помощи компьютерной системы, в котором: запускают при помощи средства безопасности CLR профилировщик путем загрузки средой исполнения CLR в оперативную память при запуске приложения с целью обработки событий, возникающих во время исполнения приложения, при этом средство безопасности задает необходимые значения переменных окружения для загрузки CLR профилировщика в адресное пространство процесса приложения; формируют журнал исполнения приложения при помощи запущенного CLR профилировщика на основании собираемой информации; при этом в журнал исполнения добавляется информация о возникающих во время исполнения приложения событиях, которые обрабатываются CLR профилировщиком, при этом событиями, по крайней мере, являются вызовы функций, осуществляемые процессом, запущенным из приложения, где функциями являются методы программной платформы .NET, вызовы которых осуществляются из программного кода приложения во время его исполнения; относят при помощи средства безопасности приложение к одной из предопределенных категорий приложений на основании анализа сформированного журнала исполнения приложения, применяя эвристические правила, при этом предопределенными категориями приложений являются: категория доверенных приложений, категория недоверенных приложений, категория вредоносных приложений, при этом, если средство безопасности относит приложение к категории вредоносных приложений, то признает вредоносными также и все сборки, загруженные в оперативную память во время исполнения приложения и не являющиеся доверенными. 9 з.п. ф-лы, 3 ил.

Description

Область техники
Изобретение относится к области категоризации приложений, созданных при помощи программной платформы .NET.
Уровень техники
В настоящее время существует проблема обнаружения вредоносного программного обеспечения (ПО), созданного с использованием программной платформы .NET (.NET Framework), приложения созданные таким образом будем называть .NET приложениями. Упомянутая проблема связана с обнаружением вредоносных приложений на основании их поведения (например, на основании последовательности осуществляемых системных вызовов - вызовов системных функций). Сама платформа .NET состоит из среды исполнения CLR (Common Language Runtime) и библиотеки типов .NET Framework (.NET Framework Class Library). При исполнении кода приложения, содержащего CIL-код (промежуточный код, англ. Common Intermediate Language), среда исполнения CLR, которой передается управление при запуске приложения, осуществляет множество вызовов системных функций, часть которых связана с логикой исполнения приложения, а именно функций, вызываемых из полученного при JIT-компиляции (компиляция "на лету", англ. Just In Time) CIL-кода машинного кода, а другая - с внутренними процессами среды исполнения CLR. Поэтому, просто анализируя журнал вызовов системных функций, который можно получить разными известными из уровня техники способами во время исполнения .NET приложения (если быть более точным - процесса, запущенного из такого .NET приложения), сложно принимать решение относительно поведения приложения (например, характерно ли поведение вредоносным приложениям или нет), так как такой журнал вызовов будет содержать много "лишней" информации, относящейся к вызовам функций, которые не связаны с логикой исполнения приложения.
Заявленная проблема может быть решена при помощи CLR профилировщика (англ. profiler): платформа .NET предоставляет СОМ-интерфейсы для реализации профилировщика - динамической библиотеки (DLL), которая позволяет перехватывать вызовы функций.NET приложения, которые относятся именно к исполнению анализируемого приложения.
В уровне техники присутствуют публикации, в которых используются CLR профайлеры. Например в публикации US 8732674 B1 описан подход к использованию CLR профайлера с целью изменения кода .NET приложения, а именно кода функций, удовлетворяющих определенным критериям.
Однако в уровне техники нет подходов, позволяющих эффективно категоризировать .NET приложения (и, в том числе, обнаруживать вредоносные приложения) на основании журнала вызовов системных функций, осуществляемых при исполнении кода упомянутого приложения.
Раскрытие изобретения
Настоящее изобретение предназначено для категоризации .NET приложений.
Технический результат настоящего изобретения заключается в реализации заявленного назначения.
Еще один технический результат заключается в обеспечении безопасности вычислительного устройства, который достигается путем удаления из памяти вычислительного устройства приложения, которое отнесено к категории вредоносных приложений.
Способ категоризации приложения, созданного с использованием .NET, реализуемый при помощи компьютерной системы, в котором: запускают при помощи средства безопасности профилировщик при запуске приложения, созданного с использованием .NET, с целью обработки событий, возникающих во время исполнения приложения; формируют журнал исполнения приложения, созданного с использованием .NET, при помощи запущенного профилировщика; при этом в журнал исполнения добавляется информация о возникающих во время исполнения приложения событиях, которые обрабатываются профилировщиком; относят при помощи средства безопасности приложение к одной из предопределенных категорий приложений на основании анализа сформированного журнала исполнения .NET приложения.
В одном из вариантов реализации способа событиями, возникающими во время исполнения приложения, созданного с использованием .NET, являются вызовы методов программной платформы .NET, которые осуществляются из программного кода упомянутого приложения во время его исполнения.
В другом варианте реализации способа профилировщиком является CLR профилировщик.
В еще одном из вариантов реализации способа обработкой события профилировщиком является перехват события при помощи функции обратного вызова.
В другом варианте реализации способа запуск профилировщика при запуске приложения, созданного с использованием .NET, осуществляется путем указания в качестве переменной окружения COR_PROFILER значения CLSID, соответствующее профилировщику.
В еще одном из вариантов реализации способа профилировщиком является динамическая библиотека, зарегистрированная в качестве библиотеки СОМ сервер и содержащая реализацию интерфейса ICorProfilerCallback.
В другом варианте реализации способа в журнал исполнения приложения дополнительно добавляется байтовой представление загружаемых в оперативную память сборок.
В еще одном из вариантов реализации способа загрузка сборок в оперативную память осуществляется при помощи любого из следующих методов: Assembly.LoadModule, Assembly.Load, AppDomain.Load.
В другом варианте реализации способа анализ журнала исполнения осуществляется с использованием эвристических правил.
В еще одном из вариантов реализации способа предопределенными категориями приложений являются: категория доверенных приложений, категория недоверенных приложений, категория вредоносных приложений.
В другом варианте реализации способа при отнесении приложения, созданного с использованием .NET, к категории вредоносных приложений упомянутое приложение помещается в карантин или удаляется из памяти вычислительного устройства.
Краткое описание чертежей
Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:
Фиг. 1 иллюстрирует примерный вариант компонентов системы, реализующей настоящее изобретение.
Фиг. 2 показывает вариант реализации способа настоящего изобретения.
Фиг. 3 показывает пример компьютерной системы общего назначения.
Хотя изобретение может иметь различные модификации и альтернативные формы, характерные признаки, показанные в качестве примера на чертежах, будут описаны подробно. Следует понимать, однако, что цель описания заключается не в ограничении изобретения конкретным его воплощением. Наоборот, целью описания является охват всех изменений, модификаций, входящих в рамки данного изобретения, как это определено приложенной формуле.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является не чем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.
Введем ряд определений и понятий, которые будут использоваться при описании вариантов осуществления изобретения.
Вредоносное приложение - приложение, способное нанести вред компьютеру или данным пользователя компьютера (иными словами, компьютерной системы), например: сетевой червь, клавиатурный шпион, компьютерный вирус. В качестве нанесенного вреда может выступать неправомерный доступ к ресурсам компьютера, в том числе к данным, хранящимся на компьютере, с целью хищения, а также неправомерное использование ресурсов, в том числе для хранения данных, проведения вычислений и т.п.
Доверенное приложение - приложение, которое не наносит вреда компьютеру или его пользователю. Доверенным приложением может считаться приложение, разработанное доверенным производителем ПО (программного обеспечения), загруженное из доверенного источника (например, сайт, занесенный в базу данных доверенных сайтов) или приложение, идентификатор (или другие данные, по которым можно однозначно определить приложение) которого (например, хеш-сумма файла приложения) хранится в базе данных доверенных приложений. Идентификатор производителя, например, цифровой сертификат, может также храниться в базе данных доверенных приложений.
Недоверенное приложение - приложение, которое не является доверенным, но также не признано вредоносным, например, при помощи антивирусного приложения. При этом недоверенное приложение может впоследствии быть признано вредоносным, например, при помощи антивирусной проверки.
Вредоносный файл - файл, являющийся компонентом вредоносного приложения и содержащий программный код (исполняемый или интерпретируемый код).
Недоверенный файл - файл, являющийся компонентом недоверенного приложения и содержащий программный код (исполняемый или интерпретируемый код).
Доверенный файл - файл, являющийся компонентом доверенного приложения.
Предопределенные категории приложений - по меньшей мере категория доверенных приложений, категория недоверенных приложений, категория вредоносных приложений.
Событие, возникающее во время исполнения приложения, созданного с использованием .NET (.NET приложения) - вызовы функций (в том числе функций и методов программной платформы .NET), которые осуществляются из программного кода упомянутого приложения во время его исполнения. В силу особенностей платформы .NET в контексте описания настоящего изобретения понятия функция и метод будем считать идентичными. Примерами событий могут являться конкатенация строк (путем вызова функции System.String.Concat), получение значения строкового ресурса (путем вызова функции System.Resources.ResourceManager.GetString) и пр.
CLR профилировщик (CLR profiler) - динамическая библиотека, зарегистрированная в операционной системе в качестве СОМ объекта и содержащая реализацию интерфейса ICorProfilerCallback. В еще одном варианте реализации CLR профилировщик содержит реализацию интерфейса ICorProfilerCallback2. В еще одном варианте реализации CLR профилировщик содержит реализацию других интерфейсов профилировщиков (например, ICorProfilerCallback7), подробно с интерфейсами профилировщиков можно ознакомиться в документе1 (1https://docs.microsoft.com/en-us/dotnet/framework/unmanaged-api/profiling/profiling-interfaces). В общем случае профилировщик - программное средство, предназначенное для профилирования приложения, а именно сбора информации об исполнении приложения - времени исполнения приложения и его отдельных частей, данных, хранящихся в оперативной памяти, вызываемых при исполнении функциях и их аргументах и т.п.
Обработка события CLR профилировщиком - перехват события, возникающего во время исполнения приложения, при помощи функции обратного вызова, которая реализована самим CLR профилировщиком.
Сборка (она же.NET сборка)2 (2https://msdn.microsoft.com/en-us/library/k3677y81(v=vs.90).aspx, https://msdn.microsoft.com/ru-ru/library/k3677y81(v=vs.110).aspx) - исполняемый РЕ файл, который содержит промежуточный код (CIL - Common Intermediate Language).
Под средствами системы категоризации.NET приложений в настоящем изобретении понимаются реальные устройства, системы, компоненты, группы компонентов, реализованные с использованием аппаратных средств, таких как интегральные микросхемы (англ. application-specific integrated circuit, ASIC) или программируемые вентильные матрицы (англ. field-programmable gate array, FPGA) или, например, в виде комбинации программных и аппаратных средств, таких как микропроцессорная система и набор программных инструкций, а также на нейроморфных чипах (англ. neurosynaptic chips) Функциональность указанных средств системы может быть реализована исключительно аппаратными средствами, а также в виде комбинации, где часть функциональности средств системы реализована программными средствами, а часть аппаратными. В некоторых вариантах реализации часть средств, или все средства, могут быть исполнены на процессоре компьютера общего назначения (например, который изображен на Фиг. 3). При этом компоненты системы могут быть реализованы в рамках как одного вычислительного устройства, так и разнесены между несколькими, связанными между собой вычислительными устройствами.
Фиг. 1 отображает вариант компонентов системы категоризации .NET приложений. Система категоризации .NET приложений состоит из CLR профилировщика 130, журнала исполнения .NET приложения 150 и средства безопасности 160, связанных между собой, как показано на Фиг. 1.
Как выше было указано, CLR профилировщик 130 - динамическая библиотека (библиотека DLL), которая предназначена для профилирования .NET приложений, иными словами, созданных с использованием программной платформы .NET Framework. При этом платформа .NET включает в себя два существенных компонента: среду исполнения CLR (Common Language Runtime) и библиотеку типов .NET Framework (.NET Framework Class Library). Среда исполнения CLR 140 предоставляет возможность профилировать приложения с управляемым кодом, а именно .NET приложения, при помощи зарегистрированных профилировщиков, таких как CLR профилировщик 140, реализованных в виде библиотек СОМ сервера (COM server DLL). При профилировании такие библиотеки загружаются средой исполнения CLR 140 в оперативную память 110, далее под оперативной памятью 110 будем понимать адресное пространство процесса, запущенного из профилируемого приложения .NET 120. Стоит отметить, что запуск .NET приложения может осуществляться как пользователем компьютерной системы, так и средством безопасности 160 (например, с целью дальнейшего анализа и категоризации).
В одном из вариантов реализации изобретения регистрация CLR профилировщика 130 в качестве библиотеки СОМ сервер осуществляется средством безопасности 160, в результате регистрации средство безопасности 160 получает от операционной системы (ОС) идентификатор (CLSID) зарегистрированного СОМ объекта. Для загрузки CLR профилировщика 130 в адресное пространство профилируемого приложения средство безопасности 160 также задает необходимые значения переменным окружения COR_ENABLE_PROFILING и COR_PROFILER (последний с указанием идентификатора, например CLSID, CLR профилировщика 130). В другом варианте реализации изобретения средство безопасности 160 также задает значение переменной окружения COMPLUS_ProfAPI_ProfilerCompatibilitySetting (например, значение "EnableV2Profiler"). Процесс запуска CLR профилировщика 130 может отличаться в зависимости от версии программной платформы .NET, расположенной на компьютерной системе. В общем случае для запуска CLR профилировщика 130 средство безопасности 160 выполняет все предписанные спецификацией .NET для этого действия (подробнее3 (3https://docs.microsoft.com/en-us/dotnet/framework/unmanaged-api/profiling/profiling-overview)). После выполнения этих шагов средством безопасности 160 среда исполнения CLR при запуске .NET приложения 120 загружает в оперативную память 110 CLR профилировщик 130. Таким образом средство безопасности 160 хоть и не явно, но осуществляет запуск CLR профилировщика 130 при запуске .NET приложения 120. Стоит отметить, что значения переменных окружения могут задаваться как локально для.NET приложения 120, так и глобально для пользователя компьютерной системы, в рамках которой функционируют компоненты системы категоризации .NET приложений, или для самой компьютерной системы.
Будучи запущенным и находящимся в адресном пространстве процесса профилируемого .NET приложения 120, CLR профилировщик 130 осуществляет сбор информации об исполнении профилируемого .NET приложения 120. CLR профилировщик 130 также способен формировать журнал исполнения .NET приложения 150, созданного с использованием программной платформы .NET, на основании собираемой информации. В такой журнал исполнения .NET приложения 150 CLR профилировщик 130 добавляет информацию о возникающих во время исполнения .NET приложения 120 событиях. В одном из вариантов реализации изобретения информация о событии включает в себя:
Figure 00000001
наименование (тип) события, примерами наименований являются:
Figure 00000002
событие вызова функции;
Figure 00000003
событие загрузки сборки;
Figure 00000004
событие загрузки домена;
Figure 00000005
событие загрузки класса;
Figure 00000006
событие, относящееся к исключительным ситуациям (исключениям, англ. exception);
Figure 00000007
событие, относящееся к JIT-компиляции;
Figure 00000008
событие, относящееся к удаленному вызову процедур (RPC - remote procedure call);
Figure 00000009
иное событие4 (4https://docs.microsoft.com/en-us/dotnet/framework/unmanaged-api/profiling/icorprofilercallback-interface), информация о котором предоставляется средой исполнения CLR 140;
Figure 00000010
для событий вызова функции:
Figure 00000011
наименование функции;
Figure 00000012
наименование аргументов функции;
Figure 00000013
значения аргументов функции;
Figure 00000014
возвращаемое значение функции;
Figure 00000015
для событий загрузки сборки:
Figure 00000016
наименование сборки;
Figure 00000017
тело сборки (байтовое представление);
Figure 00000018
список типов и методов, описанных в сборке.
Стоит отметить, что событие загрузки сборки в оперативную память 110 связано с вызовом, как правило, одной из следующих функций (методов) при исполнении .NET приложения: Assembly.LoadModule, Assembly.Load, AppDomain.Load.
В общем случае событиями, возникающими при исполнении .NET приложения 120, являются события, доступ к информации о которых предоставляется5 (5https://docs.microsoft.com/en-us/dotnet/framework/unmanaged-api/profiling/cor-prf-monitor-enumeration) средой исполнения CLR 140. В одном из вариантов реализации такими событиями являются вызовы функций, осуществляемые процессом, запущенным из .NET приложения 120. В еще одном из вариантов реализации изобретениям такими функциями являются методы программной платформы .NET (описанные в платформе .NET Framework, а именно .NET Class Library), вызовы которых осуществляются из программного кода упомянутого приложения 120 во время его исполнения.
Стоит отметить, что в журнал исполнения .NET приложения 150 может быть добавлена также информация, непосредственно не связанная с тем или иным возникающим событием: например наличие в оперативной памяти 110, а именно в памяти, в которой находится образ (загруженное представление) .NET приложения 120 - адресное пространство процесса, запущенного из .NET приложения 120, определенных последовательностей байт, например в виде строк. Такой информацией, в частности, могут быть символьные строки .NET приложения 120, в частности, относящиеся к ресурсам .NET приложения 120 или именам типов или функций этого приложения 120.
Для того, чтобы обрабатывать возникающие события и добавлять информацию о них, при инициализации CLR профилировщика 130 (а именно после его загрузки в оперативную память 110 средой исполнения 140) CLR профилировщик 130 вызывает функцию ICorProfllerlnfo.SetEventMask с указанием в качестве параметра в том числе маски событий, на которые необходимо реагировать профилировщику 130. Примерами таких событий являются (а именно обозначениями соответствующих событий):
Figure 00000019
COR_PRF_MONITOR_NONE - для отключения перехвата событий;
Figure 00000020
COR_PRF_MONITOR_ALL - для перехвата любых событий;
Figure 00000021
COR_PRF_MONITOR_ASSEMBLY_LOADS - для перехвата события загрузки и выгрузки из оперативной памяти 110, а именно адресного пространства процесса исполняющегося .NET приложения 120, сборок .NET, которые осуществляются вызовами функций AssemblyLoad и AssemblyUnload соответственно;
Figure 00000022
COR_PRF_MONITOR_ENTERLEAVE - для перехвата событий вызова функций и окончания исполнения кода функций.
В одном из вариантов реализации изобретения в качестве параметра функции SetEventMask указывается COR_PRF_MONITOR_ALL. В еще одном варианте реализации в качестве упомянутого параметра указывается COR_PRF_MONITOR_ENTERLEAVE. В другом варианте реализации изобретения в качестве упомянутого параметра указывается COR_PRF_MONITOR_ENTERLEAVE | (бинарное "или") COR_PRF_MONITOR_ASSEMBLY_LOADS.
Сформированный вышеописанным способом журнал исполнения.NET приложения 150 анализируется средством безопасности 160 для категоризации.NET приложения 120, информация о возникающих при исполнении которого событиях добавляется в журнал исполнения.NET приложения 150. Для упомянутого анализа средством безопасности 160 могут применяться любые известны из уровня техники подходы, позволяющие на основании журнала исполнения приложения отнести приложение к той или иной предопределенной категории. В частном случае реализации средство безопасности 160 для упомянутого анализа с целью категоризации.NET приложения 120 применяет эвристические правила. Примерами эвристических правил могу быть следующие правила:
Figure 00000023
Если возникло событие загрузки сборки, а также в оперативной памяти 110 присутствуют строки: " TVqQAAMAAAAEAAAA", "DeflateStream", "CreateDecryptor", "ToArray", "DecryptData", то .NET приложение 120 относится к категории вредоносных приложений.
Figure 00000024
Если возникла последовательность следующих событий:
Figure 00000025
событие или несколько событий вызовов функции формирования строки, например конкатенации строк (например, при помощи вызова String.Concat), результат которых может использоваться для доступа к ресурсам .NET приложения 120, примером результата такой конкатенации является строка "RES" (например, путем конкатенации строк "R", "Е", "S"),
Figure 00000026
событие вызова функции System.Reflection.Assembly.GetEntryAssembly,
Figure 00000027
событие вызова функции System.Resources.ResourceManager.GetObject,
то .NET приложение 120 относится к категории вредоносных приложений.
Figure 00000028
Если возникла последовательность следующих событий:
Figure 00000029
событие вызова функции для добавления.NET приложения 120 в автозапуск компьютерной системы (например, функции RegistryKey. Set Value),
Figure 00000030
событие вызова функции NewLateBinding.LateCall, аргументами которой является:
Figure 00000031
объект Scripting.FileSystemObject и метод Copyfile,
Figure 00000032
или объект WScript.Shell и метод RegWrite,
а также в оперативной памяти 110 присутствуют последовательности байт, имеющие строковое представление "smtp" и "{Shift}-", то .NET приложение 120 относится к категории вредоносных приложений.
Figure 00000033
Если возникла последовательность событий вызовов следующих функции:
Figure 00000034
System.Environment.get_UserName,
Figure 00000035
System.Environment.get_MachineName,
Figure 00000036
System.Environment.get_UserDomainName,
Figure 00000037
System.Environment.get_Is64BitOperatingSystem,
Figure 00000038
System.Environment.GetLogicalDrives,
Figure 00000039
System.Environment.get_OSVersion,
Figure 00000040
System.Net.NetworWnformation.Networklnterface.GetlsNetw orkAvailable,
Figure 00000041
System.Net.Dns.GetHostName,
Figure 00000042
System.Net.Dns.GetHostEntry,
Figure 00000043
System.Net.WebClient.DownloadString,
при этом компьютерной системой, в рамках которой исполняется .NET приложение 120, является не устройство пользователя, а, например, удаленный сервер, то .NET приложение 120 относится к категории вредоносных приложений.
Figure 00000044
Если возникло событие вызова функции System.Security.Principal.WindowsPrincipal.IsInRole с параметром 0×220 (что означает проверку принадлежности текущего пользователя к группе BUILTIN\Administrators), а также в оперативной памяти 110 присутствует последовательность байт, имеющая строковое представление "KillAV", то .NET приложение 120 относится к категории вредоносных приложений.
Figure 00000045
Если возникло событие загрузки сборки, при этом загруженная сборка признана вредоносной, то .NET приложение 120 признается вредоносным.
Figure 00000046
Если возникло событие вызова функции, идентификатор (например, название) которой является идентификатором одной из функций, используемых только доверенными .NET приложениями, то .NET приложение 120 относится к группе доверенных приложений.
Figure 00000047
Если ни одно из эвристических правил для отнесения .NET приложения 120 к категории вредоносных или доверенных приложений не было применено, то .NET приложение 120 относится к категории недоверенных приложений.
При этом в одном из вариантов реализации изобретения вредоносность сборки (в частности загруженной) определяется, если при сравнении идентификатора сборки (например, хеш-суммы или, например, MVID -module version ID, идентификатор модуля сборки) с идентификаторами известных вредоносных сборок, которые могут храниться как в средстве безопасности 160, так и на удаленном сервере, есть хотя бы одно совпадение. В еще одном из вариантов реализации вредоносность сборки определяется любым другим известным из уровня техники способом.
При этом считается, что функция используется только доверенными .NET приложениями, если ее идентификатор (например, наименование или хеш-сумма от кода функции) содержится в списке доверенных функций. В еще одном варианте реализации считается, что функция используется только доверенными .NET приложениями, если ее идентификатор не содержится в списке недоверенных функций. Доверенная функция - функция, которая используется только доверенными приложениями (и не используется недоверенными или вредоносными приложениями). Не доверенная функция - функция, которая по крайней мере используется недовереными или вредоносными приложениями. Под использованием функции в приложении в данном контексте понимают наличие вызова функции в программном коде приложения. Упомянутые списки могут храниться как в средстве безопасности 160, так и на удаленном сервере, с которым оно связано, и содержит названия тех и только тех функций, которые не встречаются в известных вредоносных .NET приложениях. Такие списки могут формироваться и обновляться на регулярной основе (например, средством безопасности 160) путем выделения функций (и их идентификаторов) известных вредоносных .NET приложений и доверенных .NET приложений, и добавления этих функций (и их идентификаторов) в тот или иной список.
Стоит отметить, что приведенные выше правила являются лишь частными примерами эвристических правил, которые могут применяться к информации, хранящейся в журнале исполнения .NET приложения 150. В общем случае средством безопасности 160 могут использоваться любые другие эвристические правила, предназначенные для категоризации .NET приложений с использованием информации, хранящейся в журнале исполнения .NET приложения 150, в частности информации, получаемой при помощи CLR профилировщика 130. После отнесения .NET приложения 120 к определенной категории приложений средство безопасности 160 способно выполнять действия, направленные на обеспечение безопасности компьютерной системы и основанные на результате категоризации.
В одном из вариантов реализации изобретения, если средство безопасности 160 относит .NET приложение 120 к категории вредоносных приложений, то такое приложение 120 признается вредоносным. В одном из вариантов реализации изобретения такое приложение (и именно файлы приложения, в частности исполняемые файлы) помещается средством безопасности 160 в карантин или удаляется из памяти вычислительного устройства, а именно устройства хранения данных (например, жесткого диска или твердотельного накопителя) компьютерной системы.
В другом варианте реализации изобретения, если средство безопасности 160 не относит .NET приложение 120 к категории доверенных приложений (отнесено, например, к категории недоверенных), то исполнение такого приложения 120 прекращается средством безопасности 160 путем завершения процесса, запущенного из .NET приложения 120.
В еще одном варианте реализации изобретения, если средство безопасности 160 относит .NET приложение 120 к категории вредоносных приложений, то признаются вредоносными также и все сборки, загруженные в оперативную память 110 во время исполнения .NET приложения 120. В еще одном варианте загружаемые сборки признаются вредоносными только в том случае, если они не являются доверенными, а именно идентификаторы (например, MD5 файла приложения) таких сборок хранятся в базе данных доверенных приложений, которая может располагаться как в средстве безопасности 160, так и на удаленном сервере, связанном со средством безопасности 160. В одном из вариантов реализации изобретения такие загруженные сборки признаются вредоносными, только если они загружены в тот же домен, что .NET приложение 120.
В еще одном случае реализации, если средство безопасности 160 относит .NET приложение 120 к категории недоверенных приложений, то средство безопасности 160 ограничивает исполнение .NET приложения 120. Под ограничением исполнения приложения понимают ограничение или запрет выполнения определенных действий .NET приложением:
Figure 00000048
запрет на запись в определенные области устройства хранения данных (например, относящиеся к системным каталогам "c:\windows" или "c:\windows\system32");
Figure 00000049
запрет на обращение к определенным сетевым адресам (например, известным адресам, использующимся для проведения онлайн платежей или других банковских операций, например известные сетевые адреса банковских серверов);
Figure 00000050
запрет на изменение файлов, которые могут содержать документы (например, файлы с расширением doc, docx, pdf и т.п.).
В еще одном варианте реализации изобретения средство безопасности 160 способно передавать информацию о результат отнесения .NET приложения 120 к некоторой категории другим компьютерным системам. В частности, средство безопасности 160 способно передавать такую информацию, например идентификатор .NET приложения 120 (например, MD5 файла) и его категорию средству безопасности, расположенному на другой компьютерной системе (не показано на фигурах), например на вычислительном устройстве некоторого пользователя. Средство безопасности, расположенное на этом вычислительном устройстве, способно сохранить переданную средством безопасности 160 информацию и использовать ее также, как и средство безопасности 160: например удалять файлы .NET приложений, которые были отнесены к категории вредоносных.
Фиг. 2 иллюстрирует примерный вариант реализации способа категоризации .NET приложения 120. На этапе 201 при помощи средства безопасности 160 осуществляют запуск CLR профилировщика 130 после запуска .NET приложения 120. Стоит отметить, что запуск CLR профилировщика 130 при запуске .NET приложения 120 осуществляется не явно, а именно путем регистрации CLR профилировщика 130 в качестве библиотеки СОМ сервера, а также модификации переменных окружения COR_ENABLE_PROFILIG и COR_PROFILER средством безопасности 160. В свою очередь среда исполнения CLR 140, загружаемая в оперативную память 110 при запуске .NET приложения 120, осуществляет загрузку в память 110 CLR профилировщика 130, как как его CLSID указан средством безопасности 160 в качестве значения переменной окружения COR_PROFILER. После этого, на этапе 202, при помощи CLR профилировщика осуществляют формирование журнала исполнения .NET приложения 150. При этом в такой журнал исполнения .NET приложения 150 CLR профилировщик 130 добавляет информацию о возникающих во время исполнения .NET приложения 120 событиях. В одном из вариантов реализации упомянутая информация о событиях включает в себя байтовое представление данных, загружаемых в оперативную память 110. В одном из вариантов реализации такими данными являются загружаемые сборки. После этого, на этапе 203, средство безопасности 160 относит .NET приложение 120 к одной из предопределенных категорий приложений на основании анализа журнала исполнения .NET приложения 150.
В одном из вариантов реализации средство безопасности 160 также проверяет на этапе 205, отнесено ли .NET приложение 120 к категории вредоносных приложений. Если да, то на этапе 207 средство безопасности признает .NET приложение 120 вредоносным. В противном случае средство безопасности 160 на этапе 208 не признает упомянутое приложение 120 вредоносным.
Фиг. 3 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 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, представленного на Фиг. 3. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.

Claims (14)

1. Способ категоризации приложения, созданного с использованием платформы .NET (далее - приложение), реализуемый при помощи компьютерной системы, в котором:
a) запускают при помощи средства безопасности CLR профилировщик путем загрузки средой исполнения CLR в оперативную память при запуске приложения с целью обработки событий, возникающих во время исполнения приложения, при этом средство безопасности задает необходимые значения переменных окружения для загрузки CLR профилировщика в адресное пространство процесса приложения;
b) формируют журнал исполнения приложения при помощи запущенного CLR профилировщика на основании собираемой информации;
при этом в журнал исполнения добавляется информация о возникающих во время исполнения приложения событиях, которые обрабатываются CLR профилировщиком, при этом событиями, по крайней мере, являются вызовы функций, осуществляемые процессом, запущенным из приложения, где функциями являются методы программной платформы .NET, вызовы которых осуществляются из программного кода приложения во время его исполнения;
c) относят при помощи средства безопасности приложение к одной из предопределенных категорий приложений на основании анализа сформированного журнала исполнения приложения, применяя эвристические правила, при этом предопределенными категориями приложений являются: категория доверенных приложений, категория недоверенных приложений, категория вредоносных приложений, при этом, если средство безопасности относит приложение к категории вредоносных приложений, то признает вредоносными также и все сборки, загруженные в оперативную память во время исполнения приложения и не являющиеся доверенными.
2. Способ по п. 1, в котором событиями, возникающими во время исполнения приложения, являются вызовы методов программной платформы .NET, которые осуществляются из программного кода упомянутого приложения во время его исполнения.
3. Способ по п. 1, в котором значения переменных окружения задают локально для приложения или глобально для пользователя компьютерной системы, в рамках которой функционируют компоненты системы категоризации приложений, или для самой компьютерной системы.
4. Способ по п. 1, в котором обработкой события CLR профилировщиком является перехват события при помощи функции обратного вызова.
5. Способ по п. 1, в котором запуск CLR профилировщика при запуске приложения осуществляется путем указания в качестве переменной окружения COR_PROFILER значения CLSID, соответствующего профилировщику.
6. Способ по п. 1, в котором CLR профилировщиком является динамическая библиотека, зарегистрированная в качестве библиотеки СОМ сервер и содержащая реализацию интерфейса ICorProfilerCallback.
7. Способ по п. 1, в котором в журнал исполнения приложения дополнительно добавляется байтовое представление загружаемых в оперативную память сборок.
8. Способ по п. 7, в котором загрузка сборок в оперативную память осуществляется при помощи любого из следующих методов: Assembly.LoadModule, Assembly.Load, AppDomain.Load.
9. Способ по п. 1, в котором анализ журнала исполнения осуществляется с использованием эвристических правил.
10. Способ по п. 1, в котором при отнесении приложения к категории вредоносных приложений упомянутое приложение помещается в карантин или удаляется из памяти вычислительного устройства.
RU2018104434A 2018-02-06 2018-02-06 Система и способ категоризации .NET приложений RU2756186C2 (ru)

Priority Applications (2)

Application Number Priority Date Filing Date Title
RU2018104434A RU2756186C2 (ru) 2018-02-06 2018-02-06 Система и способ категоризации .NET приложений
US16/134,208 US11397812B2 (en) 2018-02-06 2018-09-18 System and method for categorization of .NET applications

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2018104434A RU2756186C2 (ru) 2018-02-06 2018-02-06 Система и способ категоризации .NET приложений

Publications (3)

Publication Number Publication Date
RU2018104434A3 RU2018104434A3 (ru) 2019-08-07
RU2018104434A RU2018104434A (ru) 2019-08-07
RU2756186C2 true RU2756186C2 (ru) 2021-09-28

Family

ID=67475579

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2018104434A RU2756186C2 (ru) 2018-02-06 2018-02-06 Система и способ категоризации .NET приложений

Country Status (2)

Country Link
US (1) US11397812B2 (ru)
RU (1) RU2756186C2 (ru)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11481482B2 (en) * 2019-09-09 2022-10-25 Mcafee, Llc Securing an application framework from shared library sideload vulnerabilities
US20230195896A1 (en) * 2021-12-21 2023-06-22 Palo Alto Networks, Inc. Identification of .net malware with "unmanaged imphash"
US20230344838A1 (en) * 2022-04-26 2023-10-26 Palo Alto Networks, Inc. Detecting microsoft .net malware using machine learning on .net structure

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130117848A1 (en) * 2011-11-03 2013-05-09 Ali Golshan Systems and Methods for Virtualization and Emulation Assisted Malware Detection
US20140137078A1 (en) * 2012-11-14 2014-05-15 Microsoft Corporation Revertable managed execution image instrumentation
US20140331327A1 (en) * 2009-12-15 2014-11-06 Seeker Security Ltd. Method and system of runtime analysis
RU2585982C2 (ru) * 2012-03-16 2016-06-10 Интернэшнл Бизнес Машинз Корпорейшн Выборка команд по указанию в средстве сбора сведений о ходе вычислений

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7913305B2 (en) * 2004-01-30 2011-03-22 Microsoft Corporation System and method for detecting malware in an executable code module according to the code module's exhibited behavior
WO2015060857A1 (en) * 2013-10-24 2015-04-30 Mcafee, Inc. Agent assisted malicious application blocking in a network environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140331327A1 (en) * 2009-12-15 2014-11-06 Seeker Security Ltd. Method and system of runtime analysis
US20130117848A1 (en) * 2011-11-03 2013-05-09 Ali Golshan Systems and Methods for Virtualization and Emulation Assisted Malware Detection
RU2585982C2 (ru) * 2012-03-16 2016-06-10 Интернэшнл Бизнес Машинз Корпорейшн Выборка команд по указанию в средстве сбора сведений о ходе вычислений
US20140137078A1 (en) * 2012-11-14 2014-05-15 Microsoft Corporation Revertable managed execution image instrumentation

Also Published As

Publication number Publication date
US20190243976A1 (en) 2019-08-08
US11397812B2 (en) 2022-07-26
RU2018104434A3 (ru) 2019-08-07
RU2018104434A (ru) 2019-08-07

Similar Documents

Publication Publication Date Title
RU2454705C1 (ru) Система и способ защиты компьютерного устройства от вредоносных объектов, использующих сложные схемы заражения
RU2589862C1 (ru) Способ обнаружения вредоносного кода в оперативной памяти
RU2571723C2 (ru) Система и способ для снижения нагрузки на операционную систему при работе антивирусного приложения
US9348998B2 (en) System and methods for detecting harmful files of different formats in virtual environments
CN105760773B (zh) 通过易受攻击的应用控制打开文件的系统和方法
RU2531861C1 (ru) Система и способ оценки вредоносности кода, исполняемого в адресном пространстве доверенного процесса
RU2659737C1 (ru) Система и способ управления вычислительными ресурсами для обнаружения вредоносных файлов
US6973578B1 (en) System, method and computer program product for process-based selection of virus detection actions
US9147073B2 (en) System and method for automatic generation of heuristic algorithms for malicious object identification
US10691800B2 (en) System and method for detection of malicious code in the address space of processes
CN108399332B (zh) 在虚拟机中针对恶意性对文件进行分析的系统和方法
RU2697948C1 (ru) Система и способ выявления уязвимостей с использованием перехвата вызовов функций
Qbeitah et al. Dynamic malware analysis of phishing emails
RU2756186C2 (ru) Система и способ категоризации .NET приложений
CN109558207B (zh) 在虚拟机中形成用于进行文件的防病毒扫描的日志的系统和方法
RU2724790C1 (ru) Система и способ формирования журнала при исполнении файла с уязвимостями в виртуальной машине
RU2706883C1 (ru) Система и способ снижения количества ложных срабатываний классифицирующих алгоритмов
RU101233U1 (ru) Система ограничения прав доступа к ресурсам на основе расчета рейтинга опасности
Flanders A simple and intuitive algorithm for preventing directory traversal attacks
JP4363214B2 (ja) アクセスポリシ生成システム、アクセスポリシ生成方法およびアクセスポリシ生成用プログラム
RU2587424C1 (ru) Способ контроля приложений
CN110659478B (zh) 在隔离的环境中检测阻止分析的恶意文件的方法
RU2665910C1 (ru) Система и способ обнаружения вредоносного кода в адресном пространстве процессов
US8788845B1 (en) Data access security
RU2592383C1 (ru) Способ формирования антивирусной записи при обнаружении вредоносного кода в оперативной памяти