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 |