Instructor: Para que la computación
en nube consiga el ahorro de costes y la eficiencia que
pretende, depende en gran medida de la virtualización.
Ahora, mediante la virtualización,
se pueden colocar numerosos servidores lógicos
en un único servidor físico.
Esto a su vez reduce la cantidad física de espacio, energía y refrigeración
que se necesita dentro de nuestros centros de datos.
Además, gracias a la virtualización podemos alcanzar
mayores niveles de disponibilidad activando servidores virtuales
adicionales siempre que los necesitemos.
Esta capacidad de aprovisionar dinámicamente
recursos de memoria y CPU es una de las principales
ventajas de la computación en nube.
Ahora bien, aunque la computación en nube tiene
muchas ventajas, sigue habiendo numerosos problemas
de seguridad que debemos tener en cuenta.
La mayoría de los mismos problemas
de seguridad que tenemos con los servidores
físicos también se trasladan al entorno de la nube.
A menudo, los ejecutivos piensan que trasladarse a la
nube resolverá todos sus problemas,
pero en realidad nunca es así.
Cuando se utiliza la virtualización, uno o más servidores
lógicos residen en un único servidor físico.
Para ello, utilizamos un software especializado
conocido como hipervisor.
El hipervisor controla la distribución
de todos los recursos, como el procesador, la memoria
y la disponibilidad de disco duro.
Esencialmente, el hipervisor emula una máquina física de modo que
el sistema operativo y todas sus
aplicaciones ni siquiera se dan cuenta de
que están operando dentro de un entorno virtual.
En la actualidad, los hipervisores se dividen en dos
categorías: hipervisores de tipo uno o bare
metal e hipervisores de tipo dos o hosted.
Si comparamos los tipos de hipervisor
"bare metal" y alojado, la única diferencia principal
desde el punto de vista de la seguridad es que con los tipos alojados
tenemos que asegurarnos de que el sistema operativo
subyacente también está debidamente
protegido y parcheado.
Desde el punto de vista del rendimiento,
el metal desnudo será más rápido y eficiente
que su homólogo alojado.
Otra opción de virtualización que tenemos se conoce
como virtualización basada en contenedores, o contenedorización.
Con este tipo, no se utiliza un hipervisor en absoluto, en su lugar,
cada contenedor se basa en un sistema operativo común como base para cada
uno de esos contenedores, mientras que cada contenedor
comparte el mismo sistema operativo
subyacente, cada contenedor puede
tener sus propios binarios, bibliotecas y aplicaciones
que se pueden personalizar según
sus necesidades.
Actualmente, la virtualización basada en contenedores
se utiliza casi exclusivamente con Linux como
sistema operativo subyacente.
La virtualización basada en contenedores también utiliza menos
recursos que una virtualización de tipo uno o dos,
porque no requiere su propia copia
del sistema operativo para cada contenedor individual.
Muchos proveedores de servicios en la nube han llevado la virtualización
un paso más allá con la infraestructura hiperconvergente.
Esto permite al proveedor integrar completamente
el almacenamiento, las redes y los servidores, sin
tener que realizar cambios de hardware.
En su lugar, confían en el software y la tecnología
de virtualización para realizar
todas las integraciones.
Podemos gestionar todo esto desde una única interfaz
o un dispositivo sin tener que preocuparnos
de todas las soluciones de proveedores subyacentes.
La virtualización de aplicaciones es otro tipo de virtualización
que se utiliza habitualmente para crear
seguridad adicional para nuestro host subyacente.
La virtualización de aplicaciones es una tecnología de software
que separa los programas informáticos
del sistema operativo subyacente
en el que se ejecutan.
Una aplicación totalmente virtualizada
ni siquiera está instalada en el sentido tradicional,
aunque se ejecuta como si lo estuviera.
Con la virtualización de aplicaciones,
puede ejecutar aplicaciones heredadas diseñadas
para un sistema operativo obsoleto, como Windows
XP o Windows 7, sobre un sistema operativo más moderno, o incluso
ejecutar software multiplataforma, como aplicaciones
Android, en un equipo Windows.
Muchos proveedores de nube también ofrecen VDI,
o infraestructura de escritorio virtual.
Ahora, la VDI permite a un proveedor de nube ofrecer un sistema
operativo de escritorio completo a sus usuarios finales
desde un servidor centralizado.
Este enfoque tiene muchas ventajas para la seguridad.
Por ejemplo, trabajé en una empresa que creaba
una nueva imagen de escritorio virtual para cada usuario
cuando se conectaba por la mañana.
Este escritorio no era persistente, por lo
que incluso si era explotado por un atacante, se destruía
tan pronto como el usuario cerraba la sesión,
o a medianoche cada día, esto destruía efectivamente
la capacidad del atacante de permanecer persistente
en el escritorio de ese usuario final, incluso si se instalaba
malware.
Otro gran uso de la virtualización es crear una caja de arena.
Ahora, un sandbox permite
crear un entorno aislado donde analizar virus,
gusanos, troyanos y otras piezas de malware dentro
de un sistema operativo invitado.
Ahora, debido a que está en esta caja de arena
virtual que se encuentra dentro de una máquina virtual aislada,
puede asegurarse de que no puede infectar su propio
equipo que lo aloja como el sistema operativo host subyacente, o el
hipervisor subyacente.
Cuando trabajas como analista de ciberseguridad,
utilizas mucho los entornos aislados para realizar análisis de malware,
especialmente cuando realizas análisis dinámicos de
malware en los que coges un trozo de malware, lo
ejecutas y luego identificas lo que ocurre cuando ese malware se ejecuta en
ese sistema operativo invitado concreto.
Otro buen uso de las máquinas virtuales
es la virtualización multiplataforma.
Por ejemplo, yo uso un MacBook Pro como máquina principal.
Si quisiera probar aplicaciones de software
para distintos sistemas
operativos, podría comprar máquinas
nuevas para cada uno de ellos:
un portátil para Windows, otro
para Linux y otro para Mac.
Pero si utilizo la virtualización,
puedo hacer virtualización entre plataformas
utilizando un sistema alojado en mi MacBook Pro con
un software como VMware, Parallels
o VirtualBox para poder instalar esos sistemas
operativos invitados sobre
mi entorno Mac OS existente.
Esto me permitirá probar todas las
piezas de software, independientemente
del sistema operativo que necesiten,
y ver cómo van a interactuar.
Esto es genial especialmente para los desarrolladores
web, porque quiero asegurarme como desarrollador
web cuando creo mi sitio web, que funciona en Windows 10, Windows
11, Mac, un Chromebook, un iPhone, un dispositivo Android, o cualquier otra cosa,
y ser capaz de probar todo eso dentro de una sola máquina mediante el uso de
la virtualización es un gran recurso para nosotros
como desarrolladores.
Otro gran uso de la virtualización es la formación.
Puede crear entornos de laboratorio configurados
para que los usuarios puedan practicar
en un sistema operativo real utilizando estas máquinas virtuales.
Por ejemplo, cuando esté estudiando para
obtener las distintas certificaciones de CompTIA, si compra
su curso diontraining. com, vienen con laboratorios
prácticos incorporados.
Estos laboratorios le permiten iniciar sesión en nuestro
entorno basado en la nube y luego ser capaz de realizar
acciones en sistemas Linux, sistemas Windows 10, sistemas
Windows Server, y otras cosas de una manera segura, y esto
no afectará a nuestro entorno de producción,
ya que todo está aislado en esta área de formación, o esta
caja de arena de formación.
Otra gran cosa sobre el uso de máquinas virtuales
para un entorno de formación o de laboratorio,
es que usted puede tomar instantáneas en varios puntos
y luego retomar de nuevo justo donde tenía esa instantánea.
Así, por ejemplo, cuando solía impartir mis cursos en
persona, creaba máquinas rotas de Windows 7 y tenía diferentes
problemas para que mis alumnos
de A+ los solucionaran.
Les daba la máquina virtual, la encendía, restauraba
desde el último punto seguro, que era donde
la había roto, y luego les hacía
intentar averiguar qué le pasaba
y cómo podían arreglarlo.
Este es un gran uso de la utilización de máquinas virtuales
dentro de su formación.
Y a medida que avanzas en tus estudios y empiezas a
aprender sobre Linux, Windows, entornos de servidor,
Mac OS y otras cosas por el estilo, puedes poner en marcha
diferentes máquinas virtuales que
contengan esos sistemas operativos invitados
y practicar tus habilidades en un entorno seguro.
Lo último que tenemos que
discutir es el concepto de emulación,
porque mucha gente confunde emulación con virtualización.
Ahora bien, la emulación consiste en utilizar
un sistema que imita a otro.
Con la virtualización, se crea y utiliza una
instancia virtual de una determinada pieza de hardware.
Así que, en realidad, estás utilizando una nueva máquina
física representada por software.
Sin embargo, con un emulador, un programa
traduce el entorno en tiempo real para
simular que es otra cosa.
Por ejemplo, si quiero jugar a un viejo
juego de Super Nintendo en mi MacBook Pro,
puedo descargarme un emulador de Super Nintendo como OpenEmu,
que traducirá el código del juego en tiempo
real a instrucciones que mi Mac pueda entender.
Con la virtualización, el software que se ejecuta
puede acceder físicamente al hardware de tu máquina,
por lo que es mucho, mucho más rápido que utilizar un emulador.
Así pues, ¿cuándo conviene utilizar un emulador
en lugar de la virtualización?
Bueno, si necesitas ejecutar un sistema
operativo que está pensado para otro tipo
de hardware, como una Super Nintendo en una máquina Mac o Windows,
tendrás que utilizar un emulador.
Si quieres ejecutar software diseñado
para un sistema operativo diferente, como un Android
diseñado para ejecutarse en un procesador ARM,
pero tienes un procesador Intel y un sistema
operativo Windows, de nuevo, los emuladores
van a ser la opción correcta para ti porque estás tratando con un hardware
subyacente diferente.
Por otro lado, si necesitas alta velocidad
y mejor rendimiento, te conviene
utilizar una solución de virtualización.
Recuerda, no obstante, que con la virtualización
estás limitado a ejecutar software codificado
para el hardware subyacente concreto de tu procesador.
Normalmente, la mayoría de nosotros utilizamos procesadores basados en x86 o x64, por lo que ejecutar
Windows, Linux o Mac, o cualquiera de estos tres sistemas
operativos en este tipo de sistemas con virtualización
funcionará perfectamente.
Pero si estás intentando ejecutar un sistema
operativo diseñado para un procesador
ARM, no va a funcionar con virtualización, tendrías
que usar un emulador.
Ahora, en general, vas a utilizar la virtualización
la mayor parte del tiempo en lugar de un emulador,
porque es más rápido y más eficiente
y la mayoría de las cosas están escritas
para trabajar en un procesador x86 o x64.
Pero, de nuevo, si necesitas ejecutar algo
para un procesador diferente, entonces
es cuando vas a tener que usar un emulador.