From a710b4c6bed9d00148fa2c7681f5d768e42b9b86 Mon Sep 17 00:00:00 2001 From: Jason Ish Date: Fri, 1 Nov 2024 12:02:04 -0600 Subject: [PATCH] test: dns name truncation Add test for DNS name truncation and associated alert. Ticket: #7280 --- tests/dns/dns-truncated-rname/README.md | 3 +++ tests/dns/dns-truncated-rname/poc2.pcap | Bin 0 -> 17687 bytes tests/dns/dns-truncated-rname/test.rules | 8 ++++++++ tests/dns/dns-truncated-rname/test.yaml | 22 ++++++++++++++++++++++ 4 files changed, 33 insertions(+) create mode 100644 tests/dns/dns-truncated-rname/README.md create mode 100644 tests/dns/dns-truncated-rname/poc2.pcap create mode 100644 tests/dns/dns-truncated-rname/test.rules create mode 100644 tests/dns/dns-truncated-rname/test.yaml diff --git a/tests/dns/dns-truncated-rname/README.md b/tests/dns/dns-truncated-rname/README.md new file mode 100644 index 000000000..97dd10152 --- /dev/null +++ b/tests/dns/dns-truncated-rname/README.md @@ -0,0 +1,3 @@ +Ticket: https://redmine.openinfosecfoundation.org/issues/7280 + +PCAP: From ticket. diff --git a/tests/dns/dns-truncated-rname/poc2.pcap b/tests/dns/dns-truncated-rname/poc2.pcap new file mode 100644 index 0000000000000000000000000000000000000000..66f2e6a3b84f439919c68bb9d9160d23da86f2b0 GIT binary patch literal 17687 zc-rlpKTASU7>Ccf-b5lpTXIowi69CpD;p$(`T#*6z<&u&McEj+wDbiUni>>bLJF6L z3eDD*pa`eZMT>%RXwlAlucFtC?j56_cpk1k`taUzesA+9M-r1+`=MTskJX})td%W^ zYdVrR%Z&Ny={GaB%NVCqI+UHo1GkgDlaU&Yx<`CgUbyEblbLf%zwcsYP^n64Gp(a3 zJ4=UU>E%jvU74Zp%}4jfIdxmjQ_=K_mbcyX{4l3WbPEZaqgo#oZ#L(n9(B%ibegjj zsMXnN%|x9$(UHYn(NR0%;+J`RHSIi$dzNF)`ikoR#5FlJ?U|XK^UeoD;mBIF>m@Wa zG&D3cG&D3cG&D3cG&D3cG&D3cG&D3cG&JaZTGYA88JZ`h gohP2A7IjAQ20QlNo&CJ-`$~z{wRRl{-B&#Q1>@FAjsO4v literal 0 Hc-jL100001 diff --git a/tests/dns/dns-truncated-rname/test.rules b/tests/dns/dns-truncated-rname/test.rules new file mode 100644 index 000000000..2648dcaa8 --- /dev/null +++ b/tests/dns/dns-truncated-rname/test.rules @@ -0,0 +1,8 @@ +# A resource name was too long (over 1025 chars) +alert dns any any -> any any (msg:"SURICATA DNS Name too long"; app-layer-event:dns.name_too_long; classtype:protocol-command-decode; sid:224008; rev:1;) + +# An infinite loop was found while decoding a DNS resource name. +alert dns any any -> any any (msg:"SURICATA DNS Infinite loop"; app-layer-event:dns.infinite_loop; classtype:protocol-command-decode; sid:224009; rev:1;) + +# Suricata's maximum number of DNS name labels was reached while parsing a resource name. +alert dns any any -> any any (msg:"SURICATA DNS Too many labels"; app-layer-event:dns.too_many_labels; classtype:protocol-command-decode; sid:224010; rev:1;) diff --git a/tests/dns/dns-truncated-rname/test.yaml b/tests/dns/dns-truncated-rname/test.yaml new file mode 100644 index 000000000..7b94f775c --- /dev/null +++ b/tests/dns/dns-truncated-rname/test.yaml @@ -0,0 +1,22 @@ +requires: + min-version: 8 + +args: + - --set app-layer.protocols.dns.tcp.detection-ports.dp=1053 + - -k none + +checks: + - filter: + count: 1 + match: + pcap_cnt: 8 + event_type: dns + dns.queries[0].rrname.__len: 1025 + dns.queries[0].rrname_truncated: true + - filter: + count: 1 + match: + pcap_cnt: 9 + event_type: alert + alert.signature_id: 224008 + dns.queries[0].rrname_truncated: true -- 2.47.2