Snort 3 es el Snort IPS (Sistema de Prevención de Intrusiones) de próxima generación. Este archivo le mostrará lo que Snort++ tiene para ofrecer y le guiará a través de los pasos desde la descarga hasta la demostración. Si no está familiarizado con Snort, primero debe consultar la documentación de Snort. Cubriremos los siguientes temas:
Descripción general
Dependencias
Descargar
Construir bufido
Ejecutar resoplido
Documentación
Chillido
Esta versión de Snort++ incluye nuevas funciones, así como todas las funciones de Snort 2.X y correcciones de errores para la versión base de Snort, excepto lo que se indica a continuación:
Project = Snort++ Binary = snort Version = 3.0.0 (Build 250) from 2.9.11
Estas son algunas de las características clave de Snort++:
Admite múltiples subprocesos de procesamiento de paquetes
Utilice una tabla de atributos y configuración compartida
Utilice una configuración simple y programable
Haga que los componentes clave sean conectables
Servicios de detección automática para configuración sin puerto
Admite buffers adhesivos en reglas
Generar automáticamente documentación de referencia
Proporcionar un mejor soporte multiplataforma
Facilitar las pruebas de componentes
Utilice un mapa de red compartido
Las características adicionales en la hoja de ruta incluyen:
Soporte de canalización del procesamiento de paquetes.
Admite descarga de hardware e integración del plano de datos
Modo proxy de soporte
soporte de ventanas
Si ya construyes Snort, es posible que tengas todo lo que necesitas. Si no, consigue lo último:
cmake para construir desde la fuente
daq de https://github.com/snort3/libdaq para paquetes IO
dnet de https://github.com/dugsong/libdnet.git para funciones de utilidad de red
flex >= 2.6.0 de https://github.com/westes/flex para analizador de sintaxis de JavaScript
g++ >= 7 u otro compilador de C++17
hwloc de https://www.open-mpi.org/projects/hwloc/ para gestión de afinidad de CPU
LuaJIT de http://luajit.org para configuración y secuencias de comandos
OpenSSL desde https://www.openssl.org/source/ para firmas de archivos SHA y MD5, la opción de regla protected_content y detección de servicios SSL
pcap de http://www.tcpdump.org para registro de estilo tcpdump
pcre de http://www.pcre.org para la coincidencia de patrones de expresiones regulares
pkgconfig de https://www.freedesktop.org/wiki/Software/pkg-config/ para localizar dependencias de compilación
zlib de http://www.zlib.net para descompresión
Los paquetes adicionales proporcionan características opcionales. Consulte el manual para obtener más información.
Hay un archivo tar de origen disponible en la sección Descargas de snort.org:
snort-3.0.0-a3.tar.gz
También puedes obtener el código con:
git clone https://github.com/snort3/snort3.git
Hay paquetes adicionales separados para cmake que brindan funciones adicionales y demuestran cómo crear complementos. La fuente de los extras está en el repositorio snort3_extra.git.
Siga estos pasos:
Configurar el directorio de origen:
Si estás usando un clon de github:
cd resoplido3/
De lo contrario, haz esto:
tar zxf snort-tarballcd snort-3.0.0*
Ruta de instalación del programa de instalación:
exportar my_path=/ruta/a/snorty
Compile e instale:
Para compilar con cmake y make, ejecute configure_cmake.sh. Automáticamente creará y completará un nuevo subdirectorio llamado 'build'.
./configure_cmake.sh --prefix=$my_pathcd compilación hacer -j $(nproc) instalar
Nota :
Si puedes hacer src/snort -V, lo compilaste exitosamente.
Si está familiarizado con cmake, puede ejecutar cmake/ccmake en lugar de configure_cmake.sh.
cmake --help enumerará los generadores disponibles, como Xcode. Siéntase libre de utilizar uno; sin embargo, la ayuda con ellos se proporcionará por separado.
A continuación se muestran algunos ejemplos. Si está utilizando reglas y/o configuraciones de Talos, primero debe configurar las variables necesarias en la parte superior de snort.lua y snort_defaults.lua.
Snort++ proporciona mucha ayuda desde la línea de comandos, que incluye:
$mi_ruta/bin/snort --help$mi_ruta/bin/snort --help-module suprimir$mi_ruta/bin/snort --help-config | hilo grep
Examina y tira un pcap. A continuación, reemplace a.pcap con su favorito:
$mi_ruta/bin/snort -r a.pcap$mi_ruta/bin/snort -L dump -d -e -q -r a.pcap
Verificar una configuración, con o sin reglas:
$mi_ruta/bin/snort -c $mi_ruta/etc/snort/snort.lua$mi_ruta/bin/snort -c $mi_ruta/etc/snort/snort.lua -R $mi_ruta/etc/snort/sample.rules
Ejecute el modo IDS. A continuación, reemplace pcaps/ con una ruta a un directorio con uno o más archivos *.pcap:
$mi_ruta/bin/snort -c $mi_ruta/etc/snort/snort.lua -R $mi_ruta/etc/snort/sample.rules -r a.pcap -A alerta_prueba -n 100000
Suprimamos 1:2123. Podríamos editar la configuración o simplemente hacer esto:
$mi_ruta/bin/snort -c $mi_ruta/etc/snort/snort.lua -R $mi_ruta/etc/snort/sample.rules -r a.pcap -A alert_test -n 100000 --lua "suprimir = { { gid = 1, sid = 2123 } }"
Haga todo lo posible en un directorio con múltiples subprocesos de paquetes:
$mi_ruta/bin/snort -c $mi_ruta/etc/snort/snort.lua -R $mi_ruta/etc/snort/sample.rules --pcap-filter *.pcap --pcap-dir pcaps/ -A alert_fast --max-packet-threads 8
Se proporcionan ejemplos adicionales en doc/usage.txt.
Eche un vistazo al manual, algunas partes del cual se generan mediante el código para que se mantenga actualizado:
$mi_ruta/share/doc/snort/snort_manual.pdf$mi_ruta/share/doc/snort/snort_manual.html$mi_ruta/share/doc/snort/snort_manual/index.html
Todavía no tiene mucho sobre cómo y por qué, pero tiene toda la configuración disponible actualmente, etc. Algunos cambios clave en las reglas:
debes usar subopciones de contenido separadas por comas como esta: content:"foo", nocase;
Los selectores de búfer deben aparecer antes del contenido y permanecer vigentes hasta que se modifiquen.
Se eliminaron los selectores de buffer pcre.
Consulte el manual para obtener más información sobre Snort++ vs Snort.
consulte la sección de referencia del manual para comprender cómo se definen los parámetros, etc.
También cubre nuevas características que no se muestran aquí:
snort2lua, una herramienta para convertir la configuración y las reglas de Snort 2.X a la nueva forma
un nuevo inspector HTTP
una carpeta, para asignar la configuración al tráfico
un asistente para la configuración independiente del puerto
análisis de reglas mejorado: espacios en blanco arbitrarios, comentarios de estilo C, comentarios #begin/#end
shell de línea de comando local y remota
o")~
Esperamos que estés tan entusiasmado con Snort++ como nosotros. Háganos saber lo que piensa sobre la lista de usuarios de Snort. Mientras tanto, mantendremos el hocico en la piedra de moler.