]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
dns: add event for when memcap is reached 789/head
authorVictor Julien <victor@inliniac.net>
Tue, 21 Jan 2014 13:51:56 +0000 (14:51 +0100)
committerVictor Julien <victor@inliniac.net>
Tue, 21 Jan 2014 13:51:56 +0000 (14:51 +0100)
Raise event if state-memcap is reached for a flow.

rules/dns-events.rules
src/app-layer-dns-common.c
src/app-layer-dns-common.h

index a14a9030c3a357d30b407081da9d9bc4d4ac688b..95dee1d09b042b64f4cfd9874189950d502bbfeb 100644 (file)
@@ -11,3 +11,5 @@ alert dns any any -> any any (msg:"SURICATA DNS Not a response"; flow:to_client;
 alert dns any any -> any any (msg:"SURICATA DNS Z flag set"; app-layer-event:dns.z_flag_set; sid:2240006; rev:1;)
 # Request Flood Detected
 alert dns any any -> any any (msg:"SURICATA DNS request flood detected"; flow:to_server; app-layer-event:dns.flooded; sid:2240007; rev:1;)
+# Per-flow (state) memcap reached. Relates to the app-layer.protocols.dns.state-memcap setting.
+alert dns any any -> any any (msg:"SURICATA DNS request flood detected"; flow:to_server; app-layer-event:dns.state_memcap_reached; sid:2240008; rev:1;)
index 976fa7b6422fc5560bec27c5449b6227a54afb29..27e2846a959b6811b4d4fdac4ccc5dae001d7628 100644 (file)
@@ -83,6 +83,7 @@ int DNSCheckMemcap(uint32_t want, DNSState *state) {
     if (state != NULL) {
         if (state->memuse + want > dns_config.state_memcap) {
             SC_ATOMIC_ADD(dns_memcap_state, 1);
+            DNSSetEvent(state, DNS_DECODER_EVENT_STATE_MEMCAP_REACHED);
             return -1;
         }
     }
@@ -110,6 +111,7 @@ SCEnumCharMap dns_decoder_event_table[ ] = {
     { "NOT_A_RESPONSE",             DNS_DECODER_EVENT_NOT_A_RESPONSE, },
     { "Z_FLAG_SET",                 DNS_DECODER_EVENT_Z_FLAG_SET, },
     { "FLOODED",                    DNS_DECODER_EVENT_FLOODED, },
+    { "STATE_MEMCAP_REACHED",       DNS_DECODER_EVENT_STATE_MEMCAP_REACHED, },
 
     { NULL,                         -1 },
 };
index 62532123f28b55baf349132c5c8be795ac587579..fe30fcf6e4f4b5786a031ac8909025631ecba08a 100644 (file)
@@ -57,6 +57,7 @@ enum {
     DNS_DECODER_EVENT_NOT_A_RESPONSE,
     DNS_DECODER_EVENT_Z_FLAG_SET,
     DNS_DECODER_EVENT_FLOODED,
+    DNS_DECODER_EVENT_STATE_MEMCAP_REACHED,
 };
 
 /** \brief DNS packet header */