Avances en Virtualización

Body

El panorama actual de computación no es del todo nuevo. Antes de las computadoras personales y computación móvil, la principal infraestructura computacional era la computación mainframe. Esta computación funcionaba similar a los clientes ligeros de la actualidad: un sistema cliente se conecta hacia un sistema principal el cual realiza todo el trabajo pesado y el procesamiento sobre el backend. De hecho los primeros sistemas completamente virtualizados fueron creados por IBM en la década de 1960.

Los entornos virtuales actuales se ejecutan sobre hipervisores los cuales administran y vigilan las máquinas virtuales. Los hipervisores pueden ser ya sea físicos o lógicos. El sistema operativo local o nativo se conoce como la máquina anfitrión, y el software virtual ejecutándose sobre este es el sistema operativo invitado. Software moderno de virtualización es a la vez una ventaja y una desventaja. Es una ventaja por las oportunidades y facilidad de uso para los clientes, y es una desventaja por el nuevo panorama de ciberamenazas el cual abre. Como con toda nueva tecnología, se debe ser proactivos y diligentes para garantizar la mejor y más segura experiencia para los usuarios y sus datos personales.

Igual a la seguridad de red tradicional, es vital tener visibilidad del tráfico dentro de la red virtual. Al igual los switches físicos son configurados para vigilar tráfico de red hacia y desde máquinas físicas, los conmutadores virtuales se utilizan para vigilar y gestionar el tráfico hacia y desde máquinas virtuales. También como los dispositivos físicos, los switches virtuales deben también ser configurados para operar en modo promiscuo con el propósito de vigilar el tráfico de red.

Con una infraestructura en la nube, los métodos tradicionales para encaminamiento y conmutación están virtualmente obsoletos. Al igual los switches Ethernet tradicionales, los switches virtuales gestionan paquetes.

Los switches virtuales vienen en varias formas:

  • Incorporados en el software virtual
  • Incluidos como firmware sobre el servidor
  • Adaptadores Ethernet virtuales

 

Los adaptadores Ethernet virtuales conectan sistemas virtuales únicos el uno con el otro, o hacia el switch virtual. También se pueden configurar tarjetas NIC virtuales para interactúen con switches virtuales específicos. Una máquina virtual con su propia NIC es considerada aislada, pues no tiene la capacidad para interactuar con otras máquinas virtuales. Esta funcionalidad es importante cuando se trata de aislar con éxito máquinas virtuales, ya sea por buenas prácticas de seguridad o por acuerdo contractual cuando se trata de ofertas de nubes privadas.

Fuentes:

https://pentestlab.blog/2013/02/25/common-virtualization-vulnerabilitie…
https://softwareengineering.stackexchange.com/questions/196405/how-did-…
 

Defensa Virtual

Body

Como se repite constantemente, la separación de tipos de datos es vital tanto para los sistemas tradicionales cuanto para los virtuales. La separación lógica de datos en un entorno virtualizado puede ser realizado de muchas maneras:

  • Dispositivos para conmutación virtual gestionando tráfico de datos de red similar a los switches tradicionales.
  • Los firewalls virtuales proporcionan filtrado e inspección de contenido.

La importancia de una aplicación de parches oportuna y eficaz es fundamental. Esto es especialmente verdadero cuando se habla sobre virtualización. Aunque es más fácil recordar las máquinas anfitrionas subyacentes tendrán vulnerabilidades y requerirán parches, es igualmente importante recordar las máquinas virtuales tendrán sus propios sistemas operativos y requerirán también sus propios parches.

Además de la separación lógica, las máquinas virtuales pueden también ser separadas simplemente utilizando diferentes máquinas físicas como sus anfitriones. En muchas instancias esto es un requerimiento. Las organizaciones gubernamentales y comerciales quienes posean y procesen información altamente sensible frecuentemente requieren los sistemas virtuales estén separados en servidores físicos diferentes.

Otra buena táctica de defensa es emplear VLAN independientes para diferentes sistemas y redes virtualizadas. Igual a los switches físicos, los switches virtuales pueden también ser utilizados para gestionar y crear LAN virtuales.

Fuentes:

https://www.vmware.com/topics/virtualized-security
 

Ataques contra la Virtualización (Parte III)

Body

Hyper Jumping

