TE SALTAS LA DMZ? Será si Puedes.. MEJORES PRÁCTICAS DE SEGURIDAD EN DMZ

                                




                                                       Arquitectura DMZ

El objetivo de este post es establecer las políticas de seguridad no en la configuración de los dispositivos que se encuentran dentro de la DMZ , sino de la DMZ en sí, con el fin minimizar riesgos ante posibles intentos de acceso no autorizados por usuarios malintencionados a los datos que se encuentren disponible en una DMZ.

Se han analizado todas las configuraciones de seguridad en DMZ ‘s estableciendo así el mejor bastionado posible en todo el perímetro de seguridad minimizando al máximo el espectro de exposición al ataque así como la entropía de éxito del mismo a zonas desmilitarizadas.

QUE ES UNA DMZ

Una zona DMZ se conoce como una zona desmilitarizada, es decir, una zona segura que no está dentro de nuestra red local, pero que tampoco es externa a nuestra empresa. Por lo tanto, se plantea como un paso intermedio entre nuestra red y el acceso a Internet

Dichas modificaciones se estructuran comúnmente en tres etapas:

  • Primera etapa se centra en cerrar los puertos de aquellos servicios que escuchan por defecto y que no se requieren para las necesidades solicitadas para dicho servidor.

  • Segunda etapa consiste en fortalecer la configuración de los servicios que si se necesitan mediante la restricción de los usuarios que pueden acceder a los servicios, restricción de ordenes que pueden realizar, control y filtrado de los datos que se le envían al servidor (Cross Site Scripting , SQL Injection, LFI, RFI, SSI etc..), política de actualizaciones etc

  • Tercera etapa se centra en instalar el servidor en la red DMZ, la cual dispone de mínimo un firewall que restringe el acceso de las máquinas externas hacia la DMZ.

MEJORES PRÁCTICAS DE SEGURIDAD EN DMZ 

Para que estas tres etapas sean cumplidas se debe observar lo siguiente:

1-Restringir el acceso vía red de los servidores.

Normalmente y tal como se ha comentado se suele situar un firewall en la entrada a la red DMZ, pero las reglas de los firewall no suelen contener ningún tipo de restricciones de conexión entre los servidores.

2- Conjunto de reglas que no permitan que exista tráfico entre ambas máquinas

Si un servidor no debe tener ningún tipo de tráfico con otro servidor de la DMZ, se debe establecer un conjunto de reglas que no permitan este tráfico.

De no ser así, si un atacante consigue el control de una máquina de la DMZ, podrá atacar al resto de máquinas desde dicho servidor sin que el tráfico sea filtrado.

3- Emplear envolturas y reglas de filtrado a nivel del servidor (local)
 En caso de que el router fuera atacado, el servidor no estaría desprotegido.

4- Fortalecer la configuración de los servicios que si se necesitan

5-Restricción de los usuarios que pueden acceder a los servicios

6-Cerrar los puertos de aquellos servicios que escuchan por defecto

7-Control y filtrado de los datos que se le envían al servidor

Si el servidor está prestando servicios a internet se tendrán que filtrar los datos que van por GET en URL y POST  para evitar ataques tales como Cross Site Scripting , SQL Injection, LFI, RFI, SSI etc..


8-Política de actualizaciones.

Se seguirán las mismas políticas de actualizaciones de seguridad pero se incluirán TODAS las actualizaciones y parches de seguridad, ya que se está dando servicios al exterior y el espectro de ataque en superficie es exponencialmente mayor.

Se atenderán especialmente las actualizaciones de seguridad, críticas o no de los servidores IIS si se tuvieran, así como webmail u otros servicios que se prestaran.

9-Restringir permisos únicamente a aquellos ficheros y directorios que realmente se requieran

10-La comunicación entre la Lan y la DMZ  deberá hacerse a través del router y firewall 

En la red que da servicio a la DMZ introduciremos servicios vitales para nuestra empresa pero que necesitan ser accedidos desde el exterior como pueden ser el correo electrónico, servidor web o nuestro servicio de DNS.

De esta manera quedamos más protegidos que si estuvieran integrados en la red local.

11-No disponer de herramientas de desarrollo como compiladores, interpretes de shell, desensambladores, etc. sin restringir el acceso a ellos.
Si no se restringe qué usuarios pueden tener acceso a dichas herramientas cualquier atacante que haya entrado en el sistema, aunque sea con un usuario con pocos privilegios, podría usar dichas herramientas para intentar explotar una elevación de privilegios.

(Existe el error de pensar que un fallo de seguridad no es grave si solo se puede explotar de forma local, y por eso se establece este punto)

12-Cada módulo proxy precisa autenticación adicional, previo acceso del usuario al servicio  (auditoría del tráfico de cada conexión).

13-Cada módulo proxy (paquete software) no debe efectúar accesos a disco, salvo la lectura de la configuración inicial, de forma que dificulte la instalación de troyanos y ‘sniffers’.

14-Cada servicio de la máquina debe ejecutarse con un usuario/grupo propio y único para dicho servicio

15-Principio del Mínimo Privilegio.

Que dicho usuario/grupo tenga el menor número de permisos posibles.

