Estoy tratando de escribir una firma de Suricata con fines de prueba para alertar cada vez que se activa con un solo archivo PCAP que contiene un solo paquete, pero esto está demostrando ser más difícil de lo que pensé.
Por ejemplo, tengo la siguiente regla.
alert udp $HOME_NET any -> any 53 (msg:"Test A"; \
content:"|01 00 00 01 00 00 00 00 00 00|"; depth:10; offset:2; \
content:"|05|testa|03|com"; fast_pattern; nocase; distance:0; \
classtype:trojan-activity; sid:1099906; rev:1;)
Esta es una firma UDP simple que busca el hex 01 00 00 01 00 00 00 00 00 00
que define el paquete UDP como una búsqueda de DNS y el dominio testa.com
.
Si envío un pcap con el siguiente contenido usando tcpreplay
como este
tcpreplay -i eth0 testa.pcapng
donde eth0
es el NIC que Suricata está monitoreando y testa.pcapng
es el PCAP que contiene el paquete a continuación. Puedo activar la alarma una vez, pero si vuelvo a reproducir el PCAP, no se activará hasta que lo reproduzca de 3 a 5 veces.
Enestaimagen,puedesverlosparámetrosDNScorrespondientesenamarilloylaconsultacorrespondienteenverde.
SiagregoelsiguientepaquetederespuestaDNSalPCAP:
Parece que se dispara cada vez. Esto es extraño, porque nada en la firma busca una respuesta, así que ¿cómo puedo escribir una firma que solo necesita un paquete y se dispara cada vez?