Estoy intentando hacer una demostración de Snort y creo que sería bueno detectar una amenaza real. Escogí el gusano sasser y los ataques de jolt / teardrop dos para la demostración; ninguna razón en particular. De los tres solo uno, el ataque de lágrima, se detecta.
He probado snort con "reglas de prueba" (alertar a cada paquete TCP, buscar una cadena en la carga útil, ...) y parece que funcionan perfectamente. Revisé la salida de Snort y no hay advertencias ni errores para los archivos que contienen las reglas para sasser / jolt.
No tengo mucha experiencia escribiendo reglas de Snort, así que las elegí de sitios de seguridad reconocidos y github.
El gusano sasser genera el tráfico de Sasser, que encontré en línea y compilé. El tráfico de sacudidas y lágrimas se genera con la herramienta targa2.
Revisé el tráfico con tcpdump y parece estar bien. Sasser genera tráfico dirigido al puerto de actualización de Windows y tanto jolt como lágrima generan paquetes ICMP.
Habiendo probado todo lo anterior, supongo que el problema son mis reglas de Snort. He estado buscando Google de forma inte- tiva, pero no encontré nada nuevo, así que sería bueno si alguien pudiera comprobar si estas reglas hacen lo que pretendía.
Aquí están mis reglas de sasser:
alert tcp $EXTERNAL_NET any -> $HOME_NET 445 (msg:"NETBIOS SMB-DS DCERPC LSASS DsRolerUpgradeDownlevelServer exploit attempt" ; flow:to_server,established; flowbits:isset,netbios.lsass.bind.attempt; content:"|FF|SMB"; depth:4; offset:4; nocase:; content:"|05|"; distance:59; content:"|00|"; within:1; distance:1; content:"|09 00|"; within:2; distance:19; reference:cve,CAN-2003-0533; reference:url,www.microsoft.com/technet/security/bulletin/MS04-011.mspx; classtype:attempted-admin; sid:2514; rev:5;)
alert tcp $EXTERNAL_NET any -> $HOME_NET 445 ( sid: 1000041; rev: 1; msg: "LSLass MS-0411 exploit"; flow: established,to_server; content:"|eb10 5a4a 33c9 66b9 7d01 8034 0a99 e2fa eb05 e8eb ffff|"; reference:url,www.secuser.com/alertes/2004/sasser.htm; classtype: shellcode-detect;)
alert tcp $HOME_NET any -> $EXTERNAL_NET 9996 ( sid: 1000042; rev: 3; msg:"Sasser ftp script to transfer up.exe"; content:"|5F75702E657865|"; depth:250; flags:A+; reference:url,www.secuser.com/alertes/2004/sasser.htm; classtype: misc-activity;)
alert tcp $EXTERNAL_NET any -> $HOME_NET 5554 ( sid: 1000043; rev: 1; msg:"Sasser binary transfer get up.exe"; content:"|5F75702E657865|"; depth:250; flags:A+; reference:url,www.secuser.com/alertes/2004/sasser.htm; classtype: misc-activity;)
Aquí mi regla Jolt:
alert ip $EXTERNAL_NET any -> $HOME_NET any (msg:"DOS Jolt attack"; dsize:408; fragbits:M; reference:cve,1999-0345; classtype:attempted-dos; sid:268; rev:4;)
Y, finalmente, la regla Teardrop, la única que funciona:
alert udp $EXTERNAL_NET any -> $HOME_NET any (msg:"DOS Teardrop attack"; fragbits:M; id:242; reference:bugtraq,124; reference:cve,1999-0015; reference:nessus,10279; reference:url,www.cert.org/advisories/CA-1997-28.html; classtype:attempted-dos; sid:270; rev:6;)
Gracias de antemano.