Snort
Introducción a sistemas IDS
Un IDS (Intrusion Detection System) es una herramienta de seguridad que intenta detectar o
monitorizar los eventos ocurridos en un determinado sistema informatico o red en busca de intentos
de accesos que comprometan la seguridad de los sistemas. Estos accesos pueden ser ataques por
Hackers, denegaciones de servicios, finger, ataques web, CGI, escaneos de puertos, nmap, etc..
Los IDS buscan patrones predefinidos caracteristicos de actividades sospechosas en la red o host.
Tienen la capacidad de analizar los paquetes de la red en busca de actividad sospechosa, por lo que
esto aumenta la capacidad de prevención y alerta anticipada dado que el ataque es detectado al inicio
del mismo.
Existen varios tipos de IDS:
● HIDS (Host IDS). Protege a un unico pc o host. Funcionan de forma local analizando la
actividad del sistema en archivos de logs, ficheros, recursos, buscando posibles anomalías. La
interfaz funciona en modo no promiscuo y la carga del procesador es mucho menor que los
otros IDS. Monitorizan gran cantidad de eventos analizando actividades con gran precisión
determinando de esta manera que procesos y usuarios se involucran en una determinada
acción.
● NIDS (Net IDS). Protege a la red. Captura y analiza paquetes de red como un sniffer de red.
Posteriormente analiza los paquetes capturados bucando patrones que supongan algun ataque.
La interfaz de red funciona en modo promiscuo para poder analizar todo el trafico de red y
este analisis se lleva a cabo en tiempo real. Ademas de trabajar a nivel de TCP/IP lo hacen
tambien a nivel de aplicación.
● DIDS (Distributed IDS). Es un sistema basado en la estructura de clienteservidor compuesto
por una serie de NIDS que actuan como sensores centralizando la información de posibles
ataques enuna unidad central que puede almacenar o recuperar los datos en una base de datos
centralizada. Esto trae una ventaja que es que cada NIDS se puede fijar en las reglas de control
Pablo Martínez
[email protected]
especializandose para cada segmento de red.
Existe otro tipo de clasificación basado en el tipo de respuesta:
● IDS Pasivo: el sensor detecta una posible intrusion, almacena la informacion y envia una señal
de alerta que se almacena en la base de datos. No actúan sobre el atacante.
● IDS Reactivo: responde a la actividad sospechosa reprogramando el cortafuegos para que
bloquee el trafico que proviene de la red del atacante. Puede actuar cerrando la conexion o
mediante una respuesta predefinida por el administrador de red. SNORT puede funcionar tanto
como un sistema reactivo como pasivo.
Un IDS esta formado por :
a) La fuente de recogida de datos. Estas fuentes pueden ser un log, dispositivo de red, o como en
el caso de los HIDS, el propio sistema.
b) Reglas que contienen los datos y patrones para detectar anomalias de seguridad en el sistema.
c) Detectores de eventos anormales en el trafico de red.
d) Filtros que comparan los datos recogidos de la red o de logs con los patrones almacenados en
las reglas.
e) Dispositivo generador de informes y alarmas.
Una de las claves mas importantes para el correcto uso de los IDS es en donde vamos a
colocar los IDS. Es posible que coloquemos el IDS antes del Firewall para estar seguros de capturar
todo el trafico de red, pero estaremos generando una cantidad alta de falsas alarmas. Las alarmas
generadas por el IDS no tienen necesariamente que pasar por el firewall. Para estar seguros de no
generar gran cantidad de falsas alarmas es conveniente colocarlo detras del firewall, asi de esa forma
solo monitoriza el trafico entrante que el firewall permitio pasar y la posibilidad de falsas alarmas es
muy inferior. Algunos no recomiendan instalarlo en el mismo firewall ya que es posible que se escape
del analisis parte del trafico de red. Si la red es demasiado grande, se podria instalar un IDS en cada
Pablo Martínez
[email protected]
host.
Características de Snort
Snort es una herramienta de deteccion de intrusiones open source que puede usarse para monitorear
redes TCP/IP y detectar una amplia variedad de trafico sospechoso asi como ataques externos. Es
utilizado para detectar una gran cantidad de ataques como ser buffer overflows, escaneo de puertos,
ataques CGI, denegaciones de servicios, etc. Puede funcionar como sniffer (al estilo tcpdump), como
detector de intrusos monitorizando todo un dominio de colision, y como packet logger registrando los
paquetes que circulan por la red. Implementa un motor de detección de ataques y barrido de puertos
que permite registrar, alertar y responder ante cualquier anomalía previamente definida. Provee al
administrador de una gran cantidad de datos para tomar la decision correcta al momento que se lleva a
cabo la actividad sospechosa. Es un detector liviano de intrusiones ya que puede ser instalado en los
host sin interrumpir la actividad normal de los equipos. Implementa un lenguaje de creación de reglas
flexible y sencillo. Cuando un paquete coincide con algun patrón establecido en las reglas de
configuración se guarda en un log. De esa forma se sabe cuando, donde y como se produjo el ataque.
Los logs pueden ser almacenados en archivos de texto como en bases de datos
(MySQL,Postgresql,ORACLE, ODBC), en ASCII o XML. Snort utiliza la librería libcap y tcpdump
como registros de paquetes.
Snort esta bajo licencia GPL y funciona tanto en Linux como en Windows. Ademas de
disponer de una gran cantidad de filtros predefinidos, cuenta con actualizaciones constantes ante
casos de ataque, barridos o vulnerabilidades que vayan siendo detectadas a través de los distintos
boletines de seguridad. La base de datos de ataques se actualiza constantemente y se puede añadir o
actualizar vía internet. Un usuario puede crear “Firmas” de ataques y enviarlos a la lista de Snort asi
todos los usuarios pueden beneficiarse.
En las ultimas versiones se ha implementado una característica nueva denominada FlexRep.
Esto permite que dada una conexión que emita trafico malicioso se bloquee con un DROP mediante el
envío de un paquete con el flag RST activa. No solo corta las conexiones sino que tambien se puede
Pablo Martínez
[email protected]
personalizar el tipo de respuesta.
Instalación y uso de Snort
La instalación se puede realizar desde los repositorios de la distribución. Para el caso de
Ubuntu (Debian) es posible instalarlo con aptget desde la consola:
pablo@laptop:~$ sudo aptget install snort
Una vez instalado los paquetes editamos el archivo de configuración /etc/snort/snort.conf. Este
archivo viene bastante comentado por lo que es muy facil realizar modificaciones. En primera
instancia no sería necesario realizar modificaciones ya que los parametros estandar se aplican a
cualquer red mediana. Podemos afinar algunas características acordes a nuestra red como ser:
var HOME_NET <red>
var EXTERNAL_NET !$HOME_NET
output log_tcpdump: <nombre de archivo>
y otras con las cuales podemos afinar nuestro sensor. Dentro de este archivo tambien estan los include
de las reglas, las cuales se almacenan en /etc/snort/rules
pablo@neurona:/etc/snort/rules$ ls l
total 1248
rwrr 1 root root 4709 20061109 00:39 attackresponses.rules
rwrr 1 root root 17026 20061109 00:39 backdoor.rules
rwrr 1 root root 3002 20061109 00:39 badtraffic.rules
rwrr 1 root root 7212 20061109 00:39 chat.rules
rwrr 1 root root 6786 20061109 00:39 ddos.rules
rwrr 1 root root 63449 20061109 00:39 deleted.rules
rwrr 1 root root 5867 20061109 00:39 dns.rules
rwrr 1 root root 5290 20061109 00:39 dos.rules
rwrr 1 root root 471 20061109 00:39 experimental.rules
rwrr 1 root root 26548 20061109 00:39 exploit.rules
rwrr 1 root root 3353 20061109 00:39 finger.rules
rwrr 1 root root 20491 20061109 00:39 ftp.rules
rwrr 1 root root 15618 20061109 00:39 icmpinfo.rules
rwrr 1 root root 4488 20061109 00:39 icmp.rules
rwrr 1 root root 12579 20061109 00:39 imap.rules
rwrr 1 root root 2430 20061109 00:39 info.rules
rwrr 1 root root 199 20061109 00:39 local.rules
Pablo Martínez
[email protected]
rwrr 1 root root 17159 20061109 00:39 misc.rules
rwrr 1 root root 2866 20061109 00:39 multimedia.rules
rwrr 1 root root 1075 20061109 00:39 mysql.rules
rwrr 1 root root 284703 20061109 00:39 netbios.rules
rwrr 1 root root 3895 20061109 00:39 nntp.rules
rwrr 1 root root 176913 20061109 00:39 oracle.rules
rwrr 1 root root 1383 20061109 00:39 otherids.rules
rwrr 1 root root 3953 20061109 00:39 p2p.rules
rwrr 1 root root 5323 20061109 00:39 policy.rules
rwrr 1 root root 1228 20061109 00:39 pop2.rules
rwrr 1 root root 8578 20061109 00:39 pop3.rules
rwrr 1 root root 5061 20061109 00:39 porn.rules
rwrr 1 root root 51378 20061109 00:39 rpc.rules
rwrr 1 root root 2920 20061109 00:39 rservices.rules
rwrr 1 root root 4092 20061109 00:39 scan.rules
rwrr 1 root root 4727 20061109 00:39 shellcode.rules
rwrr 1 root root 22138 20061109 00:39 smtp.rules
rwrr 1 root root 4915 20061109 00:39 snmp.rules
rwrr 1 root root 17310 20061109 00:39 sql.rules
rwrr 1 root root 4260 20061109 00:39 telnet.rules
rwrr 1 root root 2560 20061109 00:39 tftp.rules
rwrr 1 root root 1211 20061109 00:39 virus.rules
rwrr 1 root root 10229 20061109 00:39 webattacks.rules
rwrr 1 root root 100925 20061109 00:39 webcgi.rules
rwrr 1 root root 9795 20061109 00:39 webclient.rules
rwrr 1 root root 9166 20061109 00:39 webcoldfusion.rules
rwrr 1 root root 9484 20061109 00:39 webfrontpage.rules
rwrr 1 root
Comentarios de: Análisis Snort (0)
No hay comentarios