Hosting is a matter of choice...

Seguridad por virtualización

Por Sandino Araico el June 5, 2007

Seguridad por virtualización es una combinación de técnicas de hardening con técnicas de virtualización con las que se busca minimizar el impacto de los ataques al sistema manteniendo bajos costos y sin sacrificar la eficiencia.

Las implicaciones de combinar estas técnicas resultan en un nuevo modelo de seguridad cuya aplicación no hubiera sido posible utilizando las técnicas tradicionales sobre instalaciones tradicionales.

La seguridad por virtualización se puede aplicar de manera modular. Los módulos de seguridad por virtualización se combinan de distintas maneras para adaptarse a las necesidades de seguridad de distintas organizaciones.

Linux-vserver + GR Security

Esta es la capa básica de la seguridad por virtualización. Consiste en un servidor anfitrión con una instalación mínima en donde el acceso es restringido y uno o más servidores virtuales que son los que ejecutan todos los servicios y aplicaciones de producción.

La combinación de Linux-vserver + GR Security se utiliza para prevenir la mayor parte de los ataques al servidor. Los pocos ataques que resultaran exitosos quedan confinados al directorio donde se está ejecutando el servidor virtual mientras que desde el servidor anfitrión pueden ser detectados, observados y detenidos.

Los abusos de los recursos del sistema que pudieran resultar en una negación de servicio pueden ser controlados limitando los recursos disponibles a cada servidor virtual. Mientras queden reursos disponibles que no hayan sido asignados a servidores virtuales es posible abrir una sesión dentro del sistema operativo anfitrión para recuperar el sistema del estado degradado.

Los ataques directos al kernel siguen siendo posibles pero se pueden utilizar las ACLs de GR Security con una configuración de mínimos privilegios para limitar sus posibilidades de ejecución desde dentro de un servidor virtual que haya sido comprometido además de usar la randomización de la base del stack del kernel para minimizar las probabilidades de éxito de ataques a las interfaces de red y a los sistemas de archivos.

Se pueden utilizar un firewall y un IPS a la entrada de la red para filtrar otros posibles ataques al kernel.

Al final tenemos un sistema operativo anfitrión que es prácticamente inaccesible desde el exterior y desde donde se puede manejar y auditar la seguridad de los servidores virtuales y los procesos que corren dentro de ellos.

Se eligió Gentoo hardened para estar instalado como sistema operativo del servidor anfitrión por estar diseñado para ayudar a GR Security por medio del uso de un compilador GCC habilitado con PIE y SSP además de la generación de binarios elf con los nuevos headers reservados para el uso de paxctl que en algún momento podría resultar necesario.

LVM2

LVM se utiliza para que cada servidor virtual viva dentro de su propia unidad lógica.

LVM provee la capacidad de tomar snapshots de una unidad lógica que se encuentra montada y está siendo utilizada…. Esta capacidad se utiliza para propósitos de respaldo y de análisis forense con cero downtime.

El respaldo de una base de datos se puede hacer tan sencillo como copiar los archivos de la base de datos desde el punto donde está montado el snapshot hacia la unidad de respaldo garantizando que no va a haber movimientos de datos durante la copia mientras que en la unidad original el manejador de bases de datos sigue trabajando sin interrupción.

Un análisis forense que se practica sobre un snapshot de LVM puede durar todo el tiempo que sea necesario sin la preocupación de regresar los servicios a producción ya que éstos siguen operando ininterrumpidamente. El tiempo de espera necesario para tener disponible la imágen para ser analizada es instantáneo y ningún bloque del disco es alterado ya que todas las escrituras sobre la unidad original se llevan a cabo sobre bloques nuevos que van siendo utilizados bajo demanda.

LVM junto con el sistema de archivos ReiserFS proveen la capacidad de aumentar el tamaño de las unidades lógicas aún cuando éstas se encuentren montadas y estén siendo utilizadas. Mientras quede espacio disponible en los discos se puede manejar dinámicamente la capacidad de almacenamiento de los servidores virtuales con cero downtime.

LVM es compatible con el Global Filesystem por lo que los sistemas de archivos que se encuentran sobre estas unidades lógicas se pueden replicar en modo multimaster.

AIDE

Se utiliza AIDE para firmar los archivos de los servidores virtuales. Los procesos de firmado de archivos se ejecutan desde el servidor anfitrión, de tal manera que para los procesos que corren en los servidores virtuales la firma de binarios resulta indetectable.

