]> git.ipfire.org Git - thirdparty/suricata-verify.git/commitdiff
test/byte_test: Add nbyte variable name tests
authorJeff Lucovsky <jlucovsky@oisf.net>
Fri, 7 Jul 2023 15:30:33 +0000 (11:30 -0400)
committerVictor Julien <victor@inliniac.net>
Mon, 10 Jul 2023 07:27:04 +0000 (09:27 +0200)
Issue: 6144

Add tests for new byte_test functionality that permits a variable name
to be used for nbytes.

tests/detect-bytetest-04/README.md [new file with mode: 0644]
tests/detect-bytetest-04/input.pcap [new file with mode: 0644]
tests/detect-bytetest-04/test.rules [new file with mode: 0644]
tests/detect-bytetest-04/test.yaml [new file with mode: 0644]
tests/detect-bytetest-04/writepcap.py [new file with mode: 0644]
tests/detect-bytetest-05/test.rules [new file with mode: 0644]
tests/detect-bytetest-05/test.yaml [new file with mode: 0644]

diff --git a/tests/detect-bytetest-04/README.md b/tests/detect-bytetest-04/README.md
new file mode 100644 (file)
index 0000000..e4cfdba
--- /dev/null
@@ -0,0 +1 @@
+Simple DNS match with byte extract variable used by byte test.
diff --git a/tests/detect-bytetest-04/input.pcap b/tests/detect-bytetest-04/input.pcap
new file mode 100644 (file)
index 0000000..186aebd
Binary files /dev/null and b/tests/detect-bytetest-04/input.pcap differ
diff --git a/tests/detect-bytetest-04/test.rules b/tests/detect-bytetest-04/test.rules
new file mode 100644 (file)
index 0000000..154adad
--- /dev/null
@@ -0,0 +1 @@
+alert dns any any -> any any (msg:"byte_test varname test sig"; byte_extract:1,5,rpkt_len; byte_test:rpkt_len,=,0x01,5, bitmask 0xFF; sid:1;)
diff --git a/tests/detect-bytetest-04/test.yaml b/tests/detect-bytetest-04/test.yaml
new file mode 100644 (file)
index 0000000..fa54b92
--- /dev/null
@@ -0,0 +1,16 @@
+requires:
+  min-version: 7
+
+args:
+- --set stream.midstream=true
+
+checks:
+- filter:
+    count: 1
+    match:
+      event_type: dns
+- filter:
+    count: 1
+    match:
+      event_type: alert
+      alert.signature_id: 1
diff --git a/tests/detect-bytetest-04/writepcap.py b/tests/detect-bytetest-04/writepcap.py
new file mode 100644 (file)
index 0000000..e28cb68
--- /dev/null
@@ -0,0 +1,12 @@
+#!/usr/bin/env python
+from scapy.all import *
+
+pkts = []
+
+data = ('\x38\x35\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x01\x00')
+
+pkts += Ether(dst='ff:ff:ff:ff:ff:ff', src='00:01:02:03:04:05')/ \
+    Dot1Q(vlan=6)/ \
+    IP(dst='1.2.3.4', src='5.6.7.8')/UDP(dport=53)/Raw(load=data)
+
+wrpcap('input.pcap', pkts)
diff --git a/tests/detect-bytetest-05/test.rules b/tests/detect-bytetest-05/test.rules
new file mode 100644 (file)
index 0000000..220a17b
--- /dev/null
@@ -0,0 +1 @@
+alert dns any any -> any any (msg:"byte_test invalid varname test sig"; byte_extract:1,5,rpkt_len; byte_test:no_var,=,0x01,5,bitmask 0xFF; sid:1;)
diff --git a/tests/detect-bytetest-05/test.yaml b/tests/detect-bytetest-05/test.yaml
new file mode 100644 (file)
index 0000000..7ae1385
--- /dev/null
@@ -0,0 +1,14 @@
+requires:
+  min-version: 7
+
+args:
+- --set stream.midstream=true
+
+pcap: ../detect-bytetest-04/input.pcap
+
+checks:
+    - shell:
+        args: grep "Unknown byte_extract var seen in byte_test - no_var" suricata.log | wc -l | xargs
+        expect: 1
+
+exit-code: 1