Профилирование выполнения кода
Иллюстрации
Показать всеИзобретение относится к компьютерной безопасности. Технический результат заключается в обеспечении новой системы и нового способа обнаружения вредоносных программ, которые не могут быть обнаружены известными системами и способами, для защиты электронного устройства. Система защиты электронного устройства содержит набор логики правил доступа вредоносного программного обеспечения, содержащий: идентификацию множества объектов электронного устройства, подлежащих отслеживанию; идентификацию одной или больше операций между объектами, подлежащих отслеживанию; и идентификацию структуры операций, подлежащих отслеживанию; и процессор, выполненный с возможностью генерирования, на основе набора логики правил доступа вредоносного программного обеспечения, уведомления о выполнении одной из операций, подлежащих отслеживанию; модуль борьбы с вредоносным программным обеспечением, выполненный с возможностью определения, на основе уведомления и структуры наблюдаемых операций, указывают ли операции, подлежащие отслеживанию, на вредоносное программное обеспечение. 4 н. и 20 з.п. ф-лы, 4 ил.
Реферат
Область техники, к которой относится изобретение
Варианты осуществления настоящего изобретения, в общем, относятся к компьютерной безопасности и к защите от вредоносного программного обеспечения, и, более конкретно, к профилированию выполнения кода.
Уровень техники
Заражение компьютеров и других электронных устройств вредоносным программным обеспечением происходит все чаше, и его трудно обнаруживать и удалять. Решения, направленные против вредоносного программного обеспечения, могут потребовать сопоставление сигнатуры злонамеренного кода или файлов с оцениваемым программным обеспечением для определения того, что программное обеспечение является вредным для компьютерной системы. Вредоносное программное обеспечение может менять свое представление в результате использования полиморфных программ или исполняемых файлов, в которых вредоносное программное обеспечение меняет свою форму для предотвращения обнаружения с использованием решений, направленных против вредоносного программного обеспечения. В таком случае решения, направленные против вредоносного программного обеспечения, могут не иметь возможности обнаруживать новое или преобразованное вредоносное программное обеспечение во время атаки в "нулевой день". Вредоносное программное обеспечение может включать в себя, но не ограничено этим, шпионское программное обеспечение, руткиты, программы, ворующие пароли, спам, источники фишинговых атак, источники атак на основе "отказа в услуге", вирусы, регистрирующие программы, трояны, рекламное программное обеспечение или любое другое цифровое содержание, которое приводит к нежелательным действиям.
Краткое описание чертежей
Для более полного понимания вариантов осуществления настоящего изобретения и его свойств и преимуществ далее будет сделана ссылка на следующее описание, которое следует рассматривать совместно с приложенными чертежами, на которых:
на фиг. 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), затем (Е), но без появления (С). Таким образом, в структуре может испол