Muchos sistemas operativos invitados frecuentemente residen dentro de un sistema físico. El hyper Jumping ocurre cuando un ciberatacante es capaz de generar una brecha en un sistema operativo invitado, para luego migrar o saltar hacia otro sistema operativo invitado siendo hospedado en el mismo sistema físico. Esto incluye tanto sistemas operativos cuanto aplicaciones. En lugar de tomar control del hipervisor o de la máquina anfitrión, el hyper jumping es un compromiso lateral el cual utiliza una máquina invitada para comprometer otras.

Rowhammer

Rowhammer es un ataque el cual puede ser utilizado contra máquinas virtuales para escalar privilegios de usuario y escapar de los sandboxes y el aislamiento de las máquinas virtuales. Rowhammer es un exploit de hardware el cual manipula elementos de memoria física. El ataque funciona manipulando e intercambiando bits en la memoria de la computadora.

Blue Pill

Mientras Rowhammer es un exploit físico, Blue Pill es un ataque lógico el cual están constituido por paquetes de software malicioso llamados rootkits. El ataque Blue Pill es una forma de Hiperjacking, el cual manipula el modo a bajo nivel del kernel para proporcionar permisos con nivel de root al ciberatacante. Esto permite al ciberatacante interceptar y manipular las comunicaciones hacia y desde las máquinas invitadas. Si alguna vez se ha visto la película Matrix, probablemente se adivine el origen para el nombre de este exploit. Así como Neo; el protagonista de la película; tenía acceso hacia todos los sistemas y repositorios, el exploit Blue Pill proporciona al usuario mlicioso acceso ilimitado hacia los demás invitados. Blue Pill es uno de los exploits ejecutándose como un hipervisor falso, proporcionando acceso hacia los demás sistemas operativos invitados. Este software malicioso funcionó tan bien que Intel lo integró en su tecnología Intel VT.

Fuentes:

https://www.zdnet.com/article/blue-pill-the-first-effective-hypervisor-…
https://news.softpedia.com/news/new-ffs-rowhammer-attack-targets-linux-…
 

Ataques contra la Virtualización (Parte II)

Body

Errores de Aislamiento

Un común error administrativo cometido por los ingenieros de red es no segmentar los dispositivos y componentes de red. Esto puede ser aplicado también a la virtualización. Teniendo en mente las máquinas virtuales también emplean sus propias tarjetas virtuales para interfaz de red, es importante asegurarse las máquinas virtuales estén apropiadamente configuradas para únicamente interactuar con sistemas autorizados. Adicionalmente si un ciberatacante comprometiese un sistema virtual, también podría tener acceso de red hacia todos los sistemas conectados con aquel comprometido.

Vulnerabilidades Inherentes

Recordar el sistema anfitrión tiene un sistema operativo, y las máquinas invitadas también tienen sus propios sistemas operativos. Esto significa existen ahora múltiples conjuntos de vulnerabilidades únicas por los cuales preocuparse. El sistema operativo anfitrión tendrá sus vulnerabilidades, y el sistema operativo invitado también tendrá las suyas. Por ejemplo si se está ejecutando Windows 10 y Windows 8 y están siendo hospedados sobre un servidor Windows 2016. En este escenario existen tres sistemas operativos diferentes, cada uno único, y cada uno con sus propias vulnerabilidades. Esto incrementa enormemente tanto el panorama de amenazas como la necesidad de ciberseguridad.

Fuentes:

https://www.cse.wustl.edu/~jain/cse571-09/ftp/vmsec.pdf
 

Ataques contra la Virtualización

Body

Hyperjacking

hyperjacking toma el control del hipervisor, el dispositivo el cual gestionar y controla las máquinas virtuales subyacentes. Esto permite a un ciberatacante ganar control de todas las máquinas virtuales, como también acceder hacia todos los datos manejados por estos sistemas. Típicamente se lanzan contra hipervisores tipo 2 ejecutándose sobre una máquina anfitrión. Es eficiente porque implica un hipervisor falso sea instalado sobre la máquina anfitrión. Un hyperjacking exitoso instala un hipervisor falsificado el cual luego gestionará y tendrá acceso hacia los sistemas operativos invitados existentes.

Escape de la MV

