En algunas ocasiones nos podemos encontrar en la consola de Domino con múltiples entradas del tipo
SMTP Server: Authentication failed for user xxxxxxx ; connecting host nnn.nnn.nnn.nnn
Estamos sufriendo un ataque de fuerza bruta.
En este artículo y posteriores vamos a ver:
- cómo detectar el problema
- cómo crear un manejador de eventos en Domino para capturar los errores de autenticación
- cómo configurar Windows 2003 para bloquear la conexión desde IPs remotas a nuestro servidor
- cómo crear un agente en Domino para bloquear IPs remotas aprovechando los servicios del sistema operativo
Origen del problema Nuestro servidor tiene abierto el servicio SMTP autenticado. Es decir, podemos conectar a Domino desde un cliente SMTP para enviar mensajes de correo electrónico. Si nos conectaramos sin autenticar, como si fueramos un servidor SMTP, únicamente podríamos remitir mensajes al dominio/s de Internet gestionado/s por Domino ( presuponemos que los controles antirelay de Domino están bien configurados ). Si nos autenticamos podemos remitir mensajes como un usuario más de la infraestructura Domino.
Este servicio es utilizado por
hackers para intentar, mediante un ataque de diccionario, averiguar la contraseña de algún usuario. Normálmente el objetivo es poder lanzar spam desde nuestro servidor, pero en algunos casos quizá el objetivo podría ser el averiguar la contraseña de un usuario administrador. Entonces la seguridad de nuestro entorno estaría seriamente comprometida.
El protocolo HTTP, en Domino, puede protegerse mediante la funcionalidad
Internet password Lockout, de tal manera que tras una serie de errores, por ejemplo 5, en la introducción de la contraseña, el usuario queda bloqueado. Esto en SMTP no está disponible.
En una infraestructura "grande", las constantes peticiones de autenticación erróneas deberían ser capturadas por el servidor proxy o firewall y actuar en consecuencia bloqueando el acceso a la IP remota. En entornos más pequeños esto no es posible.
En Domino no hay un mecanismo para el bloqueo de conexiones desde una IP determinada. Se pueden bloquear usuarios, pero siempre tras la autenticaci ón de los mismos. Hemos de delegar en un gateway externo o en el sistema operativo para el bloqueo de una conexión desde una IP determinada.
NOTA: Un magnífico documento para entender la seguridad SMTP en Domino
Understanding SMTP authentication and securing your IBM Lotus Domino 8 server from spam
Solución inmediata Si no estamos ofreciendo servicio SMTP a nuestros clientes, la solución inmediata es el bloqueo de SMTP autenticado
y un reinicio de la tarea SMTP en nuestro servidor
>restart task smtp
Detectando en Domino el ataque Si no podemos cerrar el protocolo SMTP autenticado, vamos a crear un mecanismo para anotar en una base de datos de creación propia
SMTPAttacks.nsf todos los eventos de error en la autenticación SMTP.
En Domino tenemos la posibilidad de crear manejadores de eventos, es decir, definir acciones a realizar en caso de que algo ocurra en el sistema.
Los manejadores de eventos se crean en la base de datos
Monitoring Configuration ( events4.nsf )
1. Creamos el manejador
Seleccionamos "A built-in or add-in task event"
Seleccionamos el evento que queremos monitorizar
Indicamos que se anoten los eventos en una base de datos que previamente hemos creado para el procesado de los eventos
2. Guardamos el manejador.
Una vez guardado, cada fallo en la autenticación generará un documento en la base de datos.
Base de datos SMTPattacks.nsf Esta base de datos, "de fabricación casera", recibirá un documento por cada error en la autenticación que se genere. El objetivo de ello es el poder actuar cuando el número de errores generados desde una única IP supere el umbral que consideremos como un ataque de diccionario.
Esta base de datos contendrá un agente que, cuando detecte, por ejemplo, 20 errores desde la misma IP, la bloquee.
Bloquearla implica:
- Anotar en la base de datos que la IP ha sido bloqueada, a nivel informativo.
- Emitir un comando a nivel de S.O. para que dicha IP sea incluida en una lista de bloqueo. ( Las opciones para Windows 2003 y 2008 son distintas)
La estrategia de qué hacer cuando se detecte un error la tenemos que definir nosotros.
A grandes rasgos, la base de datos debería disponer de los siguientes elementos/funcionalidades:
- una vista categorizada por la IP que genera el evento. La IP no está disponible en el documento, pero puede extraerse del campo EventText
- un agente que cuando detecte 20 errores generados desde la misma IP, bloquee la IP remota desde donde se está produciendo el ataque.
Solución en Linux Este artículo esta centrado en una solución para Windows 2003. Una solución para Linux podéis encontrarla en el
blog de Chris BrandLehner.
Próximos artículos En próximos artículos veremos cómo activar en Windows 2003
IP Security Policy Management y cómo desarrollar el agente para bloquear IPs automáticamente en la base de datos SMTPAttacks.nsf
Disclaimer Si implementas el procedimiento, hazlo probandolo primero en un entorno de pruebas y tras desplegarlo en producción, haciendo un seguimiento del comportamiento. Esto no es un procedimiento comercial, es el germen de una solución.
Estoy seguro de que existen alternativas al método propuesto, pero considero que con el procedimiento definido podemos ver aspectos muy interesantes de la personalización de una infraestructura IBM Domino que pueden ser válidos para solucionar otras problemáticas.
Acceso a otros artículos de la serie: Protegiéndose frente a ataques de fuerza bruta contra SMTP en IBM Domino II - Configurando IP Security Management en Windows 2003 Protegiéndose frente a ataques de fuerza bruta contra SMTP en IBM Domino III - Bloqueando IPs en Windows vía script