СЕЛЕКТИВНОЕ ОБЕСПЕЧЕНИЕ СОБЛЮДЕНИЯ ЦЕЛОСТНОСТИ КОДА, ОБЕСПЕЧИВАЕМОЕ МЕНЕДЖЕРОМ ВИРТУАЛЬНОЙ МАШИНЫ

1. Способ, реализованный в вычислительном устройстве, для защиты от вредоносных программ, причем способ содержит:
идентификацию страницы памяти, включающую в себя исполняемый код, подлежащий исполнению виртуальным процессором виртуальной машины, причем виртуальная машина управляется менеджером виртуальной машины;
определение, должна ли страница памяти быть исполняемой в режиме ядра;
выполнение более привилегированным объектом, чем операционная система виртуальной машины и в ответ на определение, что страница памяти должна быть исполняемой в режиме ядра, проверки целостности кода исполняемого кода, основанной на политике целостности кода, и предоставление возможности исполнения исполняемого кода для режима ядра, если только проверка целостности кода верифицирует исполняемый код; и
предоставление возможности в ответ на определение, что страница памяти не должна быть исполняемой в режиме ядра, определения операционной системой виртуальной машины, предоставить ли возможность исполнения исполняемого кода в пользовательском режиме.
2. Способ по п. 1, в котором более привилегированным объектом, чем операционная система виртуальной машины, является менеджер виртуальной машины.
3. Способ по п. 1, дополнительно содержащий выполнение операционной системой и в ответ на определение, что страница памяти не должна быть исполняемой в режиме ядра, проверки целостности кода исполняемого кода и предоставление возможности исполнения исполняемого кода, если только проверка целостности кода операционной системой верифицирует исполняемый код.
4. Способ по п. 1, в котором вычислительное устройство дополнительно содержит компонент, включающий в себя атрибут, предоставляющий возможность задавать разрешение исполнения для режима ядра виртуального процессора отдельно от разрешения исполнения или политики для пользовательского режима виртуального процессора.
5. Вычислительное устройство, включающее в себя операционную систему, менеджер виртуальной машины и процессор, причем процессор выполнен с возможностью предоставления менеджеру виртуальной машины возможности ограничения исполнения в режиме ядра страниц памяти, включающих в себя исполняемый код, подлежащий исполнению виртуальным процессором виртуальной машины, страницами памяти, имеющими код, целостность которого была верифицирована проверкой целостности кода, основанной на политике целостности кода, более привилегированным объектом, который является более привилегированным, чем операционная система, но предоставления возможности исполнения в пользовательском режиме страниц памяти, не учитывая, была ли верифицирована целостность кода страниц памяти более привилегированным объектом посредством предоставления возможности, в ответ на определение, что страница памяти не должна быть исполняемой в режиме ядра, определения операционной системой виртуальной машины, предоставлять ли возможность исполнения исполняемого кода в пользовательском режиме.
6. Вычислительное устройство по п. 5, в котором процессор дополнительно выполнен с возможностью установки атрибута разрешения исполнения страницы памяти, хранящей код, целостность которого была верифицирована менеджером виртуальной машины.
7. Вычислительное устройство по п. 5, в котором процессор включает в себя таблицу преобразования адресов, атрибут которой предоставляет возможность задавать разрешение исполнения для исполнения в режиме ядра страниц памяти отдельно от разрешения исполнения для исполнения в пользовательском режиме страниц памяти.
8. Вычислительное устройство по п. 5, в котором процессор дополнительно включает в себя аппаратный компонент, имеющий атрибут, предоставляющий возможность задавать разрешение исполнения для исполнения в режиме ядра страниц памяти отдельно от политики исполнения для исполнения в пользовательском режиме страниц памяти.
9. Вычислительное устройство по п. 8, в котором атрибут, предоставляющий возможность задавать разрешение исполнения для исполнения в режиме ядра страниц памяти отдельно от политики исполнения для исполнения в пользовательском режиме страниц памяти для каждой страницы памяти.
10. Вычислительное устройство по п. 8, в котором атрибут, предоставляющий возможность одной комбинации исполнения, которая не предоставляет возможность исполнения в режиме ядра кода в странице памяти, но предоставляет возможность исполнения в пользовательском режиме кода в странице памяти, и дополнительной комбинации, которая не предоставляет возможность как исполнения в режиме ядра кода в странице памяти, так и исполнения в пользовательском режиме кода в странице памяти.