Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SURICATA
SURICATA
Deteccin de Protocolos Automtico: El motor de suricata tiene palabras claves para algunos
protocolos como: IP, TCP, UDP, ICMP, HTTP, TLS, FTP y SMB. Esto quiere decir que se puede
detectar una ocurrencia dentro de un stream de datos, sin importar el puerto en donde ocurre. Esta
caracterstica es importante para el control y deteccin de malware. Otros protocolos de capa 7 se
encuentran an en desarrollo.
Descompresin Gzip: Con la ayuda de la librera HTP es posible descomprimir un archivo en Gzip
para examinarlo en busca de patrones de ataque.
Independencia de la librera HTP: La librera HTP es un proyecto independiente a suricata e
integrado efectivamente a suricata. Puede ser utilizado por otras aplicaciones como: proxies, filtros;
y hasta el mdulo mod_security de Apache.
Mtodos de Entrada Estndar: Soporte para NFQueu, IPFRing y LibPcap standard para la captura
de trfico.
Unified2 Output: Soporte para mtodos y herramientas de salida estndar Unified2. Este tipo de
salida binario busca reducir carga al Suricata en cuanto a parseo de la informacin de salida,
dejndole el trabajo a soluciones externas como Barnyard quien agarra los binarios, los interpreta y
los almacena segn donde configure el administrador.
Fast IP Matching: El motor de suricata puede usar automticamente un preprocesador especial
para validar ms rpidos las reglas que hagan coincidencia nicamente de IP; por ejemplo, RBN, o
las listas de ip de EmergingThreats.
HTTP Log Module: Las peticiones de HTTP pueden retornar una respuesta con el formato de log
de apache para monitoreo y registro de actividad.. Es posible usar Suricata nicamente como
HTTP sniffer con este mdulo.
IP Reputation: Consiste en compartir informacin de direcciones IP de mala reputacin con otras
organizaciones y soluciones de seguridad, para eliminar falsos positivos. Este mdulo se encarga
de colectar, almacenar, actualizar y distribuir el conocimiento de la reputacin de direcciones IP.
Esta calificacin puede ser positiva o negativa y clasifica a las IP en categoras. Funcionara bajo
una estructura Hub and Spoke donde en una base de datos central (Hub) se almacenara y
procesara toda la informacin recolectada por los IDS para luego ser compilada y distribuida a la
base de datos de los IDS clientes (Spokes).
La implementacin tcnica est dividida en tres componentes: La integracin con el motor,
reputaciones y el protocolo de comunicacin entre Hubs y sensores (IDSs) el Hub, o base de
datos central, que redistribuir las Graphics Card Acceleration: usando CUDA y OpenCL se puede
utilizar el poder de procesamiento de las tarjetas grficas para acelerar el IDS y quitarle carga al
procesador principal para ganar rendimiento. Este mdulo ya est includo desde la versin 0.9.x
de suricata pero an sin los resultados esperados. An en desarrollo. Windows Binaries: Suricata
tambin puede correr en Windows, sobre versiones mayores a XP, aunque no es muy
recomendable hacerlo pues es una solucin inicialmente desarrollada para Linux que se
caracteriza por ser ms estable que Windows.
Flowint: Permite la captura, almacenamiento y comparacin de datos en una variable global, es
decir que permitir comparar datos de paquetes provenientes de streams no relacionadas tambin.
Se puede usar para un buen nmero de cosas tiles como contar ocurrencias, sumar o restar
ocurrencias, activar una alarma al obtener un nmero x de ocurrencias, etc.
Mdulo de capa de aplicacin SSH: El interpretador SSH interpreta sesiones SSH y detiene la
deteccin e inspeccin del flujo de datos despus de que la parte de encriptacin ha sido
inicializada. Este mdulo implementado en la versin estable 1.0.2, se concentra en reducir el
nmero de paquetes que necesita inspeccin al igual que los mdulos SSL y TSL.
Ms sobre el Multi-threading de Suricata
Como se ha mencionado, Suricata funciona a base de multi-hilos, usa mltiples ncleos del CPU
para procesar paquetes de manera simultnea. Si est en un CPU con un solo ncleo los paquetes
sern procesados uno por uno. Existen 4 mdulos por hilo de CPU: Adquisicin de paquete,
decodificacin de paquete, capa de flujo de datos, detecciones y salidas. El mdulo de adquisicin
de paquete lee el paquete desde la red. El mdulo de decodificacin interpreta el paquete y se
encarga de gestionar a qu stream pertenece qu paquete; el mdulo de capa de flujo realiza 3
tareas: La primera, realiza lo que se conoce como tracking o rastreo de flujo, que asegura que
todos los pasos que se estn siguiendo tienen una conexin de red correcta. La segunda: el trfico
de red TCP viene en paquetes, por lo tanto el motor de este mdulo reconstruye el stream original.
Finalmente la capa de aplicacin ser inspeccionada, tanto el flujo HTTP como DCERPC
(Distributing analizado. Los hilos de deteccin compararan firmas, pueden existir varios hilos de
deteccin que pueden trabajar simultneamente. En el mdulo de detecciones y salidas, todas las
alertas y eventos sern analizados.
bash autogen.sh
make install-conf
./configure && make && make install-rules
make install-rules
./configure && make && make install-full
make install-full
ifconfig
cd /var/log/suricata
tail http.log
tail -n 50 stats.log
--enable-nfqueue
install
Hay una versin en los repositorios de Debian, pero se compilo porque necesito la NFQUEUE
(para
que
funcione
como
IPS).
Instalado ya, tendremos los archivos de configuracin en /etc/suricata/, y el principal
es suricata.yaml.
Los archivos de reglas en los que se basar, a m me cogi por defecto los de Snort
(/etc/snort/rules/), aunque se pueden coger otras distintas (ms actualizadas y adems
recomendadas) mediante el OinkMaster, explicado perfectamente y con dibujitos
aquhttps://redmine.openinfosecfoundation.org/projects/suricata/wiki/Rule_Management_with_Oink
master.
En estos archivos de reglas podemos editar las reglas que queramos, por ejemplo podemos crear
una regla que bloquee todo acceso al Facebook y meterla al archivo /etc/snort/rules/webmisc.rules,
o
al
archivo icmp.rules:
drop tcp any any -> any any (content:"facebook"; msg:"Attention, Facebook!!!"; sid:1000002; rev:1;)
Aunque si realmente se quiere ver un conjunto de reglas que bloqueen cierto contenido observar el
archivo /etc/snort/rules/porn.rules, como ejemplo de la definicin de el archivo.
se puede crear filtros y reglas, por ejemplo rechaza todos los paquetes que vayan por protocolo
ICMP
(por
ejemplo
el
PING).
drop
icmp
any
any
->
any
any
(msg:"Tenemos
una
peticin
ICMP!";sid:20000;)
Con un poco de imaginacin se puede hacer cualquier cosa. Pero para que elsuricata pueda tirar
paquetes, tenemos que decirle al IpTables que le mande todo lo que encuentre:
iptables
iptables
iptables
-A
-A
-A
INPUT
OUTPUT
FORWARD
-j
-j
-j
NFQUEUE
NFQUEUE
NFQUEUE
La NFQUEUE es la cola que procesar el suricata para analizar luego los paquetes. Para que nos
funcione dicha cola tenemos que entrar a la configuracin en /etc/suricata/suricata.yaml, buscar
NFQ
y
descomentarmode:
accept
Y
por
sudo
ltimo
suricata
-c
ejecutamos
el
/etc/suricata/suricata.yaml
suricata
-q
Como se puede observar el Suricata puede hacer muchas cosillas, aunque echo de menos cosas
que tena el OSSEC como los baneos inteligentes (durante varios minutos y luego se quitaba, o
tras varios ataques seguidos en un corto periodo de tiempo, que con ste se puede hacer pero
bastante
ms
complicado).
Realmente el Suricata se parece mucho al Snort, lo que tiene a mayores es una mayor
optimizacin y rendimiento (Multi-thread y aceleradores de captura), y que parece que apunta a ser
el sucesor del Snort.
TABLA DE COMPARACIN
Param
IPS caracterstica
Reglas
Suricata
opcional al compilar (- enablenfqueue)
Esnifar
Snort_inline o snort utiliza con la
opcin-Q
EmergingThreats normas
Temas
Multi-hilo
Un solo hilo
Fcil de instalar
No disponible de
paquetes. Instalacin manual.
Documentacin
Registro de eventos
Soporte IPv6
Completamente compatible
Captura de
aceleradores
Archivo de
configuracin
suricata.yaml , classification.config,
snort.conf, threshold.conf
reference.config, threshold.config