En el pasado, para proteger una red local era suficiente con un cortafuegos básico y programas antivirus, pero frente a los ataques de los modernos hackers y la proliferación reciente de malware, este conjunto resulta cada vez menos efectivo. El viejo y conocido firewall solo analiza los encabezados de los paquetes, permitiendo o bloqueando su paso según un conjunto de reglas formales. No sabe nada sobre el contenido de los paquetes, por lo que no puede reconocer acciones aparentemente legítimas de los atacantes. Los programas antivirus no siempre detectan el software malicioso, por lo que el administrador debe estar atento para rastrear actividades anómalas y aislar de manera oportuna los hosts infectados.
Existen muchas herramientas avanzadas que permiten proteger la infraestructura de TI de la empresa. Hoy hablaremos sobre los sistemas de detección y prevención de intrusiones de código abierto, que se pueden implementar sin necesidad de comprar hardware costoso y licencias de software.
Clasificación de IDS/IPS
IDS (Intrusion Detection System) es un sistema destinado a registrar acciones sospechosas en la red o en un ordenador específico. Mantiene un registro de eventos y notifica al responsable de la seguridad de la información. Dentro de un IDS, se pueden identificar los siguientes elementos:
- sensores para monitorear el tráfico de red, diversos registros, etc.
- sub-sistema de análisis que identifica en los datos recibidos signos de posibles impactos maliciosos;
- almacenamiento para acumular eventos primarios y resultados de análisis;
- consola de gestión.
Inicialmente, los IDS se clasificaron según su ubicación: podían estar orientados a la protección de nodos individuales (host-based o Host Intrusion Detection System - HIDS) o proteger toda la red corporativa (network-based o Network Intrusion Detection System - NIDS). Cabe mencionar los denominados APIDS (Application protocol-based IDS): estos monitorean un conjunto limitado de protocolos de capa de aplicación para detectar ataques específicos y no realizan un análisis profundo de los paquetes de red. Estos productos suelen asemejarse a un proxy y se utilizan para proteger servicios específicos: servidores web y aplicaciones web (por ejemplo, escritas en PHP), servidores de bases de datos, etc. Un representante típico de esta clase es mod_security para el servidor web Apache.
Estamos más interesados en NIDS universales que soporten una amplia gama de protocolos de comunicación y tecnología de análisis profundo de paquetes DPI (Deep Packet Inspection). Monitorean todo el tráfico que pasa, desde el nivel de enlace, y detectan una amplia variedad de ataques en la red, así como intentos no autorizados de acceso a la información. A menudo, estos sistemas se distinguen por su arquitectura distribuida y pueden interactuar con diferentes equipos de red activos. Cabe destacar que muchos NIDS modernos son híbridos y combinan varios enfoques. Dependiendo de la configuración y los ajustes, pueden abordar diversas tareas, como la protección de un nodo o de toda la red. Además, las funciones de IDS para estaciones de trabajo han sido asumidas por paquetes antivirus que, debido a la proliferación de troyanos orientados al robo de información, se han convertido en cortafuegos multifuncionales que abordan también la identificación y bloqueo de tráfico sospechoso.
Inicialmente, los IDS solo podían detectar acciones de malware, el funcionamiento de escáneres de puertos, o, digamos, violaciones de las políticas de seguridad corporativas por parte de los usuarios. Cuando ocurría un determinado evento, notificaban al administrador, pero pronto quedó claro que simplemente reconocer un ataque no era suficiente: había que bloquearlo. Así, los IDS se transformaron en IPS (Sistemas de Prevención de Intrusiones), sistemas capaces de interactuar con cortafuegos de red.
Métodos de detección
Las soluciones modernas para la detección y prevención de intrusiones utilizan varios métodos para identificar actividad maliciosa, que se pueden dividir en tres categorías. Esto nos da otra opción de clasificación de sistemas:
- Los IDS/IPS basados en firmas identifican patrones en el tráfico o rastrean cambios en el estado de los sistemas para determinar un ataque en la red o un intento de infección. Casi no generan falsos positivos ni fallos, pero no son capaces de identificar amenazas desconocidas.
- Los IDS que detectan anomalías no utilizan firmas de ataque. Reconocen comportamientos que difieren de la norma en los sistemas de información (incluyendo anomalías en el tráfico de red) y pueden identificar incluso ataques desconocidos. Estos sistemas generan bastantes falsos positivos y, si se usan incorrectamente, pueden paralizar el funcionamiento de la red local;
- Los IDS basados en reglas funcionan bajo el principio: si HECHO entonces ACCIÓN. De hecho, son sistemas expertos con bases de conocimiento — un conjunto de hechos y reglas para deducción lógica. Estas soluciones son laboriosas de configurar y requieren del administrador un entendimiento detallado del funcionamiento de la red.
Historia del desarrollo de los IDS
La era de desarrollo vertiginoso de Internet y las redes corporativas comenzó en los años 90 del siglo pasado, sin embargo, los especialistas comenzaron a preocuparse por tecnologías avanzadas de seguridad en red un poco antes. En 1986, Dorothy Denning y Peter Neumark publicaron el modelo IDES (Intrusion Detection Expert System), que se convirtió en la base de la mayoría de los sistemas modernos de detección de intrusiones. Este utilizaba un sistema experto para identificar tipos conocidos de ataques, así como métodos estadísticos y perfiles de usuarios/sistemas. IDES se ejecutaba en estaciones de trabajo Sun, revisando el tráfico de red y los datos de aplicaciones. En 1993, se lanzó NIDES (Next-generation Intrusion Detection Expert System) — un sistema experto de detección de intrusiones de nueva generación.
Basado en los trabajos de Denning y Neumann, en 1988 se creó el sistema experto MIDAS (Multics Intrusion Detection and Alerting System), que utiliza P-BEST y LISP. También se desarrolló en ese mismo año un sistema de detección basado en métodos estadísticos llamado Haystack. Un año después, en el Laboratorio Nacional de Los Álamos, se diseñó otro detector estadístico de anomalías denominado W&S (Wisdom & Sense). El desarrollo de la industria avanzó rápidamente. Por ejemplo, en 1990, el sistema TIM (Time-based Inductive Machine) ya implementaba la detección de anomalías utilizando aprendizaje inductivo sobre patrones secuenciales de los usuarios (lenguaje Common LISP). NSM (Network Security Monitor) comparaba matrices de acceso para detectar anomalías, mientras que ISOA (Information Security Officer’s Assistant) apoyaba diversas estrategias de detección: métodos estadísticos, verificación de perfiles y sistema experto. El sistema ComputerWatch, creado en AT&T Bell Labs, utilizaba tanto métodos estadísticos como reglas, y el primer prototipo de un IDS distribuido fue desarrollado en la Universidad de California en 1991: DIDS (Distributed Intrusion Detection System), que además era un sistema experto.
Al principio, los IDS eran propietarios, pero ya en 1998 el Laboratorio Nacional Lawrence de Berkeley lanzó Bro (renombrado en 2018 como Zeek), un sistema de código abierto que utiliza su propio lenguaje de reglas para analizar datos de libpcap. En noviembre de ese mismo año, apareció el sniffer de paquetes APE, que utilizaba libpcap y que al mes siguiente fue rebautizado como Snort, convirtiéndose posteriormente en un IDS/IPS completo. También comenzaron a aparecer numerosas soluciones propietarias.
Snort y Suricata
Muchas empresas prefieren los IDS/IPS gratuitos de código abierto. Durante mucho tiempo, la solución estándar fue el mencionado Snort, pero ahora ha sido superado por el sistema Suricata. Veamos sus ventajas y desventajas con un poco más de detalle. Snort combina las ventajas del método de firmas con la capacidad de detectar anomalías en tiempo real. Suricata también permite usar otros métodos además del reconocimiento de ataques por firma. El sistema fue creado por un grupo de desarrolladores que se separaron del proyecto Snort y soporta funciones de IPS desde la versión 1.4, mientras que la capacidad de prevenir intrusiones en Snort se añadió más tarde.
La principal diferencia entre los dos productos populares radica en la capacidad de Suricata para utilizar la GPU para cálculos en modo IDS, así como en un IPS más avanzado. El sistema está diseñado desde el principio para la multiprocesación, mientras que Snort es un producto monoprocesado. Debido a su larga historia y al código heredado, no utiliza de manera óptima las plataformas de hardware multiprocesador/multicore, mientras que Suricata, en computadoras comunes, permite procesar tráfico de hasta 10 Gbps. Se podría hablar mucho sobre las similitudes y diferencias de ambos sistemas, pero aunque el motor de Suricata funcione más rápido, para canales no demasiado amplios esto no tiene una importancia significativa.
Opciones de implementación
El IPS debe estar ubicado de tal manera que el sistema pueda observar los segmentos de red que controla. A menudo, esto es una computadora dedicada, un interfaz de la cual se conecta después de los dispositivos perimetrales y "mira" a través de ellos a las redes públicas no protegidas (Internet). Otro interfaz del IPS se conecta a la entrada del segmento protegido, de modo que todo el tráfico pase a través del sistema y sea analizado. En casos más complejos, puede haber varios segmentos protegidos: por ejemplo, en redes corporativas a menudo se establece una zona desmilitarizada (DMZ) con servicios accesibles desde Internet.

