СИСТЕМЫ И СПОСОБЫ ПРЕДОСТАВЛЕНИЯ ТЕКУЩЕЙ КОМАНДЫ ПРОЦЕССОРА ПРИ ВЫХОДЕ ИЗ ВИРТУАЛЬНОЙ МАШИНЫ

1. Хостовая система, содержащая по меньшей мере один аппаратный процессор, конфигурированный для выполнения виртуальной машины и программы компьютерной безопасности, причем упомянутый по меньшей мере один процессор дополнительно конфигурирован так, чтобы:
определять, приводит ли выполнение гостевой команды внутри виртуальной машины к нарушению разрешения на доступ к памяти; и
в ответ, когда выполнение гостевой команды приводит к нарушению:
записывать часть представления машинного кода гостевой команды в предопределенную область, доступную для программы компьютерной безопасности;
приостанавливать выполнение гостевой команды; и
в ответ на приостановку выполнения гостевой команды, переключаться на выполнение программы компьютерной безопасности, при этом программа компьютерной безопасности конфигурирована для определения, указывает ли нарушение на угрозу компьютерной безопасности.
2. Хостовая система по п. 1, причем представление машинного кода содержит последовательность кодирующих полей, при этом упомянутая часть включает в себя содержимое отдельного кодирующего поля гостевой команды.
3. Хостовая система по п. 2, причем отдельное кодирующее поле выбрано из группы, состоящей из поля префикса, поля кода операции, поля mod R/M, поля SIB, поля смещения и ближнего поля представления машинного кода.
4. Хостовая система по п. 1, причем упомянутая часть указывает оператор гостевой команды.
5. Хостовая система по п. 1, причем упомянутая часть указывает операнд гостевой команды.
6. Хостовая система по п. 1, причем по меньшей мере один аппаратный процессор дополнительно конфигурирован так, чтобы, в ответ на определение, приводит ли выполнение гостевой команды к нарушению, когда выполнение гостевой команды приводит к нарушению, записывать адрес памяти, указанный гостевой командой, в предопределенную область.
7. Хостовая система по п. 6, причем адрес памяти представляет собой гостевой физический адрес (GPA), расположенный внутри пространства памяти виртуальной машины, при этом GPA определен трансляцией виртуального адреса, указанного представлением машинного кода.
8. Хостовая система по п. 6, причем адрес памяти представляет собой хостовый физический адрес (HPA), расположенный внутри физической памяти хостовой системы, при этом HPA определен трансляцией виртуального адреса, указанного представлением машинного кода.
9. Хостовая система по п. 6, причем адрес памяти определен согласно области памяти гостевой команды.
10. Хостовая система по п. 1, причем по меньшей мере один аппаратный процессор дополнительно конфигурирован так, чтобы, в ответ на определение, приводит ли выполнение гостевой команды к нарушению, когда выполнение гостевой команды приводит к нарушению, записывать индикатор регистра процессора в предопределенную область, при этом регистр указан гостевой командой.
11. Хостовая система по п. 1, причем программа компьютерной безопасности выполняется внутри виртуальной машины.
12. Хостовая система по п. 1, причем программа компьютерной безопасности выполняется вне виртуальной машины.
13. Хостовая система по п. 1, причем предопределенная область содержит предопределенный регистр, по меньшей мере, одного аппаратного процессора.
14. Хостовая система по п. 13, причем предопределенный регистр представляет собой модельно-зависимый регистр (MSR), по меньшей мере, одного аппаратного процессора.
15. Хостовая система по п. 1, причем предопределенная область содержит предопределенную секцию памяти хостовой системы.
16. Хостовая система по п. 1, причем предопределенная область содержит структуру данных, указывающую текущее состояние виртуальной машины.
17. Способ защиты хостовой системы от угроз компьютерной безопасности, содержащий этапы:
в ответ на получение гостевой команды на выполнение, используют по меньшей мере один аппаратный процессор хостовой системы для определения, приводит ли выполнение гостевой команды к нарушению разрешения на доступ к памяти, при этом гостевую команду выполняют внутри виртуальной машины, предоставленной хостовой системой; и
в ответ на определение, приводит ли гостевая команда к нарушению, когда выполнение гостевой команды приводит к нарушению:
используют по меньшей мере один аппаратный процессор для записи части представления машинного кода гостевой команды в предопределенную область, доступную для программы компьютерной безопасности;
используют по меньшей мере один аппаратный процессор для приостановки выполнения гостевой команды; и
в ответ на приостановку выполнения гостевой команды, переключаются на выполнение программы компьютерной безопасности, которая конфигурирована для определения, указывает ли нарушение на угрозу компьютерной безопасности.
18. Способ по п. 17, в котором представление машинного кода содержит последовательность кодирующих полей, при этом упомянутая часть включает в себя содержимое отдельного кодирующего поля гостевой команды.
19. Способ по п. 17, в котором упомянутая часть указывает оператор гостевой команды.
20. Способ по п. 17, в котором упомянутая часть указывает операнд гостевой команды.
21. Способ по п. 17, в котором предопределенная область содержит предопределенный регистр, по меньшей мере, одного аппаратного процессора.
22. Аппаратный процессор хостовой системы, выполненный с возможностью конфигурирования так, чтобы:
в ответ на получение гостевой команды на выполнение, определять, приводит ли выполнение гостевой команды к нарушению разрешения на доступ к памяти, причем гостевая команда выполняется внутри гостевой виртуальной машины, предоставленной хостовой системой; и
в ответ на определение, приводит ли гостевая команда к нарушению, когда выполнение гостевой команды приводит к нарушению:
записывать часть представления машинного кода гостевой команды в предопределенную область, доступную для программы компьютерной безопасности;
приостанавливать выполнение гостевой команды; и
в ответ на приостановку выполнения гостевой команды, переключаться на выполнение программы компьютерной безопасности, причем программа компьютерной безопасности конфигурирована для определения, указывает ли нарушение на угрозу компьютерной безопасности.
23. Долговременный машиночитаемый носитель, хранящий команды, которые, при выполнении их по меньшей мере одним аппаратным процессором хостовой системы, побуждает хостовую систему формировать программу компьютерной безопасности, конфигурированную для определения, указывает ли нарушение разрешения на доступ к памяти на угрозу компьютерной безопасности, причем по меньшей мере один аппаратный процессор выполнен с возможностью конфигурирования так, чтобы:
в ответ на получение гостевой команды на выполнение, определять, приводит ли выполнение гостевой команды к нарушению, при этом гостевая команда выполняется внутри виртуальной машины, предоставленной хостовой системой; и
в ответ на определение, приводит ли выполнение гостевой команды к нарушению, когда выполнение гостевой команды приводит к нарушению:
записывать часть представления машинного кода гостевой команды в предопределенную область, доступную для программы компьютерной безопасности;
приостанавливать выполнение гостевой команды; и
в ответ на приостановку выполнения гостевой команды, переключаться на выполнение программы компьютерной безопасности.