RU2634205C2 - Оценка процесса для выявления вредоносных программ в виртуальных машинах - Google Patents

Оценка процесса для выявления вредоносных программ в виртуальных машинах Download PDF

Info

Publication number
RU2634205C2
RU2634205C2 RU2016103212A RU2016103212A RU2634205C2 RU 2634205 C2 RU2634205 C2 RU 2634205C2 RU 2016103212 A RU2016103212 A RU 2016103212A RU 2016103212 A RU2016103212 A RU 2016103212A RU 2634205 C2 RU2634205 C2 RU 2634205C2
Authority
RU
Russia
Prior art keywords
evaluated
indicator
virtual machine
running
evaluator
Prior art date
Application number
RU2016103212A
Other languages
English (en)
Other versions
RU2016103212A (ru
Inventor
Сандор ЛУКАКС
Раул-Василе ТОША
Паул-Даниэл БОКА
Георге-Флорин ХАЖМАШАН
Андрей-Влад ЛУЦАС
Original Assignee
БИТДЕФЕНДЕР АйПиАр МЕНЕДЖМЕНТ ЛТД
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by БИТДЕФЕНДЕР АйПиАр МЕНЕДЖМЕНТ ЛТД filed Critical БИТДЕФЕНДЕР АйПиАр МЕНЕДЖМЕНТ ЛТД
Publication of RU2016103212A publication Critical patent/RU2016103212A/ru
Application granted granted Critical
Publication of RU2634205C2 publication Critical patent/RU2634205C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Изобретение относится к области защиты компьютерных систем от вредоносных программ. Техническим результатом является помещение компонента, обнаруживающего запуски процесса, за пределами соответствующей виртуальной машины на более высокий уровень привилегий процессора, чем уровень привилегий операционной системы, что обеспечивает возможность предотвращать сокрытие вредоносного программного обеспечения от компонентов защиты от вредоносных программ. Описанные системы и способы обеспечивают возможность защиты компьютерной системы от вредоносных программ, в частности от вирусов и руткитов. Антивредоносный компонент выполняется внутри виртуальной машины (VM), предоставленной гипервизором. Модуль самоанализа памяти выполняется вне виртуальной машины на уровне гипервизора привилегии процессора и защищает процесс, выполняющийся внутри виртуальной машины посредством защиты от записи страницы памяти соответствующего процесса. Посредством комбинирования антивредоносных компонентов, выполняющихся внутри и снаружи соответствующей VM, некоторые варианты осуществления изобретения могут использовать множество данных поведения, к которым имеют доступ компоненты внутри VM, с обеспечением при этом целостности этих компонент снаружи соответствующей VM. 3 н. и 18 з.п. ф-лы, 11 ил.

Description

УРОВЕНЬ ТЕХНИКИ
Изобретение относится к системам и способам защиты компьютерных систем от вредоносных программ, в частности к системам защиты от вредоносных программ, применяющим способ аппаратной виртуализации.
Во всем мире вредоносное программное обеспечение, известное также как вредоносные программы, наносит ущерб большому количеству компьютерных систем. В ряде своих форм, таких, например, как компьютерные вирусы, черви и руткиты, вредоносные программы представляют собой серьезную опасность для миллионов пользователей компьютеров, делая их уязвимыми, в частности, в отношении потери данных и секретной информации, хищения личных данных и снижения производительности.
Технология аппаратной виртуализации делает возможным создание искусственных компьютерных сред, которые известны под названием "виртуальная машина" и во многих отношениях ведут себя как физические компьютерные системы. В типичных приложениях, в частности, при применении консолидации серверов и инфраструктуры как услуги (IAAS) на одной физической машине одновременно могут работать множество виртуальных машин, делящих между собой аппаратные ресурсы, что позволяет снизить капиталовложения и стоимость эксплуатации. Каждая виртуальная машина может использовать собственную операционную систему и/или программные приложения отдельно от других виртуальных машин. Из-за постоянного распространения вредоносных программ потенциально защиты от вредоносных программ требует каждая виртуальная машина, работающая в такой среде.
Техническое решение по виртуализации, обычно применяемое в данной области техники, включает в себя гипервизор, также известный под названием "монитор виртуальных машин", который состоит из уровня, программного обеспечения, действующего между вычислительной аппаратной частью и операционной системой (OS) виртуальной машины, и имеет большие привилегии на использование ресурсов процессора, чем соответствующая OS. Поскольку некоторые вредоносные программы работают на уровне привилегий OS, существует интерес к развитию антивредоносных решений, выполняющихся на уровне привилегий гипервизора.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
В соответствии с одним аспектом хостовая система содержит по меньшей мере один процессор, конфигурированный, чтобы выполнять гипервизор, конфигурированный, чтобы предоставлять виртуальную машину, оцениватель процесса, выполняющийся в виртуальной машине, модуль самоанализа памяти, выполняющийся вне виртуальной машины, и модуль классификации процесса. Оцениватель процесса конфигурирован, чтобы определять, осуществляет ли какое-либо действие оцениваемый процесс, выполняющийся в виртуальной машине, и в ответ, когда оцениваемый процесс осуществляет это действие, передавать в модуль классификации процесса первого индикатора оценки процесса, определенного для оцениваемого процесса. Модуль самоанализа памяти конфигурирован, чтобы перехватывать вызов функции операционной системы для обнаружения запуска защищаемого процесса, выполняющегося в виртуальной машине, причем функция операционной системы предназначена для добавления защищаемого процесса в список процессов, выполняющихся в виртуальной машине, и в ответ на обнаружение этого запуска определять, пытается ли оцениваемый процесс модифицировать страницу памяти защищаемого процесса, и в ответ, когда оцениваемый процесс пытается модифицировать страницу памяти, передавать в модуль классификации процесса второго индикатора оценки процесса, определенного для оцениваемого процесса. Модуль классификации процесса конфигурирован, чтобы получать первый индикатор оценки процесса и второй индикатор оценки процесса и в ответ определять, является ли оцениваемый процесс вредоносным в соответствии с первым индикатором оценки процесса и вторым индикатором оценки процесса.
В соответствии с еще одним аспектом постоянный машиночитаемый носитель кодирует команды, которые при выполнения на хостовой системе, содержащей по меньшей мере один процессор, побуждают хостовую систему образовывать гипервизор, конфигурированный для предоставления виртуальной машины, оценивателя процесса, выполняющегося в этой виртуальной машине, модуля самоанализа памяти, выполняющегося вне этой виртуальной машины, и модуля классификации процесса. Оцениватель процесса конфигурирован, чтобы определять, осуществляет ли какое-либо действие оцениваемый процесс, выполняющийся в виртуальной машине, и в ответ, когда оцениваемый процесс осуществляет это действие, передавать в модуль классификации процесса первого индикатора оценки процесса, определенного для оцениваемого процесса. Модуль самоанализа памяти конфигурирован, чтобы перехватывать вызов функции операционной системы для обнаружения запуска защищаемого процесса, выполняющегося в виртуальной машине, причем функция операционной системы конфигурирована, чтобы добавлять защищаемый процесс в список процессов, выполняющихся в виртуальной машине, и в ответ на обнаружение этого запуска определять, пытается ли оцениваемый процесс модифицировать страницу памяти защищаемого процесса, и в ответ, когда оцениваемый процесс пытается модифицировать страницу памяти, передавать в модуль классификации процесса второго индикатора оценки процесса, причем второй индикатор оценки процесса определен для оцениваемого процесса. Модуль классификации процесса конфигурирован, чтобы получать первый индикатор оценки процесса и второй индикатор оценки процесса и в ответ определять, является ли оцениваемый процесс вредоносным в соответствии с первым индикатором оценки процесса и вторым индикатором оценки процесса.
В соответствии с еще одним аспектом способ включает в себя применение по меньшей мере одного процессора хостовой системы для получения первого индикатора оценки процесса, определенного для оцениваемого процесса, выполняющегося в виртуальной машине, предоставленной гипервизором, выполняющимся на хостовой системе. Кроме того, этот способ включает в себя применение по меньшей мере одного процессора для получения второго индикатора оценки процесса, определенного для оцениваемого процесса, и в ответ на получение первого индикатора оценки процесса и второго индикатора оценки процесса применение по меньшей мере одного процессора для определения того, является ли оцениваемый процесс вредоносным в соответствии с первым индикатором оценки процесса и вторым индикатором оценки процесса. Определение первого индикатора оценки процесса включает в себя применение оценивателя процесса, выполняющегося в виртуальной машине, для определения того, осуществляет ли оцениваемый процесс первое действие. Определение второго индикатора оценки процесса включает в себя применение модуля самоанализа памяти, выполняющегося вне виртуальной машины, для определения того, осуществляет ли оцениваемый процесс второе действие.
В соответствии с еще одним аспектом способ включает в себя применение по меньшей мере одного процессора хостовой системы для выполнения модуля самоанализа памяти, причем модуль самоанализа памяти выполняется вне виртуальной машины, предоставленной гипервизором, выполняющимся на хостовой системе, при этом выполнение модуля самоанализа памяти включает в себя обнаружение запуска процесса, выполняющегося в виртуальной машине. Кроме того, способ в ответ на обнаружение модулем самоанализа памяти запуска процесса включает в себя применение по меньшей мере одного процессора для определения первого индикатора оценки процесса и второго индикатора оценки процесса. Кроме того, способ включает в себя в ответ на определение первого индикатора оценки и второго индикатора оценки применение по меньшей мере одного процессора для определения, является ли этот процесс вредоносным в соответствии с первым индикатором оценки процесса и вторым индикатором оценки процесса.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Вышеупомянутые аспекты и преимущества изобретения будут более понятны при прочтении нижеследующего подробного описания со ссылками на чертежи, на которых изображено следующее.
Фиг. 1 изображает примерную конфигурацию аппаратных средств хостовой компьютерной системы, защищенной от вредоносных программ в соответствии с некоторыми вариантами осуществления изобретения.
Фиг. 2 изображает примерную группу виртуальных машин, предоставленных гипервизором, выполняемым в хостовой системе фиг. 1, и приложение защиты, выполняющееся вместе с модулем самоанализа памяти для защиты виртуальной машины в соответствии с некоторыми вариантами осуществления изобретения.
Фиг. 3 иллюстрирует примерную иерархию программных объектов, включая группу антивредоносных объектов, выполняющихся в хостовой системе на различных уровнях привилегий процессора, включая группу антивредоносных объектов в соответствии с некоторыми вариантами осуществления изобретения.
Фиг. 4 иллюстрирует примерный модуль классификации процесса, получающий множество индикаторов оценки процесса, определенных для процесса множеством оценивателей процесса в соответствии с некоторыми вариантами осуществления изобретения.
Фиг. 5 изображает примерную последовательность операций, выполняемых модулем классификации процесса (см. фиг. 4) в соответствии с некоторыми вариантами осуществления изобретения.
Фиг. 6 изображает примерное отображение адресов памяти в конфигурации системы согласно фиг. 2 в соответствии с некоторыми вариантами осуществления изобретения.
Фиг. 7 иллюстрирует примерный поток выполнения группы процессов в среде Windows®. Сплошные стрелки показывают примерный поток выполнения при отсутствии системы защиты от вредоносных программ. Пунктирные стрелки показывают модификации в потоке исполнения, введенные множеством оценивателей процесса, выполняющихся в соответствии с некоторыми вариантами осуществления изобретения.
Фиг. 8 иллюстрирует примерную последовательность операций, выполняемых модулем самоанализа памяти (см. фиг. 2 и 3) в соответствии с некоторыми вариантами осуществления изобретения.
Фиг. 9 изображает примерную последовательность операций, выполняемых модулем самоанализа памяти для защиты страницы памяти в соответствии с некоторыми вариантами осуществления изобретения.
Фиг. 10 иллюстрирует примерную конфигурацию, включающую в себя множество хостовых систем, соединенных с сервером защиты при помощи компьютерной сети.
Фиг. 11 иллюстрирует примерную антивредоносную транзакцию между хостовой системой и сервером защиты в соответствии с некоторыми вариантами осуществления изобретения.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
В нижеследующем описании подразумевается, что все перечисленные соединения между схемами и устройствами могут представлять собой непосредственные функциональные соединения или опосредованные функциональные соединения посредством промежуточных схем и устройств. Группа элементов содержит один или множество элементов. Любое перечисление элемента следует понимать как относящееся по меньшей мере к одному элементу. Множество элементов содержит по меньшей мере два элемента. Если не указано другого требования, любые описанные операции способа не обязательно должны выполняться в определенном показанном порядке. Первый элемент (например, данные), полученный из второго элемента, охватывает первый элемент, равный второму элементу, а также первый элемент, генерируемый посредством обработки второго элемента, и опционально другие данные. Принятие определения или решения в соответствии с параметром охватывает принятие определения или решения в соответствии с этим параметром и опционально в соответствии с другими данными. Если не дано другого определения, индикатор некоторого количества/данных может представлять собой само количество/данные, или индикатор, отличающийся от самого количества/данных. Если не дано другого определения, процесс представляет собой частный случай компьютерной программы, представляющей собой последовательность команд, определяющих выполнение компьютерной системой специфической задачи. Если не дано другого определения, страница представляет собой наименьшую единицу виртуализированной физической памяти, отдельно сопоставленной с физической памятью компьютерной системы. Машиночитаемые носители охватывают постоянные носители, например магнитные, оптические и полупроводниковые носители информации (например, жесткие диски, оптические диски, флеш-память, динамическую оперативную память), а также линии связи, например токопроводящие кабели и волоконно-оптические линии связи. В соответствии с некоторыми вариантами осуществления изобретения, среди прочего, в изобретении предлагаются компьютерные системы, содержащие аппаратные средства (например, один или множество процессоров), программированные для осуществления описанных здесь способов, а также содержащиеся на машиночитаемых носителях команды на машинном языке для осуществления описанных здесь способов.
Нижеследующее описание на примерах, не обязательно носящих ограничительный характер, иллюстрирует варианты осуществления изобретения.
Фиг. 1 изображает примерную конфигурацию аппаратных средств хостовой системы 10, выполняющей антивредоносные операции в соответствии с некоторыми вариантами осуществления изобретения. Хостовая система 10 может представлять собой корпоративное вычислительное устройство, например корпоративный сервер, или устройство конечного пользователя, например персональный компьютер или смартфон. Другие хостовые системы включают в себя бытовые электронные устройства, например телевизоры и игровые консоли, или любое другое устройство, имеющее память и процессор, поддерживающий виртуализацию, и нуждающееся в защите от вредоносных программ. Фиг. 1 иллюстрирует примерную компьютерную систему. Другие клиентские устройства, например мобильные телефоны и планшеты, могут иметь другую конфигурацию. В некоторых вариантах осуществление система 10 содержит группу физических устройств, в том числе процессор 12, запоминающее устройство 14, группу устройств 16 ввода, группу устройств 18 вывода, группу устройств 20 хранения данных и группу сетевых адаптеров 22. Все они соединены при помощи группы шин 24.
В некоторых вариантах осуществления изобретения процессор 12 содержит физическое устройство (например, многоядерную интегральную микросхему), выполненное с возможностью выполнения вычислительных и/или логических операций при помощи ряда сигналов и/или данных. В некоторых вариантах осуществления такие логические операции подаются в процессор 12 в виде последовательности процессорных команд (например, в виде машинного кода или программы другого типа). Запоминающее устройство 14 может содержать постоянный машиночитаемый носитель (например, ОЗУ), хранящий данные/сигналы, полученные или сгенерированные процессором 12 в процессе выполнения команд. Устройства 16 ввода, помимо прочего, могут включать в себя компьютерные клавиатуры, мышь и микрофоны, в том числе соответствующие аппаратные интерфейсы и/или адаптеры, позволяющие пользователю вводить данные и/или команды в систему 10. Устройства 18 вывода могут включать в себя устройства отображения, например мониторы и громкоговорители, а также аппаратные интерфейсы или адаптеры, например графические платы, благодаря которым система 10 может передавать данные пользователю. В некоторых вариантах осуществления изобретения устройства 16 ввода и устройства 18 вывода, например, в случае устройств с сенсорным экраном, могут совместно использовать общую часть программного обеспечения. Устройства 20 хранения данных включают в себя машиночитаемые носители, делающие возможным энергонезависимое хранение, чтение и запись программируемых команд и/или данных. Примерные устройства 20 хранения данных включают в себя магнитные и оптические диски, устройства на основе флеш-памяти, а также съемные носители, например CD-диски и/или DVD-диски и приводы. Благодаря группе сетевых адаптеров 22 система 10 может подключаться к компьютерной сети и/или другим устройствам/компьютерным системам. Вместе шины 24 представляют собой множество систем, периферийных и внутрикристальных шин, и/или все другие схемы, делающие возможным обмен данными между устройствами 12-22 хостовой системы 10. Например, шины 24 могут содержать северный мост, соединяющий процессор 12 с запоминающим устройством 14, и/или южный мост, соединяющий процессор 12 с устройствами 16-22.
Фиг. 2 изображает примерную группу виртуальных машин 32а, 32b, выполняющихся в хостовой системе 10 и предоставленных гипервизором 30 в соответствии с некоторыми вариантами осуществления изобретения. Виртуальные машины (VM) общеизвестны в данной области как эмуляции программного средства фактических машин/компьютерных систем. В каждой VM может работать ее собственная операционная система и программное обеспечение независимо от других VM. Гипервизор 30 содержит программное обеспечение, делающее возможным мультиплексирование (совместное использование) множеством виртуальных машин аппаратных ресурсов хостовой системы 10, например процессорных операций, запоминающих устройств, устройств хранения данных, устройств ввода и вывода, и сетевых устройств. В некоторых вариантах осуществления благодаря гипервизору 30 одновременно в хостовой системе 10 с разной степенью изоляции может работать множество виртуальных машин и/или операционных систем (OS). Чтобы сделать возможными такие конфигурации, программное обеспечение, образующее часть гипервизора 30, может создать множество виртуализированных устройств, т.е. устройств, созданных посредством программной эмуляции. Каждое виртуализированное устройство эмулирует физическое аппаратное устройство системы 10, например процессор 12 и запоминающее устройство 14. Кроме того, гипервизор 30 может поставить в соответствие с каждой VM, выполняющейся в хостовой системе 10, группу виртуализированных устройств. Итак, каждая VM 32а, 32b выполняется так, как будто она обладает своей собственной группой физических устройств, т.е. как более или менее полная компьютерная система. Примеры популярных гипервизоров включают VMware vSphere™ фирмы VMware Inc. и бесплатный гипервизор Xen.
В некоторых вариантах осуществления гипервизор 30 содержит модуль 40 самоанализа памяти, конфигурированный для осуществления антивредоносных операций, как описано ниже. Модуль 40 может быть встроен в гипервизор 30 или он может быть предоставлен в виде программного компонента отдельно и независимо от гипервизора 30, но он выполняется, в сущности, на том же уровне привилегий процессора, что и гипервизор 30. Один модуль 40 может быть конфигурирован для защиты от вредоносных программ множества VM, выполняющихся в хостовой системе 10.
Хотя на фиг. 2 для упрощения показано только две VM 32а, 32b, хостовая система 10 одновременно может управлять большим числом VM, например сотнями VM, и в течение работы хостовой системы 10 число таких VM может изменяться. В некоторых вариантах осуществления в каждой VM 32а, 32b выполняется гостевая операционная система 34а, 34b и соответственно группа программных приложений 42а, 42b, 42с и 44, выполняющихся независимо от других VM, выполняющихся в хостовой системе 10. Каждая OS 34а, 34b содержит программное обеспечение, обеспечивающее интерфейс для (виртуализированных) аппаратных средств соответствующей VM 32а, 32b, и действует в качестве хоста для программных приложений, выполняющихся в соответствующей OS. Операционные системы 34а, 34b могут содержать любую широкодоступную операционную систему, например, среди прочих, Windows®, MacOS®, Linux®, iOS®, или Android™. Приложения 42a-42c, например, могут включать в себя приложение для обработки текстов, приложение для обработки изображений, приложение базы данных, браузерное приложение и приложение, использующее электронные средства связи. Если в нижеследующем описании программное обеспечение выполняется в виртуальном процессоре виртуальной машины, то говорится, что оно выполняется в соответствующей виртуальной машине. Например, в примере, показанном на фиг. 2, приложение 42b выполняется в VM 32а, в то время как приложение 42с выполняется в VM 32b. Напротив, модуль самоанализа памяти 40 выполняется вне VM 32а, 32b.
В примере, показанном на фиг. 2, приложение 44 защиты, выполняющееся в гостевой OS 34b, конфигурировано для осуществления антивредоносных операций вместе с модулем 40 самоанализа памяти, как подробно описано ниже, с возможностью защиты виртуальной машины 32b от вредоносных программ. В некоторых вариантах осуществления один экземпляр приложения 44 может выполняться в каждой из множества VM, выполняющихся в хостовой системе 10, при этом каждый такой экземпляр выполнен с возможностью взаимодействия с модулем 40 самоанализа, чтобы защитить соответствующую виртуальную машину. Приложение 44 защиты может представлять собой автономную программу или оно может быть частью программного пакета, содержащего, помимо прочего, компоненты для защиты от вредоносных программ, спама и шпионского программного обеспечения.
Фиг. 3 иллюстрирует иерархию программных объектов, выполняющихся в хостовой системе 10 в соответствии с некоторыми вариантами осуществления изобретения. Фиг. 3 представлена с точки зрения уровней привилегий процессора, которые в данной области известны также, как слои или кольца защиты. В некоторых вариантах осуществления каждый такой слой или кольцо защиты отличается группой команд, которую разрешается выполнять программному объекту, выполняющемуся на соответствующем уровне привилегий процессора. Если программный объект пытается выполнить команду, выполнение которой на соответствующем уровне привилегий не разрешено, то эта попытка может вызвать событие в работе процессора, например исключительное событие, событие ошибки или событие выхода из виртуальной машины. В некоторых вариантах осуществления переключение между уровнями привилегий может достигаться при помощи набора специальных команд. Такие примерные команды включают команды SYSCALL/SYSENTER для переключения с уровня пользователя на уровень ядра, SYSRET/SYSEXIT для переключения с уровня ядра на уровень пользователя, VMCALL для переключения с уровня пользователя или уровня ядра на корневой уровень, и VMRESUME для переключения с корневого уровня на уровень ядра или уровень пользователя.
В некоторых вариантах осуществления гипервизор 30 берет на себя управление процессором 12 на самом привилегированном уровне (например, режим VMXroot на платформах Intel®, поддерживающих виртуализацию, также известный, как кольцо -1 или корневой режим), таким образом, создавая аппаратную платформу виртуализации, предоставляемую в виде виртуальной машины 32 для другого программного обеспечения, выполняющегося в хостовой системе 10. Операционная система 34, например операционные системы 34а, 34b на фиг. 2, выполняется в виртуальной среде VM 32, причем OS 34 имеет меньшие привилегии процессора, чем гипервизор 30 (например, кольцо 0 на платформах Intel или режим ядра). Группа приложений 42d, 42е выполняется с более низкой привилегией процессора, чем OS 34 (например, кольцо 3 или режим пользователя).
В некоторых вариантах осуществления части приложений 44 защиты могут выполняться на пользовательском уровне привилегии процессора, т.е. на том же уровне, что и приложения 42d, 42е. Например, такие части могут включать в себя графический интерфейс пользователя, информирующий пользователя о любых вредоносных программах или угрозах безопасности, обнаруженных в соответствующей VM, и получение вводимых пользователем данных, например, показывающих требуемую опцию для конфигурации приложения 44. Еще один пример компонента, выполняющегося на уровне пользователя, представляет собой оцениватель процесса, работающий на уровне пользователя, как описано ниже. Другие части приложения 44 могут выполняться на уровне привилегий ядра. Например, приложение 44 может установить драйвер 36 защиты от вредоносных программ и модуль 38 классификации процесса, работающие в режиме ядра. Примерный драйвер 36 защиты от вредоносных программ обеспечивает функцию приложения 44 для защиты от вредоносных программ, например для сканирования памяти на вредоносные сигнатуры и/или обнаружения вредоносного поведения процессов и/или других программных объектов, выполняющихся в OS 34.
В некоторых вариантах осуществления модуль 38 классификации процесса конфигурирован, чтобы получать данные оценки процесса от множества программных компонентов, причем данные оценки процесса определены для оцениваемого процесса, и чтобы определять, является ли оцениваемый процесс вредоносным в соответствии с соответствующими данными. Процесс представляет собой пример машинной программы, например приложение или часть операционной системы, и отличается тем, что он имеет по меньшей мере один поток выполняемых задач и область виртуальной памяти, присвоенной ему операционной системой и содержащей исполнимый код. В некоторых вариантах осуществления операционная система управляет процессами, выполняющимися в данное время в хостовой системе 10 (или в случае виртуализации - в виртуальной машине 32). Это управление, помимо прочего, включает в себя присваивание виртуальной памяти каждому процессу и составление очередности выполнения каждого процесса или его потока.
Фиг. 4 иллюстрирует примерный модуль 38 классификации процесса, получающий множество индикаторов 52a-52d оценки процесса, каждый из которых определен одним компонентом оценивателя процесса. На фиг. 4 такие компоненты оценивателя, в том числе, включают в себя оцениватель 50а процесса пользовательского уровня, оцениватель 50b процесса уровня ядра и оцениватель 50с системных вызовов. Оцениватели 50а-50с могут быть установлены драйвером 36 защиты от вредоносных программ или образовывать часть этого драйвера. Каждый из этих оценивателей может выполняться независимо от других оценивателей и определять множество индикаторов оценки оцениваемого процесса. Подробнее функция оценивателей 50а-50с описана ниже. В некоторых вариантах осуществления некоторые индикаторы оценки процесса, например индикаторы 52а-52с, показанные на фиг. 4, определены компонентами, выполняющимися в VM 32, в то время как другие индикаторы оценки процесса, например 52d, определены компонентами, выполняющимися вне VM 32 (например, модулем 40 самоанализа памяти).
Некоторые индикаторы оценки могут указывать на вредоносность, т.е. они могут показывать, что оцениваемый процесс является вредоносным процессом. Некоторые индикаторы оценки могут указывать на вредоносность не сами по себе, а в сочетании с другими индикаторами оценки. Каждый индикатор 52a-52d оценки может быть определен в соответствии с особым способом или критерием. Примерный индикатор процесса, определенный для оцениваемого процесса, может, например, содержать индикатор поведения, показывающий, осуществил ли оцениваемый процесс, или сделал попытку осуществления определенного действия, например редактирование ключа системного регистра VM 32, или запись в страницу памяти, связанную с защищаемым программным объектом. Другой примерный индикатор оценки процесса может показывать, содержит ли область памяти, связанная с оцениваемым процессом, вредоносную сигнатуру. В некоторых вариантах осуществления каждый индикатор 52а-52с содержит индикатор идентификации процесса, например идентификатор процесса, метку или хеш-индекс, благодаря которому модуль 38 может идентифицировать процесс, для которого был определен соответствующий индикатор.
В некоторых вариантах осуществления индикатор оценки процесса может содержать балльную оценку, определенную соответствующим оценивателем процесса и указывающую на степень вредоносности соответствующего процесса. Альтернативно такие оценки могут быть определены модулем 38 в соответствии с индикаторами 52a-52d оценки процесса. Оценки вредоносности могут быть двоичными (1/0, да/нет) или варьировать в непрерывной области значений. Например, оценка вредоносности, могущая варьировать в области значений, содержит число, указывающее на правдоподобие (например, вероятность) того, что оцениваемый процесс вредоносен. Такая оценка может варьировать, например, в пределах от 0 до 1 или от 0 до 100%. Балльные оценки могут относиться к определенному поведению. Например, оцениваемый процесс может получить оценку вредоносности 0,2, если он создает дисковый файл, и оценку вредоносности 0,7, если он модифицирует значение регистра Windows.
Фиг. 5 изображает примерную последовательность операций, выполняемых модулем 38 классификации процесса в соответствии с некоторыми вариантами осуществления изобретения. При операции 302 модуль 38 получает от оценивателя процесса, который может работать либо в VM 32 (см., например, оцениватели 50а-50с на фиг. 4), либо вне VM 32 (например, модуль 40 самоанализа памяти), индикатор оценки процесса, например индикаторы 52a-52d, показанные на фиг. 4. При операции 304 модуль 38 может идентифицировать процесс, для которого был определен соответствующий индикатор оценки процесса. В некоторых вариантах осуществления модуль 38 классификации процесса может поддерживать для каждого процесса запись всех индикаторов оценки процесса, полученных от разных оценивателей процесса. Кроме того, операция 304 может содержать добавление индикатора, полученного при операции 302, к записи соответствующего процесса.
Чтобы определить, является ли оцениваемый процесс вредоносным, при операции 306 модуль 38 классификации процесса может определить агрегатный показатель, комбинируя отдельные оценки, определенные для соответствующего процесса и полученные от разных оценивателей процесса. Агрегатные показатели, например, могут содержать взвешенную сумму и среднее взвешенное отдельных показателей. В некоторых вариантах осуществления агрегатный показатель может объединять индикаторы/баллы оценки процесса для оцениваемого процесса и индикаторы/баллы оценки процесса, определенные для других процессов или программных объектов. Например, баллы, определенные для оцениваемого процесса, могут быть объединены с баллами, определенными для дочернего процесса оцениваемого процесса, и/или с баллами, определенными для родительского процесса оцениваемого процесса.
При операции 308 модуль 38 может сравнивать агрегатный показатель с определенным пороговым значением. Если агрегатный показатель не превышает этого порогового значения, то модуль 38 может вернуться к вышеописанной операции 302. В некоторых вариантах осуществления пороговое значение может быть установлено в соответствии со значением, определенным в соответствии с вводом, полученным от пользователя соответствующей VM (например, при помощи интерфейса пользователя, предоставленного приложением 44 защиты). Пороговые значение могут отражать параметры защиты, предпочитаемые соответствующим пользователем. Например, если пользователь выбирает строгие меры защиты, то может быть установлено сравнительно низкое пороговое значение, если же пользователь предпочитает более толерантные параметры защиты, то может быть установлено сравнительно высокое пороговое значение. В некоторых вариантах осуществления пороговое значение может быть получено от удаленного сервера защиты, как описано ниже в отношении фиг. 10, 11.
В некоторых вариантах осуществления при операциях 306-308 модуль 38 классификации процесса может определять множество агрегатных показателей и сравнивать каждый агрегатный показатель с (возможно особым) пороговым значением. Каждый такой агрегатный показатель может быть определен в соответствии с особой подгруппой индикаторов оценки процесса. В одном из вариантов осуществления каждая такая группа индикаторов оценки процесса может представлять собой особый класс или тип вредоносных программ (например, трояны, руткиты и т.д.), благодаря этому модуль 38 может производить классификацию обнаруженных вредоносных программ.
Когда агрегатный показатель превышает пороговое значение, при операции 310 модуль 38 может решить, что оцениваемый процесс является вредоносным, и предпринять антивредоносное действие. В некоторых вариантах осуществления такое антивредоносное действие, например, может включать в себя завершение оцениваемого процесса, изоляцию оцениваемого процесса и удаление или блокировку ресурса (например, файла или области памяти) оцениваемого процесса. В некоторых вариантах осуществления антивредоносное действие дополнительно может включать в себя предупреждение об опасности пользователя хостовой системы 10 и/или предупреждение об опасности системного администратора по компьютерной сети, соединенной с хостовой системой 10 при помощи сетевого адаптера (сетевых адаптеров) 22. В некоторых вариантах осуществления антивредоносное действие также может содержать отправку на удаленный сервер защиты отчета о состоянии системы защиты, как описано ниже в отношении фиг. 10, 11.
Примерный модуль 38 классификации процесса, описанный в связи с фиг. 3, 4, работает в VM 32 на уровне привилегий процессора OS (например, на уровне ядра). В альтернативных вариантах осуществления модуль 38 классификации процесса может выполняться в VM 32 в режиме пользователя, или даже вне VM 32, на уровне гипервизора 30, соответствующем уровню привилегий процессора.
В некоторых вариантах осуществления модуль 40 самоанализа выполняет программу, по существу, на том же уровне привилегий, что и гипервизор 30, и выполнен с возможностью осуществлять самоанализ виртуальных машин, например VM 32. Самоанализ VM или программного объекта, выполняющегося в соответствующей VM, помимо прочего, может содержать анализ поведения программного объекта, определение и/или обращение по адресам памяти этих программных объектов, блокировку доступа определенных процессов к содержимому памяти, расположенному по этим адресам, анализ этого содержимого и определение индикаторов оценки процесса соответствующих программных объектов (например, индикатора 52d на фиг. 4). В некоторых вариантах осуществления программные объекты, намеченные для самоанализа при помощи модуля 40, помимо прочего, включают в себя в себя процессы, потоки команд, регистры и структуры данных, например таблицы страниц и драйверные объекты соответствующей VM.
Чтобы выполнить самоанализ VM 32 извне соответствующей VM, некоторые варианты осуществления модуля 40 используют схемы распределения памяти и механизмы процессора 12. Как правило, виртуальные машины работают с виртуализированной физической памятью, т.е. виртуальным представлением фактической физической памяти 14 хостовой системы 10. Виртуализированная физическая память содержит непрерывное пространство виртуализированных адресов, специфическое для каждой VM, выполняющейся в хостовой системе 10, причем часть соответствующего пространства поставлена в соответствие с адресами физической памяти 14 и/или физических устройств 20 хранения данных. В системах, выполненных с возможностью поддержки виртуализации, такое соответствие обычно достигается при помощи специальных структур данных, управляемых процессором 12, например при помощи расширенных таблиц страниц (ЕРТ - extended page tables) и вложенных таблицы страниц (NPT - nested page tables). В таких системах виртуальная физическая память может быть разделена на единицы, известные в данной области как страницы. Страница представляет собой наименьшую единицу виртуализированной физической памяти, отдельно поставленной в соответствие с физической памятью при помощи такого механизма как ЕРТ и/или NPT, т.е. установление соответствия между физической и виртуализированной физической памятью осуществляется со страничной гранулярностью. Как правило, все страницы имеют определенный размер, например 4 килобайта, 2 мегабайта и т.д. Обычно разделение виртуализированной физической памяти на страницы конфигурирует гипервизор 30. В некоторых вариантах осуществления гипервизор 30 также конфигурирует EPT/NPT и, следовательно, соответствие между физической памятью и виртуализированной физической памятью. Фактическая трансляция адреса виртуализированной памяти в адрес физической памяти может содержать просмотр адреса физической памяти в буфере быстрого преобразования адресов (TLB - translation lookaside buffer) хостовой системы 10. В некоторых вариантах осуществления преобразование адресов содержит осуществление просмотра таблицы страниц, включающего ряд последовательных просмотров адресов в группе таблиц страниц и производство вычислений, например прибавление смещения страницы к адресу, относящемуся к соответствующей странице.
Благодаря некоторым конфигурациям оборудования гипервизор 30 может выборочно управлять доступом к данным, хранящимся в каждой странице, например, в результате установки прав доступа к записи и чтению соответствующей страницы. Эти права могут быть установлены, например, посредством изменения элемента соответствующей страницы в ЕРТ или NPT. Таким образом, гипервизор 30 может выбирать, какой программный объект может иметь доступ к данным, хранимым в адресах каждой страницы, и показывать, какие операции разрешено осуществлять с соответствующими данными, например чтение, запись и т.д. Попытка программного объекта, выполняющегося в VM, осуществить операцию, например чтение данных или запись данных в страницу, соответствующего доступа к которой этот объект не имеет, может инициировать событие выхода из виртуальной машины (например, на платформах Intel - событие VMExit, т.е. переход от гостевой машины к хостовой машине). В некоторых вариантах осуществления в результате событий выхода из виртуальной машины управление процессором передается от VM, в которой выполняется соответствующий программный объект, к гипервизору 30 или модулю 40 самоанализа памяти, в результате гипервизор 30 и/или модуль 40 самоанализа памяти может перехватывать и анализировать несанкционированную попытку чтения или записи.
В некоторых вариантах осуществления OS 34 конфигурирует пространство виртуальной памяти (его также называют пространством логических адресов) и предоставляет пространство виртуальной памяти приложению, например приложениям 42d, 42е и 44 (см. фиг. 3). В таких системах OS 34 конфигурирует и поддерживает преобразование между пространством виртуальной памяти и виртуализированной физической памятью VM 32, например, применяя механизм таблицы страниц. В некоторых вариантах осуществления пространство виртуальной памяти процесса также делят на страницы, представляющие собой наименьшую единицу виртуальной памяти, отдельно преобразованной в виртуализированную физическую память операционной системой 34 (виртуальную память преобразуют в виртуализированную физическую память со страничной гранулярностью).
Фиг. 6 иллюстрирует пример преобразования (трансляции) адресов памяти согласно варианту осуществления, показанному на фиг. 2. Программному объекту, например приложению или процессу, выполняющемуся в VM 32, гостевая OS 34 выделяет пространство 214а виртуальной памяти. Если соответствующий программный объект, например, пытается получить доступ к содержимому страницы 60а памяти в пространстве 214а, то виртуализированный процессор гостевой VM 32 в соответствии с таблицами страниц, сконфигурированными и управляемыми гостевой OS 34, преобразует адрес страницы 60а в адрес страницы 32а в пространстве 114 виртуализированной физической памяти VM 32. В данной области адрес 60а также называют гостевым физическим адресом. Гипервизор 30, конфигурирующий виртуализированную физическую память 114 и управляющий ею, преобразует адрес страницы 60b в адрес страницы 60с в физической памяти 14 хостовой системы 10, например, применяя ЕРТ или NPT, как рассмотрено выше.
Аналогично гостевая OS 34 устанавливает пространство виртуальной памяти 214b для приложений (например, 42с) или других программных объектов, выполняющихся в гостевой VM 32b. Виртуализированный процессор гостевой VM 32 в соответствии с таблицами страниц, сконфигурированными и управляемыми гостевой OS 34, преобразует, например, виртуальный адрес 60b в пространстве 214b в адрес 60е в пространстве 114b виртуализированной физической памяти VM 32. Кроме того, гипервизор 30 преобразуют адрес 60е в адрес 60f физической памяти 14.
В некоторых вариантах осуществления гипервизор 30 устанавливает свое собственное пространство 214с виртуальной памяти, содержащее представление физической памяти 14, и применяет механизм преобразования (например, таблицы страниц), чтобы адреса в пространстве 214с преобразовать в адреса физической памяти 14. На фиг. 6 в результате такого примерного преобразования адрес 60g преобразуется в адрес 60h. Аналогично, например, адреса 60с и 60f физической памяти 14 соответствуют соответственно адресам 60k и 60m в пространстве 214с виртуальных адресов гипервизора 30. Благодаря такому преобразованию гипервизор 30 может управлять страницами памяти (например, считывать, записывать и контролировать доступ к ним), относящимися к программным объектам, выполняющимся в различных VM, работающих в хостовой системе 10.
Фиг. 7 иллюстрирует примерный поток выполнения группы процессов 70а, 70b, выполняющихся в VM 32 в соответствии с некоторыми вариантами осуществления изобретения. В примере, изображенном на фиг. 7, показан поток выполнения в системе, в которой выполняется версия OS Windows®. Для других операционных систем, например Linux, могут быть составлены аналогичные диаграммы. Сплошные стрелки показывают поток выполнения при отсутствии системы защиты от вредоносных программ, например приложения 44 защиты. Пунктирные стрелки показывают модификации в этом потоке, полученные в результате наличия оценивателей процесса, выполняющихся в соответствии с некоторыми вариантами осуществления изобретения.
Процесс 70а содержит множество библиотек динамических связей (DLL) 72а-72с. В примере, показанном на фиг. 7, DLL 72с внедрена в процесс 70а (возможно вредоносным) процессом 70b. Внедрение кода является общим названием, применяемым для обозначения ряда способов внедрения кодовой последовательности, например DLL, в пространство памяти существующего процесса, чтобы изменить первоначальную функцию соответствующего процесса. Если процесс 70а выполняет команду, запрашивающую какую-нибудь функцию системы, например запись в дисковый файл или редактирование раздела регистра, то соответствующая команда вызывает непривилегированный API (Application Programming Interface - интерфейс прикладного программирования), например KERNEL32.DLL или NTDLL.DLL. В примере, изображенном на фиг. 7, соответствующий запрос непривилегированного API перехватывается и анализируется поведенческим фильтром 50а, работающим на уровне пользователя. Такие перехватывания могут быть достигнуты благодаря такому способу, как внедрение DLL или процедура перехватывания. Процедура перехватывания представляет собой общее название, применяемое в данной области для обозначения способа перехватывания обращений к функции, или сообщений или событий, которыми обмениваются программные компоненты. Один из примеров использования процедуры перехватывания включает в себя изменение точки входа целевой функции посредством внедрения команды, перенаправляющей выполнение на другую функцию. После такой процедуры перехватывания другая функция может быть выполнена вместо целевой функции или перед целевой функцией. В примере, показанном на фиг. 7, драйвер 36 защиты от вредоносных программ может подключаться к определенным функциям KERNEL32.DLL или NTDLL.DLL, чтобы соответствующие функции перенаправляли выполнение на фильтр 50а. Таким образом, фильтр 50а может определить, что процесс 70а пытается проявить соответствующее поведение, идентифицируемое в соответствии с функцией, осуществляющей это перенаправление. Если фильтр 50а определяет такое поведение, то фильтр 50 может создать индикатор 52а оценки процесса (фиг. 4) и передать индикатор 52а в модуль 38 классификации процесса.
В типичном потоке выполнения непривилегированная функция API может запросить обслуживание у ядра операционной системы. В некоторых вариантах осуществления такие операции осуществляются благодаря выдаче системного вызова, например, на платформах х86 - SYSCALL и SYSENTER. В показанном на фиг. 7 примере такие системные вызовы перехватываются оценивателем 50с системных вызовов. В некоторых вариантах осуществления такое перехватывание, например, содержит модификацию программы обработки системных вызовов посредством изменения значения, хранимого в модельно-специфическом регистре (MSR - model-specific register) процессора 12, которое эффективно перенаправляет выполнение на фильтр 50с. Такие способы известны в данной области как процедура перехватывания с применением MSR. Благодаря этим способам оцениватель 50с системных вызовов может определить, что оцениваемый процесс пытается осуществить определенный системный вызов. При перехватывании таких системных вызовов фильтр 50с системных вызовов может создать индикатор 52с оценки процесса и передать индикатор 52с в модуль 38 классификации процесса.
После системного вызова управление процессора обычно передается в ядро OS 34. В некоторых вариантах осуществления оцениватель 50b процесса уровня ядра конфигурирован, чтобы перехватывать определенные операции ядра OS и, следовательно, определять, что оцениваемый процесс пытается выполнить определенные операции, которые могут быть вредоносными. Для перехватывания таких операций некоторые варианты осуществления могут использовать ряд механизмов фильтрации, встроенных в OS 34 и предоставляемых OS 34. Например, в OS Windows FltRegisterFilter может применяться для перехватывания таких операций, как создание, открытие, запись в файл и удаление файла. В еще одном варианте осуществления оцениватель 50b может использовать ObRegisterCallback, чтобы перехватывать, создавать или дублировать операции с дескриптором объекта, или PsSetCreateProcessNotifyRoutine, чтобы перехватывать создание нового процесса. В еще одном варианте осуществления с применением CmRegisterCallbackEx могут перехватываться операции с реестром Windows, например создание и установка разделов и значений реестра. Для других операционных систем, например Linux®, в данной области известны аналогичные механизмы фильтрации. Если оцениватель 50b процесса в режиме ядра перехватывает такие операции, то оцениватель 50b может создать индикатор 52b оценки процесса и передать индикатор 52b в модуль 38 классификации процесса.
Для передачи данных, например, индикаторов 52а-52с оценки процесса из оценивателей 50а-50с в модуль 38 оценки специалист в данной области техники может применить любой способ взаимодействия между процессами. Например, для взаимодействия между компонентами режима пользователя и режима ядра оцениватели 50а-50с и модуль 38 могут быть конфигурированы, чтобы использовать общую область памяти.
На фиг. 8 показана примерная последовательность операций, выполняемых модулем 40 самоанализа в соответствии с некоторыми вариантами осуществления изобретения. При операции 312 модуль 40 может определить, что в VM 32 запускается процесс, требующий защиты от вредоносных программ (ниже этот процесс называется защищаемым процессом). В некоторых вариантах осуществления такие защищаемые процессы, например, включают в себя процессы, относящиеся к приложению 44 защиты.
Чтобы определить запуск такого защищаемого процесса, модуль 40 может применить структуры данных и/или механизмы, свойственные OS 34. Например, некоторые версии OS Windows управляют процессами, применяя список активных процессов, поддерживаемых ядром. Каждый раз, когда создается процесс, в список активных процессов вставляется индикатор соответствующего процесса, а при завершении соответствующего процесса этот индикатор удаляется из списка. В некоторых вариантах осуществления ядро OS 34 представляет каждый процесс как структуру данных, например блок процесса (EPROCESS) в Windows, который, помимо прочего, содержит дескрипторы для каждого потока соответствующего процесса и уникальный идентификационный номер процесса, благодаря которому OS 34 может идентифицировать соответствующий процесс из множества выполняющихся процессов.
Чтобы определить создание защищаемого процесса (операция 312 на фиг. 8), некоторые варианты осуществления подключаются к функциям, которые манипулируют списком активных процессов, применяя любой способ перехватывания, известный в данный области. Примером такой функции OS Windows является PsplnsertProcess, который добавляет процесс в список активных процессов, если начинается выполнение соответствующего процесса. Некоторые варианты осуществления драйвера 36 защиты от вредоносных программ могут применять перенаправляющую патч для соответствующей функции ядра, например команды VMCALL или команды JMP. Другие варианты осуществления могут применять запись в расширенной таблице страниц (ЕРТ - extended page table), чтобы указать на новый адрес. Эффект таких патчей или внесения изменений в расширенную таблицу страниц заключается в том, чтобы перенаправить выполнение свойственных OS функций на фрагмент кода, предоставляемый модулем 40 самоанализа памяти. После перехватывания, если OS 34 попытается запустить процесс с целью его выполнения, этот фрагмент кода будет выполнен перед кодом соответствующей функции ядра или вместо этого кода, таким образом извещая модуль 40 самоанализа памяти об исполнении соответствующего процесса. В некоторых вариантах осуществления модуль 40 может идентифицировать соответствующий процесс в соответствии с параметром (например, структурой EPROCESS, содержащей уникальный идентификационный номер процесса), передаваемым в функцию ядра при запуске соответствующего процесса. Альтернативный вариант может использовать внесение изменений в память (например, внесение изменений в расширенную таблицу страниц), чтобы получить доступ к адресу области памяти, в которой хранится список активных процессов, и в соответствии с содержимым соответствующей области памяти дополнительное определение адреса структуры EPROCESS, описывающей каждый выполняющийся в данный момент времени процесс.
При операции 314 модуль 40 самоанализа памяти может модифицировать драйвер 36 защиты от вредоносных программ, выполняемый защищаемым процессом. Например, модуль 40 может передать в драйвер 36 защиты от вредоносных программ такой индикатор, как идентификационный номер защищаемого процесса. Затем при операции 316 модуль 40 может получить из драйвера 36 индикатор страницы памяти (например, адрес памяти в виртуальной памяти), в которой хранится ход и/или данные защищаемого процесса. В некоторых вариантах осуществления модуль 40 использует операции 314-316 для перекрытия семантического разрыва, появляющегося из-за того, что модуль 40 выполняется вне VM 32, в то время как защищаемый процесс выполняется в VM 32. Драйвер 36 защиты от вредоносных программ, выполняющийся в режиме ядра в VM 32, может иметь прямой доступ, например, к такой информации, как адрес памяти, используемый защищаемым процессом, например адрес страницы в виртуализированной физической памяти соответствующей VM (см. области 114а, 114b на фиг. 6), хранящей код и/или данные защищаемого процесса. Хотя гипервизор 30 может получить доступ к списку активных процессов, выполняющихся в соответствующей VM, просмотр этого списка для определения всех модулей (например, DLL), загруженных соответствующим процессом, и дальнейшее определение всех адресов страниц памяти, хранящих такие данные или коды, с уровня гипервизора 30 может потребовать значительных вычислений. В некоторых вариантах осуществления еще одна причина последовательности операций 314-316 состоит в том, что данные, относящиеся к непривилегированным процессам, могут перекачиваться OS 34 между физической памятью 14 и другим машиночитаемыми носителями, например устройствами 20 хранения данных. При выполнении вне соответствующей VM модуль 40 самоанализа памяти может определить, когда данные загружаются и выгружаются из физической памяти, но не может получить доступа к таким данным и/или защитить их, в то время как он не присутствует в физической памяти. Напротив, драйвер 36 защиты от вредоносных программ, выполняющийся в VM 32, может без труда получить доступ к странице, выгружаемой из физической памяти, вынуждая OS 34 загрузить соответствующую страницу. Итак, драйвер 36 защиты от вредоносных программ может эффективно составить список всех модулей, применяемых или загружаемых защищаемым процессом, и определить размер и местоположение таких модулей в виртуализированной физической памяти VM 32.
В альтернативном варианте осуществления вместо активного обнаружения запуска защищаемого процесса (см. выше операцию 312) модуль 40 самоанализа памяти может получить индикатор защищаемого процесса от драйвера 36 защиты от вредоносных программ, причем драйвер 36 защиты от вредоносных программ может действительно обнаружить запуск защищаемого процесса из VM 32. В таких вариантах вышеописанная операция 314 уже не нужна. В еще одном варианте осуществления при операции 316 модуль 40 вместо того, чтобы, как описано выше, полагаться на драйвер 36 защиты от вредоносных программ, может фактически произвести вычисления, чтобы определить адрес страницы памяти защищаемого процесса.
При операции 318 модуль самоанализа памяти защищает целевую страницу от нежелательной модификации, например, вредоносным программным обеспечением, пытающимся скомпрометировать VM 32. В данной области известно несколько таких механизмов защиты. Защиту могут обеспечить при помощи гипервизора 30 по запросу модуля 40 самоанализа памяти, применяя структуры данных, например ЕРТ или NPT. Например, посредством модификации битов, устанавливающих право доступа к соответствующим страницам, гипервизор 30 может установить целевую страницу памяти как страницу только для чтения. В некоторых вариантах осуществления гипервизор 30 может перехватывать попытки записи в страницы памяти, выделенные для целевого объекта, и перенаправлять соответствующую попытку для анализа в модуль 40 самоанализа памяти. Более подробно работа модуля 40 в ходе операции 318 описана ниже в связи с фиг. 9.
Чтобы применить к целевой странице защиту от записи, операция 318 может содержать осуществление трансляции адресов в том виде, как показано на фиг. 6, из пространства виртуальных адресов, установленного OS 34 для защищаемого процесса, полностью в физическую память 14 хостовой системы 10 или из пространства виртуализированной физической памяти соответствующей VM в физическую память. Благодаря соответствующей трансляции модуль 40 самоанализа памяти может в соответствии с индикатором, полученным в ходе операции 316 от драйвера 36 защиты от вредоносных программ, определить адрес целевой страницы в фактической физической памяти 14. При такой трансляции могут применить механизм EPT/NPT, как описано в отношении фиг. 6.
При операции 320 модуль 40 может обнаружить завершение защищаемого процесса. В некоторых вариантах осуществления операция 320 может происходить аналогично операции 312, которая описана выше. Например, операция 320 может содержать получение сигнала от функции ядра, конфигурированной для удаления процесса из списка активных процессов VM 32, причем соответствующая функция модифицируется драйвером 36 защиты от вредоносных программ посредством перехватывания (например, путем применения к соответствующей функции патча, например, команды VMCALL, перенаправляющей выполнение в модуль 40). В качестве примера функции Windows, которую могут модифицировать таким способом, можно назвать PspDeleteProcess. Если модуль 40 обнаруживает завершение защищаемого процесса, то операция 322 удаляет защиту соответствующей целевой страницы, например, посредством команды гипервизору 30 на изменение разрешений на запись для целевой страницы.
На фиг. 9 показана последовательность операций, осуществляемых модулем 40 самоанализа памяти для защиты целевой страницы (операция 318 на фиг. 8). В ходе операции 332 модуль 40 может перехватить попытку записи в целевую страницу. Такие попытки, могущие указывать на злой умысел, могут быть перехвачены при помощи гипервизора 30, как описано выше. При операции 334 модуль 40 может идентифицировать процесс, делающий эту попытку. Ниже соответствующий процесс будет называться проблемным процессом. В некоторых вариантах осуществления, чтобы выполнить операцию 334, модуль 40 может использователь содержимое регистра-указателя команд, например, в системах х86 - регистров-указателей команд EIP и/или RIP, чтобы определить процессорные команды (или их адрес), осуществляющие эту попытку, и содержимое регистра CR3, чтобы идентифицировать процесс, к которому относится соответствующая команда. Альтернативно модуль 40 может использовать содержимое сегментного регистра, например, в процессорах х86 - регистров FS и GS, чтобы идентифицировать проблемный процесс в соответствии с определенными структурами данных ядра, которые модифицируются каждый раз, когда OS 34 переключает выполнение между процессами.
При операции 336 модуль 40 может создать индикатор 52d оценки проблемного процесса (см., например, фиг. 4) и передать индикатор 52d в модуль 38 классификации процесса. Примерный индикатор 52d может включать в себя индикатор (например, идентификационный номер процесса) проблемного процесса, определенный при операции 334, и перехваченный в ходе операции 332 индикатор типа действия, которое пытается осуществить проблемный процесс и которое было перехвачено в ходе операции 332 (например, попытка сделать запись в защищенную страницу памяти).
Некоторые вышеописанные способы и системы требуют связи, например обмена данными и/или сообщениями, между компонентами, выполняющимися в VM 32, и компонентами, выполняющимися вне соответствующей VM. Такую связь могут осуществить, применяя любой способ, известный в области виртуализации. Например, чтобы передать данные из компонента, выполняющегося в режиме ядра, например из драйвера 36 защиты от вредоносных программ, в модуль 40 самоанализа памяти (см. например, операцию 316 на фиг. 8), некоторые варианты осуществления применяют привилегированные команды для передачи управления процессором 12 от VM 32 к гипервизору 30. В платформах Intel примером таких привилегированных команд является команда VMCALL, которую могут использовать для оповещения модуля 40 о том, что из VM 32 передаются некоторые данные. Передаваемые фактические данные могут быть размещены в определенной области памяти, совместно используемой драйвером 36 и модулем 40. Чтобы передать данные из модуля 40 самоанализа памяти в драйвер 36 защиты от вредоносных программ (см. например, операцию 314 на фиг. 8 и операцию 336 на фиг. 9), некоторые варианты осуществления применяют механизм ввода прерываний, чтобы оповестить драйвер 36 о том, что извне соответствующей VM передаются данные. Фактические данные могут быть переданы, например, через вышеописанную область совместно используемой памяти.
В некоторых вариантах осуществления хостовая система 10 может быть конфигурирована для обмена с удаленными сервером защиты секретной информацией, например деталями событий обнаружения вредоносного программного обеспечения. Фиг. 10 иллюстрирует такую примерную конфигурацию, в которой множество хостовых систем 10а-10с соединены с сервером защиты 110 при помощи компьютерной сети 26. В примерном варианте осуществления хостовые системы 10а-10с представляют собой отдельные компьютеры, используемые персоналом корпорации, в то время как сервер 110 защиты может включать в себя компьютерную систему, сконфигурированную системным администратором соответствующей корпорации для контроля угроз от вредоносных программ или событий, связанных с безопасностью систем 10а-10с. В другом варианте осуществления, например, при применении систем консолидации серверов и инфраструктуры как услуги (IAAS), в которых каждая хостовая система 10а-10с представляет собой сервер, выполняющий роль хостового компьютера для десятков или сотен виртуальных машин, сервер 110 защиты может включать в себя компьютерную систему, конфигурированную чтобы управлять из центрального местоположения антивредоносными операциями для всех этих VM. В еще одном варианте осуществления сервер 110 защиты может включать в себя компьютерную систему, конфигурированную поставщиком программы для защиты от вредоносного программного обеспечения (например, поставщиком приложения 44 защиты), чтобы получать статистические данные и/или данные о поведении вредоносных программ, обнаруженных в разных системах в пределах сети 26. Сеть 26 может содержать глобальную сеть, например Интернет, в то время как части сети 26 могут содержать локальные сети (LAN - local area networks).
Фиг. 11 иллюстрирует примерный обмен данными между хостовой системой 10 и сервером 110 защиты в варианте, показанном на фиг. 10. Хостовая система 10 может быть конфигурирована для передачи на сервер 110 отчета 80 о состоянии системы защиты и получения от сервера 110 ряда параметров 82 защиты. В некоторых вариантах осуществления отчет 80 о состоянии системы защиты, например, содержит индикаторы оценки процесса и/или оценки, определенные при помощи оценивателей процесса, выполняющихся в хостовой системе 10, и/или агрегатные показатели, определенные при помощи модуля 38 классификации процесса. Отчет 80 о состоянии системы защиты также может содержать данные, идентифицирующие соответствующую виртуальную машину и оцениваемые процессы (например, идентификационные номера процесса, имена, пути, хеши, информацию о версии или другие виды идентификаторов приложений и/или процессов), а также индикаторы, связывающие индикатор оценки процесса или оценку с VM и процессом, для которого она были определены. В некоторых вариантах осуществления отчет 80, кроме того, может содержать статистические данные и/или данные о поведении, относящиеся к процессам и/или приложениям, выполняющимся на хостовой системе 10. Система 10 может быть конфигурирована для передачи отчета 80 после обнаружения вредоносного программного обеспечения и/или в соответствии с расписанием (например, каждые несколько минут, каждый час и т.д.).
В некоторых вариантах осуществления параметры 82 защиты могут содержать рабочие параметры оценивателей процесса (например, параметры фильтров 50а-50с на фиг. 4) и/или параметры модуля 38 классификации процесса. Примером рабочего параметра модуля 38 является пороговое значение для принятия решения о том, является ли вредоносным оцениваемый процесс (см. операцию 308 на фиг. 5 и соответствующее описание). Примером рабочего параметра оценивателя процесса является значение оценки вредоносности, присваиваемое оцениваемому процессу, если оцениваемый процесс осуществляет определенное действие. Например, оцениваемый процесс может получить оценку вредоносности 0,1, если соответствующий процесс делает запись в дисковый файл, и оценку вредоносности 0,7, если он модифицирует значение регистра Windows.
В некоторых вариантах осуществления сервер 110 выполняет алгоритм оптимизации, чтобы динамически регулировать такие параметры для максимизации эффективности обнаружения вредоносных программ, например, для увеличения процента обнаружения с одновременной минимизацией ошибочных положительных результатов. Алгоритмы оптимизации могут получать статистические данные и/или данные о поведении различных процессов, выполняющихся в множестве хостовых систем 10а-10с, в том числе индикаторы оценки процесса и оценки, полученные модулем 38 классификации процесса от разных оценивателей процесса, и определять оптимальные значения параметров. Затем эти значения при помощи сети 26 передаются в соответствующие хостовые системы. В некоторых вариантах осуществления, чтобы определить оптимальное значение параметра, сервер 110 может калибровать работу модуля 38 классификации процесса и/или оценивателей 50а-50с процесса, применяя ряд процессов, о которых известно, что они чисты (не повреждены вредоносным программным обеспечением). В примерном сценарии калибровки сервер 110 защиты может дать указание хостовой системе 10, выполнить ряд калибровочных процессов, о которых известно, что они чисты, и передать обратно на сервер 110 набор индикаторов оценки процесса и оценок, определенных для этих калибровочных процессов. После этого сервер 110 может определить значения параметров, подготовленных специально для соответствующей виртуальной машины и/или хостовой системы.
В еще одном примере параметры 82 защиты содержат ряд значений веса, применяемых модулем 38 классификации процесса для определения агрегатного показателя вредоносности для оцениваемого процесса в соответствии с отдельными индикаторами оценки процесса, полученными от оценивателей процесса. В варианте осуществления, в котором агрегатный показатель представляет собой взвешенную сумму или среднее взвешенное отдельных оценок и при котором каждую оценку рассчитывают в соответствии с отдельным критерием или способом определения вредоносного программного обеспечения (например, когда каждая оценка показывает, проявляет ли оцениваемый процесс определенное поведение, указывающее на вредоносность), изменение веса отдельной оценки может эффективно изменить релевантность соответствующего критерия или способа в сравнении с другими критериями и способами. Обычно угрозы от вредоносных программ появляются волнами, при которых большое число компьютерных систем во всем мире в течение короткого времени поражается одним и тем же вредоносным объектом. В случае получения в реальном времени отчетов 80 о состоянии защиты от большого количества хостовых систем сервер 110 защиты может получать последние данные о современных угрозах от вредоносных программ и немедленно выдать в соответствующие хостовые системы оптимальные параметры 82 защиты, в том числе, например, ряд оценочных показателей, оптимизированных для обнаружения современных угроз от вредоносных программ.
Системы и способы, описанные в качестве примера выше, позволяют защитить хостовую систему, например компьютерную систему, от вредоносного программного обеспечения, например от вирусов и руткитов. Обычные системы защиты от вредоносных программ, как правило, выполняются на уровне операционной системы, соответствующем уровню привилегий процессора (например, в режиме ядра). Некоторые вредоносные программы, например руткиты, также могут выполняться на уровне OS, таким образом, они могут выводить из строя обычные системы защиты от вредоносных программ и ставить под угрозу безопасность компьютерной системы. В отличие от этого, в некоторых вариантах осуществления изобретения гипервизор выполняется в компьютерной системе на самом высоком уровне привилегий процессора, перемещая операционную систему в виртуальную машину. Система защиты от вредоносных программ, работающая в соответствии с некоторыми вариантами осуществления изобретения, содержит компоненты, выполняющиеся в VM и компоненты, выполняющиеся вне VM, на уровне гипервизора. Таким образом, некоторые антивредоносные операции могут выполняться с более высокого уровня привилегий процессора, чем операции операционной системы, то есть на уровне, где они не могут быть нарушены вредоносными программами, выполняющимися в VM. В некоторых вариантах осуществления один модуль самоанализа памяти, выполняющийся на уровне гипервизора, может защитить множество виртуальных машин, одновременно выполняющихся в соответствующей компьютерной системе.
В некоторых вариантах осуществления работа модуля самоанализа памяти включает в себя выбор ряда критических программных объектов, например определенных драйверов, библиотек, регистров и таблиц страниц, и предотвращение вредных изменений этих объектов. В частности некоторые варианты осуществления могут защищать от злонамеренных атак компоненты защиты от вредоносных программ, выполняющиеся в VM.
Чтобы защитить такие объекты, некоторые варианты осуществления могут предотвращать злонамеренные изменения, перехватывая попытки записи в пространство памяти, выделенное для соответствующего объекта, и блокируя или перенаправляя эту попытку. Другие варианты осуществления могут защищать целевой объект, обозначая пространство памяти, выделенное для соответствующего объекта, как память только для чтения. В типичных конфигурациях аппаратного и программного обеспечения память делят на отдельные блоки смежных адресов, известные как страницы. В системах, поддерживающих виртуализацию, разрешения на доступ к страницам контролируются гипервизором, например, с применением таких специальных структур данных, как расширенные таблицы страниц (ЕРТ) на платформах Intel. Таким образом, защиту пространства памяти целевого объекта можно достичь, например, благодаря тому, что модуль самоанализа памяти дает команду гипервизору на обозначение ряда страниц, содержащих данные, относящиеся к соответствующему объекту, как страницы только для чтения.
В некоторых вариантах осуществления некоторые компоненты защиты от вредоносных программ выполняются в защищенной виртуальной машине, работая вместе с модулем самоанализа памяти, чтобы обнаруживать вредоносное программное обеспечение. Такие конфигурации могут значительно упрощать обнаружение вредоносного программного обеспечения, перекрывая семантический разрыв, возникающий в результате виртуализации. В типичных конфигурациях программного обеспечения компонент, предназначенный для обнаружения вредоносных программ и выполняющийся в режиме пользователя, может иметь доступ к большому количеству данных о поведении оцениваемого процесса, причем большая часть этих данных не без труда доступна компонентам, выполняющимся на уровне ядра или вне соответствующей VM. Например, если оцениваемый процесс пытается загрузить файл из Интернета, оцениватель процесса, работающий в режиме пользователя, например, с применением таких известных в данной области способов, как внедрение DLL, может определить, какой процесс осуществляет это действие, обнаружить, что оцениваемый процесс пытается загрузить файл, и, в частности, определить IP-адрес, с которого загружается файл, и адрес, по которому на диске расположен загружаемый файл. При этом оцениватель процесса, выполняющийся на уровне гипервизора, может лишь обнаружить, что через сетевой адаптер хостовой системы передается группа сетевых пакетов. Хотя, в принципе, получить информацию о поведении оцениваемого процесса с уровня гипервизора возможно, такие задачи обнаружения вредоносных программ могут оказаться практически нецелесообразными, поскольку они могут вызвать значительные вычислительные затраты. Комбинируя компоненты защиты от вредоносных программ, выполняющиеся в соответствующей VM, с модулем самоанализа памяти, выполняющемся вне VM, некоторые варианты осуществления изобретения могут использовать множество данных о поведении, к которым имеют доступ выполняющиеся в VM компоненты, в то же время защищая целостность этих компонентов извне соответствующей VM.
В обычных системах защиты от вредоносных программ программный компонент, выполняющийся на уровне привилегии процессора, аналогичном уровню операционной системы, обнаруживает запуск процесса и дает команду другим компонентам защиты от вредоносных программ на контроль над поведением соответствующего процесса. Некоторые вредоносные объекты способны скомпрометировать такие системы защиты от вредоносных программ, блокируя обнаружение программным компонентом запусков процесса и тем самым вынуждая систему защиты от вредоносных программ контролировать только подгруппу выполняющихся в данный момент времени процессов. В отличие от этого в некоторых вариантах осуществления изобретения компонент, обнаруживающий запуски процесса, перемещен за пределы соответствующей виртуальной машины на более высокий уровень привилегий процессора, чем уровень привилегий операционной системы. Такие конфигурации могут предотвращать сокрытие вредоносного программного обеспечения от компонентов защиты от вредоносных программ.
В некоторых вариантах осуществления модуль классификации процесса получает индикаторы оценки каждого процесса от множества оценивателей процесса, выполняющихся либо в соответствующей VM, либо вне ее. Индикаторы оценки процесса, полученные от компонентов, выполняющихся в защищенной VM, например, могут указывать, что оцениваемый процесс проявил поведение, характерное для вредоносного программного обеспечения, например попытку модифицировать значение реестра OS или удалить файл. Индикаторы оценки процесса, определенные вне соответствующей VM, могут, например, указывать, что оцениваемый процесс пытается сделать запись в защищенную область памяти. Индикаторы оценки процесса могут содержать балльные оценки, указывающие на степень вредоносности соответствующего процесса. В некоторых вариантах осуществления модуль классификации процесса определяет агрегатный показатель в соответствии с множеством индикаторов оценки процесса или оценками, полученными от разных оценивателей процесса, и в соответствии с агрегатным показателем определяет, является ли оцениваемый процесс вредоносным.
Специалисту в данной области техники понятно, что вышеприведенные варианты осуществления могут быть изменены во многих отношениях без выхода из объема изобретения. Соответственно предполагается, что объем изобретения определяется прилагаемой формулой изобретения и ее юридическими эквивалентами.

Claims (62)

1. Хостовая система оценки процесса для выявления вредоносных программ в виртуальной машине, содержащая по меньшей мере один процессор, конфигурированный так, чтобы выполнять:
гипервизор, конфигурированный для предоставления виртуальной машины;
оцениватель процесса, выполняющийся в виртуальной машине;
модуль самоанализа памяти, выполняющийся вне виртуальной машины; и
модуль классификации процесса,
при этом:
оцениватель процесса конфигурирован так, чтобы:
определять, осуществляет ли оцениваемый процесс, выполняющийся в виртуальной машине, действие; и
в ответ, когда оцениваемый процесс осуществляет действие, передавать первый индикатор оценки процесса в модуль классификации процесса, причем первый индикатор оценки процесса определен для оцениваемого процесса;
модуль самоанализа памяти конфигурирован так, чтобы:
перехватывать вызов функции операционной системы для обнаружения запуска защищаемого процесса, выполняющегося в виртуальной машине, причем функция операционной системы конфигурирована для добавления защищаемого процесса в список процессов, выполняющихся в виртуальной машине, и
в ответ на обнаружение этого запуска определять, пытается ли оцениваемый процесс модифицировать страницу памяти защищаемого процесса, и
в ответ, когда оцениваемый процесс пытается модифицировать страницу памяти, передавать второй индикатор оценки процесса в модуль классификации процесса, причем второй индикатор оценки процесса определен для оцениваемого процесса; и
модуль классификации процесса конфигурирован так, чтобы:
получать первый и второй индикаторы оценки процесса и
в ответ определять, является ли оцениваемый процесс вредоносным в соответствии с первым и вторым индикаторами оценки процесса,
при этом модуль самоанализа памяти дополнительно конфигурирован так, чтобы:
в ответ на обнаружение запуска защищаемого процесса передавать индикатор защищаемого процесса в приложение защиты, выполняющееся в виртуальной машине, и
в ответ получать от приложения защиты индикатор страницы памяти.
2. Хостовая система по п. 1, в которой оцениватель процесса содержит оцениватель процесса пользовательского уровня, выполняющийся на пользовательском уровне привилегии процессора, причем оцениватель процесса уровня ядра конфигурирован так, чтобы определять, осуществляет ли оцениваемый процесс действие.
3. Хостовая система по п. 1, в которой оцениватель процесса содержит оцениватель процесса уровня ядра, выполняющийся на уровне ядра привилегии процессора, причем оцениватель процесса уровня ядра конфигурирован так, чтобы определять, осуществляет ли оцениваемый процесс действие.
4. Хостовая система по п. 1, в которой оцениватель процесса содержит оцениватель системных вызовов, конфигурированный так, чтобы перехватывать системный вызов, осуществляемый оцениваемым процессом.
5. Хостовая система по п. 1, в которой модуль классификации процесса выполняется в виртуальной машине.
6. Хостовая система по п. 1, в которой модуль классификации процесса выполняется вне виртуальной машины.
7. Хостовая система по п. 1, в которой определение того, является ли оцениваемый процесс вредоносным, предусматривает определение агрегатного показателя в соответствии с первым показателем и вторым показателем, причем первый и второй показатели определены на сервере защиты в соответствии с первым и вторым индикаторами оценки процесса соответственно, при этом сервер защиты конфигурирован так, чтобы осуществлять антивредоносные транзакции с множеством компьютерных систем, включая хостовую систему.
8. Хостовая система по п. 1, в которой определение того, является ли оцениваемый процесс вредоносным, предусматривает определение агрегатного показателя в соответствии с взвешенной суммой первого показателя и второго показателя, причем первый и второй показатели определены в соответствии с первым и вторым индикаторами оценки процесса соответственно, при этом модуль классификации процесса дополнительно конфигурирован так, чтобы получать от сервера защиты первый вес и второй вес, причем первый вес умножается на первый показатель во взвешенной сумме и второй вес умножается на второй показатель во взвешенной сумме, при этом сервер защиты конфигурирован так, чтобы осуществлять антивредоносные транзакции с множеством компьютерных систем, включая хостовую систему.
9. Хостовая система по п. 1, в которой защищаемый процесс содержит модуль классификации процесса.
10. Хостовая система по п. 1, в которой защищаемый процесс образует часть приложения защиты, содержащего оцениватель процесса.
11. Постоянный машиночитаемый носитель для оценки процесса для выявления вредоносных программ в виртуальной машине, кодирующий команды, которые при выполнении на хостовой системе, содержащей по меньшей мере один процессор, побуждают хостовую систему образовывать:
гипервизор, конфигурированный так, чтобы предоставлять виртуальную машину;
оцениватель процесса, выполняющийся в виртуальной машине;
модуль самоанализа памяти, выполняющийся вне виртуальной машины; и
модуль классификации процесса, причем оцениватель процесса конфигурирован так, чтобы:
определять, осуществляет ли оцениваемый процесс, выполняющийся в виртуальной машине, действие; и
в ответ, когда оцениваемый процесс осуществляет действие, передавать первый индикатор оценки процесса в модуль классификации процесса, причем первый индикатор оценки процесса определен для оцениваемого процесса;
модуль самоанализа памяти конфигурирован так, чтобы:
перехватывать вызов функции операционной системы для обнаружения запуска защищаемого процесса, выполняющегося в виртуальной машине, причем функция операционной системы выполняется в виртуальной машине и конфигурирована для добавления защищаемого процесса в список процессов, выполняющихся в виртуальной машине; и
в ответ на обнаружение этого запуска определять, пытается ли оцениваемый процесс модифицировать страницу памяти защищаемого процесса; и
в ответ, когда оцениваемый процесс пытается модифицировать страницу памяти, передавать второй индикатор оценки процесса в модуль классификации процесса, причем второй индикатор оценки процесса определен для оцениваемого процесса;
и модуль классификации процесса конфигурирован так, чтобы:
получать первый и второй индикаторы оценки процесса и
в ответ определять, является ли оцениваемый процесс вредоносным в соответствии с первым индикатором оценки процесса и вторым индикатором оценки процесса,
при этом модуль самоанализа памяти дополнительно конфигурирован так, чтобы:
в ответ на обнаружение запуска защищаемого процесса передавать индикатор защищаемого процесса в приложение защиты, выполняющееся в виртуальной машине, и
в ответ получать от приложения защиты индикатор страницы памяти.
12. Постоянный машиночитаемый носитель по п. 11, в котором оцениватель процесса содержит оцениватель процесса пользовательского уровня, выполняющийся на пользовательском уровне привилегии процессора, причем оцениватель процесса пользовательского уровня конфигурирован, чтобы определять, осуществляет ли оцениваемый процесс действие.
13. Постоянный машиночитаемый носитель по п. 11, в котором оцениватель процесса содержит оцениватель процесса уровня ядра, выполняющийся на уровне ядра привилегии процессора, причем оцениватель процесса уровня ядра конфигурирован так, чтобы определять, осуществляет ли оцениваемый процесс действие.
14. Постоянный машиночитаемый носитель по п. 11, в котором оцениватель процесса содержит оцениватель системных вызовов, конфигурированный так, чтобы перехватывать системный вызов, осуществляемый оцениваемым процессом.
15. Постоянный машиночитаемый носитель по п. 11, в котором модуль классификации процесса выполняется в виртуальной машине.
16. Постоянный машиночитаемый носитель по п. 11, в котором модуль классификации процесса выполняется вне виртуальной машины.
17. Постоянный машиночитаемый носитель по п. 11, в котором определение того, является ли оцениваемый процесс вредоносным, предусматривает определение агрегатного показателя в соответствии с первым показателем и вторым показателем, причем первый и второй показатели определены на сервере защиты в соответствии с первым и вторым индикаторами оценки процесса соответственно, при этом сервер защиты конфигурирован так, чтобы осуществлять антивредоносные транзакции с множеством компьютерных систем, включая хостовую систему.
18. Постоянный машиночитаемый носитель по п. 11, в котором определение того, является ли оцениваемый процесс вредоносным, предусматривает определение агрегатного показателя в соответствии с взвешенной суммой первого показателя и второго показателя, причем первый и второй показатели определены в соответствии с первым и вторым индикаторами оценки процесса, соответственно, при этом модуль классификации процесса дополнительно конфигурирован так, чтобы получать от сервера защиты первый вес и второй вес, причем первый вес умножается на первый показатель во взвешенной сумме и второй вес умножается на второй показатель во взвешенной сумме, при этом сервер защиты конфигурирован так, чтобы осуществлять антивредоносные транзакции с множеством компьютерных систем, включая хостовую систему.
19. Постоянный машиночитаемый носитель по п. 11, в котором защищаемый процесс содержит модуль классификации процесса.
20. Постоянный машиночитаемый носитель по п. 11, в котором защищаемый процесс образует часть приложения защиты, конфигурированного для выполнения оценивателя процесса.
21. Способ оценки процесса для выявления вредоносных программ в виртуальной машине, содержащий:
применение по меньшей мере одного процессора хостовой системы для получения первого индикатора оценки процесса, который определен для оцениваемого процесса, причем оцениваемый процесс выполняется в виртуальной машине, предоставленной гипервизором, выполняющимся на хостовой системе;
применение указанного по меньшей мере одного процессора для получения второго индикатора оценки процесса, который определен для оцениваемого процесса; и
в ответ на получение первого и второго индикаторов оценки процесса применение по меньшей мере одного процессора для определения, является ли оцениваемый процесс вредоносным в соответствии с первым и вторым индикаторами оценки процесса;
при этом определение первого индикатора оценки процесса включает в себя применение оценивателя процесса, выполняющегося в виртуальной машине, для определения того, осуществляет ли оцениваемый процесс первое действие; и
определение второго индикатора оценки процесса включает в себя применение модуля самоанализа памяти, выполняющегося вне виртуальной машины, для определения того, осуществляет ли оцениваемый процесс второе действие,
при этом определение того, осуществляет ли оцениваемый процесс второе действие, предусматривает перехват вызова функции операционной системы для обнаружения запуска защищаемого процесса, выполняющегося в виртуальной машине, причем функция операционной системы конфигурирована для добавления защищаемого процесса в список процессов, выполняющихся в виртуальной машине, и
в ответ на обнаружение этого запуска определение второго индикатора оценки процесса в зависимости от определения того, пытается ли оцениваемый процесс модифицировать страницу памяти защищаемого процесса.
RU2016103212A 2013-07-05 2014-07-02 Оценка процесса для выявления вредоносных программ в виртуальных машинах RU2634205C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/936,058 2013-07-05
US13/936,058 US9117080B2 (en) 2013-07-05 2013-07-05 Process evaluation for malware detection in virtual machines
PCT/RO2014/000019 WO2015152748A1 (en) 2013-07-05 2014-07-02 Process evaluation for malware detection in virtual machines

Publications (2)

Publication Number Publication Date
RU2016103212A RU2016103212A (ru) 2017-08-10
RU2634205C2 true RU2634205C2 (ru) 2017-10-24

Family

ID=52133728

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2016103212A RU2634205C2 (ru) 2013-07-05 2014-07-02 Оценка процесса для выявления вредоносных программ в виртуальных машинах

Country Status (13)

Country Link
US (1) US9117080B2 (ru)
EP (1) EP3017392B1 (ru)
JP (1) JP6378758B2 (ru)
KR (1) KR101946982B1 (ru)
CN (1) CN105393255B (ru)
AU (1) AU2014389572B2 (ru)
CA (1) CA2915888C (ru)
ES (1) ES2785350T3 (ru)
HK (1) HK1216930A1 (ru)
IL (1) IL243123B (ru)
RU (1) RU2634205C2 (ru)
SG (1) SG11201510313SA (ru)
WO (1) WO2015152748A1 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2763112C1 (ru) * 2020-08-24 2021-12-27 Акционерное общество "Лаборатория Касперского" Система и способ формирования списка виртуальных машин с указанием статуса защиты

Families Citing this family (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10187452B2 (en) 2012-08-23 2019-01-22 TidalScale, Inc. Hierarchical dynamic scheduling
WO2014122662A1 (en) * 2013-02-10 2014-08-14 Cyber Active Security Ltd. Method and product for providing a predictive security product and evaluating existing security products
US9824225B1 (en) * 2013-09-20 2017-11-21 EMC IP Holding Company LLC Protecting virtual machines processing sensitive information
US10089474B2 (en) * 2013-10-29 2018-10-02 Hewlett Packard Enterprise Development Lp Virtual machine introspection
US9692789B2 (en) 2013-12-13 2017-06-27 Oracle International Corporation Techniques for cloud security monitoring and threat intelligence
KR101801567B1 (ko) * 2013-12-19 2017-11-27 인텔 코포레이션 권한 관리된 콘텐츠의 정책에 기반한 신뢰성 있는 검사
US9740857B2 (en) * 2014-01-16 2017-08-22 Fireeye, Inc. Threat-aware microvisor
US20150229659A1 (en) * 2014-02-13 2015-08-13 Guardicore Ltd. Passive detection of malicious network-mapping software in computer networks
US9836318B2 (en) * 2014-02-21 2017-12-05 Infineon Technologies Ag Safety hypervisor function
US9241010B1 (en) * 2014-03-20 2016-01-19 Fireeye, Inc. System and method for network behavior detection
JP6370098B2 (ja) * 2014-05-16 2018-08-08 杉中 順子 情報処理装置、情報処理監視方法、プログラム、及び記録媒体
US10038703B2 (en) * 2014-07-18 2018-07-31 The Regents Of The University Of Michigan Rating network security posture and comparing network maliciousness
US9710648B2 (en) * 2014-08-11 2017-07-18 Sentinel Labs Israel Ltd. Method of malware detection and system thereof
US11507663B2 (en) 2014-08-11 2022-11-22 Sentinel Labs Israel Ltd. Method of remediating operations performed by a program and system thereof
US9552481B1 (en) * 2014-12-30 2017-01-24 Symantec Corporation Systems and methods for monitoring programs
US9189630B1 (en) 2015-01-21 2015-11-17 AO Kaspersky Lab Systems and methods for active operating system kernel protection
US10944764B2 (en) * 2015-02-13 2021-03-09 Fisher-Rosemount Systems, Inc. Security event detection through virtual machine introspection
US10127064B2 (en) * 2015-02-24 2018-11-13 Red Hat Israel, Ltd. Read-only VM function chaining for secure hypervisor access
US10417031B2 (en) * 2015-03-31 2019-09-17 Fireeye, Inc. Selective virtualization for security threat detection
US10567395B2 (en) * 2015-05-10 2020-02-18 Check Point Advanced Threat Prevention Ltd Detection of potentially malicious web content by emulating user behavior and user environment
US9703956B1 (en) * 2015-06-08 2017-07-11 Symantec Corporation Systems and methods for categorizing virtual-machine-aware applications for further analysis
US10691476B2 (en) * 2015-06-27 2020-06-23 Mcafee, Llc Protection of sensitive data
US11113086B1 (en) 2015-06-30 2021-09-07 Fireeye, Inc. Virtual system and method for securing external network connectivity
RU2589862C1 (ru) 2015-06-30 2016-07-10 Закрытое акционерное общество "Лаборатория Касперского" Способ обнаружения вредоносного кода в оперативной памяти
US10642753B1 (en) * 2015-06-30 2020-05-05 Fireeye, Inc. System and method for protecting a software component running in virtual machine using a virtualization layer
US10395029B1 (en) 2015-06-30 2019-08-27 Fireeye, Inc. Virtual system and method with threat protection
RU2618947C2 (ru) * 2015-06-30 2017-05-11 Закрытое акционерное общество "Лаборатория Касперского" Способ предотвращения работы программ, содержащих нежелательный для пользователя функционал
US10216927B1 (en) * 2015-06-30 2019-02-26 Fireeye, Inc. System and method for protecting memory pages associated with a process using a virtualization layer
US10726127B1 (en) 2015-06-30 2020-07-28 Fireeye, Inc. System and method for protecting a software component running in a virtual machine through virtual interrupts by the virtualization layer
US10033759B1 (en) 2015-09-28 2018-07-24 Fireeye, Inc. System and method of threat detection under hypervisor control
CN105389197B (zh) 2015-10-13 2019-02-26 北京百度网讯科技有限公司 用于基于容器的虚拟化系统的操作捕获方法和装置
JP6721329B2 (ja) * 2015-12-21 2020-07-15 三菱電機株式会社 パワー半導体装置およびその製造方法
US10089124B2 (en) 2015-12-31 2018-10-02 International Business Machines Corporation Security application for a guest operating system in a virtual computing environment
JP6711000B2 (ja) * 2016-02-12 2020-06-17 日本電気株式会社 情報処理装置、ウィルス検出方法及びプログラム
US10536478B2 (en) * 2016-02-26 2020-01-14 Oracle International Corporation Techniques for discovering and managing security of applications
US10127368B2 (en) 2016-03-01 2018-11-13 Filevine, Inc. Systems for identity validation and association
US20210026950A1 (en) * 2016-03-07 2021-01-28 Crowdstrike, Inc. Hypervisor-based redirection of system calls and interrupt-based task offloading
US11086660B2 (en) * 2016-03-09 2021-08-10 Hewlett Packard Enterprise Development Lp Server virtual address space
US10116630B2 (en) * 2016-04-04 2018-10-30 Bitdefender IPR Management Ltd. Systems and methods for decrypting network traffic in a virtualized environment
US11379385B2 (en) * 2016-04-16 2022-07-05 Vmware, Inc. Techniques for protecting memory pages of a virtual computing instance
CN107360120B (zh) * 2016-05-10 2019-06-11 华为技术有限公司 虚拟网络功能的审计方法和装置
US10592267B2 (en) 2016-05-17 2020-03-17 Vmware, Inc. Tree structure for storing monitored memory page data
US10430223B2 (en) 2016-05-17 2019-10-01 Vmware, Inc. Selective monitoring of writes to protected memory pages through page table switching
FR3051934A1 (fr) * 2016-05-24 2017-12-01 Orange Procede d'identification d'au moins une fonction d'un noyau d'un systeme d'exploitation
US10620992B2 (en) 2016-08-29 2020-04-14 TidalScale, Inc. Resource migration negotiation
CN106445639A (zh) * 2016-09-30 2017-02-22 北京奇虎科技有限公司 监测虚拟机的方法及装置
US10635479B2 (en) * 2016-12-19 2020-04-28 Bitdefender IPR Management Ltd. Event filtering for virtual machine security applications
CN108241801B (zh) * 2016-12-26 2021-03-30 华为技术有限公司 处理系统调用的方法和装置
US9734337B1 (en) 2017-01-24 2017-08-15 Malwarebytes Inc. Behavior-based ransomware detection
US10592664B2 (en) * 2017-02-02 2020-03-17 Cisco Technology, Inc. Container application security and protection
JP6841703B2 (ja) * 2017-03-29 2021-03-10 アドソル日進株式会社 コンピュータ装置
US10579274B2 (en) 2017-06-27 2020-03-03 TidalScale, Inc. Hierarchical stalling strategies for handling stalling events in a virtualized environment
US10802863B2 (en) 2017-07-07 2020-10-13 Electronics And Telecommunications Research Institute Apparatus and method for storing audit trail in response to virtual-machine process execution
KR101937935B1 (ko) * 2017-07-07 2019-04-11 한국전자통신연구원 가상머신 프로세스 실행에 따른 감사 증적 저장 장치 및 방법
US11294898B2 (en) 2017-07-31 2022-04-05 Pearson Education, Inc. System and method of automated assessment generation
US10467552B2 (en) * 2017-07-31 2019-11-05 Pearson Education, Inc. System and method for automatic content provisioning
WO2019032728A1 (en) 2017-08-08 2019-02-14 Sentinel Labs, Inc. METHODS, SYSTEMS AND DEVICES FOR DYNAMICALLY MODELING AND REGROUPING END POINTS FOR ONBOARD NETWORKING
KR20190021673A (ko) * 2017-08-23 2019-03-06 주식회사 수산아이앤티 랜섬웨어 방지 장치 및 방법
US10817347B2 (en) 2017-08-31 2020-10-27 TidalScale, Inc. Entanglement of pages and guest threads
US11687654B2 (en) 2017-09-15 2023-06-27 Intel Corporation Providing isolation in virtualized systems using trust domains
US10546120B2 (en) * 2017-09-25 2020-01-28 AO Kaspersky Lab System and method of forming a log in a virtual machine for conducting an antivirus scan of a file
US10678922B2 (en) * 2017-11-23 2020-06-09 Nicira, Inc. Detecting arbitrary code execution using a hypervisor
US10713357B2 (en) * 2017-11-23 2020-07-14 Nicira, Inc. Detecting lateral movement using a hypervisor
CN107798236B (zh) * 2017-11-30 2021-05-04 阿里巴巴(中国)有限公司 一种对应用程序安装包实现安全安装的方法和装置
US11250123B2 (en) 2018-02-28 2022-02-15 Red Hat, Inc. Labeled security for control flow inside executable program code
CN108804225B (zh) * 2018-05-24 2021-01-01 新华三云计算技术有限公司 一种虚拟机负载调控方法和装置
WO2020104772A1 (en) * 2018-11-19 2020-05-28 Secure Micro Ltd Computer implemented method
US11295008B2 (en) * 2019-02-13 2022-04-05 Nec Corporation Graphics processing unit accelerated trusted execution environment
US11550903B1 (en) * 2019-04-26 2023-01-10 Joseph Alan Epstein System and method for trustworthiness, reputation, provenance, and measurement of software
US10762200B1 (en) 2019-05-20 2020-09-01 Sentinel Labs Israel Ltd. Systems and methods for executable code detection, automatic feature extraction and position independent code detection
US11277436B1 (en) * 2019-06-24 2022-03-15 Ca, Inc. Identifying and mitigating harm from malicious network connections by a container
US11782713B1 (en) * 2019-08-27 2023-10-10 Amazon Technologies, Inc. Security vulnerability mitigation using address space co-execution
US11630900B2 (en) * 2019-09-30 2023-04-18 Mcafee, Llc Detection of malicious scripted activity in fileless attacks
US10754506B1 (en) * 2019-10-07 2020-08-25 Cyberark Software Ltd. Monitoring and controlling risk compliance in network environments
US11836247B2 (en) * 2020-03-30 2023-12-05 Fortinet, Inc. Detecting malicious behavior in a network using security analytics by analyzing process interaction ratios
IL275098A (en) * 2020-06-03 2022-01-01 Kazuar Advanced Tech Ltd A multi-computing environment with the fewest loopholes
US11442770B2 (en) * 2020-10-13 2022-09-13 BedRock Systems, Inc. Formally verified trusted computing base with active security and policy enforcement
US11579857B2 (en) 2020-12-16 2023-02-14 Sentinel Labs Israel Ltd. Systems, methods and devices for device fingerprinting and automatic deployment of software in a computing network using a peer-to-peer approach
US20230229761A1 (en) * 2021-04-20 2023-07-20 Assured Information Security, Inc. Prevention and remediation of malware based on selective presentation of files to processes
CN113221103B (zh) * 2021-05-08 2022-09-20 山东英信计算机技术有限公司 一种容器安全防护方法、系统及介质
US11899782B1 (en) * 2021-07-13 2024-02-13 SentinelOne, Inc. Preserving DLL hooks
WO2023069166A1 (en) * 2021-10-21 2023-04-27 Microsoft Technology Licensing, Llc Securely redirecting system service routines
KR102656980B1 (ko) * 2022-03-14 2024-04-15 세종대학교산학협력단 가상화 환경에서 인스턴스의 메모리를 연속적으로 기록하는 방법 및 장치
WO2023239008A1 (ko) * 2022-06-10 2023-12-14 엘지전자 주식회사 차량의 신호 처리 장치 및 이를 구비하는 차량용 통신 장치용 통신 장치
US11977496B1 (en) 2022-09-29 2024-05-07 Amazon Technologies, Inc. Security vulnerability mitigation using hardware-supported context-dependent address space hiding

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060236392A1 (en) * 2005-03-31 2006-10-19 Microsoft Corporation Aggregating the knowledge base of computer systems to proactively protect a computer from malware
US20100306849A1 (en) * 2007-12-12 2010-12-02 Vmware, Inc. On-access anti-virus mechanism for virtual machine architecture
US20120254993A1 (en) * 2011-03-28 2012-10-04 Mcafee, Inc. System and method for virtual machine monitor based anti-malware security
RU2468418C2 (ru) * 2007-01-25 2012-11-27 Майкрософт Корпорейшн Агенты защиты и привилегированные режимы
WO2013055499A1 (en) * 2011-10-13 2013-04-18 Mcafee, Inc. System and method for kernel rootkit protection in a hypervisor environment

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4412156B2 (ja) * 2004-11-30 2010-02-10 沖電気工業株式会社 処理装置
US7996836B1 (en) 2006-12-29 2011-08-09 Symantec Corporation Using a hypervisor to provide computer security
US8561182B2 (en) * 2009-01-29 2013-10-15 Microsoft Corporation Health-based access to network resources
US8387046B1 (en) 2009-03-26 2013-02-26 Symantec Corporation Security driver for hypervisors and operating systems of virtualized datacenters
WO2012135192A2 (en) * 2011-03-28 2012-10-04 Mcafee, Inc. System and method for virtual machine monitor based anti-malware security
US8099596B1 (en) 2011-06-30 2012-01-17 Kaspersky Lab Zao System and method for malware protection using virtualization

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060236392A1 (en) * 2005-03-31 2006-10-19 Microsoft Corporation Aggregating the knowledge base of computer systems to proactively protect a computer from malware
RU2468418C2 (ru) * 2007-01-25 2012-11-27 Майкрософт Корпорейшн Агенты защиты и привилегированные режимы
US20100306849A1 (en) * 2007-12-12 2010-12-02 Vmware, Inc. On-access anti-virus mechanism for virtual machine architecture
US20120254993A1 (en) * 2011-03-28 2012-10-04 Mcafee, Inc. System and method for virtual machine monitor based anti-malware security
WO2013055499A1 (en) * 2011-10-13 2013-04-18 Mcafee, Inc. System and method for kernel rootkit protection in a hypervisor environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2763112C1 (ru) * 2020-08-24 2021-12-27 Акционерное общество "Лаборатория Касперского" Система и способ формирования списка виртуальных машин с указанием статуса защиты

Also Published As

Publication number Publication date
CN105393255B (zh) 2019-07-12
JP2016526730A (ja) 2016-09-05
KR101946982B1 (ko) 2019-05-10
CN105393255A (zh) 2016-03-09
RU2016103212A (ru) 2017-08-10
HK1216930A1 (zh) 2016-12-09
KR20160030385A (ko) 2016-03-17
ES2785350T3 (es) 2020-10-06
EP3017392A1 (en) 2016-05-11
SG11201510313SA (en) 2016-01-28
CA2915888C (en) 2021-05-04
CA2915888A1 (en) 2015-10-08
AU2014389572B2 (en) 2019-03-07
JP6378758B2 (ja) 2018-08-22
US9117080B2 (en) 2015-08-25
WO2015152748A1 (en) 2015-10-08
EP3017392B1 (en) 2020-01-22
AU2014389572A1 (en) 2016-01-21
US20150013008A1 (en) 2015-01-08
IL243123B (en) 2019-11-28

Similar Documents

Publication Publication Date Title
RU2634205C2 (ru) Оценка процесса для выявления вредоносных программ в виртуальных машинах
US10033759B1 (en) System and method of threat detection under hypervisor control
US10216927B1 (en) System and method for protecting memory pages associated with a process using a virtualization layer
RU2679175C1 (ru) Способ поведенческого обнаружения вредоносных программ с использованием виртуальной машины-интерпретатора
US10630643B2 (en) Dual memory introspection for securing multiple network endpoints
US8910238B2 (en) Hypervisor-based enterprise endpoint protection
US9262246B2 (en) System and method for securing memory and storage of an electronic device with a below-operating system security agent
US8549648B2 (en) Systems and methods for identifying hidden processes
US9202046B2 (en) Systems and methods for executing arbitrary applications in secure environments
US8650642B2 (en) System and method for below-operating system protection of an operating system kernel
US10726127B1 (en) System and method for protecting a software component running in a virtual machine through virtual interrupts by the virtualization layer
US8863283B2 (en) System and method for securing access to system calls
US8621620B2 (en) System and method for protecting and securing storage devices using below-operating system trapping
US8813227B2 (en) System and method for below-operating system regulation and control of self-modifying code
US9384349B2 (en) Negative light-weight rules
RU2723668C1 (ru) Фильтрация событий для приложений безопасности виртуальных машин
US20120255014A1 (en) System and method for below-operating system repair of related malware-infected threads and resources
US20120255013A1 (en) System and method for below-operating system modification of malicious code on an electronic device
US9424427B1 (en) Anti-rootkit systems and methods
US9904782B2 (en) Synchronous execution of designated computing events using hardware-assisted virtualization
US20150379265A1 (en) Systems And Methods For Preventing Code Injection In Virtualized Environments
Sato et al. Design and implementation of hiding method for file manipulation of essential services by system call proxy using virtual machine monitor
Sato et al. VMBLS: Virtual machine based logging scheme for prevention of tampering and loss
WO2022044021A1 (en) Exploit prevention based on generation of random chaotic execution context

Legal Events

Date Code Title Description
PD4A Correction of name of patent owner