Ayudantes de Snort • PORTADA
27Número 72W W W . L I N U X - M A G A Z I N E . E S
Snort es viejo – en la escala TI,
incluso anciano. Marty Roesch
comenzó el desarrollo del sniffer
de red [1] en 1998. Su plan original era
desarrollar uno que pudiera funcionar
en diversos sistemas operativos. La ver-
sión inicial, que data de 1998, contenía
1200 líneas de código, pero de estos
humildes comienzos surgió uno de los
motores de IDS de redes más potentes.
En 2001, Roesch fundó Sourcefire [2],
una empresa que hoy es sinónimo de
potentes dispositivos de detección de
intrusiones en redes basados en Snort, y
que continúa desarrollando Snort como
una forma de corresponder a la comuni-
dad de código abierto.
Snort es un motor que analiza y
estandariza el tráfico de red y luego
comprueba las firmas para identificar
actividades sospechosas. Snort no pro-
porciona herramientas para la gestión
de firmas, ni el almacenamiento de los
mensajes de los análisis en una base de
datos o registros forenses. En el
pasado, los administradores solían uti-
lizar herramientas como Oinkmaster
[3] o BASE [4] para procesar la infor-
mación de Snort; sin embargo, estos
proyectos han quedado huérfanos o
dormidos. Afortunadamente, algunos
trabajos nuevos han cubierto este
hueco: Snorby [5], OpenFPC [6] y
Pulled Pork [7]. Este artículo muestra la
última generación de proyectos que dan
soporte a Snort.
SnifferCon la versión 2.9, los desarrolladores
de Snort presentaron la nueva DAQ (la
librería de adquisición de datos), que
reemplaza a la clásica libpcap. A partir
de esta versión, Snort depende de la
librería DAQ, por lo que no se podrá ins-
talar el sniffer sin ella (véase el cuadro
titulado “DAQ”).
La versión actual de Snort es la
2.9.0.3. A diferencia de la anterior, los
desarrolladores simplemente han corre-
gido algunos fallos. Antes de compilar
Snort debemos asegurarnos de tener ins-
taladas en el sistema las librerías DAQ,
Dnet y PCRE. La Tabla 1 muestra las
posibles modificaciones del script ./con-
figure de Snort. Aunque podemos tener
varias configuraciones de bases de
datos, lo más probable es que deseemos
evitarlas; vamos a mostrar cómo utilizar
Barnyard [12] como base de datos resi-
dente.
El archivo con el código fuente de
Snort sólo proporciona un script de
comienzo para Red Hat y las distribucio-
nes basadas en Fedora. Probablemente
haya que modificar el script para que se
ajuste a nuestras necesidades de instala-
ción – o incluso que tengamos que escri-
birnos nuestro propio script. Lo impor-
tante es recordar que necesitamos ejecu-
Snorby, Open FPC y Pulled Pork traen de vuelta a Snort
CARNE FRESCA
Snort es el estándar de facto para la detección de intrusiones en redes
de código abierto. La comunidad de desarrolladores ha mantenido un
perfil bajo durante un par de años, pero las extensiones como Snorby,
OpenFPC y Pulled Pork le han proporcionado al viejo cerdito un poco
más de vida.
POR RALF SPENNEBERG
© ls
an
tilli - 123R
F.co
m
PORTADA • Ayudantes de Snort
28 Número 72 W W W . L I N U X - M A G A Z I N E . E S
tar Snort por medio de
/usr/local/bin/snort-c/etc/snort/snort. conf.
Antes de comenzar a utilizar Snort por
primera vez, debemos copiar el conte-
nido del directorio etc que se encuentra
en el directorio del código fuente a
/etc/snort/ y crear un directorio
/var/log/snort. El cuadro titulado
“snort.conf” contiene la ayuda necesaria
para modificar el fichero de
configuración snort.conf.
FirmasEvidentemente, Snort necesita ahora las
firmas que le proporcionarán el conoci-
miento para detectar las intrusiones.
Existen básicamente tres fuentes de fir-
mas:
• Las reglas VRT de Sourcefire Vulnera-
bility Research Team
• Las reglas Emerging Threats
• Las reglas GPL
Estas reglas han de mantenerse actuali-
zadas siempre – en este artículo utili-
zaremos más adelante Pulled Pork para
las actualizaciones. Si tenemos la
intención de utilizar Snort en un
entorno en producción, es probable
que deseemos utilizar las reglas VRT o
las Emerging Threats. Ambas se
encuentran disponibles tanto de forma
gratuita como de pago. Las reglas VRT
gratuitas se diferencian de las comer-
ciales porque se publican 30 días des-
pués que las comerciales, pero permi-
ten acceder al conjunto completo de
reglas. La edición comercial de las
reglas Emerging Threats incluye reglas
adicionales que no se suministran en la
versión gratuita.
Los siguientes ejemplos utilizan las
reglas VRT, que se pueden descargar
como parte de una suscripción comer-
cial o bien obtenerlas gratuitamente con
un retraso de 30 días (tras registrarse).
Una vez que nos hayamos subscrito o
registrado, Sourcefire nos proporcionará
un “Oink Code” que habrá que incluir
en la petición de descarga:
wget http://www.snort.org/reg-rU
ules/snort rules-snapshot-2903.U
tar.gz/<oinkcode> -O snortrulesU
-snapshot-2903.tar.gz
El conjunto de reglas VRT incluye cuatro
directorios: etc contiene los ficheros de
configuración que necesitan los conjun-
tos de reglas Snort
y Barnyard, que
deberemos copiar
en el directorio
/etc/snort. rules,
que contiene las
reglas basadas en
texto para Snort,
ha de copiarse en
/etc/snort/rules.
preproc_rules nos
da las reglas del
preprocesador –
sólo hay que copiar el directorio en
/etc/snort/preproc_rules.
Por último, las reglas binarias para
Snort se encuentran disponibles en
so_rules. Necesitamos copiar el subdi-
rectorio de la distribución (por ejemplo,
so_rules/precompiled/Ubuntu-10-4/x86-6
4/2.9.0.3/*) en /usr/local/lib/ snort_
dynamicrules y los ficheros *.rules en el
directorio /etc/snort/so_rules/.
Sourcefire Vulnerability Research
Team ofrece algunas reglas sólo en for-
mato binario. Existen dos razones para
el uso del formato binario: por un
lado, el lenguaje de reglas de Snort es
un lenguaje muy potente pero no es
capaz de identificar paquetes sospe-
chosos en algunos ataques. Las libre-
rías binarias mejoran considerable-
mente la tasa de detección. La
segunda razón es que un tercero
podría haber descubierto una vulnera-
bilidad en Sourcefire bajo un acuerdo
de confidencialidad (NDA). Si el
equipo de VRT distribuyese la firma en
texto claro, estarían publicando deta-
lles sin la autorización necesaria.
Actualizando con PulledPorkLa mayoría de los usuarios utilizan
Oinkmaster para actualizar los conjun-
tos de reglas. Como los trabajos de
desarrollo de esta herramienta se
encuentran dormidos, Pulled Pork admi-
nistra las tareas en diversos entornos.
Pulled Pork también procesa las reglas
binarias y organiza los elementos en los
directorios adecuados. Para la instala-
ción sólo es necesario descargarse el
paquete desde Google Code. La versión
actual de Pulled pork (0.5.0) requiere
01 <SNORT_ATTRIBUTES>
02 <ATTRIBUTE_TABLE>
03 <HOST>
04 <IP>10.1.2.3</IP>
05 <OPERATING_SYSTEM>
06 <NAME>
07 <ATTRIBUTE_VALUE>Windows</ATTRIBUTE_VALUE>
08 </NAME>
09 <FRAG_POLICY>Windows</FRAG_POLICY>
10 <STREAM_POLICY>Win XP</STREAM_POLICY>
11 </OPERATING_SYSTEM>
12 <SERVICES>
13 <SERVICE>
14 <PORT>
15 <ATTRIBUTE_VALUE>80</ATTRIBUTE_VALUE>
16 </PORT>
17 <IPPROTO>
18 <ATTRIBUTE_VALUE>tcp</ATTRIBUTE_VALUE>
19 </IPPROTO>
20 <PROTOCOL>
21 <ATTRIBUTE_VALUE>http</ATTRIBUTE_VALUE>
22 </PROTOCOL>
23 </SERVICE>
24 </SERVICES>
25 </HOST>
26 </ATTRIBUTE_TABLE>
Listado 1: Una Tabla de Atributos de unHost
Insta-Snorby está basado en la librería TurnKey Linux Virtual
Appliance [9], que proporciona máquinas virtuales para diver-
sos propósitos. Basada en Ubuntu Linux, permite a los adminis-
tradores probar varias aplicaciones sin tener que instalar nada.
Insta-Snorby es una imagen ISO; la versión 0.6.0 soporta una
instalación sin complicaciones en un dispositivo. Contiene:
• Snort 2.9.0.3
• Barnyard 2.19
• Snorby 2.2.1
• Open FPC
• Pulled Pork
Para instalarla como un dispositivo virtual, necesitaremos pro-
porcionarle a Insta-Snorby al menos 512 MB de RAM para evi-
tar el uso de una memoria de intercambio.
Insta-Snorby
29Número 72W W W . L I N U X - M A G A Z I N E . E S
BarnyardUna vez que se haya instalado Snort con
las especificaciones, registrará los men-
sajes en un fichero binario en formato
Unified2, que no podremos leer directa-
mente, de modo que será necesario utili-
zar otra herramienta para almacenar los
datos en una base de datos. La herra-
mienta perfecta es Barnyard2, que
adopta el papel del proceso que escribe
los datos en la base de datos, redu-
ciendo por tanto la carga del servidor. El
archivo con el código fuente de Barn-
yard se encuentra disponible en [12]; su
instalación desde el código fuente no
supone ningún problema.
Barnyard necesita escribir ficheros en
el directorio /var/log/snort y escribir el
contenido del fichero en la base de
datos. Snort almacena los ficheros en
este directorio con el patrón
merged.log.XXXXXXXX, donde
XXXXXXX es la marca de tiempo que
Barnyard referencia para ayudar a igno-
rar los ficheros antiguos. Si no se
encuentra la marca de tiempo, habrá
que eliminar la opción nostamp del
fichero de configuración para la salida
del plugin Unified. Como el fichero de
registro de Unified sólo contiene infor-
mación binaria, Barnyard tiene que
acceder a otros ficheros de
configuración de Snort para poder inter-
pretar el contenido del fichero, así que
introducimos las rutas de estos ficheros
en el fichero de configuración
/usr/local/etc/barnyard2.conf y modifi-
camos el resto de los parámetros:
Perl y los módulos Archive::Tar,
Crypt::SSLeay y LWP::Simple de Perl,
que se pueden instalar en la mayoría de
las distribuciones por medio del gestor
de paquetes. Para instalar Pulled Pork,
copiamos el directorio etc en
/etc/pulledpork y el script de Perl
pulledpork.pl en /usr/local/bin. El
fichero de configuración pulledpork.
conf también es autoexplicativo. Las
únicas tareas importantes son la modi-
ficación de la regla de la URL con el
Oink Code, las rutas para instalar las
reglas y las reglas compartidas de obje-
tos, dependiendo de la distribución que
tengamos. Pulled Pork puede modificar
las reglas durante la instalación. Para
hacerlo, referencia cuatro ficheros de
configuración adicionales, que pode-
mos activar:
• dropsid.conf: Pulled Pork cambia
todas las reglas de este fichero para
decirle a Snort que descarte los paque-
tes.
• enablesid.conf y disablesid.conf:
PulledPork activa y desactiva las
reglas de estos ficheros.
• modifysid.conf: Pulled Pork modifica
las reglas en los ficheros especifica-
dos.
El programa se ejecuta tecleando pulled-
pork.pl -c /etc/pulledpork/pulledpork.
conf. Antes de descargar las reglas,
Pulled Pork utiliza las sumas de compro-
bación para ver si las reglas en el servi-
dor son nuevas. El resto lo realiza un
trabajo programado de forma diaria en
cron.
config utc
config daemon
config logdir: /tmp
config waldo_file: /var/logU
/snort/waldo
#output alert_fast: stdout
output database: log, mysql, U
user=snort password=snortpw U
dbname=snortdb host=localhost
Antes de ejecutar Barnyard2, debemos
crear la base de datos:
# cat << EOF | mysql -u root -p
create database snortdb;
grant all on snortdb.* to U
snort@localhost identified U
by “snortpw”;
EOF
# mysql -u snort -password=U
snortpw snortdb < schemas/U
create_mysql
La siguiente línea en el script de
comienzo automatiza el proceso de
arranque:
barnyard2 -d /var/log/snort/U
-f merged.log -c /usr/local/U
etc/barnyard2.conf -n
La -n le indica a Barnyard2 que sólo pro-
cese los mensajes nuevos que se añadan
al fichero de registro de Snort. Para
poder ignorar los mensajes antiguos
cuando se reinicie, insertará un marca-
dor en un fichero Waldo [13].
SnorbySnorby, que hace de interfaz de Snort,
sólo se encuentra oficialmente disponi-
ble por medio de su propio repositorio
Git [14], pero a veces nos podemos tro-
pezar con varios archivos comprimidos.
Antes de poder instalar Snorby, necesi-
tamos resolver algunas dependencias:
Ruby (>=1.8.7), Rubygems y las
siguientes Rubygems: tzinfo, builder,
memcache-client, rack, rack-test, erubis
mail, text-format, bundler, thor, i18n,
sqlite3-ruby y rack-mount rails=3.0.0.
Los requisitos de Ruby en particular
implican que tenemos una distribución
reciente o que estamos preparados para
instalar todos estos paquetes desde el
código fuente. Ubuntu a partir de Kar-
mic y Fedora 14 incluyen la versión
1.8.7 de Ruby; ninguna de estas versio-
nes incluyen la versión 3 de Rails.
Figura 1: El panel de control de Snorby ordena los mensajes según su gravedad.
Ayudantes de Snort • PORTADA
PORTADA • Ayudantes de Snort
30 Número 72 W W W . L I N U X - M A G A Z I N E . E S
Tras descomprimirlo, en el directorio
de Snorby tecleamos bundle install; este
paso instala un par de paquetes adicio-
nales. rake snorby:setup finalmente ins-
tala Snorby. Hay un par de ficheros de
configuración autoexplicativos –
snorby/config/snorby_config.yml y
snorby/config/initializers/mail_config.rb
– que necesitamos modificar, pero luego
podemos ejecutar Snorby tecleando
rails -c para que aparezca la ventana de
inicio de sesión.
Tras iniciar la sesión, veremos el panel
de control de Snorby, una GUI de última
generación con los mensajes entrantes
(Figura 1) que permite ver cada evento
en detalle (Figura 2).
Análisis ForenseSnort sólo detecta los ataques potencia-
les en la red y registra cualquier paquete
sospechoso que haga saltar las alarmas.
A menudo esto sucede demasiado tarde,
ya que Snort no puede viajar hacia atrás
en el tiempo y registrar los paquetes
enviados previamente. Sólo se pueden
modificar las firmas para que registren
la subsecuencia de paquetes desde la
misma conexión. Esta complicación
hace que sea prácticamente imposible
analizar un ataque con éxito a nivel de
red.
El reciente proyecto OpenFPC (cap-
tura completa de paquetes) tiene como
objetivo resolver este problema.
OpenFPC es la rama hija de la plantilla
de Sourcefire, como Pulled Pork; el
número de versión es bastante bajo
(0.4), y necesitamos instalar primero
unos cuantos paquetes para cubrir las
dependencias. En las distribuciones
lación openfpc-install.sh install y res-
pondemos a las preguntas (por ejemplo,
el nombre de usuario y la contraseña).
El fichero /etc/openfpc/ openfpc- default.
conf se usa para otras configuraciones.
Luego arrancamos el servidor y compro-
bamos la disponibilidad de los clientes:
openfpc --action start
openfpc-client --action status
Para que el programa se ejecute en el
momento de arranque del ordenador,
encontraremos los scripts de arranque
en /etc/init.d. Para integrarlo con
Snorby, necesitamos hacer un pequeño
basadas en Debian como Ubuntu, la ins-
talación es más fácil, ya que podemos
hacer lo siguiente:
aptitude install apache2 U
daemonlogger tcpdump U
tshark libarchive-zip-perl U
libfilesys-df-perl libapache2U
-mod-php5 mysql-server php5U
-mysql libdatetime-perl U
libdbi-perl libdate-simple-perlU
php5-mysql libterm-readkey-perlU
libdate-simple-perl
Tras descomprimir el código fuente de
OpenFPC, ejecutamos el script de insta-
Figura 2: En la interfaz web de Snorby, los administradores pueden clasificar los resultados,
añadir comentarios y gestionar los sensores y los usuarios.
Opción Función
--enable-ipv6 Activa el soporte IPv6. Incluso si no se desea realmente usar IPv6, se debería activar esta función. Esta es la
única opción para que Snort soporte el parámetro ipvar utilizado en los ficheros de configuración 2.9.
--enable-static-daq Integra una librería DAQ estática. Esto facilita la distribución del binario.
--enable-zlib Muchos servidores comprimen las páginas cuando las sirven. Con este parámetro, Snort podrá analizar tam
bién las páginas web. Sin embargo, implica la incorporación de la librería Zlib al sistema.
--enable-targetbased Activa la configuración del preprocesador específica de un host, tal como se describe en el artículo.
--enable-decoder-preprocessor-rules Permite activar y desactivar las pruebas individuales del preprocesador.
--enable-reload Soporta una recarga simple en el caso de que cambie la configuración de Snort. El reiniciado siempre
implica la pérdida de algunos paquetes.
--enable-reload-error-restart Si falla la recarga, Snort se reinicia.
--enable-normalizer Activa el código normalizador en el modo en línea. Un binario de Snort puede funcionar en el modo en línea
IPS o en modo pasivo IDS si se utiliza la librería DAQ.
--enable-inline-init-failopen Permite a Snort pasar los paquetes sin comprobarlos durante la inicialización del modo en línea.
Tabla 1: Opciones de Configuración
Ayudantes de Snort • PORTADA
31Número 72W W W . L I N U X - M A G A Z I N E . E S
cambio mediante la GUI web. En la
interfaz administrativa, activamos el
plugin OpenFPC e introducimos en
OpenFPC el path:https:// Open-FPC- Ser-
ver_ name/ openfpc/ cgi-bin/ extract. cgi.
Luego podemos descargar el fichero
Pcap de la conexión entera directa-
mente desde la alerta en Snorby (Figura
3) y enviarlo a Wireshark para su análi-
sis.
La Seguridad TienePrioridadPor razones de seguridad, no debería-
mos nunca ejecutar Snort con los privi-
legios del root; tiene mucho más sentido
crear una cuenta dedicada para Snort y
añadir el nombre de la cuenta y el grupo
al fichero de configuración de Snort.
Además, podemos encerrar Snort en una
jaula Chroot; el fichero snort.conf que-
daría de la siguiente forma:
config set_uid: snort
config set_gid: snort
config chroot: /chroot/snort
Evidentemente, necesitamos modificar
algunos permisos y estructuras de direc-
torios para evitar que Snort tenga pro-
blemas.
Snort también ofrece algunos métodos
avanzados, tales como la reconstrucción
del tráfico basada en el destino. Los
investigadores Vern Paxson y Umesh
Shankar descubrieron en 2003 que dife-
rentes sistemas operativos manejan la
desfragmentación IP y reensamblan TCP
de diferentes maneras. Esto le propor-
ciona a un atacante la posibilidad de
camuflar un ataque de modo que com-
prometa el objetivo pero que no sea
detectado por el IDS.
Para permitir que esto suceda, el ata-
cante debería fragmentar el exploit, ade-
más crea el fragmento con la carga ata-
cante dos veces. Un fragmento contiene
la carga y el otro contiene datos no peli-
grosos. Si se envían los dos en sucesión,
el éxito o el fracaso del ataque y la habi-
lidad del IDS para detectarlo dependerán
de cómo responda el sistema objetivo.
¿Preferirá el primer o el segundo frag-
mento para la desfragmentación? Esta-
bleciendo los parámetros con cuidado,
el atacante podría ejecutar el exploit sin
que el IDS lo detecte.
Existen diferencias similares con los
segmentos TCP y el solapamiento de
los fragmentos y los segmentos. Para
asegurarse de que Snort siempre
detecte estos ata-
ques de forma correcta, necesita des-
fragmentar y reensamblar los paquetes
de la misma forma que lo haría el sis-
tema objetivo.
Snort posee un par de trucos propios
en respuesta a estos métodos de ataque
avanzado: soporta los modos de des-
fragmentación de first, last, bsd,
bsd-right, linux, windows y solaris, con
bsd por defecto. Para métodos de reen-
samblado más complejos, véase la
Tabla 2.
Si sólo utiliza uno o dos sistemas ope-
rativos, la configuración es bastante
simple: sólo hay que editar la sección
del preprocesador de snort.conf:
preprocessor frag3_engine: U
policy linux bind_to [10.1.1.U
12/32,10.1.1.13/32] U
detect_anomalies
preprocessor frag3_engine: U
policy windows bind_to U
10.2.1.0/24 detect_anomalies
Esta configuración está bien para las
redes Windows con dos ordenadores
Linux. De forma similar, habría que
modificar el preprocesador Stream5.
Para más detalles, léase el fichero
La mayoría de los parámetros de configuración que se encuen-
tran en el fichero snort.conf pueden quedarse tal cual, pero
habrá que hacer unos cuantos cambios. La configuración DAQ
utiliza la interfaz de paquetes AF y proporciona un búffer de 256
MB para utilizarlo de caché para cualquier paquete que aún no
haya procesado. La variable HOME_NET define la red a prote-
ger. Las variables RULE_PATH, SO_RULE_PATH y
PREPROC_RULE_PATH hacen referencia a los directorios
correctos. El plugin de salida unified2 crea los ficheros de regis-
tro:
config daemon
config interface: eth0
config daq: afpacket
config daq_mode: passive
config daq_var: buffer_size_mb=256
ipvar HOME_NET 192.168.0.0/24
var RULE_PATH /etc/snort/rules
var SO_RULE_PATH /etc/snort/so_rules
var PREPROC_RULE_PATH /etc/snort/preproc_rules
output unified2: filename merged.log, limit 128,
vlan_event_types
Para utilizar reglas de preprocesamiento y reglas de objetos
compartidos, deberemos quitar los signos de comentario que
se encuentran al comienzo de las directivas incluidas en las
correspondientes secciones.
snort.conf Uno de los mayores problemas a la hora de ejecutar Snort en
una red rápida es su propio rendimiento. Si Snort tardara dema-
siado en analizar los paquetes y fallase a la hora de obtener los
paquetes a la velocidad necesaria de la librería Libpcap [10], la
librería descartaría el paquete. Es más, los administradores han
usado dos soluciones diferentes para solucionar este problema:
Phil Wood añadió un búffer de memoria en anillo a Libcap; el
tamaño del búffer se especificaba cuando se cargaba la librería.
A partir de la versión 1.0 de Libpcap, el búffer en anillo viene
implementado en la librería. Otra solución es la librería PF_ring
[11], que reemplaza a la librería libpcap.
La versión 2.9 de Snort presenta DAQ (librería para la adquisi-
ción de datos) como una alternativa nueva y mucho más sim-
ple, que accede directamente a la tarjeta de interfaz de red sin
hacer uso de Libpcap. DAQ es fácil de instalar, sin embargo, la
mayoría de las distribuciones no cuentan con los paquetes pre-
compilados con los parámetros correctos. De hecho, la página
web de Snort sólo ofrece paquetes RPM. Tras descargar la
última versión 0.5 del código fuente, sólo hay que seguir los
pasos típicos: ./configure,make,sudo make install. No hay
muchas dependencias que resolver. Para asegurarse de que se
pueden compilar los fuentes, probablemente haya que instalar
el compilador de C, Flex, Bison y libpcap >= 1.0. Si no va a usar
Libpcap, sino que accede a la NIC directamente por medio de la
librería DAQ, puede desactivar Libpcap
usando --disable-pcap-module.
DAQ
mente desde un análisis de Nmap pode-
mos utilizar Hogger [15].
¡Corre, Cerdito, Corre!Con una combinación inteligente de los
componentes adecuados, podemos crear
un sistema de detección de intrusiones
en la red con Snort. Obviamente, necesi-
tamos utilizar un buen hardware en una
red rápida. Dispositivos como el que
comercializa Sourcefire pueden monito-
rizar las redes a velocidades de hasta 10
Gbps ejecutanto Snort 2.9 en un hard-
ware altamente especializado.
Comparado con
esto, el hardware
normal habitual-
mente alcanza su
límite a 1 Gbps. Se
recomiendan tarje-
tas interfaces de
red premium –
como las fabrica-
das por Napatech
[16], por ejemplo
– una generosa
cantidad de RAM y
una CPU rápida.
Además, los admi-
nistradores que
buscan rendi-
miento necesitarán
modificar los pará-
metros del prepro-
cesador para indicar la cantidad de RAM
disponible.
Conseguir que Snort maneje redes de
10 Gbps es todo un reto – pero no impo-
sible – con una buena experiencia, el
hardware adecuado y un ajuste óptimo.
La respuesta que Steven Sturges de
Sourcefire da cuando se le pregunta
acerca de cuál es el mayor desafío, es
concisa: “Velocidad”. Y continúa expli-
cando que no es difícil analizar 500
Mbps en tiempo real; el reto está en
intentar hacer lo mismo con ¡10 Gbps! �
README.stream5 que se encuentra en
el directorio del código fuente de
Snort.
Si tenemos muchos sistemas operati-
vos en la LAN, esta clase de administra-
ción es demasiado compleja. En tal
caso, necesitamos una tabla de atributos
de los hosts para definir la información
en un fichero XML (Listado 1). La tabla
se define en snort.conf como
attribute_table filename /path/to/file. La
tabla de atributos de hosts contiene
información de cada ordenador indivi-
dual. Para crear el fichero XML directa-
PORTADA • Ayudantes de Snort
32 Número 72 W W W . L I N U X - M A G A Z I N E . E S
Ralf Spenneberg es profesor free-
lance de Unix/ Linux, consultor, y
autor y CEO de Ralf Spenneberg
Open Source Training. Ralf ha
publicado varios libros sobre
detección de intrusiones, SELinux,
cortafuegos y redes privadas vir-
tuales. La segunda edición de su
último libro VPN on Linux se pub-
licó hace unos meses.
EL A
UT
OR
[1] Snort: http:// www. snort. org
[2] Sourcefire: http:// www. sourcefire.
com
[3] Oinkmaster: http:// oinkmaster.
sourceforge. net
[4] BASE: http:// base. secureideas. net
[5] Snorby: http:// www. snorby. org
[6] OpenFPC: http:// www. openfpc. org/
[7] Pulled Pork: http:// code. google. com/
p/ pulledpork/
[8] Insta-Snorby del 19.01.2011 http://
www. snorby. org/ Insta-Snorby-0. 6. 0.
iso
[9] Librería TurnKey Linux Virtual
Appliance: http:// www. turnkeylinux.
org
[10] Librería libpcap: http:// www.
tcpdump. org
[11] LibreríaPF_ring: http:// www. ntop.
org/ PF_RING. html
[12] Barnyard2 http:// www. securixlive.
com/ barnyard2/ index. php
[13] Fichero Waldo: http:// en. wikipedia.
org/ wiki/ Waldo_file
[14] Repositorio Snorby Git: https://
github. com/ Snorby/ snorby/ tarball/
master
[15] Hogger: http:// code. google. com/ p/
hogger/
[16] Napatech: http:// www. napatech.
com/ applications/ network_security/
intrusion_detection. html
RECURSOS
Figura 3: Si usamos el fichero PCAP, podremos definir con precisión qué paquetes queremos
que extraiga OpenFPC.
Método Efecto
first Prefiere el primer segmento de solapamiento
last Prefiere el último segmento de solapamiento
bsd Free BSD 4.x, Net BSD 2.x, Open BSD 3.x, AIX
linux Linux 2.4 y 2.6
old-linux Linux 2.2 y anteriores
windows Windows 98, NT, 2000, XP
win2003 Windows 2003 Server
vista Windows Vista
solaris Solaris 9.x
hpux10 HPUX 10
hpux HPUX 11
irix IRIX 6
macos MacOS >= 10.3
Tabla 2: Reensamblado Basado en elObjetivo