Система и способы для дешифрования сетевого трафика в виртуализированной среде

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