Si se consigue explotar una vulnerabilidad en un servicio, aunque dicho servicio no sea crítico las órdenes que el atacante quiera realizar se harán con los permisos del usuario y grupo con que se haya ejecutado el servicio atacado.

     -En un servidor Windows donde todos sus servicios se ejecutan con usuario SYSTEM, si un atacante consigue introducir una shellcode en un buffer overflow en un servicio, por muy poco critico que sea dicho servicio, como puede ser un servicio NTP, habiendo obtenido una shell por un fallo en dicho servicios, tendremos control total sobre el resto de servicios de la máquina.       

16-Restringir dichos permisos únicamente a aquellos ficheros y directorios que realmente se requieran

17-Sistema de copias de seguridad de la DMZ.
Se tendrán copias de seguridad para la recuperación inmediata de la DMZ en caso de desastre, robo o pérdidas de información.

18-Red de detección de intrusos
La DMZ deberá contar con sondas IDS que monitoricen la actividad de posibles intrusos en tiempo real

19-Un sistema de integridad de los datos (aide, tripwire…)
Se protegerá la integridad de los datos como parte de los tres elementos clave de seguridad: confidencialidad, integridad y disponibilidad (CIA)

20-Sistema de logs locales

21-Sistema de logs centralizados.

22- Screened-Subnet Firewall  System

Con el fín de contar con la mayor seguridad posible se establecerá el siguiente modelo de defensa en DMZ para maximizar la seguridad.


                            Screened-Subnet Firewall System <Single / Dual Homed Bastion Host>


1-En este diseño se intenta aislar la máquina más atacada y vulnerable del Firewall, el Nodo Bastión.

2-Para ello se establece una Zona Desmilitarizada (DMZ) de forma tal que sin un intruso accede a esta máquina no consiga el acceso total a la subred protegida.

3- Esta DMZ más segura implicaría tener dos cortafuegos 
      
        a-El primero (llamado "front-end") debe permitir el tráfico únicamente del exterior a la
DMZ.
        b-El segundo (llamado "back-end") permite el tráfico únicamente desde la DMZ a la red interna.

4- Estos firewalls deben llevar distintas tecnologías

        a-Un Firewall basado en hardware, un appliance de seguridad, situado como frontal
        b-Un Firewall basado en software entre nuestra red local y la DMZ.

Ventajas:

  1. Ocultamiento de la información: los sistemas externos no deben conocer el nombre de los sistemas internos. El Gateway de aplicaciones es el único autorizado a conectarse con el exterior y el   encargado de bloquear la información no solicitada o sospechosa.

  1. Registro de actividades y autenticación robusta: El Gateway requiere de autenticación cuando se realiza un pedido de datos externos. El registro de actividades se realiza en base a estas solicitudes.

  1. Reglas de filtrado menos complejas: Las reglas del filtrado de los paquetes por parte del Router serán menos compleja dado a que él sólo debe atender las solicitudes del Gateway.

Nota: Es posible definir varios niveles de DMZ agregando más Routers, pero destacando que las reglas aplicadas a cada uno deben ser distintas ya que en caso contrario los niveles se simplificarían a uno solo.

Si asumimos que el atacante ha conseguido hacer el “bypass” de uno de los Firewall dentro del esquema ‘Screened-Subnet Firewall System’ y si se han seguido todas la medidas anteriormente descritas, un atacante tendría que realizar los siguientes ataques consecutivos y con éxito en cada uno para pasar al siguiente ataque (y así sucesivamente) logrando su objetivo como se observa en el siguiente esquema de ataque a un servidor Windows en DMZ                                             

                       Ataque 1-Al segundo Firewall y hacer “Bypass” del mismo

                       Ataque 2-Al servidor de copias de seguridad

                       Ataque 3-Al servidor de integridad de los datos

                       Ataque 4-A la red de detección de intrusos

                       Ataque 5-Modificar los logs del sistema

                       Ataque 6-Modificar los ‘logs’ del servidor de logs centralizados.

                       Ataque 7-Por último y si el atacante ha llegado hasta aquí, tendrá que 

hacer un “Bypassing” del IDS y del  IPS / HIPS ya que todos los ataques anteriores para que 
tengan éxito se deberían realizar sin que el IDS, IPS o HIPS o el sistema de integridad de los datos notifiquen una alerta al gestor de eventos.
  
Como se puede apreciar, de esta manera se reduce al máximo el espectro de ataque buscando dos objetivos:

1-Disuadir al atacante de la ejecución del mismo ya  que esta configuración en DMZ hace de por si que el atacante pase a otro objetivo ante la dificultad de la enorme y extremadamente difícil ‘tarea’ que se le presenta en esta DMZ. 


2-Si aún así no se disuadiese, como se ha comentado en el ‘Ataque 7’, tendría que pasar inadvertidos ante el resto de medidas de seguridad perimetral implementadas como IDS, IPS O HIPS algo que si es posible pero con probabilidades de éxito más reducidas siendo interceptado y  bloqueado por los sistemas de defensa perimetral.

Un saludo
Live Free Or Die Hacking

Entradas populares de este blog

Proteger ASP.NET de inyecciones SQL How T0? BEST PRACTICES

CERTIFICACIONES DE SEGURIDAD

HACKING MADRID_"EASY" XSS and Cross Site Tracing XST