Este IPS puede prevenir intentos de escaneo de puertos o de hacking por medio de la adivinanza de contraseñas, la explotación de vulnerabilidades en servidores de correo, servidores web o en scripts, así como otras variaciones de ataques externos. En caso de que las computadoras de la red local sean infectadas por malware, el IDS no permitirá que se conecten a servidores de botnets ubicados afuera. Para una protección más seria de la red interna, probablemente se requerirá una configuración compleja con un sistema distribuido y conmutadores administrados costosos, capaces de reflejar tráfico a uno de los puertos del interfaz IDS.
A menudo, las redes corporativas son objeto de ataques distribuidos de denegación de servicio (DDoS). Aunque los IDS modernos pueden lidiar con ellos, la configuración mencionada anteriormente apenas será de ayuda aquí. El sistema detectará la actividad maliciosa y bloqueará el tráfico parásito, pero para ello, los paquetes deben pasar a través de la conexión a Internet externa y llegar a su interfaz de red. Dependiendo de la intensidad del ataque, el canal de transmisión de datos puede no ser capaz de manejar la carga y el objetivo de los atacantes se logrará. Para tales casos, recomendamos implementar el IDS en un servidor virtual con una conexión a Internet notablemente más potente. Puede conectar el VPS a la red local a través de VPN, y luego será necesario configurar a través de ella la ruta de todo el tráfico externo. Así, en caso de un ataque DDoS, no será necesario enviar los paquetes a través de la conexión con el proveedor; serán bloqueados en el nodo externo.

El problema de la elección
Identificar un líder entre los sistemas gratuitos es muy difícil. La elección del IDS/IPS depende de la topología de la red, las funciones de protección necesarias y las preferencias personales del administrador, así como de su disposición a trabajar con las configuraciones. Snort tiene una historia más larga y está mejor documentado, aunque también es fácil encontrar información sobre Suricata en la red. En cualquier caso, para dominar el sistema se requerirá cierto esfuerzo, que al final valdrá la pena, ya que los IDS/IPS comerciales de hardware y de software son bastante caros y no siempre se ajustan al presupuesto. No hay que lamentarse por el tiempo gastado, porque un buen administrador siempre mejora sus habilidades gracias al empleador. En esta situación, todos salen ganando. En el siguiente artículo, examinaremos algunas opciones de implementación de Suricata y compararemos en la práctica un sistema más moderno con el clásico IDS/IPS Snort.
Fuente: habr.com
