ES2827007T3

System and methods for decrypting network traffic in a virtualized environment

Abstract

A computer system (12) comprising a hardware processor and memory, the hardware processor configured to run a virtual machine (32) and an introspection engine, (418), wherein: the virtual machine is configured to carry out a communication session with a remote party, the communication session comprising a handshake message followed by an encrypted payload, where the handshake message contains an encryption parameter used by the computer system to derive an encryption key, and where the encrypted payload is encrypted with the encryption key; and in which the introspection engine runs outside the virtual machine and is configured to: identify within memory a target memory page based on whether a content of the target memory page has changed (536) between an occurrence of a first session event of the communication session (524) and an occurrence of a second session event of the communication session, (530), and in response, transmitting the content of the target memory page to a decryption engine configured to decrypt the encrypted payload based on the content.

ES2827007T3, drawing sheet 1
Sheet 1 of 8

Term

10.5 yearsto projected expiry

Projected expiry 29 March 2037, counted from filing; an application has no term until it is granted.

  1. Priority
  2. Filed
  3. Published
  4. Today
  5. Projected expiry

21 claims: 3 independent, 18 dependent

  1. 1
    ES 2 827 007 T3 REIVINDICACIONES 1. Un sistema informático (12) que comprende un procesador de hardware y una memoria, el procesador de hardware configurado para ejecutar una máquina virtual (32) y un motor de introspección, (418), en el que:la máquina virtual está configurada para llevar a cabo una sesión de comunicación con una parte remota, comprendiendo la sesión de comunicación un mensaje de toma de contacto seguido de una cabida útil cifrada, en el que el mensaje de toma de contacto contiene un parámetro de cifrado utilizado por el sistema informático para derivar una clave de cifrado, y donde la cabida útil cifrada está cifrada con la clave de cifrado;y en el que el motor de introspección se ejecuta fuera de la máquina virtual y está configurado para: identificar dentro de la memoria una página de memoria objetivo en función de si un contenido de la página de memoria objetivo ha cambiado (536) entre una ocurrencia de un primer evento de sesión de la sesión de comunicación (524) y una ocurrencia de un segundo evento de sesión de la sesión de comunicación, (530), y en respuesta, transmitir el contenido de la página de memoria objetivo a un motor de descifrado configurado para descifrar la cabida útil cifrada en función del contenido.
  2. 2
    El sistema informático de la reivindicación 1, en el que el primer evento de sesión comprende enviar el mensaje de toma de contacto desde el sistema cliente a la parte remota o recibir el mensaje de toma de contacto en el sistema cliente.
  3. 3
    El sistema informático de la reivindicación 2, en el que la sesión de comunicación cumple con un protocolo de seguridad en la capa de transporte (Transport Layer Security, TLS), y en el que el mensaje de toma de contacto comprende un mensaje ClientHello o un mensaje ServerHello.
  4. 4
    El sistema informático de la reivindicación 1, en el que el segundo evento de sesión comprende enviar un paquete de datos cifrados desde el sistema cliente a la parte remota o recibir el paquete de datos cifrados en el sistema cliente, y en el que el paquete de datos está cifrado con la clave de cifrado.
  5. 5
    El sistema informático de la reivindicación 4, en el que la sesión de comunicación cumple con un protocolo de seguridad en la capa de transporte y en el que el paquete de datos comprende una parte de un mensaje ClientFinished o una parte de un mensaje ServerFinished.
  6. 6
    El sistema informático de la reivindicación 4, en el que el paquete de datos comprende una parte de la cabida útil cifrada.
  7. 7
    El sistema informático de la reivindicación 1, en el que identificar la página de memoria objetivo comprende:seleccionar una página de memoria candidata de un grupo de páginas de memoria utilizadas por la máquina virtual;en respuesta a la detección de la ocurrencia del segundo evento de sesión, determinar en función de una entrada de la tabla de páginas de la página de memoria candidata si se ha escrito en la página de memoria candidata antes de la ocurrencia del segundo evento de sesión;en respuesta a la determinación de si se ha escrito en la página de memoria candidata, cuando se ha escrito en la página de memoria candidata, seleccionar la página de memoria candidata como la página de memoria objetivo.
  8. 8
    El sistema informático de la reivindicación 1, en el que el al menos un procesador de hardware está configurado para ejecutar además un filtro de red fuera de la máquina virtual, controlando el filtro de red un adaptador de red del sistema cliente, en el que:el filtro de red está configurado para interceptar el mensaje de toma de contacto y, en respuesta, para transmitir una notificación al motor de introspección;y el motor de introspección está configurado además para inferir la ocurrencia del primer evento de sesión en función de la notificación.
  9. 9
    El sistema informático de la reivindicación 1, en el que el al menos un procesador de hardware está configurado para ejecutar además un filtro de red fuera de la máquina virtual, controlando el filtro de red un adaptador de red del sistema cliente, en el que:el motor de introspección está configurado, además, en respuesta a la ocurrencia del segundo evento de sesión, para copiar el contenido de la página de memoria objetivo y, en respuesta, para transmitir una notificación al filtro de red;y el filtro de red está configurado para interceptar un paquete de datos destinado a la máquina virtual y, en respuesta, para retrasar la entrega del paquete de datos a la máquina virtual hasta recibir la notificación.
  10. 10
    El sistema informático de la reivindicación 1, en el que el motor de introspección está configurado además, en respuesta a una ocurrencia de un tercer evento, para identificar la página de memoria objetivo además en función de si el contenido de la página de memoria objetivo ha cambiado entre la ocurrencia del primer evento de sesión y la ES 2 827 007 T3 ocurrencia del tercer evento, en el que la ocurrencia del tercer evento está causada por otra sesión de comunicación simultánea a la sesión de comunicación.
  11. 11
    Un procedimiento implementado por ordenador para descifrar comunicaciones cifradas entre un sistema informático (12) y una parte remota, en el que el sistema informático está configurado para ejecutar una máquina virtual (32) y un motor de introspección (418) que se ejecuta fuera de la máquina virtual, en el que la máquina virtual está configurada para llevar a cabo una sesión de comunicación con la parte remota, comprendiendo la sesión de comunicación un mensaje de toma de contacto seguido de una cabida útil cifrada, en el que el mensaje de toma de contacto contiene un parámetro de cifrado utilizado por el sistema informático para derivar una clave de cifrado, y en el que la cabida útil cifrada está cifrada con la clave de cifrado, comprendiendo el procedimiento las etapas de identificar, mediante el motor de introspección, dentro de una memoria del sistema informático una página de memoria objetivo en función de si un contenido de la página de memoria objetivo ha cambiado (536) entre una ocurrencia de un primer evento de sesión de la sesión de comunicación (524) y una ocurrencia de un segundo evento de sesión de la sesión de comunicación (530);y transmitir el contenido de la página de memoria objetivo a un motor de descifrado configurado para descifrar la cabida útil cifrada en función del contenido de la página de memoria objetivo.
  12. 12
    El procedimiento de la reivindicación 11, en el que el primer evento de sesión comprende enviar el mensaje de toma de contacto desde el sistema cliente a la parte remota o recibir el mensaje de toma de contacto en el sistema cliente.
  13. 13
    El procedimiento de la reivindicación 12, en el que la sesión de comunicación cumple con un protocolo de seguridad en la capa de transporte, TLS, y en el que el mensaje de toma de contacto comprende un mensaje ClientHello o un mensaje ServerHello.
  14. 14
    El procedimiento de la reivindicación 11, en el que el segundo evento de sesión comprende enviar un paquete de datos cifrados desde el sistema cliente a la parte remota o recibir el paquete de datos cifrados en el sistema cliente, y en el que el paquete de datos está cifrado con la clave de cifrado.
  15. 15
    El procedimiento de la reivindicación 14, en el que la sesión de comunicación cumple con un protocolo de seguridad en la capa de transporte y en el que el paquete de datos comprende una parte de un mensaje ClientFinished o una parte de un mensaje ServerFinished.
  16. 16
    El procedimiento de la reivindicación 14, en el que el paquete de datos comprende una parte de la cabida útil cifrada.
  17. 17
    El procedimiento de la reivindicación 11, en el que identificar la página de memoria objetivo comprende:seleccionar una página de memoria candidata de un grupo de páginas de memoria utilizadas por la máquina virtual;en respuesta a la detección de la ocurrencia del segundo evento de sesión, determinar en función de una entrada de la tabla de páginas de la página de memoria candidata si se ha escrito en la página de memoria candidata antes de la ocurrencia del segundo evento de sesión;en respuesta a la determinación de si se ha escrito en la página de memoria candidata, cuando se ha escrito en la página de memoria candidata, seleccionar la página de memoria candidata como la página de memoria objetivo.
  18. 18
    El procedimiento de la reivindicación 11, en el que el al menos un procesador de hardware está configurado para ejecutar además un filtro de red fuera de la máquina virtual, controlando el filtro de red un adaptador de red del sistema cliente, el procedimiento además caracterizado por:estar configurado el filtro de red para interceptar el mensaje de toma de contacto y, en respuesta, para transmitir una notificación al motor de introspección;y estar configurado además el motor de introspección para inferir la ocurrencia del primer evento de sesión en función de la notificación.
  19. 19
    El procedimiento de la reivindicación 11, en el que el al menos un procesador de hardware está configurado para ejecutar además un filtro de red fuera de la máquina virtual, controlando el filtro de red un adaptador de red del sistema cliente, el procedimiento además caracterizado por:estar configurado el motor de introspección, en respuesta a la ocurrencia del segundo evento de sesión, para copiar el contenido de la página de memoria objetivo y, en respuesta, para transmitir una notificación al filtro de red;y estar configurado el filtro de red para interceptar un paquete de datos destinado a la máquina virtual y, en respuesta, para retrasar la entrega del paquete de datos a la máquina virtual hasta recibir la notificación. ES 2 827 007 T3
  20. 20
    El procedimiento de la reivindicación 11, además caracterizado por que el motor de introspección está configurado, en respuesta a una ocurrencia de un tercer evento, para identificar la página de memoria objetivo además en función de si el contenido de la página de memoria objetivo ha cambiado entre la ocurrencia del primer evento de sesión y la ocurrencia del tercer evento, en el que la ocurrencia del tercer evento está causada por otra sesión de 5 comunicación simultánea a la sesión de comunicación.
  21. 21
    Un medio no transitorio legible por ordenador que almacena instrucciones que, cuando son ejecutadas por un procesador de hardware de un sistema informático, hacen que el procesador de hardware forme una máquina virtual que se ejecuta en el sistema informático y un motor de introspección que se ejecuta en el sistema informático fuera de la máquina virtual, en el que la máquina virtual está configurada para llevar a cabo una sesión de comunicación 10 con una parte remota, comprendiendo la sesión de comunicación un mensaje de toma de contacto seguido de una cabida útil cifrada, en el que el mensaje de toma de contacto contiene un parámetro de cifrado utilizado por el sistema informático para derivar una clave de cifrado, y en el que la cabida útil cifrada es cifrada con la clave de cifrado, el medio legible por ordenador caracterizado por hacer que el motor de introspección realice las etapas enumeradas en la reivindicación 11.
Independent claims21