Al momento de instalar un rootkit dentro de un servidor virtual no se puede saber si hay un AIDE firmándolo ya que los procesos de AIDE corren fuera de los límites del servidor virtual. Sería imposible para un rootkit que se instala en un servidor virtual modificar las bases de datos de AIDE que están duera de su alcance; la siguiente vez que AIDE corra en el servidor anfitrión se dará cuenta de los archivos que fueron modificados por el rootkit y alarmará a los administradores.

Incluso se podría ejecutar AIDE desde dentro de un servidor virtual con acceso restringido en el cual se encuentren también montados los sistemas de archivos de los servidores virtuales que se van a firmar.

Chkrootkit

Chkrootkit puede ser ejecutado desde el servidor anfitrión para revisar los servidores virtuales buscando evidencias de rootkits conocidos.

Al igual que en el caso de AIDE, se podría ejecutar chkrootkit desde dentro de un servidor virtual con acceso restringido en el cual se encuentren también montados los sistemas de archivos de los servidores virtuales que se van a revisar.

Tolerancia a fallas de hardware

Cuando se tiene una unidad de almacenamiento externa o un sistema de archivos distribuído como el GFS se puede tener un agente que esté monitoreando los servidores virtuales de tal manera que cuando ocurre una falla de hardware y deja de funcionar la máquina donde estaban los servidores virtuales inmediatamente son levantados en otras máquinas. El downtime es equivalente al de un reboot.

Snort y tcpdump

Se utiliza Snort como herramienta para la detección de ataques conocidos. El snort puede correr dentro de un servidor virtual que tenga acceso a las interfaces de red que se quieren monitorear para que un ataque al Snort no pueda comprometer el sistema.

Algunos ataques con zerodays no son detectables por el Snort, pero los intrusos son detectables por las técnicas de firma de binarios. Se utiliza el Tcpdump para grabar todo el tráfico de red que entra y sale de la máquina de tal manera que al detectar la intrusión por el método de firma de binarios (o algún otro) se pueda hacer un análisis postmortem de todo el ataque y en algún momento presentarlo como evidencia para una acción legal.

Clustering

Los servicios que tienen sus propios mecanismos de replicación como MySQL 5 deben funcionar dentro de un servidor virtual exactamente igual que si estuvieran en un servidor dedicado.

Cuando se trata de sistemas de archivos replicados como el GFS o de algún director de alta disponibilidad éstos tienen que ser controlados desde el servidor anfitrión para después proporcionarlos a los servidors virtuales como un servicio más.


Firewall y enrutamiento

Todas las reglas de filtrado de paquetes y enrutamiento que trabajan sobre el netfilter de Linux se aplican en el servidor anfitrión. Los servidores virtuales no tienen acceso a estas reglas y no las pueden modificar, luego entonces no pueden desprotegerse a sí mismos.

Sandino Networks en Ríoverde SLP

Por Sandino Araico el May 1, 2007

Estaremos los días 10 y 11 de Mayo en el Instituto Tecnoloógico Superior de Rioverde SLP para dar un taller práctico sobre Linux-vserver y una plática sobre seguridad por virtualización.

Imágen de Ubuntu 7.04 para Vserver

Por Sandino Araico el April 21, 2007

Rolando Cedillo acaba de subir a nuestro sitio de mirrors una imagen recién cocinada de Ubuntu 7.04 para ser utilizada con Linux-Vserver para la creación de máquinas virtuales.

Debería ser posible utilizar esta imagen para la creación de máquinas virtuales con Xen pero no lo hemos probado.

ubuntu-7.04-2007-04-20-1.tar.bz2
ubuntu-7.04-2007-04-20-1.tar.bz2.asc
ubuntu-7.04-2007-04-20-1.tar.bz2.md5

Actualización (2007-05-18): Imágenes actualizadas con la corrección del problema del directorio /dev reportada por Marc Z.

Sandino Networks en Huajuapan de León Oaxaca

Por Sandino Araico el February 13, 2007

Cicloid asistirá al II Simposium de Linux de la Mixteca los días 1 y 2 de Marzo en Huajuapan de León Oaxaca para dar la plática de Seguridad por virtualización.

Asistirán también otras personalidades como La Mancha, Ion, Gunnar Wolf, Eduardo Sacristán, Alex Colorado por lo que se esperan conferencias de gran nivel técnico además de amenas.

Sandino Networks en Linux World México

Por Sandino Araico el February 13, 2007

