Snort es el sistema de detección de intrusos (IDS) open source más veterano y extendido del planeta, capaz de monitorizar tráfico de red en tiempo real, identificar patrones sospechosos mediante reglas de Snort personalizables y alertar (o bloquear) antes de que un atacante haga estragos. Mantenido por Cisco Talos desde 2014 (tras la adquisición de Sourcefire por Cisco en 2013), sigue siendo la herramienta de referencia para monitorizar red sin pagar licencias de seis cifras. Si te dedicas a la ciberseguridad y nunca has tocado Snort, llegas tarde a la fiesta. Y si lo tienes instalado pero las reglas son las que vienen por defecto desde 2019, peor todavía: tienes un cinturón de seguridad de paja. Esta guía va al grano sobre cómo funciona la detección de intrusos, qué hace especial al motor de intrusion detection de Snort, y cómo dejarlo afinado sin morir en el intento.
Qué es Snort y por qué sigue importando en 2026
Snort es un motor de inspección de paquetes que captura tráfico, lo compara contra una base de reglas y dispara alertas cuando detecta algo que coincide con un patrón malicioso conocido. Funciona en tres modos: sniffer puro (como tcpdump pero con esteroides), packet logger y modo NIDS completo (Network Intrusion Detection System).
La versión actual estable es Snort 3, una reescritura completa en C++ que sustituyó al venerable Snort 2.9. La diferencia no es cosmética: Snort 3 soporta multi-hilo nativo, configuración en LuaJIT, e inspectores HTTP/2 y QUIC que el 2.9 ni soñaba. Si estás desplegando un IDS hoy, no hay debate: Snort 3.
¿Por qué seguir usando Snort cuando existen alternativas como Suricata o Zeek? Tres razones prácticas:
- Comunidad y reglas: las reglas oficiales de Talos cubren miles de CVEs activos. Las reglas Emerging Threats (ET Open) son gratuitas y se actualizan a diario.
- Documentación masiva: 25 años de tutoriales, libros y stackoverflow respondiendo cualquier duda imaginable.
- Hardware modesto: corre decentemente en una Raspberry Pi 5 para redes domésticas. Para empresas pequeñas, un mini-PC con 16 GB de RAM va sobrado.
Cómo funciona la detección de intrusos: signatures, anomalías y protocolo
Snort combina tres aproximaciones a la detección de intrusos que conviene no confundir:
Detección por firmas (signature-based): es el modo clásico. Una regla describe un patrón concreto (bytes específicos en un payload, una URL maliciosa, un User-Agent sospechoso) y Snort dispara cuando lo ve. Pega bien con malware conocido y exploits documentados. Falla contra ataques nuevos o variantes ofuscadas.
Análisis de protocolo: Snort entiende HTTP, DNS, SMB, TLS y muchos otros protocolos. Puede detectar usos anómalos sin necesidad de una firma exacta, por ejemplo una petición DNS con un payload de 4 KB (típico de túneles DNS para exfiltración).
Detección de anomalías: mediante preprocesadores como frag3, stream y http_inspect, Snort reensambla paquetes fragmentados, sesiones TCP y peticiones HTTP. Esto bloquea técnicas de evasión donde el atacante parte el ataque en fragmentos para esquivar firmas.
En la práctica, una instalación seria usa las tres a la vez. Si solo te fías de firmas, estás cazando atacantes de hace cinco años.
Anatomía de una regla de Snort
Las reglas de Snort tienen una sintaxis propia que parece intimidante pero se aprende en una tarde. Ejemplo real para detectar un escaneo Nmap SYN clásico:
alert tcp any any -> $HOME_NET any (msg:"Possible Nmap SYN scan"; flags:S; threshold:type both, track by_src, count 20, seconds 60; sid:1000001; rev:1;)
Diseccionado:
- alert tcp any any -> $HOME_NET any: acción (alertar), protocolo, origen y destino. El operador -> indica dirección.
- msg: mensaje que aparece en el log.
- flags:S: paquetes con flag SYN activa.
- threshold: solo dispara si hay 20 paquetes en 60 segundos desde la misma IP.
- sid: identificador único de regla (rangos: 1-999999 reservados, 1000000+ para reglas propias).
- rev: revisión de la regla.
Los operadores content, pcre (regex), byte_test y flowbits permiten escribir reglas quirúrgicamente precisas. La curva de aprendizaje es real, pero las reglas oficiales sirven de plantilla para casi todo.
Instalación y despliegue práctico
En Ubuntu/Debian moderno, la instalación de Snort 3 desde fuentes es el camino estándar (los paquetes oficiales suelen ir atrasados). Resumen del proceso:
- Instalar dependencias: libdaq, libdnet, luajit, hwloc, openssl-dev, pcre, zlib.
- Compilar y instalar Snort 3 desde el repo oficial de GitHub (cisco/snort3).
- Descargar el ruleset de Talos (registered o subscriber) y/o las reglas ET Open.
- Configurar
snort.lua: definir HOME_NET, interfaces, paths de reglas, formato de salida. - Validar con
snort -c /etc/snort/snort.lua --warn-all -T. - Lanzar en modo IDS contra una interfaz:
snort -c /etc/snort/snort.lua -i eth0 -A alert_fast -l /var/log/snort.
Para producción seria, conviene enviar las alertas a un SIEM. Snort escribe en formato unified2 que Barnyard2 (legacy) o herramientas modernas como pulledpork3 + filebeat pueden empujar a Elasticsearch, Splunk o Wazuh. Si vas a montar todo el stack desde cero, considera echar un ojo a una auditoría de seguridad informática previa en tu empresa para mapear los puntos críticos antes de desplegar sensores a ciegas.
IDS vs IPS: Snort en modo bloqueo
Snort puede funcionar como IDS (detecta y alerta) o como IPS (Intrusion Prevention System: detecta y bloquea). Para modo IPS necesitas configurar Snort en modo inline usando NFQUEUE (Linux) o DAQ AFPacket, lo que convierte tu sensor en un cortafuegos activo.
| Modo | Acción | Riesgo | Caso de uso |
|---|---|---|---|
| IDS pasivo | Alerta | Bajo | Monitorización, análisis forense |
| IPS inline | Bloquea | Medio-alto | Perímetro, segmentación interna |
| Inline + drop selectivo | Bloquea solo reglas marcadas | Medio | Producción con reglas bien afinadas |
El drama del modo IPS son los falsos positivos: una regla mal escrita puede tirarte el ERP a las 9 de la mañana. Recomendación profesional: arranca en modo IDS, audita alertas durante 4-6 semanas, marca como drop solo las reglas que llevan meses sin generar falsos positivos.
Reglas: gestión, actualización y tuning
Mantener las reglas al día es la mitad del trabajo. PulledPork3 es la herramienta estándar para descargar, fusionar y desplegar rulesets de Talos y Emerging Threats. Se configura como cron diario.
El otro 50% es el tuning. Una instalación recién desplegada genera miles de alertas al día, la mayoría ruido. Estrategia razonable:
- Deshabilita categorías irrelevantes para tu red (¿reglas de SCADA en una oficina de marketing? No.)
- Usa suppress para silenciar alertas sobre IPs o servicios concretos que generan falsos positivos crónicos.
- Define bien HOME_NET y EXTERNAL_NET. Si tienes una VPN site-to-site, inclúyela en HOME_NET.
- Revisa el top 10 de alertas semanalmente. Lo que no aporta valor, fuera.
Una alerta de IDS que nadie revisa es ruido informático. Si no tienes un proceso para clasificar, escalar y responder, monta un plan de respuesta a incidentes antes de meterte con la herramienta.
Snort vs Suricata vs Zeek: comparativa honesta
No todo es Snort. Las alternativas serias:
| Herramienta | Fortalezas | Debilidades |
|---|---|---|
| Snort 3 | Reglas Talos, comunidad enorme, documentación | Configuración Lua puede asustar al principio |
| Suricata | Multi-hilo desde día uno, mejor rendimiento en redes 10 Gbps, soporta reglas Snort | Menos integraciones legacy |
| Zeek (antes Bro) | Análisis profundo de protocolo, scripting potente, genial para threat hunting | No es un IDS clásico, curva de aprendizaje mayor |
En empresas medianas, la combinación favorita es Suricata como IPS perimetral + Zeek como sensor de visibilidad interna. Snort sigue ganando en organizaciones donde el conocimiento institucional pesa o donde Cisco ya está en la pila.
Si después de leer esto te preguntas si encaja en tu caso, herramientas complementarias como Metasploit Framework para pentesting automatizado te ayudan a probar tus reglas: lanzas ataques controlados y verificas que Snort los pilla. Si no los pilla, ya sabes dónde tienes que trabajar.
Errores típicos al desplegar Snort
Lista corta de patadas que vemos repetir:
- Sniffar en el sitio equivocado: poner el sensor antes del NAT y ver solo IPs públicas, o detrás de un firewall que ya filtra el 80% del tráfico interesante.
- Sin port mirroring: enchufar Snort a un puerto normal del switch en lugar de un SPAN/mirror port. Solo ves broadcast.
- Reglas sin actualizar: descargar el ruleset una vez en 2023 y nunca más.
- Cero alertas = todo bien: si tu IDS nunca alerta, está roto o mal configurado. La realidad es ruidosa.
- Logs en disco local: cuando el atacante compromete el sensor, primero borra los logs. Envía siempre a un sistema remoto.
Preguntas frecuentes
¿Snort es gratis para uso comercial?
Sí. Snort se distribuye bajo licencia GPL v2 y puede usarse en entornos comerciales sin pagar nada. El matiz está en las reglas: el ruleset "Subscriber" de Talos requiere suscripción de pago (aproximadamente unos cientos de euros anuales según el plan), mientras que el ruleset "Registered" es gratuito tras registro y va con un retraso de 30 días respecto al de pago.
¿Cuánto tráfico puede inspeccionar Snort 3?
Depende del hardware y la complejidad de las reglas. En un servidor moderno con CPU de 8-16 núcleos, Snort 3 maneja varios Gbps sin sudar gracias a su arquitectura multi-hilo. Para redes 10 Gbps con inspección profunda, muchos equipos prefieren Suricata por su rendimiento ligeramente superior según estimaciones de benchmarks públicos de 2024.
¿Puede Snort detectar tráfico HTTPS cifrado?
Sin descifrar, no puede inspeccionar el contenido. Puede analizar metadatos del handshake TLS (SNI, certificados, versiones, JA3 fingerprint) y detectar anomalías ahí. Para inspección profunda de HTTPS hace falta un proxy SSL que descifre primero, lo cual abre debates legales y de privacidad importantes.
¿Sirve Snort para detectar ataques de día cero?
Parcialmente. Las firmas no atrapan exploits desconocidos, pero los preprocesadores de anomalía de protocolo y reglas de comportamiento (escaneos, brute force, exfiltración) sí pueden levantar la liebre. Para 0-days en serio, complementa Snort con EDR en endpoints y herramientas de threat hunting como Zeek.
¿Snort sustituye al antivirus o al firewall?
No, son capas distintas. El firewall filtra por reglas estáticas (puerto, IP), el antivirus protege endpoints contra malware, y Snort vigila el tráfico de red en busca de patrones sospechosos. Una arquitectura sensata combina los tres, idealmente con un antivirus actualizado en cada estación de trabajo, firewall perimetral e IDS detrás.
El siguiente paso
Descarga Snort 3 desde el repositorio oficial de Cisco Talos, monta una máquina virtual con dos interfaces (una para gestión, otra en modo promiscuo) y ponlo a escuchar tu red doméstica durante 48 horas con el ruleset Registered de Talos activado. Revisa qué alerta. Te sorprenderá lo ruidoso que es internet, incluso desde casa, y será el mejor laboratorio gratuito que tendrás para entender cómo funciona la detección de intrusos en la práctica antes de tocar nada en producción.


