460 likes | 765 Views
Detección de Intrusos Usando Snort. III Jornada Nacioal de Seguridad Informática Ing. Moisés David Rincón D’Hoyos, MSc. Que son los IDS?. Sistemas de monitoreo computacional que buscan señales de la presencia de usuarios no autorizados, o de usuarios abusando de sus privilegios.
E N D
Detección de Intrusos Usando Snort III Jornada Nacioal de Seguridad Informática Ing. Moisés David Rincón D’Hoyos, MSc.
Que son los IDS? Sistemas de monitoreo computacional que buscan señales de la presencia de usuarios no autorizados, o de usuarios abusando de sus privilegios
Que hace un IDS • Monitorea diversas fuentes de información de los sistemas analizando de varias maneras esta información • Compara el tráfico con patrones de ataques • Identifica problemas relacionados con el abuso de privilegios • Realiza análisis estadístico en busca de patrones de actividad anormal
Para que un IDS si ya tenemos Firewall? • La mayoría de Firewalls funcionan como guardias frontales únicamente • Los IDS son el equivalente a los sistemas de alarma con multiples sensores y monitoreo por circuito cerrado de video • Muchas veces el enemigo ya está dentro • Algunos productos de Firewall han incluido IDS pero se siguen llamando Firewalls.
Que puede ser detectado por un IDS y por un Firewall no? • Ataques por entunelamiento de tráfico • Ataques a través de vulnerabilidades en aplicaciones • Ataques que se originan desde la porción segura de la red
Categorización de IDS • Detección de uso inapropiado Vs. Detección de anomalías • Sistemas Activos Vs. Sistemas Reactivos • Sistemas basados en Red o NIDS Vs. Sistemas basados en Host o HIDS Vs. Sistemas Híbridos
NIDS • Monitorean el tráfico de red, pero solo en porciones de estas • Utilizan sniffers y modo promiscuo que requieren privilegios locales • Pueden fácilmente monitorear mapeos de puertos, ataques conocidos y sustitución de direcciones ip
HIDS • Solo se preocupan por los eventos locales a una máquina monitoreando el tráfico de red o elementos de la misma máquina • Monitorean: • Sesiones de usuarios • Actividades de los usuarios privilegiados • Cambios en el sistema de archivos
Ventajas de los NIDS • Una subred completa puede ser cubierta por un IDS • Teóricamente indetectables • Mínimo impacto a la red • Permiten detectar ataques DOS • Independencia del ambiente operativo • Livianos y Fáciles de implementar
Ventajas de los HIDS • Permiten asociar usuarios y eventos • Pueden analizar tráfico cifrado • Pueden proveer información acerca de un ataque en una máquina durante el mismo ataque
Desventajas de los NIDS • Generación de falsos positivos • No pueden analizar tráfico cifrado • Son tan efectivos como la última actualización de patrones • Alta latencia entre el ataque y la notificación • Dificultad para realizar análisis en redes congestionadas • No indican si un ataque ha sido exitoso o no
Desventajas de los HIDS • La información provista deja de ser confiable tan pronto como un ataque ha sido exitoso • Cuando la máquina “cae” también lo hace el IDS • No son capaces de detectar mapeos de red • Pueden dejar de ser efectivos durante un ataque DOS • Requieren recursos locales para operar
Que se puede lograr con IDS • Un mayor grado de seguridad al resto de la infraestructura de seguridad • Hacer uso de información muchas veces ignorada, para ver que está pasando en realidad • Apoyar el rastreo de actividades intrusas desde el punto de entrada al de salida o impacto • Reconocer alteraciones en sistemas de archivos
Que se puede lograr con IDS (2) • Reconocer ataques en tiempo real • Automatizar la búsqueda de trazas de ataques en Internet
Que no se puede lograr con IDS • No son infalibles • No compensan una mala administración • No investigan ataques sin intervención humana • No intuyen ni siguen las políticas de seguridad organizacional • No compensan debilidades en protocolos de red • No compensan los problemas debidos a la calidad o integridad de la información
Que no se puede lograr con IDS (2) • No analizan adecuadamente el tráfico en una red de alto tráfico • No pueden solucionar problemas debidos a ataques a nivel de paquetes • Se quedan cortos ante características de redes modernas • Se ven bastante limitados ante tráfico cifrado
Snort • Es un NIDS liviano, libre, fácilmente configurable y ejecutable en diversas plataformas • Ampliamente considerado técnicamente superior a la mayoría de NIDS comerciales • Además de NIDS puede actuar como un simple sniffer o bitacora de paquetes con especificaciones avanzadas • No bloquea intrusos, asume que alguien está monitoreando el servicio
Diseño de Snort • Utiliza libpcap o WinPcap como fuente de tráfico • El sistema está basado en plugins que permiten una flexibilidad prácticamente ilimitada, activando módulos que vienen con la distribución o creando nuevos • Utiliza un motor de detección basado en reglas
El Decodificador de Paquetes telnet TCP IP header Ethernet network packet
Sniffing Packet Stream Flujo de Datos en Snort SNORT Packet Decoder Pre-Processor <Plug-Ins> Data Flow Detection Engine <Plug-Ins> Post-Processor & Output Stage <Plug-Ins> Alerts/Logs
Plugins • Prepocesador • El tráfico es analizado o manipulado antes de ser pasado al motor de detección • Detección • Realiza pruebas sencillas en partes específicas de los paquetes • Salida • Reporta los resultados de otros plugins
Motor de Detección • Las reglas crean patrones o signatures • Elementos modulares de detección se combinan para formar estos patrones • Es posible la detección de actividad anómala; stealth scans, OS fingerprinting, buffer overflows, back doors, vulnerabilidades en cgis, códigos ICMP inválidos, entre otros • El sistema de reglas es muy flexible y la creación de nuevas reglas es sencilla
Motor de Detección (2) • Puede generar; Alert, Log o Pass sobre dirección/puerto origen/destino para IP, UPD e ICMP, anomalías estadísticas o verificaciones sobre protocolos • A menos que se tengan necesidades muy específicas no es necesario escribir nuevas reglas; actualmente hay mas de 2000 disponibles en línea
alert tcp !10.1.1.0/24 any -> 10.1.1.0/24 any (flags: SF; msg: “SYN-FIN Scan”;) Reglas • Cabecera • alert tcp !10.1.1.0/24 any -> 10.1.1.0/24 any • Opciones • (flags: SF; msg: “SYN-FIN Scan”;)
Posibilidades de Especificación de las Opciones • IP TTL • IP ID • Fragment size • TCP Flags • TCP Ack number • TCP Seq number • Payload size • Content • Content offset • Content depth • Session recording • ICMP type • ICMP code • Alternate log files
Ejemplos de Reglas *** • Regla para detectar el troyano SubSeven: alert tcp $EXTERNAL_NET 27374 -> $HOME_NET any (msg:"BACKDOOR subseven 22"; flags: A+; content: "|0d0a5b52504c5d3030320d0a|"; reference:arachnids,485; reference:url,www.hackfix.org/subseven/; sid:103; classtype:misc-activity; rev:4;)
Reglas para atrapar intrusos *** • alert tcp $EXTERNAL_NET any -> $SQL_SERVERS 1433 (msg:"MS-SQL xp_cmdshell - program execution"; content: "x|00|p|00|_|00|c|00|m|00|d|00|s|00|h|00|e|00|l|00|l|00|"; nocase; flags:A+; classtype:attempted-user; sid:687; rev:3;)caught compromise of Microsoft SQL Server • alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS 80 (msg:"WEB-IIS cmd.exe access"; flags: A+; content:"cmd.exe"; nocase; classtype:web-application-attack; sid:1002; rev:2;) caught Code Red infection
Reglas para atrapar intrusos (2)*** • alert tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg:"INFO FTP \"MKD / \" possible warez site"; flags: A+; content:"MKD / "; nocase; depth: 6; classtype:misc-activity; sid:554; rev:3;) caught anonymous ftp server • alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS 80 (msg:"WEB-IIS multiple decode attempt"; flags:A+; uricontent:"%5c"; uricontent:".."; reference:cve,CAN-2001-0333; classtype:web-application-attack; sid:970; rev:2;) caught NIMDA infection
Reglas para atrapar intrusos (3)*** • alert tcp $HOME_NET 23 -> $EXTERNAL_NET any (msg:"TELNET Bad Login"; content: "Login incorrect"; nocase; flags:A+; classtype:bad-unknown; sid:1251; rev:2;) caught telnet username brute-force
Reglas preexistentes • bad-traffic.rules exploit.rules scan.rules • finger.rules ftp.rules telnet.rules • smtp.rules rpc.rules rservices.rules • dos.rules ddos.rules dns.rules • tftp.rules web-cgi.rules web-coldfusion.rules • x11.rules web-iis.rules web-misc.rules • web-attacks.rules sql.rules web-frontpage.rules • icmp.rules netbios.rules shellcode.rules • backdoor.rules misc.rules policy.rules • porn.rules info.rules icmp-info.rules • virus.rules local.rules attack-responses.rules
Bitacora de Snort • Contenido de /var/log/snort/alert • [**] [1:469:1] ICMP PING NMAP [**][Classification: Attempted Information Leak] [Priority: 2]03/28-09:48:40.739935 192.168.1.2 -> 192.168.1.3ICMP TTL:46 TOS:0x0 ID:61443 IpLen:20 DgmLen:28Type:8 Code:0 ID:10629 Seq:0 ECHO[Xref => http://www.whitehats.com/info/IDS162] • [**] [1:469:1] spp_portscan: PORTSCAN DETECTED from 192.168.1.2 (THRESHOLD 4 connections exceeded in 0 seconds) [**]03/28-09:48:41.052635 • [**] [100:2:1] spp_portscan: portscan status from 192.168.1.2: 183 connections across 1 hosts: TCP(183), UDP(0) [**]03/2809:48:45.007501
Implementación tcpdump Sniffing Filter file Packet Stream tcpdump process To Log File
Implementación (2) Cron To Email Report Generator SNORT Sniffing Rules file Packet Stream Alert File To Alert File
Implementación (3) Cron To Email Report Generator SNORT Sniffing Rules file Packet Stream Alert File To Alert File
Implementación (4) Cron Logging Interval Daily Short-Term Driver Long-Term Driver Logging Interval + 46 minutes Filters Filters Short-Term Cleanup Packet Logs Packet Logs Packet Stream Packet Stream ssh hash and delete Log Collection and Processing scp transfer Detailed Analysis Daily Analysis Alerts & Logs STD OUT Filters Filters Daily Rules Rules 1 Min. After Log Finish Daily Cron
Salida de Snort • A bases de datos • XML • Formato binario de Tcpdump • Formato unificado de Snort • Ascii • syslog • Winpopup • Más dependiendo de herramientas de terceros; buscapersonas, teléfonos móviles, acciones automáticas...
Otros usos de Snort • Imposición y chequeo de políticas • Monitor de Honeypot • Honeypots son “deception systems” que permiten análizar el comportamiento de intrusos en el sistema *** • Trampas y detección de mapeos de puertos • Análisis de tráfico en tiempo real • Detección de nuevos eventos a través de la escritura de reglas; SQL/ODBC, ActiveX, Java/JavaScript, Virus de macros, cadenas de HTTP...
Herramientas de Terceros • SnortSnarf http://www.silicondefense.com/software/snortsnarf/ • AcidLab http://acidlab.sourceforge.net/ • Demark http://www.demarc.com/ • Guardian http://www.chaotic.org/guardian/ • snort-panel http://www.xato.net/files.htm