]> git.ipfire.org Git - thirdparty/suricata-verify.git/commitdiff
tests: add ipv6 dataset test
authorEric Leblond <el@stamus-networks.com>
Sun, 19 Jun 2022 11:08:18 +0000 (13:08 +0200)
committerShivani Bhardwaj <shivani@oisf.net>
Fri, 28 Oct 2022 11:55:28 +0000 (17:25 +0530)
Also this test ip.src keyword

tests/datasets-08-state-ipv6/expected/state.csv [new file with mode: 0644]
tests/datasets-08-state-ipv6/input.pcap [new file with mode: 0644]
tests/datasets-08-state-ipv6/test.rules [new file with mode: 0644]
tests/datasets-08-state-ipv6/test.yaml [new file with mode: 0644]
tests/datasets-08-state-ipv6/writepcap.py [new file with mode: 0755]

diff --git a/tests/datasets-08-state-ipv6/expected/state.csv b/tests/datasets-08-state-ipv6/expected/state.csv
new file mode 100644 (file)
index 0000000..887004b
--- /dev/null
@@ -0,0 +1,2 @@
+0004:0005:0000:0000:0000:0000:0000:0006
+0007:0008:0000:0000:0000:0000:0000:0009
diff --git a/tests/datasets-08-state-ipv6/input.pcap b/tests/datasets-08-state-ipv6/input.pcap
new file mode 100644 (file)
index 0000000..6e23b77
Binary files /dev/null and b/tests/datasets-08-state-ipv6/input.pcap differ
diff --git a/tests/datasets-08-state-ipv6/test.rules b/tests/datasets-08-state-ipv6/test.rules
new file mode 100644 (file)
index 0000000..c5ef55a
--- /dev/null
@@ -0,0 +1 @@
+alert dns any any -> any any (ip.src; dataset:set,dns-client, type ipv6, state state.csv; sid:1;)
diff --git a/tests/datasets-08-state-ipv6/test.yaml b/tests/datasets-08-state-ipv6/test.yaml
new file mode 100644 (file)
index 0000000..d368d01
--- /dev/null
@@ -0,0 +1,13 @@
+requires:
+  features:
+    - HAVE_LIBJANSSON
+  files:
+    - src/detect-ipaddr.c
+
+args:
+  - --data-dir=${OUTPUT_DIR}
+
+checks:
+  - file-compare:
+      filename: state.csv
+      expected: expected/state.csv
diff --git a/tests/datasets-08-state-ipv6/writepcap.py b/tests/datasets-08-state-ipv6/writepcap.py
new file mode 100755 (executable)
index 0000000..a3ae83e
--- /dev/null
@@ -0,0 +1,16 @@
+#!/usr/bin/env python
+from scapy.all import *
+
+pkts = []
+
+pkts += Ether(dst='ff:ff:ff:ff:ff:ff', src='00:01:02:03:04:05')/ \
+    Dot1Q(vlan=6)/ \
+    IPv6(dst='2::1', src='4:5::6')/UDP(dport=53)/DNS(id=1, rd=1, qd=DNSQR(qname='example.com'))
+pkts += Ether(dst='ff:ff:ff:ff:ff:ff', src='00:01:02:03:04:05')/ \
+    Dot1Q(vlan=6)/ \
+    IPv6(dst='2::1', src='4:5::6')/UDP(dport=53)/DNS(id=2, rd=1, qd=DNSQR(qname='example.com'))
+pkts += Ether(dst='ff:ff:ff:ff:ff:ff', src='00:01:02:03:04:05')/ \
+    Dot1Q(vlan=6)/ \
+    IPv6(dst='2::1', src='7:8::9')/UDP(dport=53)/DNS(id=3, rd=1, qd=DNSQR(qname='example.com'))
+
+wrpcap('input.pcap', pkts)