
Pulled Pork para la gestión de reglas de Snort y Suricata (de Google code)
Herramienta de gestión de reglas para Snort y Suricata (desde Google code)
Encuéntranos en Libera.Chat (IRC) #pulledpork
Copyright (C) 2009-2021 JJ Cummings, Michael Shirk y el equipo de PulledPork.
¡Gracias por elegir PulledPork! Este archivo proporciona una guía básica sobre el uso de PulledPork. Por favor, asegúrate de leerlo detenidamente para no pasar por alto nada.
Usage: pulledpork.pl [-dEgklnRTPVvv? -help] -c <config filename> -o <rule output path>
-O <oinkcode> -s <so_rule output directory> -D <Distro> -S <SnortVer>
-p <path to your snort binary> -C <path to your snort.conf> -t <sostub output path>
-h <changelog path> -H <signal_name> -I (security|connectivity|balanced) -i <path to disablesid.conf>
-b <path to dropsid.conf> -e <path to enablesid.conf> -M <path to modifysid.conf>
-r <path to docs folder> -K <directory for separate rules files>
Options:
-help/? Print this help info.
-b Where the dropsid config file lives.
-C Path to your snort.conf
-c Where the pulledpork config file lives.
-d Do not verify signature of rules tarball, i.e. downloading fron non VRT or ET locations.
-D What Distro are you running on, for the so_rules
For latest supported options see http://www.snort.org/snort-rules/shared-object-rules
Valid Distro Types:
Alpine-3-10
Centos-6, Centos-7, Centos-8
Debian-8, Debian-9, Debian-10
FC-27, FC-30
FreeBSD-11, FreeBSD-12
OpenBSD-6-2, OpenBSD-6-4, OpenBSD-6-5
OpenSUSE-15-0, OpenSUS-15-1, OpenSUSE-42-3
RHEL-6, RHEL-7, RHEL-8
Slackware-14-2
Ubuntu-14-4, Ubuntu-16-4, Ubuntu-17-10, Ubuntu-18-4
-e Where the enablesid config file lives.
-E Write ONLY the enabled rules to the output files.
-g grabonly (download tarball rule file(s) and do NOT process)
-h path to the sid_changelog if you want to keep one?
-H Send signal_name to the pids listed in the config file (SIGHUP or SIGUSR2)
-I Specify a base ruleset( -I security,connectivity,or balanced, see README.RULESET)
-i Where the disablesid config file lives.
-k Keep the rules in separate files (using same file names as found when reading)
-K Where (what directory) do you want me to put the separate rules files?
-l Log Important Info to Syslog (Errors, Successful run etc, all items logged as WARN or higher)
-L Where do you want me to read your local.rules for inclusion in sid-msg.map
-m where do you want me to put the sid-msg.map file?
-M where the modifysid config file lives.
-n Do everything other than download of new files (disablesid, etc)
-o Where do you want me to put generic rules file?
-O Define the oinkcode on the command line (necessary for some users)
-p Path to your Snort binary
-P Process rules even if no new rules were downloaded
-R When processing enablesid, return the rules to their ORIGINAL state
-r Where do you want me to put the reference docs (xxxx.txt)
-S What version of snort are you using (2.8.6 or 2.9.0) are valid values
-s Where do you want me to put the so_rules?
-T Process text based rules files only, i.e. DO NOT process so_rules
-u Where do you want me to pull the rules tarball from
** E.g., ET, Snort.org. See pulledpork config rule_url option for value ideas
-V Print Version and exit
-v Verbose mode, you know.. for troubleshooting and such nonsense.
-vv EXTRA Verbose mode, you know.. for in-depth troubleshooting and other such nonsense.
-w Skip the SSL verification (if there are issues pulling down rule files)
-W Where you want to work around the issue where some implementations of LWP do not work with pulledpork's proxy configuration.
Un ejemplo sencillo de cómo usar PulledPork sería especificar todas las directivas de configuración dentro del archivo PulledPork.conf. Específicamente para una funcionalidad mínima, es decir, SIN procesamiento de reglas de objetos compartidos, debes definir al menos los valores rule_file, oinkcode, temp_path, tar_path y rule_path. A continuación se muestran algunos ejemplos de esto.
./pulledpork.pl -o /usr/local/etc/snort/rules/ -O 12345667778523452344234234 \
-u http://www.snort.org/reg-rules/snortrules-snapshot-2973.tar.gz \
-i disablesid.conf -T -H
El comando anterior obtendrá el tarball snortrules-snapshot-2973.tar.gz de snort.org usando el oinkcode especificado 12345667778523452344234234 y colocará los archivos de reglas de ese tarball en la ruta de salida /usr/local/etc/snort/rules/, mientras que la opción -i le indica a pulledpork dónde se encuentra disablesid.conf, la opción -T le indica que no procese reglas de objetos compartidos, y la opción final -H le indica que envíe una señal Hangup al PID de snort que definiste en pulledpork.conf.
./pulledpork.pl -c pulledpork.conf -i disablesid.conf -T -H
Similar al primer ejemplo, pero con todas las opciones especificadas en el archivo pulledpork.conf (además de disablesid y -H)...
./pulledpork.pl -c pulledpork.conf -i disablesid.conf \
-m /usr/local/etc/snort/sid-msg.map -Hn
Lo anterior simplemente leerá las reglas de deshabilitación según lo definido, luego enviará una señal Hangup después de generar el sid-msg.map en la ubicación especificada sin descargar nada. Muy útil al ajustar o realizar cambios, etc.
El siguiente ejemplo muestra snort en línea con reglas que queremos descartar y deshabilitar, luego enviar HUP a nuestros demonios después de crear un sid-msg.map y escribir información de cambios en sid_changes.log.
./pulledpork.pl -c pulledpork.conf -i disablesid.conf -b dropsid.conf \
-m /usr/local/etc/snort/sid-msg.map -h /var/log/sid_changes.log -H
El siguiente ejemplo es igual al anterior pero especificando que queremos ejecutar el conjunto de reglas predeterminado basado en "security" y que queremos habilitar las reglas especificadas en enablesid.conf.
./pulledpork.pl -c pulledpork.conf -i disablesid.conf -b dropsid.conf \
-e enablesid.conf -m /usr/local/etc/snort/sid-msg.map \
-h /var/log/sid_changes.log -I security -H
El siguiente ejemplo es igual al anterior pero especificando que queremos usar -K (Conservar) los nombres originales del tarball y escribirlos en /usr/local/etc/snort/rules/.
./pulledpork.pl -c pulledpork.conf -i disablesid.conf -b dropsid.conf \
-e enablesid.conf -m /usr/local/etc/snort/sid-msg.map \
-h /var/log/sid_changes.log -I security -H -K /usr/local/etc/snort/rules/
Para los usuarios de Suricata, se necesitan los mismos pasos según dónde residan tus archivos de instalación, pero todo lo que PulledPork necesita para procesar archivos de reglas es que el indicador -S esté configurado con suricata-3.1.3 o la versión de Suricata que estés utilizando.
./pulledpork.pl -c pulledpork.conf -S suricata-3.1.3
Pulledpork "debería" funcionar con reglas de Suricata y ET/ETPro. Sin embargo, no hay soporte para reglas de Talos ejecutándose en Suricata.
Ten en cuenta que Pulledpork ejecuta la modificación de reglas (enable, drop, disable, modify) en ese orden por defecto.
Esto significa que las reglas disable siempre tendrán prioridad; por lo tanto, si especificas el mismo gid:sid en los archivos de configuración de enable y disable, ese sid será deshabilitado. Ten esto en cuenta también para los rangos. Sin embargo, puedes especificar un orden diferente usando la palabra clave state_order en el archivo de configuración maestro.
Probablemente agregaré más información después; --help o --? mostrarán todas las opciones en tiempo de ejecución y el archivo pulledpork.conf está bastante bien comentado... así que si no puedes descifrarlo... ¡intenta con más ahínco! Y una vez que lo resuelvas, siéntete libre de contribuir con documentación adicional o ayuda. ¡Gracias!
Como nota al margen, quiero agradecer a mi amigo Bruce por ayudarme a nombrar PulledPork. "Espero que eso lo calle ;-)"