Una máquina virtual esencialmente opera en una sandbox teniendo acceso únicamente hacia los recursos requeridos por funcionalidad. El escape de la máquina virtual elimina este aislamiento. La máquina virtual, la cual es un sistema operativo invitado, es eliminada desde esta sandbox, y es capaz de acceder al hipervisor supervisor además de sus recursos. Esto permite al ciberatacante interactuar y manipular los otros sistemas operativos invitados.

Negación de Servicio (DoS)

Aunque la negación de servicio es un ataque tradicional, puede también aplicarse hacia la virtualización. Para hacer las cosas peores, un DoS puede ser aplicado de dos maneras en lo cual respecta a la virtualización. Un ataque DoS puede ser realizado contra ya sea el sistema operativo anfitrión o las máquinas virtuales invitadas. Similar a la negación de servicio tradicional, los ataques inundan los recursos de la red con tráfico, volviendo los recursos no disponibles. Recordar una máquina anfitrión frecuentemente soporta muchas máquinas invitadas. Un ataque DoS contra un host de este tipo podría paralizar los servicios de múltiples compañías diferentes.

Fuentes:

https://www.astroarch.com/tvp_strategy/vm-escape-is-not-your-main-worry…
 

Mitigación de Riesgos

Body

Aparte de los beneficios de la virtualización, existen y siempre deberían existir, preocupaciones sobre los riesgos de seguridad asociados con la virtualización. Afortunadamente estos riesgos son manejables. A continuación se detalla una lista de tácticas, las cuales de seguirse, ayudarán a mitigar las potenciales amenazas hacia los entornos virtuales sin necesidad de procesos y soluciones engorrosas y costosas.

Separación: Es importante crear un entorno de desarrollo separado para las máquinas virtuales. Esto permite probar las máquinas virtuales de manera segura antes de ponerlas en producción sobre la red en vivo.

Establecer "Zonas de Confianza" para los diferentes entornos desplegados. Esto puede ser comparado hacia clasificaciones de seguridad o niveles de sensibilidad. Cada máquina virtual debe pertenecer a una categoría de seguridad, independientemente de su función, y es allí donde debe residir sobre la red con los controles de seguridad adecuados para el nivel de seguridad apropiado.

Fortalecer procesos: Habilitar procesos de virtualización específicos de TI para aumentar la eficiencia y simplificar la gestión.

Gestión de expansión: Activamente gestionar el entorno virtual. Conocer aquello lo cual está siendo utilizado, aquello necesario o no necesario.

Gestión completa de la pila: Enfocarse en las conexiones de extremo a extremo dentro del entorno virtual para asegurarse no existan brechas.

Auditoría incorporada: Aprovechar herramientas para automatizar verificaciones de seguridad. Hacer la auditoría una parte de la rutina global simplificará el proceso de revisión.

Parchar: Implementar un proceso y un programa para el mantenimiento y gestión de parches, para asegurarse los parches estén actualizados para máquinas virtuales en línea como fuera de línea.

Fuentes:

https://www.freecodecamp.org/news/vm-data-protection-best-practices/
 

Capas Adicionales de Complejidad en la Infraestructura

Body

Con la complejidad adicional la cual puede surgir en un entorno virtualizado, la necesidad de vigilar eventos y anomalías también se vuelve más complejo. Esta complejidad añadida puede hacer más difícil la identificación de problemas de seguridad ya retadores, como amenazas persistentes avanzadas. Algunas complejidades específicas a tener para ser consciente y gestionar son la utilización compartida de recursos y acceso directo a memoria.

El uso compartido de recursos y almacenamiento permite simplificar intercambios de archivos entre máquinas virtuales, además de entre máquinas virtuales y sus sistemas operativos anfitrión. Esta flexibilidad introduce una medida para incrementar también el riesgo. Funciones como compartir el portapapeles puede aumentar la funcionalidad, pero también pueden generar vulnerabilidades de seguridad similares.

Las máquinas virtuales también tienen acceso directo a memoria para controladores como tarjetas de vídeo y de red. Este acceso permite la máquina virtual y el hipervisor creen mejor desempeño pero también incrementa los riesgos. El acceso directo a memoria o (DMA) puede permitir un ciberatacante utilice el almacenamiento de un dispositivo periférico para mover código fuera de la máquina virtual.

Fuentes:

https://amnic.com/blogs/cloud-cost-optimization-challenges