Estaremos en Linux World México del 28 de Febrero al 2 de Marzo en el espacio de Arknus para platicar sobre seguridad por virtualización con quien se quiera acercar.

Desde luego, podemos también platicar sobre otros temas más generales como el software libre, la comunidad y el estado de la industria …..

También podrán contratar productos y servicios de Sandino Networks.

Linux 2.4.34-vserver-grsec-KB2

Por Sandino Araico el February 1, 2007

Este parche lo tengo en producción desde hace un par de semanas y parece estar tan estable como los anteriores.

Los parches que fueron aplicados:
Mon Jan 15 23:45:58 CST 2007
grsecurity-2.1.10-2.4.34-200701032218.patch.gz
patch-2.4.34-vs1.2.10.diff.bz2
patch-2.4.27-vs1.29-q0.14.diff.bz2
linux-2.4.28-pre4-devmapper-ioctl.patch
linux-2.4.22-VFS-lock.patch

Downloads:
linux-2.4.34-grsec-2.1.10-vserver-1.2.10-KB2.patch.gz (firma gpg)

Sandino Araico en Puerto Vallarta.

Por Gustavo Barrón el September 26, 2006

Para todos los fans de Sandino, o los interesados en los usos y aplicaciones de la virtualización en ambientes de producción, se darán dos conferencias en el próximo 5to Festival GNU/Linux y Software Libre. del 27 de septiembre al 29 de septiembre, una de ellas enfocado en su totalidad al tema de la virtualización titulada: Seguridad por virtualización donde se trataran la experiencia del staff de Sandino Networks con el manejo de servidores virtuales y su beneficios en cuanto a seguridad.

La otra, titulada, Servidor de terminales (tontas o tal vez inteligentes) es acerca del manejo de terminales semi-autónomas y aplicaciones para ellas.

Si tienen algo de tiempo y ganas de visitar Puerto Vallarta esta es una buena oportunidad para conocer al staff de Sandino Networks, así como hacer preguntas de nuestros servicios.

Al regresar de la conferencia pondremos a la disposición de los lectores las diapositivas y quizás algunas fotografías del evento.

Moviendo la cofradia

Por Gustavo Barrón el February 6, 2006

Con tal de aliviar la carga de los servidores, hemos movido a La Cofradia, de Tequila a Mezcal, esperemos que los clientes que residen en tequila, puedan sentir la diferencia.

Tambien proximamente les ofreceremos un panel de control hecho en casa a todos nuestros clientes, para que puedan manejar los VPS (Apagar, reiniciar, añadir mas espacio, pedir respaldo, etc) y si deciden revender el espacio dentro de sus servidores, el panel tambien podra ayudarlos en el proceso.

Compatibilidad con Ruby on Rails (y otros juguetes)

Por Gustavo Barrón el January 27, 2006

Hemos notado que muchos de nuestros clientes han estado jugando un poco Rails. Dado que con muchos webhosts, que existen en internet nos ofrecen este framework, existen siempre pequeños problemas en el uso de versiones, o la imposibilidad de usar algunos modulos de ruby muy especificos. Aunque lo mismo pasa con perl, python, ya sea usando alguno de los tantos nuevos sistemas que usan el paradigma MVC de programación. En los VPS, nos olvidamos de esos problemas, ya que estamos en control total del sistema, asi como de las aplicaciones que tiene este.

Desde aplicaciones como Zope, un excelente framework en Python, de nivel empresarial. Hasta el conocido Ruby on Rails, todo ello es soportado por los VPS.

¿Estas usando algun otro framework, o aplicación, muy especifica en nuestros vservers?

Ventajas en la seguridad de un VPS

Por Gustavo Barrón el January 27, 2006

Es comun, dado que los VPS, son manejados totalmente por nuestros clientes, que en ocasiones sea comprometida su seguridad. Gracias a las ventajas que nos brinda la tecnologia para VPS, este tipo de problemas pueden ser facilmente resueltos. Al estar aislados los servidores virtuales, se puede hacer un analisis forense del sistema comprometido, limpiarlo de cualquier malware existente en el. Y asegurarlo.

Asi mismo, la tecnologia, nos permite hacer respaldos del estado total de un servidor. Desde las pequeñas configuraciones hasta los logs de las aplicaciones, para en caso de una migracion critica, poder volver a un estado anterior.

¿Han tenido problemas de seguridad por un servidor mal configurado?

Si bien, no podemos evitar estos problemas, podemos ayudarle a resolverlos de la manera mas rapida.