УРОВЕНЬ ТЕХНИКИ
Изобретение относится к системам и способам защиты компьютерных систем от вредоносных программ, в частности к системам защиты от вредоносных программ, применяющим способ аппаратной виртуализации.
Во всем мире вредоносное программное обеспечение, известное также как вредоносные программы, наносит ущерб большому количеству компьютерных систем. В ряде своих форм, таких, например, как компьютерные вирусы, черви и руткиты, вредоносные программы представляют собой серьезную опасность для миллионов пользователей компьютеров, делая их уязвимыми, в частности, в отношении потери данных и секретной информации, хищения личных данных и снижения производительности.
Технология аппаратной виртуализации делает возможным создание искусственных компьютерных сред, которые известны под названием "виртуальная машина" и во многих отношениях ведут себя как физические компьютерные системы. В типичных приложениях, в частности, при применении консолидации серверов и инфраструктуры как услуги (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, могут, например, указывать, что оцениваемый процесс пытается сделать запись в защищенную область памяти. Индикаторы оценки процесса могут содержать балльные оценки, указывающие на степень вредоносности соответствующего процесса. В некоторых вариантах осуществления модуль классификации процесса определяет агрегатный показатель в соответствии с множеством индикаторов оценки процесса или оценками, полученными от разных оценивателей процесса, и в соответствии с агрегатным показателем определяет, является ли оцениваемый процесс вредоносным.
Специалисту в данной области техники понятно, что вышеприведенные варианты осуществления могут быть изменены во многих отношениях без выхода из объема изобретения. Соответственно предполагается, что объем изобретения определяется прилагаемой формулой изобретения и ее юридическими эквивалентами.
название | год | авторы | номер документа |
---|---|---|---|
ВНЕСЕНИЕ ОШИБКИ СТРАНИЦЫ В ВИРТУАЛЬНЫХ МАШИНАХ | 2014 |
|
RU2659472C2 |
СЛОЖНОЕ КЛАССИФИЦИРОВАНИЕ ДЛЯ ВЫЯВЛЕНИЯ ВРЕДОНОСНЫХ ПРОГРАММ | 2014 |
|
RU2645268C2 |
ДВИЖОК ИНТРОСПЕКЦИИ ПАМЯТИ ДЛЯ ЗАЩИТЫ ЦЕЛОСТНОСТИ ВИРТУАЛЬНЫХ МАШИН | 2014 |
|
RU2640300C2 |
СИСТЕМЫ И СПОСОБЫ ПРЕДОСТАВЛЕНИЯ РЕЗУЛЬТАТА ТЕКУЩЕЙ КОМАНДЫ ПРОЦЕССОРА ПРИ ВЫХОДЕ ИЗ ВИРТУАЛЬНОЙ МАШИНЫ | 2015 |
|
RU2686552C2 |
СИСТЕМЫ И СПОСОБЫ ОБЕСПЕЧЕНИЯ КОМПЬЮТЕРНОЙ БЕЗОПАСНОСТИ, ИСПОЛЬЗУЮЩИЕ ИСКЛЮЧЕНИЯ АСИНХРОННОЙ ИНТРОСПЕКЦИИ | 2016 |
|
RU2703156C2 |
ДВУКРАТНАЯ САМОДИАГНОСТИКА ПАМЯТИ ДЛЯ ЗАЩИТЫ МНОЖЕСТВА СЕТЕВЫХ КОНЕЧНЫХ ТОЧЕК | 2016 |
|
RU2714607C2 |
Система и способы для дешифрования сетевого трафика в виртуализированной среде | 2017 |
|
RU2738021C2 |
ФИЛЬТРАЦИЯ СОБЫТИЙ ДЛЯ ПРИЛОЖЕНИЙ БЕЗОПАСНОСТИ ВИРТУАЛЬНЫХ МАШИН | 2017 |
|
RU2723668C1 |
СИСТЕМА И СПОСОБЫ АУДИТА ВИРТУАЛЬНОЙ МАШИНЫ | 2017 |
|
RU2691187C1 |
АТТЕСТАЦИЯ ХОСТА, СОДЕРЖАЩЕГО ДОВЕРИТЕЛЬНУЮ СРЕДУ ИСПОЛНЕНИЯ | 2015 |
|
RU2679721C2 |
Изобретение относится к области защиты компьютерных систем от вредоносных программ. Техническим результатом является помещение компонента, обнаруживающего запуски процесса, за пределами соответствующей виртуальной машины на более высокий уровень привилегий процессора, чем уровень привилегий операционной системы, что обеспечивает возможность предотвращать сокрытие вредоносного программного обеспечения от компонентов защиты от вредоносных программ. Описанные системы и способы обеспечивают возможность защиты компьютерной системы от вредоносных программ, в частности от вирусов и руткитов. Антивредоносный компонент выполняется внутри виртуальной машины (VM), предоставленной гипервизором. Модуль самоанализа памяти выполняется вне виртуальной машины на уровне гипервизора привилегии процессора и защищает процесс, выполняющийся внутри виртуальной машины посредством защиты от записи страницы памяти соответствующего процесса. Посредством комбинирования антивредоносных компонентов, выполняющихся внутри и снаружи соответствующей VM, некоторые варианты осуществления изобретения могут использовать множество данных поведения, к которым имеют доступ компоненты внутри VM, с обеспечением при этом целостности этих компонент снаружи соответствующей VM. 3 н. и 18 з.п. ф-лы, 11 ил.
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. Способ оценки процесса для выявления вредоносных программ в виртуальной машине, содержащий:
применение по меньшей мере одного процессора хостовой системы для получения первого индикатора оценки процесса, который определен для оцениваемого процесса, причем оцениваемый процесс выполняется в виртуальной машине, предоставленной гипервизором, выполняющимся на хостовой системе;
применение указанного по меньшей мере одного процессора для получения второго индикатора оценки процесса, который определен для оцениваемого процесса; и
в ответ на получение первого и второго индикаторов оценки процесса применение по меньшей мере одного процессора для определения, является ли оцениваемый процесс вредоносным в соответствии с первым и вторым индикаторами оценки процесса;
при этом определение первого индикатора оценки процесса включает в себя применение оценивателя процесса, выполняющегося в виртуальной машине, для определения того, осуществляет ли оцениваемый процесс первое действие; и
определение второго индикатора оценки процесса включает в себя применение модуля самоанализа памяти, выполняющегося вне виртуальной машины, для определения того, осуществляет ли оцениваемый процесс второе действие,
при этом определение того, осуществляет ли оцениваемый процесс второе действие, предусматривает перехват вызова функции операционной системы для обнаружения запуска защищаемого процесса, выполняющегося в виртуальной машине, причем функция операционной системы конфигурирована для добавления защищаемого процесса в список процессов, выполняющихся в виртуальной машине, и
в ответ на обнаружение этого запуска определение второго индикатора оценки процесса в зависимости от определения того, пытается ли оцениваемый процесс модифицировать страницу памяти защищаемого процесса.
Пломбировальные щипцы | 1923 |
|
SU2006A1 |
Приспособление для суммирования отрезков прямых линий | 1923 |
|
SU2010A1 |
Изложница с суживающимся книзу сечением и с вертикально перемещающимся днищем | 1924 |
|
SU2012A1 |
Многоступенчатая активно-реактивная турбина | 1924 |
|
SU2013A1 |
АГЕНТЫ ЗАЩИТЫ И ПРИВИЛЕГИРОВАННЫЕ РЕЖИМЫ | 2007 |
|
RU2468418C2 |
Авторы
Даты
2017-10-24—Публикация
2014-07-02—Подача