El script es relativamente simple, descarga el paquete de reglas desde la página de snort (un tar.gz) a un directorio temporal, lo descomprime y luego, dependiendo de lo especificado en el archivo oinkmaster.conf, copia dichas reglas al directorio de reglas de snort. Si las reglas nuevas cambian con respecto a las que teníamos, copia las nuevas al directorio. Lo bueno es que en oinkmaster.conf podemos definir que si nosotros desactivamos una regla, cuando actualice la mantenga desactivada, además podemos aplicar reglas de modificación, y saltear archivos completos de reglas (es decir para que no los pise con reglas nuevas). Realmente un lujo. Pueden leer más en su web oficial (http://oinkmaster.sourceforge.net/). Próximamente estaré publicando un artículo bastante completo sobre configuración de snort que incluye al oinkmaster.
Una necesidad que surgió durante la desactivación de alertas de Snort es poder agregar rangos de SIDs (id de reglas) para deshabilitar. En el script original, si deshabilitamos las reglas cuyos sid son 2, 3, 4, y 5, tendremos que agregar a oinkmaster.conf la opción "disablesid 2,3,4,5". Con estos numeritos no es tan problemático, pero con los SID kilométricos de algunas reglas, si deseamos desactivar varios SIDs sucesivos, es una molestia tener que escribir uno por uno.
Por ello modifiqué el script perl para poder agregar opciones del estilo "disablesid 2-5" en oinkmaster.conf y así poder deshabilitar varias reglas sin necesidad de escribir todos los SIDs. Ya que estaba, también modifiqué el script para que acepte rangos en la opción localsid (SID de reglas que no debe tocar), y enablesid (SID de reglas que debe activar).
A partir de las modificaciones (nada del otro mundo, cabe destacar), cree un diff que permite parchar el script original, el cual pueden descargar aquí.
Para aplicar el patch simplemente copien el código en un archivo oinkmaster.patch, guardenlo en el directorio donde tienen el script original (suele llamarse oinkmaster.pl u oinkmaster) y parados en dicho directorio, ejecuten lo siguiente:
# patch < oinkmaster.patchEnvié estas modificaciones al autor original (Andreas Östling), el cual me contestó varias semanas después, diciéndome que las modificaciones le parecían muy interesantes y que iba a tratar de incorporarlas, aunque ya no tiene tiempo para trabajar en Oinkmaster, así que no sabía cuándo iba a poder hacerlo.
En fin, espero que les resulte útil como a mi!