ПРОФИЛИРОВАНИЕ ВЫПОЛНЕНИЯ КОДА
CODE EXECUTION PROFILING

Область техники, к которой относится изобретение
Варианты осуществления настоящего изобретения, в общем, относятся к компьютерной безопасности и к защите от вредоносного программного обеспечения, и, более конкретно, к профилированию выполнения кода.
Уровень техники
Заражение компьютеров и других электронных устройств вредоносным программным обеспечением происходит все чаше, и его трудно обнаруживать и удалять. Решения, направленные против вредоносного программного обеспечения, могут потребовать сопоставление сигнатуры злонамеренного кода или файлов с оцениваемым программным обеспечением для определения того, что программное обеспечение является вредным для компьютерной системы. Вредоносное программное обеспечение может менять свое представление в результате использования полиморфных программ или исполняемых файлов, в которых вредоносное программное обеспечение меняет свою форму для предотвращения обнаружения с использованием решений, направленных против вредоносного программного обеспечения. В таком случае решения, направленные против вредоносного программного обеспечения, могут не иметь возможности обнаруживать новое или преобразованное вредоносное программное обеспечение во время атаки в "нулевой день". Вредоносное программное обеспечение может включать в себя, но не ограничено этим, шпионское программное обеспечение, руткиты, программы, ворующие пароли, спам, источники фишинговых атак, источники атак на основе "отказа в услуге", вирусы, регистрирующие программы, трояны, рекламное программное обеспечение или любое другое цифровое содержание, которое приводит к нежелательным действиям.
Краткое описание чертежей
Для более полного понимания вариантов осуществления настоящего изобретения и его свойств и преимуществ далее будет сделана ссылка на следующее описание, которое следует рассматривать совместно с приложенными чертежами, на которых:
на фиг. 1 представлена иллюстрация примерного варианта осуществления системы 100 для выполнения профилирования кода;
на фиг. 2 представлена иллюстрация примерного варианта осуществления правил доступа вредоносного программного обеспечения;
на фиг. 3 представлена иллюстрация примерного варианта осуществления способа для определения правил или логики правила доступа вредоносного программного обеспечения для выполнения профилирования кода; и
на фиг. 4 показана иллюстрация примерного варианта осуществления способа для выполнения профилирования кода.
Осуществление изобретения
Техническим результатом заявленного изобретения является обеспечение новой системы и нового способа обнаружения вредоносных программ для защиты электронного устройства.
На фиг. 1 показана иллюстрация примерного варианта осуществления системы 100 выполнения профилирования кода. Система 100 может быть выполнена с возможностью профилирования выполнения кода электронного устройства, по мере его динамической загрузки и выполнения. В результате профилирования выполнения кода, система 100 может отслеживать выполнение структур выполнения, которые обозначают вредоносное программное обеспечение. В одном варианте осуществления система 100 может выполнять такой мониторинг без использования ловушек в операционной системе или приложении. В другом варианте осуществления система 100 может выполнять такой мониторинг, используя внештатную загрузку процессора. В еще одном варианте осуществления система 100 может выполнять профилирование выполнения кода путем записи и оценки переходов между разными пространствами адресов.
Система 100 может включать в себя модуль 110 борьбы с вредоносным программным обеспечением, выполненный с возможностью оценки, является ли электронное устройство 102 инфицированным вредоносным программным обеспечением. Модуль 110 борьбы с вредоносным программным обеспечением может быть резидентным в электронном устройстве 102 или может подключаться после соединения электронного устройства для связи с электронным устройством 102. Модуль 110 борьбы с вредоносным программным обеспечением может быть соединен с возможностью связи с процессором 106 электронного устройства 102 и с логикой 108 правила доступа вредоносного программного обеспечения. Модуль 110 борьбы с вредоносным программным обеспечением может быть выполнен с возможностью доступа к логике 108 правила доступа вредоносного программного обеспечения для определения, какие части памяти 104 электронного устройства следует отслеживать. Кроме того, модуль 110 борьбы с вредоносным программным обеспечением может быть выполнен с возможностью доступа к логике 108 правила доступа вредоносного программного обеспечения, для определения, какие переходы из заданного участка памяти к другому следует отслеживать. Модуль 110 борьбы с вредоносным программным обеспечением может быть выполнен для определения таких правил в процессоре 106, например, путем конфигурирования процессора 106 для генерирования исключений, когда возникает переход между первым определенным пространством (или диапазоном) адреса ко второму определенному пространству (или диапазону) адреса. Процессор 106 может быть выполнен с возможностью передачи полученного в результате исключение в модуль 110 борьбы с вредоносным программным обеспечением. Модуль 110 борьбы с вредоносным программным обеспечением может быть выполнен с возможностью доступа к логике правила 108 доступа к вредоносному программному обеспечению для определения, удовлетворяет ли переход, обнаруживаемый процессором 106 (вместе с ранее определенными переходами) последовательность модели графа состояний, или другому правилу, которое ассоциировано с вредоносным программным обеспечением.
Логика 108 правила доступа вредоносного программного обеспечения может быть резидентной в электронном устройстве 102, или может подключаться после любого другого электронного устройства, которое будет доступно для модуля 110 борьбы с вредоносным программным обеспечением. В одном варианте осуществления логика 108 правила доступа вредоносного программного обеспечения может быть резидентной в сервере, предназначенном борьбы с вредоносным программным обеспечением, соединенному по сети с возможностью связи с модулем 110 борьбы с вредоносным программным обеспечением. В другом варианте осуществления логика 108 правила доступа вредоносного программного обеспечения может быть загружена в память 104, процессор 106 или модуль 110 борьбы с вредоносным программным обеспечением. Логика 108 правила доступа вредоносного программного обеспечения может быть воплощена любым соответствующим образом, например, с использованием сервера, прокси-устройства, приложения, модуля, сценария, библиотеки, функции, логики, базы данных, файла, таблицы, или другой структуры или объекта данных. Логика 108 правила доступа вредоносного программного обеспечения может включать в себя любую соответствующую информацию для определения области памяти 104 для отслеживания, переходов для отслеживания, портов I/O для отслеживания, областей памяти для считывания или записи или последовательностей переходов, которые обозначают вредоносное программное обеспечение.
Логика 108 правила доступа вредоносного программного обеспечения может включать в себя положительные правила, по которым отслеживаемая операция или последовательность распознаются как безопасные или отрицательные правила, по которым отслеживаемая операция или последовательность распознается, как вредоносная. Кроме того, вредоносное программное обеспечение может манипулировать ожидаемым порядком выполнения в легитимном программном обеспечении таким образом, что отдельные операции не являются вредоносными и фактически относятся к легитимному программному обеспечению, но выполняются в последовательности таким образом, что порядок таких операций является вредоносным. Такое вредоносное программное обеспечение может включать в себя, например, обратно-ориентированное программирование (ROP). В результате использования положительных правил в правилах комбинации могут быть устранены одна или больше "фальшиво-положительных" идентификаций вредоносного программного обеспечения.
Электронное устройство 102 может быть воплощено любым соответствующим образом. Например, электронное устройство 102 может включать в себя мобильное устройство, компьютер, сервер, переносной компьютер, настольный компьютер, печатную плату или блейд-сервер.
Модуль 110 борьбы с вредоносным программным обеспечением может быть воплощен любым соответствующим образом. Например, модуль 110 борьбы с вредоносным программным обеспечением может включать в себя инструкции, логику, функции, библиотеки, совместно используемые библиотеки, приложения, сценарии, программы, исполняемые программы, объекты, аналоговые схемы, цифровые схемы или любые их соответствующие комбинации.
Процессор 106 может содержать, например, микропроцессор, микроконтроллер, цифровой сигнальный процессор (DSP), специализированную интегральную схему (ASIC), или любую другую цифровую или аналоговую схему, выполненную с возможностью интерпретировать и/или выполнять программные инструкции и/или обрабатывать данные. В некоторых вариантах осуществления процессор 106 может интерпретировать и/или выполнять программные инструкции и/или обрабатывать данные, сохраняемые в памяти 104. Память 104 может быть выполнена частично или полностью, как память приложения, системная память или обе такие памяти. Память 104 может включать в себя любую систему, устройство или устройство, выполненное с возможностью содержать и/или размещать в себе один или больше модулей памяти. Каждый модуль памяти может включать в себя любую систему, устройство или устройство, выполненное с возможностью содержать программные инструкции и/или данные в течение периода времени (например, считываемые компьютером носители информации). Инструкции, логика или данные для конфигурирования операции системы 100, такие как конфигурации компонентов, таких как электронное устройство 102 или модуль 110 борьбы с вредоносным программным обеспечением, могут находиться в памяти 104 для выполнения процессором 106.
Процессор 106 может выполнять одну или больше кодовую инструкцию (инструкций), предназначенных для выполнения одним или больше ядрами процессора. Ядра процессора могут следовать программной последовательности инструкций, обозначенной кодовыми инструкциями. Каждая кодовая инструкция может быть обработана одним или больше декодерами процессора. Декодер может генерировать на своем выходе микрооперацию, такую как микрооперация с фиксированной шириной в заданном формате, или может генерировать другие инструкции, микроинструкции или сигналы управления, которые отражают оригинальную кодовую инструкцию. Процессор 106 может также включать в себя логику переименования регистра и логику планирования, которые, в общем, выделяют ресурсы и направляют операцию, соответствующую преобразованным инструкциям, для выполнения. После окончания выполнения операций, установленных кодовыми инструкциями, логика выходной части процессора 106 может заканчивать инструкцию. В одном варианте осуществления процессор 106 может допускать выполнение не по порядку, но требует выполнения по порядку прекращения инструкции. Логика прекращения инструкции в процессоре 106 может быть представлены в различных формах, известных в данной области техники (например, буферы изменения порядка последовательности и т.п.). Ядра процессора в процессоре 106, таким образом, преобразуют во время выполнения кода, по меньшей мере, в смысле выхода, генерируемого декодером, аппаратными регистрами и таблицами, используемыми в логике переименования регистра и в любых регистрах, модифицированных логикой выполнения.
Модуль 110 борьбы с вредоносным программным обеспечением может быть выполнен с возможностью определения любой соответствующий части памяти 104 для мониторинга. Модуль 110 борьбы с вредоносным программным обеспечением может выполнять такие определения путем ссылки, например, на логику 108 правила доступа вредоносного программного обеспечения. Например, модуль 110 борьбы с вредоносным программным обеспечением может определять участки памяти 104, используемые для операции режима ядра. В примере на фиг. 1 модуль 110 борьбы с вредоносным программным обеспечением может определять, что пространство ядра, включающее в себя адреса элементов памяти от (0×000) до ((M*F)×FFF) должно отслеживаться, как область. В другом примере модуль 110 борьбы с вредоносным программным обеспечением может определять участки памяти 104, используемые для операции режима пользователя, которые должны отслеживаться, как область. В примере на фиг. 1 модуль 110 борьбы с вредоносным программным обеспечением может определять, что пространство пользователя, включающее в себя адреса элементов памяти от ((M*F)×FFF) до ((N*F)×FFF), должно отслеживаться, как область.
Конкретные приложения, обработка или потоки обработки могут быть идентифицированы для мониторинга модулем 110 борьбы с вредоносным программным обеспечением. Их можно динамически отслеживать, по мере их загрузки в память 104. В примере на фиг. 1 модуль 110 борьбы с вредоносным программным обеспечением может определять, что должна отслеживаться конкретная отслеживаемая обработка при ее загрузке в область, обозначенную R5. Отслеживаемая обработка может представлять собой обработку, для которой неизвестно, ассоциирована ли эта обработка с вредоносным программным обеспечением.
Конкретные части операционной системы могут быть идентифицированы для мониторинга модулем 110 борьбы с вредоносным программным обеспечением. Эти части могут динамически отслеживаться, по мере их загрузки в память 104. Память для любой соответствующей части операционной системы может отслеживаться. В примере на фиг. 1 модуль 110 борьбы с вредоносным программным обеспечением может определять, что таблица отправки системной услуги (SSDT) может отслеживаться при ее загрузке в область, обозначенную R1 и в часть "X" пользователя операционной системы, при ее загрузке в область, обозначенную R7. Могут отслеживаться конкретные элементы в пределах областей или конструкции операционной системы, такие как индивидуальные указатели в SSDT. Такие индивидуальные указатели могут обозначать доступ конкретных, идентифицированных функций, управляемых SSDT.
Другие объекты, которые могут отслеживаться, когда они резидентны в памяти 104, могут включать в себя, например, совместно используемые системы библиотеки, включающие в себя динамически связанные библиотеки (DLL), таблицы дескрипторов прерываний (IDT), таблицы системного вызова, совместно используемые пользователями библиотеки или диспетчеры вызова операционной системы. Такие объекты могут использоваться в любой соответствующей операционной системе. Могут быть определены другие области памяти 104, такие как области R2, R3, R4 в пространстве ядра и в области R6 в пространстве пользователя.
Кроме того, модуль 110 борьбы с вредоносным программным обеспечением может быть выполнен с возможностью идентификации конкретных переходов, считываний, записи, выполнений, изменений атрибута или изменений атрибута порта I/O, которые используются для выполнения профилирования кода. Конкретные переходы и доступы могут быть определены в логике 108 правила доступа вредоносного программного обеспечения. Примеры переходов иллюстрируются на фиг. 1 и могут включать в себя: переход 114 от известной части пространства пользователя, такой как часть "X" пользователя операционной системы в R7, к отслеживаемой обработке в R5; перехода 124 от не идентифицированных объектов в пространстве А ядра в R4 к отслеживающей обработке в R5; перехода 122 от одного не идентифицированного объекта в пространстве ядра в R4 к другому не идентифицированному объекту в пространстве ядра в R3; перехода 118 от отслеживаемой обработки в R4 к известному объекту в пространстве ядра, таком как SSDT в R1; перехода 116 от отслеживаемой обработки в R4 к не идентифицированному объекту в пространстве ядра в R3; или перехода 120 от неизвестного объекта в пространстве ядра в R2 к известному объекту в пространстве ядра, такого как SSDT в R1.
Кроме того, модуль 110 борьбы с вредоносным программным обеспечением может быть выполнен с возможностью идентификации конкретных аспектов переходов с целью выполнения профилирования кода. Конкретные аспекты могут быть определены в логике 108 правила доступа вредоносного программного обеспечения. В одном варианте осуществления может быть выполнена оценка определенного направления перехода. Например, переход от R1 к R2 может отличаться от перехода от R2 к R1. Таким образом, логика 108 правила доступа вредоносного программного обеспечения может требовать, чтобы данный переход соответствовал установленному направлению. В другом варианте осуществления может быть выполнена оценка расстояния перехода. Например, переход из одного пространства памяти в соседнее пространство памяти может быть достаточно коротким для представления перехода, который будет игнорирован. Таким образом, логика 108 правила доступа вредоносного программного обеспечения может обеспечить исключение для перехода, если переход будет выполнен через менее чем пороговое количество адресов памяти. Такое пороговое количество может включать в себя, например, пятьдесят байтов. В еще одном варианте осуществления может быть выполнена оценка величины подсчета переходов. Например, переход от одной отслеживаемой области к другой может повторяться многократно, и только один из определенного количества таких повторных переходов будет рассматриваться, как стоящий применения логики 108 правила доступа вредоносного программного обеспечения. Таким образом, логика 108 правила доступа вредоносного программного обеспечения может устанавливать, что переход должен соответствовать на w-ый раз, когда происходит такой переход. Предыдущие или последовательные случаи таких переходов могут игнорироваться. В еще одном варианте осуществления для переходов могут быть установлены такие условия, что логические преобразования, включающие в себя NOT, AND, OR, XOR или другие такие операции могут применяться для одного или больше переходов. Например, конкретный переход может соответствовать, до тех пор, пока другой идентифицированный переход еще не был обнаружен. Таким образом, логика 108 правила доступа вредоносного программного обеспечения могут устанавливать сопряженные или комплексные логические условия для сопоставления переходов.
Переходы, такие как переходы 114, 116, 118, 120, 122 и 124 могут быть определены, как ответвления при выполнении между разными областями памяти 104. В одном варианте осуществления переход при выполнении может оцениваться в соответствии с адресом, загруженным в указатель 112 инструкций процессора 106. Адреса в памяти заданного диапазона, загруженные в указатель 112 инструкций перед выполнением, можно сравнивать с адресами в памяти другого заданного диапазона, загруженными в указатель 112 инструкций после выполнения. Изменение в диапазонах памяти, ассоциированных с указателем 112 инструкций перед и после выполнения может отражать инструкцию JMP, инструкцию call, или другую инструкцию для выполнения перехода между объектами резидентными в памяти 104. В другом варианте осуществления считывание, запись или выполнение адресов в памяти могут определять переходы выполнения, в которых последующие считывание, запись или выполнение в памяти, которые находятся в разделенных участках памяти 104, могут рассматриваться, как переходы. В еще одном, другом варианте осуществления выборка инструкции может использоваться для определения точки выполнения в памяти 104.
Временные характеристики и величины подсчета инструкции также можно учитывать в логике 108 правила доступа вредоносного программного обеспечения. Например, если временной интервал, такой как счетчик, определяемый центральным процессорным устройством, между двумя переходами является слишком длинным или слишком коротким, тогда заданное правило может не применяться. Аналогично, если счетчик инструкций меньше или больше, чем пороговое значение, тогда состояние соответствия правилу может быть сброшено в исходное состояние.
В то время как одиночный процессор 106 представлен на фиг. 1, система может включать в себя множество процессоров. Кроме того, процессор 106 может включать в себя множество ядер или центральных процессорных устройств. Выполнение профиля, выполняемое системой 100, может осуществляться в каждом процессоре, в каждом ядре или на основе центрального процессорного устройства. Кроме того, такое выполнение профиля может выполняться при каждой обработке в любом таком процессоре, ядре или в центральном процессорном устройстве.
Иллюстрация профилирования выполнения кода с переходами на фиг. 1, представлена со ссылкой на смежную память. Такое профилирование может включать в себя профилирование объектов, таких как объекты, которые являются резидентными виртуальной памяти. В одном варианте осуществления профилирование выполнения кода может осуществляться по ссылке на физические адреса, лежащие в основе виртуальной памяти.
Как описано выше, модуль 110 борьбы с вредоносным программным обеспечением может осуществлять доступ к логике 108 правила доступа вредоносного программного обеспечения для определения любого соответствующего количества или вида переходов, которые требуется отслеживать. В одном варианте осуществления правила, обозначения или логика для таких переходов, которые требуется отслеживать, могут быть загружены, например, в процессор 106 или в контроллер оперативного запоминающего устройства, соединенного с процессором 106. После того, как произойдет такой переход, определенный правилами, процессор 106 может генерировать ошибки, связанные с потерей страницы, прерывание или исключение, которое может обрабатываться модулем 110 борьбы с вредоносным программным обеспечением. В другом варианте осуществления правила, обозначения или логика для таких переходов, которые должны отслеживаться, могут быть загружены в представленный ниже агент захвата операционной системы, такой как гипервизор или монитор виртуальной машины. После возникновения такого перехода, определенного правилами, гипервизор или монитор виртуальной машины могут генерировать выход виртуальной машины или другое уведомление, которое может обрабатываться модулем 110 борьбы с вредоносным программным обеспечением. Модуль 110 борьбы с вредоносным программным обеспечением может дополнительно обращаться к логике 108 правила доступа вредоносного программного обеспечения, для определения, обозначает ли обнаруживаемый переход вредоносное программное обеспечение. Во время обработки уведомления для выполнения может быть установлена пауза.
Уведомление процессора 106 о том, что возникло соответствие правилу, может включать в себя контекстную информацию. Эта информация может включать в себя идентификацию совпавшего правила, местоположение в памяти, доступ к которому осуществляется, местоположение в памяти, из которого происходит доступ, и любые ассоциированные параметры, такие как значения, резидентные в стеке выполнения процессора 106.
Модуль 110 борьбы с вредоносным программным обеспечением может быть выполнен с возможностью отслеживания возникновения множества обнаруживаемых переходов для определения, включают ли в себя такие переходы структуру операции, обозначающую вредоносное программное обеспечение. Такие структуры могут быть определены, например, в логике 108 правила доступа вредоносного программного обеспечения.
Если один или больше обнаруживаемых переходов не обозначают вредоносное программное обеспечение, модуль 110 борьбы с вредоносным программным обеспечением может быть выполнен с возможностью разрешения перехода. Если один или больше обнаруживаемых переходов могут обозначать ожидающие выполнения дополнительные определенные переходы вредоносного программного обеспечения, модуль 110 борьбы с вредоносным программным обеспечением может быть выполнен с возможностью разрешения такого перехода, но с записью перехода для возможного корректирующего действия в будущем.
Кроме того, если один или больше обнаруживаемых переходов могут обозначать ожидающие выполнения дополнительные определенные переходы вредоносного программного обеспечения, модуль 110 борьбы с вредоносным программным обеспечением может быть выполнен с возможностью загружать дополнительные правила из логики 108 правила доступа вредоносного программного обеспечения. Такие дополнительные правила могут, например, устанавливать дополнительные области памяти 104, которые требуется отслеживать, дополнительные переходы, которые требуется отслеживать, или дополнительные комбинации переходов, которые следует отслеживать. Следовательно, применяемая выбранная логика 108 правила доступа вредоносного программного обеспечения может динамически изменяться. Такой динамический подход позволяет преодолевать ограничения возможностей процессора по поддержанию всего набора правил, загруженных в процессоре. Правила могут, в случае необходимости, загружаться динамически, и несоответствующие правила отбрасываются. Например, пусть будет задано правило с тремя состояниями ("А"-"В"-"С"), которые первоначально могут не быть инициированы по соответствию с первым состоянием, "А". В этот момент, соответствие для "С" может быть отброшено, с учетом того, что "С" может быть не соответствующим, пока не будет вначале получено соответствие для "В". После того, как возникнет переход, соответствующий "В", тогда остальная часть правила, относящаяся к "С", может быть повторно загружена. Загрузка или выгрузка переходов правила могут выполняться, например, модулем 110 борьбы с вредоносным программным обеспечением.
Кроме того, один или больше обнаруживаемых переходов могут обозначать ожидающие выполнения дополнительные исследовательские операции вредоносного программного обеспечения. Такие дополнительные исследовательские операции могут включать в себя определения за пределами оценки переходов. Например, допустим, что структура выполнения определена набором переходов, логика 108 правила доступа вредоносного программного обеспечения может определять, что источник таких действий должен быть оценен, используя, например, хеш-функцию или цифровую сигнатуру для объектов, известных, как безопасные или ассоциированные с вредоносным программным обеспечением. В другом примере, если допустить, что структура выполнения определена набором переходов, логика 108 правила доступа вредоносного программного обеспечения определяет, что такие действия могли происходить из авторизованного или проверенного объекта, такого как защищенный участок операционной системы, драйвер с подписью или защищенный вызов функции.
После определения, что один или больше переходов обозначает вредоносное программное обеспечение, модуль 110 борьбы с вредоносным программным обеспечением может быть выполнен с возможностью принимать любое соответствующее корректирующее действие. Например, объекты в памяти 104, ассоциированные с переходами, обозначающими вредоносное программное обеспечение, могут быть помещены в карантин, записаны в отчет, удалены, очищены или по-другому обработаны. Кроме того, все, что ассоциировано с такими объектами, например, содержание, находящееся на носителе информации или на диске, или другие выполняемые обработки в памяти, может быть помещено в карантин, занесено в отчет, удалено, очищено или по-другому обработано.
Некоторые прерывания или уведомления могут быть определены в соответствии с "белым листом" логики 108 правила доступа вредоносного программного обеспечения. Помещение таких прерываний или уведомлений в "белый лист" может привести к тому, что модуль 110 борьбы с вредоносным программным обеспечением будет игнорировать такие прерывания во время анализа вредоносного программного обеспечения. Такие прерывания или уведомления могут представлять собой результат того, что, например, известные или безопасные элементы системы 100 могут быть не связаны с вредоносным программным обеспечением и, таким образом, не требуют какой-либо обработки модулем 110 борьбы с вредоносным программным обеспечением.
На фиг. 2 представлена иллюстрация примерного варианта осуществления логики 108 правила доступа вредоносного программного обеспечения, в соответствии с которым может выполняться работа системы 100.
Логика 108 правила доступа вредоносного программного обеспечения может включать в себя отслеживаемые области 202. Отслеживаемые области 202 могут определять объекты, которые должны отслеживаться. В одном варианте осуществления отслеживаемые области 202 могут определять диапазоны памяти, в памяти 104 для которых выполнение будет профилировано системой 100. Диапазоны памяти могут быть определены в соответствии с адресами физической памяти или адресами виртуальной памяти, соответственно. Отображение диапазонов памяти, соответствующее заданному объекту, может быть определено в соответствии, например, с модулем 110 борьбы с вредоносным программным обеспечением, по мере того, как он отслеживает загрузку и выгрузку элементов памяти 104. В примере на фиг. 2 отслеживаемые области 202 могут определять, что должны отслеживаться пространство пользователя и пространство ядра. Такие отслеживаемые области 202 могут определять, что пространство пользователя может быть резидентным в адресах от (M*F×FFF) до (N*F×FFF), и что пространство ядра может быть резидентным в адресах от (0×000) до (M*F×FFF). В частности, элементы могут быть определены в отслеживаемых областях 202, таких как SSDT, отслеживаемая обработка, и участок "X" пользователя операционной системы. Хотя конкретные диапазоны адреса памяти не представлены подробно в примере на фиг. 2, такие адреса могут быть установлены после их определения. Кроме того, каждой такой области может быть задан уникальный идентификатор, или она может быть по-другому помечена со стороны других правил. Таким образом, можно обращаться к пространству ядра и пространству пользователя. Пространство для SSDT может быть обозначено как R1, пространство для отслеженной обработки может быть обозначено как R5, и пространство для участка "X" пользователя операционной системы может быть обозначено, как R7.
Логика 108 правила доступа вредоносного программного обеспечения может включать в себя отслеживаемые 204 операции, которые могут устанавливать то, что переходы или другие операции могут требовать обработки для оценки вредоносного программного обеспечения. Со ссылкой на другие участки логики 108 правила доступа вредоносного программного обеспечения, каждая из отслеживаемых 204 операций, может быть обозначена с помощью уникального идентификатора. Уникальный идентификатор, таким образом, может представлять состояние операции, в котором возникла отслеживаемая операция. Например, вызов, переход или другое ответвление от R5 (отслеживаемая обработка) в R7 (участок "X" пользователя) можно рассматривать, как переходы, и они могут быть помечены, как состояние (А). Вызов, переход или другое ответвление от R7 (участок "X" пользователя) в любое другое место в пределах пространства ядра можно рассматривать, как переход, и они могут быть помечены, как состояние (В). Вызов, переход или другое ответвление из любого места в пространстве ядра в R1 (SSDT) можно рассматривать, как переход, и они могут быть помечены, как состояние (С). Вызов, переход или другое ответвление, из любого места в пространстве ядра в любое другое место в пространстве ядра может рассматриваться, как переход, и они могут быть помечены, как состояние (D). Для такого события может быть установлено требование минимального расстояния. Вызов, переход или другое ответвление в любом месте в пространстве ядра, в любое другое место в пространстве пользователя можно рассматривать, как переход, и они могут быть помечены, как состояние (Е).
Конкретная операция, которая отслеживается в пределах каждой из отслеживаемых 204 операций, может включать в себя любую соответствующую операцию. Операция может быть специфичной для типа объекта. Например, такое отслеживание может включать в себя выполнение некоторых объектов в R5 или может просто обращаться к данным в объектах в R1.
Логика 108 правила доступа вредоносного программного обеспечения может включать в себя правила 206 профилирования, которые могут устанавливать, как обрабатывать заданный порядок возникающих операций, таких как определены в отслеживаемых 204 операциях. Каждое из правил 206 профилирования может быть представлено, например, набором логических требований или конечным автоматом. Например, для обнаруживаемых операций (А), затем (В), затем (С), затем (D), затем (Е), правила 206 профилирования могут обозначать, что такая обнаруживаемая последовательность представляет вредоносное программное обеспечение типа "XYZ". В одном варианте осуществления последовательность может не требовать появления других обнаруживаемых отслеживаемых 204 операций между установленными состояниями. Таким образом, обнаруживаемая последовательность (А)-(В)-(С)-(D)-(Е) операций может инициировать определение, что последовательность представляет собой вредоносное программное обеспечение типа "XYZ", но последовательность (А)-(В)-(А)-(С)-(D)-(Е) не будет представлять такое вредоносное программное обеспечение. Однако, последовательность (А)-(А)-(В)-(С)-(D)-(Е) может соответствовать такой структуре. В другом варианте осуществления последовательность может разрешать появление других обнаруживаемых отслеживаемых 204 операций между установленными состояниями. Таким образом, каждая из последовательностей (А)-(В)-(С)-(D)-(Е), (А)-(В)-(А)-(С)-(D)-(Е), и (А)-(А)-(В)-(С)-(D)-(Е) могут соответствовать структуре.
В другом примере вредоносное программное обеспечение "PDQ" может быть определено, как структура отслеживаемых 204 операций, которая соответствует определенному состоянию конечного автомата. Логика конечного автомата может быть воплощена в любой соответствующей последовательности команд. Такой конечный автомат может устанавливать, что в исходном состоянии отслеживаемых 204 операций наблюдение (А) приводит к отслеживанию для перехода в последующее состояние (обозначено (А)). Любое другое наблюдение приводит к отслеживанию для сохранения в исходном состоянии. При отслеживании состояния (А) последующее наблюдение (В) приводит к отслеживанию для перехода в последующее состояние (обозначено (В)); наблюдение (А), (С), (D) или (Е) возвращает отслеживание в исходное состояние; и любое другое наблюдение сохраняет настоящее отслеживание. При отслеживании состояния (В) последующее наблюдение (С) приводит к отслеживанию для перехода в последующее состояние (обозначено (С)); наблюдения (А), (В), (D) или (Е) возвращают отслеживании в исходное состояние; и любое другое наблюдение сохраняет текущее отслеживание. При отслеживании состояния (С) последующее наблюдение (D) приводит к отслеживанию для перехода к последующему состоянию (обозначено (D)); наблюдение (А), (В), (С) или (Е) возвращает отслеживание в исходное состояние; и любое другое наблюдение сохраняет текущее отслеживание. При отслеживании состояния (D) последующее наблюдение (Е) приводит к отслеживанию для перехода в последующее состояние определения, что вредоносное программное обеспечение "PDQ" было обнаружено; наблюдение (А), (В), (С) или (D) возвращает отслеживание в исходное состояние; и любое другое наблюдение сохраняет настоящее отслеживание.
В еще одном другом примере вредоносное программное обеспечение "MNO" может быть определено, как структура отслеживаемых 204 операций, которая соответствует определенной последовательности обнаружения (А), затем (В) или (С), затем, по меньшей мере, трех состояний (D), затем (Е). Таким образом, в структуре может использоваться требование множества случаев, а также логических условий для возможного вредоносного поведения.
В еще одном, другом примере, вредоносное программное обеспечение "JKL" может быть определено, как структура операций отслеживания 204, которая соответствует определенной последовательности обнаружения (А), затем не более чем трем случаям (В), затем (D), затем (Е), но без появления (С). Таким образом, в структуре может использоваться требование не более чем определенного количества случаев, а также требование, что некоторые условия не наблюдаются.
Следует отметить, что представленные примеры не следует рассматривать как исчерпывающее описание всех возможных комбинаций и воплощения правила. Любая другая алгоритмическая комбинация переходов или событий может быть воплощена в логике 108 правила доступа вредоносного программного обеспечения. Такие алгоритмы, например, могут быть представлены, как сценарий, таблица, граф или любой другой соответствующий способ.
Правила 206 профилирования могут, таким образом, устанавливать поведение общего типа вредоносного программного обеспечения, не полагаясь на идентификацию сигнатуры определенного объекта, как вредоносного программного обеспечения. Полиморфное вредоносное программное обеспечение, которое может изменять свое собственное содержание (и, следовательно, сигнатуру) без изменения своей общей функциональности, таким образом, может быть обнаружено. Кроме того, могут быть обнаружены необычные или неожиданные структуры операции. Такие необычные или неожиданные структуры операции могут отражать новый, неизвестный вид вредоносного программного обеспечения. Например, обработка может соответствовать заданному префиксу последовательности операций, которые, в противном случае, могли бы обозначать операцию, заслуживающую доверия обработки, но затем выполнять нетипичный доступ для такой заслуживающей доверия обработки. В таких случаях одно из правил 206 профилирования может устанавливать, что для заданной последовательности предварительных операций, любой, кроме определенного, ожидаемого набора операций, для окончания последовательности может обозначать вредоносное программное обеспечение.
На фиг. 3 показана иллюстрация примерного варианта осуществления способа 300 для определения правил или логики правила доступа встроенного вредоносного программного обеспечения для выполнения профилирования кода. Определения способа 300 могут быть выполнены, например, используя исследование борьбы с вредоносным программным обеспечением; профилирование определенного электронного устройства или его объектов; профилирование класса электронного устройства или его объектов; доступ к серверу борьбы с вредоносным программным обеспечением; доступ к логике правила доступа борьбы с вредоносным программным обеспечением; файлы определения считывания вредоносного программного обеспечения; или используя любую другую соответствующую обработку. Результат способа 300 может представлять собой доступность одного или больше правил борьбы с вредоносным программным обеспечением, выполнение кода которых может быть профилировано.
В 305 могут быть определены объекты электронного устройства, которые требуется отслеживать. Такие объекты могут включать в себя, например, пространство ядра, пространство пользователя, SSDT, диспетчер вызова операционной системы, DLL системы, DLL пользователя, обработку, порты I/O, "кучи", потоки или системный стек. В 310 могут быть определены области памяти, ассоциированные с такими объектами, как объекты, резидентные в электронном устройстве. В 315 операции в отношении областей памяти и объектов могут быть определены для отслеживания. Такие операции могут включать в себя, например, переходы, вызовы или другие ответвления при выполнении. Операции могут быть определены направленно, из одной области памяти в другой. Кроме того, операции могут потребовать минимальных расстояний перехода между областями. В 320 могут быть определены структуры операций, предназначенные для отслеживания. Такие структуры могут устанавливать определенные порядки операций, используя команды, логику или конечные автоматы. Структуры могут представлять собой, например, поведение вредоносного программного обеспечения или известных безопасных компонентов.
На фиг. 4 показана иллюстрация примерного варианта осуществления способа 400 для выполнения профилирования кода. Способ 400 может быть выполнен для выполнения профилирования кода в электронном устройстве.
В 405, правила, команды или инструкции, воплощающие операции для отслеживания, и структуры операции, могут быть загружены в соответствующий агент ловушки, такой как процессор, гипервизор или модуль борьбы с вредоносным программным обеспечением. Наблюдаемые действия в электронном устройстве, соответствующем одному из правил, могут привести к прерыванию, исключению или другим уведомлениям, которые требуется обрабатывать. Такие правила, команды или инструкции могут быть определены, используя любой соответствующий подход или механизм. Например, характеристики способа 300 могут привести к формированию правил, которые могут быть загружены в 405.
В 410 может отслеживаться выполнение в электронном устройстве. Выполнение, соответствующее определенным операциям, может привести к уведомлению, такому как прерывание или исключение, которое должно быть сгенерировано. В 415 может быть определено, было ли сформировано любое такое уведомление. Если так, способ 400 может перейти к 420. В противном случае, способ 400 может вернуться в 410.
В 420 для выполнения электронного устройства может быть установлена пауза. В 425 может быть записана наблюдаемая операция. Хотя в настоящем случае наблюдаемая операция может обозначать или может не обозначать вредоносное программное обеспечение, данный случай в комбинации с последовательно наблюдаемой операцией может обозначать вредоносное программное обеспечение. Кроме того, может выполняться динамическое изменение конфигурации, загрузка или выгрузка структур правила.
В 430 может быть определено, обозначает ли операция вредоносное программное обеспечение. Такое определение может быть выполнено с учетом ранее наблюдавшихся операций, которые были записаны. Определение может быть выполнено в соответствии со структурами операции, определенными на этапе 300 способа, и загруженными в 405. Если наблюдаемая операция обозначает вредоносное программное обеспечение, тогда этап 400 способа может перейти к 435. Если наблюдаемая операция не обозначает вредоносное программное обеспечение, тогда этап 400 способа может перейти в 440.
В 435 могут быть предприняты последовательные действия. Любое соответствующее действие, такое как уведомление, инициирование исключения программного обеспечения для операционной системы или программного обеспечения безопасности, организация карантина, вывод подозрительного устройства из сети, очистка или удаление объекта, выполняющего эту операцию, могут быть выполнены или может быть дано разрешение. Кроме того, другие объекты, ассоциированные с операцией, могут быть определены и впоследствии помещены в карантин, очищены или удалены.
В 440 может быть определено, требуются ли для наблюдаемой операции какие-либо модификации, добавления, вычитания или другие изменения в существующих правилах, которые должны применяться. Такие изменения могут включать в себя, например, изменения для объектов или для памяти, которые должны отслеживаться, изменения для операций, которые должны обнаруживаться, или изменения для структур операций, которые должны быть согласованы. Если такие изменения не требуются, способ 400 может перейти в 450. Если изменения требуются, в 445 такие модификации могут быть выполнены, и новые правила могут быть загружены в соответствующий механизм ловушки. В 450 выполнение может возобновиться. Этап 400 способа может вернуться к 410.
Этапы 300 и 400 способа могут быть воплощены, используя систему на фиг. 1-2 или любую другую систему, работающую для воплощения этапов 300 и 400 способа. Также, предпочтительная точка инициализации для этапов 300 и 400 способа и порядок элементов, содержащих этапы 300 и 400 способа, могут зависеть от выбранного воплощения. В некоторых вариантах осуществления некоторые элементы, в случае необходимости, могут быть исключены, повторены или скомбинированы. В определенных вариантах осуществления этапы 300 и 400 способов могут быть воплощены частично или полностью в программном обеспечении, воплощенном на считываемом в компьютере носителе информации. Способы 300 и 400 могут быть выполнены теми же или другими пользователями, агентами, электронными устройствами, модулями или другими объектами.
С целью данного раскрытия считываемый компьютером носитель информации может включать в себя любые инструменты или объединение инструментов, которые могут поддерживать данные и/или инструкции в течение определенного периода времени. Считываемый компьютером носитель информации может включать в себя, без ограничений, носители-накопители, такие как устройство накопителя с непосредственным доступом (например, привод жесткого диска или гибкий диск), устройство накопитель последовательного доступа (например, привод для ленты), компакт-диск, CD-ROM, DVD, оперативное запоминающее устройство (RAM), постоянное запоминающее устройство (ROM), электрически стираемое программируемое постоянное запоминающее устройство (EEPROM), и/или память типа флэш; а также среды передачи данных, такие как кабели, оптические волокна и другие электромагнитные и/или оптические носители; и/или любая комбинация представленных выше.
Как описано выше, вредоносное программное обеспечение может самостоятельно изменяться для маскирования своей идентичности. Кроме того, авторы вредоносного программного обеспечения могут выполнять изменения во вредоносном программном обеспечении, для маскировки самих себя. Изменение содержания вредоносного программного обеспечения может привести к изменению в цифровой хеш или сигнатуре вредоносного программного обеспечения. Следовательно, проверка идентичностей объектов в электронном устройстве при сопоставлении со списком известных сигнатур вредоносного программного обеспечения, может не позволить идентифицировать такое измененное вредоносное программное обеспечение. Анализ кода или выполнение статического кода аналогично могут быть неэффективными, поскольку код может меняться в таком полиморфном вредоносном программном обеспечении.
Преимущество системы 100 и этапов 300 и 400 способа может включать в себя обнаружение такого модифицированного вредоносного программного обеспечения. Такое обнаружение может быть выполнено путем обеспечения соответствующего обнаружения алгоритмов, лежащих в основе вредоносного программного обеспечения. Кроме того, система 100 и этапы 300 и 400 способа могут обеспечить такое динамическое профилирование выполнения, не требуя внедрения ловушек в вызовы интерфейса программного приложения, события ядра и т.п. В результате выполнения распознавания по правилам, загруженным в процессор, поведенческий анализ может быть проведен при собственной скорости процессора.
Следующие примеры относятся к дополнительным вариантам осуществления. Специфика в примерах может использоваться в любом месте, в одном или больше вариантах осуществления, описанных выше или здесь. В Примере 1, система для защиты электронного устройства может включать в себя память и набор логики правила доступа вредоносного программного обеспечения, резидентному в памяти. Набор логики правила доступа вредоносного программного обеспечения может включать в себя идентификацию множества объектов электронного устройства, которое требуется отслеживать, идентификацию одной или больше операций между объектами, которые требуется отслеживать, и идентификацию структуры операций, которые требуется отслеживать. Система может включать в себя процессор, соединенный с памятью и выполненный с возможностью, на основе набора логики правила доступа вредоносного программного обеспечения, генерировать уведомление о том, что была выполнена одна из операций. Система может включать в себя модуль борьбы с вредоносным программным обеспечением, выполненный с возможностью, на основе уведомления и структуры операций, определять, обозначают ли операции вредоносное программное обеспечение. Модуль борьбы с вредоносным программным обеспечением может быть дополнительно выполнен с возможностью, на основе уведомления и структуры операций, идентификации дополнительного элемента логики правила доступа вредоносного программного обеспечения, содержащей идентификацию дополнительного объекта, операцию между объектами или структуру операций, которые требуется отслеживать. Модуль борьбы с вредоносным программным обеспечением может быть дополнительно выполнен с возможностью, на основе уведомления и структуры операций, проверки сигнатуры для обеспечения выполнения операций. Операции, предназначенные для отслеживания, могут включать в себя исполнительный переход между объектами. Операции, которые должны отслеживаться, могут включать в себя направление исполнительного перехода между объектами. Операции, которые требуется отслеживать, могут включать в себя исполнительный переход на установленном расстоянии. Операции, которые требуется отслеживать, могут включать в себя изменение указателя инструкций. Операции, которые требуется отслеживать, могут включать в себя выборку инструкции. Операции, которые требуется отслеживать, могут включать в себя частоту операций. Операции, которые требуется отслеживать, могут включать в себя длительность выполнения, измеренную в инструкциях. Операции, которые требуется отслеживать, могут включать в себя длительность выполнения, измеренную в циклах выполнения или циклах тактовой частоты. Операции могут отслеживаться с помощью гипервизора и монитора виртуальной машины. Отслеживаемые объекты могут включать в себя пространство ядра, пространство пользователя, SSDT, DLL, адреса порта I/O, диспетчеры вызова операционной системы, обработки, потоки или другие соответствующие объекты. Уведомление может включать в себя исключение или прерывания. Структура может включать в себя подсчет количества выполнений операций. Структура может включать в себя требование, чтобы определенная операция не наблюдалась. Структура может включать в себя логические ограничения одного или больше из ее элементов.
В примере 2, способ для защиты электронного устройства может включать в себя выполнение мониторинга электронного устройства на основе установленной логики правила доступа вредоносного программного обеспечения. Набор логики правила доступа вредоносного программного обеспечения может включать в себя идентификацию множества объектов электронного устройства, предназначенного для отслеживания, идентификацию одной или больше операций между объектами, предназначенными для отслеживания, и идентификацию структуры операций, для которых требуется отслеживание. Способ может дополнительно включать в себя генерирование уведомления о том, что одна из операций произошла на основе установленной логики правила доступа вредоносного программного обеспечения и на основе уведомления и структуры операций, определяя, обозначают ли операции вредоносное программное обеспечение. Способ может дополнительно включать в себя, на основе уведомления и структуры операций, идентификацию дополнительного элемента логики правила доступа вредоносного программного обеспечения, содержащей идентификацию дополнительного объекта, операцию между объектами или структуру операций, предназначенных для отслеживания. Способ может дополнительно включать в себя, на основе уведомления и структуры операций, выполнение проверки сигнатуры в отношении причины операции. Операции, предназначенные для отслеживания, могут включать в себя ответвление выполнения между объектами. Операции, предназначенные для отслеживания, могут включать в себя направление ответвления выполнения между объектами. Операции, предназначенные для отслеживания, могут включать в себя ответвление выполнения на определенное расстояние. Операции, предназначенные для отслеживания, могут включать в себя изменение указателя инструкций. Операции, предназначенные для отслеживания, могут включать в себя выборку инструкций. Операции, предназначенные для отслеживания, могут включать в себя частоту операции. Операции, предназначенные для отслеживания, могут включать в себя длительность выполнения, измеренную в инструкциях. Операции, предназначенные для отслеживания, могут включать в себя длительность выполнения, измеренную в циклах выполнения или циклах тактовой частоты. Операции могут отслеживаться с помощью гипервизора или монитора виртуальной машины. Отслеживаемые объекты могут включать в себя пространство ядра, пространство пользователя, SSDT, DLL, диспетчеры вызова операционной системы, обработки, потоки, I/O порты или другие соответствующие объекты. Уведомление может включать в себя исключение или прерывание. Структура может включать в себя подсчет количества выполнений операций. Структура может включать в себя требование, чтобы определенная операция не наблюдалась. Структура может включать в себя логические ограничения одного или больше ее элементов.
В примере 3, по меньшей мере, один считываемый устройством носитель информации может включать в себя выполнимые компьютером инструкции, содержащиеся на считываемом в компьютере носителе информации. Они могут представлять собой инструкции, считываемые процессором. Инструкции, когда их считывают и выполняют, могут обеспечивать выполнение процессором отслеживания электронного устройства на основе набора логики правила доступа вредоносного программного обеспечения. Набор из набора логики правила доступа вредоносного программного обеспечения может включать в себя идентификацию множества объектов электронного устройства, предназначенного для отслеживания, идентификацию одной или больше операций между объектами, предназначенными для отслеживания, и идентификацию структуры операций, предназначенных для отслеживания. Инструкции могут дополнительно обеспечивать генерирование процессором уведомления о том, что одна из операций была выполнена на основе логики правила доступа вредоносного программного обеспечения, и на основе уведомления и структуры операций, определять, обозначает ли операция вредоносное программное обеспечение. Может быть обеспечена идентификация процессором, на основе уведомления и структуры операций, дополнительного элемента логики правила доступа вредоносного программного обеспечения, содержащему идентификацию дополнительного объекта, операцию между объектами или структуру операций, предназначенных для отслеживания. Процессор может дополнительно обеспечивать выполнение, на основе уведомления и структуры операций, проверки сигнатуры для причины операции. Операции, предназначенные для отслеживания, могут включать в себя исполнительный переход между объектами. Операции, предназначенные для отслеживания, могут включать в себя направление исполнительного перехода между объектами. Операции, предназначенные для отслеживания, могут включать в себя исполнительный переход на установленное расстояние. Операции, предназначенные для отслеживания, могут включать в себя изменение указателя инструкций. Операции, предназначенные для отслеживания, могут включать в себя выборку инструкции. Операции, предназначенные для отслеживания, могут включать в себя частоту операций. Операции, предназначенные для отслеживания, могут включать в себя длительность выполнения, измеренную в инструкциях. Операции, предназначенные для отслеживания, могут включать в себя длительность выполнения, измеренную в циклах выполнения или циклах тактовой частоты. Операции могут отслеживаться с помощью гипервизора или монитора виртуальной машины. Отслеживаемые объекты могут включать в себя пространство ядра, пространство пользователя, SSDT, DLL, порты I/O, диспетчеры вызова операционной системы, обработки, потоки или другие соответствующие объекты. Уведомление может включать в себя исключение или прерывание. Структура может включать в себя подсчет количества выполнений операций. Структура может включать в себя требование, состоящее в том, чтобы определенная операция не наблюдалась. Структура может включать в себя логические ограничения одного или больше из ее элементов.
В примере 4 система для защиты электронного устройства может включать в себя средство для отслеживания выполнения электронным устройством, на основе установленной логики правила доступа вредоносного программного обеспечения. Установка для установки логики правила доступа вредоносного программного обеспечения может включать в себя идентификацию множества объектов электронного устройства, предназначенного для отслеживания, идентификацию одной или больше операций между объектами, предназначенными для отслеживания, и идентификацию структуры операций, предназначенных для отслеживания. Система может дополнительно включать в себя средство генерирования уведомления о том, что одна из операций может быть выполнена на основе установленной логики правила доступа вредоносного программного обеспечения, и на основе уведомления и структуры операций, определяющих, обозначают ли операции вредоносное программное обеспечение. Система может дополнительно включать в себя средство для идентификации, на основе уведомления и структуры операций, дополнительного элемента логики правила доступа вредоносного программного обеспечения, содержащей идентификацию дополнительного объекта, операцию между объектами или структуру операций, предназначенных для отслеживания. Система может дополнительно включать в себя средство выполнения проверки сигнатуры, на основе уведомления и структуры операций, причины операции. Операции, предназначенные для отслеживания, могут включать в себя исполнительный переход между объектами. Операции, предназначенные для отслеживания, могут включать в себя направление исполнительного перехода между объектами. Операции, предназначенные для отслеживания, могут включать в себя исполнительный переход на определенное расстояние. Операции, предназначенные для отслеживания, могут включать в себя изменение указателя инструкций. Операции, предназначенные для отслеживания, могут включать в себя выборку инструкций. Операции, предназначенные для отслеживания, могут включать в себя частоту операции. Операции, предназначенные для отслеживания, могут включать в себя длительность выполнения, измеренную в инструкциях. Операции, предназначенные для отслеживания, могут включать в себя длительность выполнения, измеренную в циклах выполнения или циклах тактовой частоты. Операции могут отслеживаться с помощью гипервизора или монитора виртуальной машины. Отслеживаемые объекты могут включать в себя пространство ядра, пространство пользователя, SSDT, DLL, порты I/O, диспетчеры вызова операционной системы, обработки, потоки или другие соответствующие объекты. Уведомление может включать в себя исключение или прерывание. Структура может включать в себя подсчет количества выполнений операций. Структура может включать в себя требование, состоящее в том, чтобы определенная операция не наблюдалась. Структура может включать в себя логические ограничения одного или больше из ее элементов.
Специфика в примерах, представленных выше, может использоваться повсеместно в одном или больше вариантах осуществления.
Хотя настоящее раскрытие было подробно описано, следует понимать, что различные изменения, замены и модификации могут быть выполнены в отношении него, без выхода за пределы сущности и объема раскрытия, которые определены в приложенной формуле изобретения.