Ausencia de una Separación Física

Body

En las redes físicas tradicionales existía siempre algún tipo de separación, o podría ser hecha exista desconectando un cable entre los sistemas sobre una red. Como ejemplo dos computadoras las cuales están conectadas a la misma LAN Ethernet pueden únicamente comunicarse la una con la otra a través de esa red. Y si el cable de red es desconectado o se pone un firewall entre estas dos computadoras, no serán capaces de comunicarse la una con la otra.

En un entorno virtualizado el hipervisor siempre crea una conexión de software entre los sistemas, no una física. Y debido a estar basado en software, no hay manera de completamente aislar un sistema operativo del otro. La única manera para asegurar separación física en un entorno virtual es migrar una de las máquinas virtuales del sistema operativo hacia una plataforma de hardware diferente. Es esta conexión persistente de software la cual conduce a los administradores de seguridad en redes pensar sobre la virtualización nunca será configurada tan seguramente como una red tradicional.

Fuentes:

https://en.wikipedia.org/wiki/Air_gap_(networking)
 

Las Máquinas se Convierten en Archivos

Body

Los entornos virtualizados son dinámicos por diseño, y algunas veces cambian rápidamente con regularidad. A diferencia de los entornos físicos, docenas e incluso cientos de máquinas virtuales pueden ser encendidas en cuestión de minutos. Este tipo de despliegue rápido y a gran escala de máquinas virtuales nuevas o existentes facilita mucho perder el rastro de aquello en ejecución, aquello desconectado, y cuales vulnerabilidades de seguridad pueden estar presentes.

Esto se denomina expansión virtual, lo cual se refiere hacia la condición en un entorno operativo donde el número de máquinas virtuales en existencia alcanza un punto en el cual ya no se pueden gestionar o asegurar eficazmente. En esta situación la seguridad de todas las máquinas virtuales no puede ser garantizada. Los ciberatacantes utilizarán la expansión virtual como una cubierta para localizar una máquina virtual fuera de linea, utilizándola para ganar acceso hacia los sistemas de una organización.

Afortunadamente la expansión virtual puede ser gestionada, hasta cierto grado, con políticas y técnicas para automatización correctas, pero como cualquier sistema ya sea físico o virtual, una sobrecarga puede ocurrir si es permitido a través de una mala gestión o falta de personal.

Fuentes:

https://www.techtarget.com/searchvmware/tip/Understanding-the-files-tha…
 

El Hipervisor

Body

Los hipervisores están deliberadamente escritos para ser robustos y seguros. Sin embargo como todo software inevitablemente contienen vulnerabilidades, los cuales si son descubiertos podrían ser explotados por un ciberatacante. El valor del hipervisor es reducir la superficie de ataque con la cual debe trabajar un ciberatacantes, lo cual en sí mismo crea un alto nivel de seguridad. La desventaja es toda esta seguridad puede inmediatamente volverse contra uno si un ciberatacante es capaz de comprometer el hipervisor, debido a una vez comprometido el ciberatacante se adueña de todo.

Afortunadamente existe una solución de seguridad para el hipervisor llamada introspección para máquinas virtuales. Como su nombre lo sugiere, la introspección de máquinas virtuales permite al administrador vigilar todos los eventos dentro de un entorno virtual, de tal manera cualquier comportamiento inusual pueda ser detectada oportunamente. La introspección de máquinas virtuales es implementada en el hipervisor. y vigila el estado del hipervisor como también de todas las máquinas virtuales ejecutándose sobre el servidor físico. La introspección puede ocurrir de diferentes maneras. Algunos ejemplos incluyen hacer introspección de memoria o introspección sobre eventos del sistema, vigilando llamadas del sistema, interrupciones, y eventos de dispositivos de E/S, como también procesos vivos. La introspección de máquinas virtuales puede también detectar acciones de malware diseñadas para evitar la detección de antimalware, pues el comportamiento del sistema operativo virtual está siendo observado desde el exterior. Dads las funciones de introspección se ejecutan en el hipervisor, es posible rastrear y vigilar cada interacción entre un sistema operativo invitado o una aplicación y el hardware subyacente, lo cual lo convierte en una potente herramienta para la seguridad de la virtualización.

Fuentes:

https://www.vmware.com/topics/hypervisor