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
Ethernet IP header TCP telnet network packet
Flujo de Datos en Snort SNORT Data Flow (Gp:) Packet Stream
Packet Decoder Pre-Processor
Detection Engine
Post-Processor & Output Stage
(Gp:) Sniffing
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
Reglas Cabecera alert tcp !10.1.1.0/24 any -> 10.1.1.0/24 any Opciones (flags: SF; msg: “SYN-FIN Scan”;) (Gp:) alert tcp !10.1.1.0/24 any -> 10.1.1.0/24 any (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 Packet Stream Filter file Sniffing tcpdump process To Log File
Implementación (2) Report Generator SNORT Packet Stream Sniffing Rules file Alert File To Alert File To Email Cron
Implementación (3) Report Generator SNORT Packet Stream Sniffing Rules file Alert File To Alert File To Email Cron
Implementación (4) Packet Stream Cron Cron Short-Term Driver Short-Term Cleanup Filters Packet Stream Logging Interval Daily Logging Interval + 46 minutes Packet Logs Packet Logs Detailed Analysis Filters Rules 1 Min. After Log Finish Daily Daily Daily Analysis Filters Rules Log Collection and Processing Alerts & Logs STD OUT scp transfer ssh hash and delete Filters Long-Term Driver
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…
Página anterior | Volver al principio del trabajo | Página siguiente |