ВНЕСЕНИЕ ОШИБКИ СТРАНИЦЫ В ВИРТУАЛЬНЫХ МАШИНАХ

1. Хостовая система, содержащая аппаратный процессор, конфигурированный для управления:
гипервизором, конфигурированным для предоставления виртуальной машины, содержащей виртуализированный процессор и виртуализированную память и конфигурированной для применения виртуализированного процессора для выполнения целевого процесса; и
движком самоанализа памяти, выполняющимся вне виртуальной машины и конфигурированным для:
определения, в соответствии с таблицей страниц виртуальной машины, выгружена ли из виртуализированной памяти целевая страница пространства виртуальной памяти целевого процесса; и
в ответ, когда целевая страница выгружена из виртуализированной памяти, непосредственного внесения в виртуальную машину ошибки страницы, причем ошибка страницы приводит к тому, что операционная система виртуальной машины отображает целевую страницу в страницу виртуализированной памяти.
2. Хостовая система по п. 1, в которой непосредственное внесение ошибки страницы содержит модификацию структуры данных, используемой гипервизором для управления виртуализированным процессором.
3. Хостовая система по п. 2, в которой структура данных содержит структуру управления виртуальной машины (VMCS), присвоенную виртуализированному процессору.
4. Хостовая система по п. 1, в которой непосредственное внесение ошибки страницы предусматривает, что движок самоанализа памяти записывает виртуальный адрес целевой страницы в регистр виртуализированного процессора.
5. Хостовая система по п. 1, в которой движок самоанализа памяти дополнительно конфигурирован для:
определения, при подготовке к непосредственному внесению ошибки страницы, удовлетворено ли условие внесения в соответствии с текущим состоянием виртуализированного процессора; и
в ответ, когда это условие внесения удовлетворено, непосредственного внесения ошибки страницы.
6. Хостовая система по п. 5, в которой определение того, удовлетворено ли условие события внесения, содержит определение уровня запроса прерывания (IRQL) виртуализированного процессора.
7. Хостовая система по п. 5, в которой определение того, удовлетворено ли условие события внесения, содержит определение уровня привилегий, на котором виртуализированный процессор выполняется в данный момент.
8. Хостовая система по п. 5, в которой определение того, удовлетворено ли условие события внесения, содержит определение текущего контекста выполнения виртуализированного процессора.
9. Хостовая система по п. 1, в которой движок самоанализа памяти дополнительно конфигурирован, в ответ на непосредственное внесение ошибки страницы, для:
детектирования модификации элемента таблицы страниц целевой страницы и
в ответ определения, была ли отображена целевая страница в страницу виртуализированной памяти в соответствии с этой модификацией.
10. Хостовая система по п. 1, в которой движок самоанализа памяти дополнительно конфигурирован для определения, является ли целевой процесс вредоносным в соответствии с содержимым целевой страницы.
11. Хостовая система по п. 1, в которой движок самоанализа памяти дополнительно конфигурирован для пресечения попытки модифицировать содержимое целевой страницы.
12. Хостовая система по п. 1, в которой движок самоанализа памяти дополнительно конфигурирован при подготовке к определению того, выгружена ли целевая страница из виртуализированной памяти, для:
определения события виртуализированного процессора, причем событие указывает на запуск в виртуальной машине целевого процесса; и
в ответ определения виртуального адреса целевой страницы в соответствии с этим событием.
13. Способ, содержащий:
применение по меньшей мере одного аппаратного процессора хостовой системы для выполнения программы гипервизора, конфигурированного для предоставления виртуальной машины, содержащей виртуализированный процессор и виртуализированную память и дополнительно конфигурированной для применения виртуализированного процессора для выполнения целевого процесса;
применение указанного по меньшей мере одного аппаратного процессора для определения того, выгружена ли из виртуализированной памяти целевая страница пространства виртуальной памяти целевого процесса; и
в ответ, когда целевая страница выгружена из виртуализированной памяти, применение указанного по меньшей мере одного аппаратного процессора для непосредственного внесения в виртуальную машину ошибки страницы, причем ошибка страницы приводит к тому, что операционная система виртуальной машины отображает целевую страницу в страницу виртуализированной памяти
14. Способ по п. 13, в котором непосредственное внесение ошибки страницы содержит модификацию структуры данных, используемой гипервизором для управления виртуализированным процессором.
15. Способ по п. 14, в котором структура данных содержит структуру управления виртуальной машины (VMCS), присвоенную виртуализированному процессору.
16. Способ по п. 13, в котором непосредственное внесение ошибки страницы предусматривает запись виртуального адреса целевой страницы в регистр виртуализированного процессора.
17. Способ по п. 13, дополнительно содержащий, при приготовлении к непосредственному внесению ошибки страницы:
применение указанного по меньшей мере одного аппаратного процессора для определения, удовлетворено ли условие внесения в соответствии с текущим состоянием виртуализированного процессора; и
в ответ применение указанного по меньшей мере одного аппаратного процессора для непосредственного внесения ошибки страницы, когда это условие внесения удовлетворено.
18. Способ по п. 17, в котором определение того, удовлетворено ли условие события внесения, содержит определение уровня запроса прерывания (IRQL) виртуализированного процессора.
19. Способ по п. 17, в котором определение того, удовлетворено ли условие события внесения, содержит определение уровня привилегий, на котором виртуализированный процессор выполняется в данный момент.
20. Способ по п. 17, в котором определение того, удовлетворено ли условие события внесения, содержит определение текущего контекста выполнения виртуализированного процессора.
21. Способ по п. 13, дополнительно содержащий, в ответ на непосредственное внесение ошибки страницы:
применение указанного по меньшей мере одного аппаратного процессора для детектирования модификации элемента таблицы страниц целевой страницы и
в ответ применение указанного по меньшей мере одного аппаратного процессора для определения, была ли отображена целевая страница в страницу виртуализированной памяти в соответствии с этой модификацией.
22. Способ по п. 13, дополнительно содержащий применение указанного по меньшей мере одного аппаратного процессора для определения, является ли целевой процесс вредоносным в соответствии с содержимым целевой страницы.
23. Способ по п. 13, дополнительно содержащий применение указанного по меньшей мере одного аппаратного процессора для пресечения попытки модифицировать содержимое целевой страницы.
24. Способ по п. 13, дополнительно содержащий при подготовке к определению того, выгружена ли целевая страница из виртуализированной памяти:
применение указанного по меньшей мере одного аппаратного процессора для детектирования события виртуализированного процессора, причем событие указывает на запуск в виртуальной машине целевого процесса; и
в ответ, применение указанного по меньшей мере одного аппаратного процессора для определения виртуального адреса целевой страницы в соответствии с этим событием.
25. Постоянный машиночитаемый носитель, хранящий команды, которые, при выполнении по меньшей мере одним аппаратным процессором хостовой системы, побуждают хостовую систему образовывать движок
самоанализа памяти, причем хостовая система дополнительно конфигурирована для выполнения гипервизора, предоставляющего виртуальную машину, содержащую виртуализированный процессор и виртуализированную память и конфигурированную для применения виртуализированного процессора для выполнения целевого процесса, при этом движок самоанализа памяти выполняется вне виртуальной машины и конфигурирован для:
определения, в соответствии с таблицей страниц виртуальной машины, выгружена ли целевая страница пространства виртуальной памяти целевого процесса из виртуализированной памяти; и
в ответ, когда целевая страница выгружена из виртуализированной памяти, непосредственного внесения в виртуальную машину ошибки страницы, причем ошибка страницы приводит к тому, что операционная система виртуальной машины отображает целевую страницу в страницу виртуализированной памяти.