]> git.ipfire.org Git - thirdparty/suricata-verify.git/commitdiff
tests: add defrag datalink tests 1769/head
authorVictor Julien <victor@inliniac.net>
Fri, 12 Apr 2024 09:09:01 +0000 (11:09 +0200)
committerVictor Julien <victor@inliniac.net>
Mon, 15 Apr 2024 18:34:38 +0000 (20:34 +0200)
Bug: 6887.

35 files changed:
tests/defrag/bug-6887-defrag-eth-vlan-ipv4-tcp-syn/frag-eth-vlan-ip-tcp-syn.pcap [new file with mode: 0644]
tests/defrag/bug-6887-defrag-eth-vlan-ipv4-tcp-syn/frag-eth-vlan-ip-tcp-syn.py [new file with mode: 0644]
tests/defrag/bug-6887-defrag-eth-vlan-ipv4-tcp-syn/suricata.yaml [new file with mode: 0644]
tests/defrag/bug-6887-defrag-eth-vlan-ipv4-tcp-syn/test.rules [new file with mode: 0644]
tests/defrag/bug-6887-defrag-eth-vlan-ipv4-tcp-syn/test.yaml [new file with mode: 0644]
tests/defrag/bug-6887-defrag-eth-vlan-ipv6-tcp/frag-eth-vlan-ipv6-tcp.pcap [new file with mode: 0644]
tests/defrag/bug-6887-defrag-eth-vlan-ipv6-tcp/frag-eth-vlan-ipv6-tcp.py [new file with mode: 0644]
tests/defrag/bug-6887-defrag-eth-vlan-ipv6-tcp/suricata.yaml [new file with mode: 0644]
tests/defrag/bug-6887-defrag-eth-vlan-ipv6-tcp/test.rules [new file with mode: 0644]
tests/defrag/bug-6887-defrag-eth-vlan-ipv6-tcp/test.yaml [new file with mode: 0644]
tests/defrag/bug-6887-defrag-ipv4-tcp-syn/frag-ip-tcp-syn.pcap [new file with mode: 0644]
tests/defrag/bug-6887-defrag-ipv4-tcp-syn/frag-ip-tcp-syn.py [new file with mode: 0644]
tests/defrag/bug-6887-defrag-ipv4-tcp-syn/suricata.yaml [new file with mode: 0644]
tests/defrag/bug-6887-defrag-ipv4-tcp-syn/test.rules [new file with mode: 0644]
tests/defrag/bug-6887-defrag-ipv4-tcp-syn/test.yaml [new file with mode: 0644]
tests/defrag/bug-6887-defrag-ipv6-tcp/frag-ip-tcp.pcap [new file with mode: 0644]
tests/defrag/bug-6887-defrag-ipv6-tcp/frag-ip-tcp.py [new file with mode: 0644]
tests/defrag/bug-6887-defrag-ipv6-tcp/suricata.yaml [new file with mode: 0644]
tests/defrag/bug-6887-defrag-ipv6-tcp/test.rules [new file with mode: 0644]
tests/defrag/bug-6887-defrag-ipv6-tcp/test.yaml [new file with mode: 0644]
tests/defrag/bug-6887-defrag-ppp-ipv4-tcp-syn/frag-ppp-ip-tcp-syn.pcap [new file with mode: 0644]
tests/defrag/bug-6887-defrag-ppp-ipv4-tcp-syn/frag-ppp-ip-tcp-syn.py [new file with mode: 0644]
tests/defrag/bug-6887-defrag-ppp-ipv4-tcp-syn/suricata.yaml [new file with mode: 0644]
tests/defrag/bug-6887-defrag-ppp-ipv4-tcp-syn/test.rules [new file with mode: 0644]
tests/defrag/bug-6887-defrag-ppp-ipv4-tcp-syn/test.yaml [new file with mode: 0644]
tests/defrag/bug-6887-defrag-ppp-ipv6-tcp/frag-ip-tcp.py [new file with mode: 0644]
tests/defrag/bug-6887-defrag-ppp-ipv6-tcp/frag-ppp-ipv6-tcp.pcap [new file with mode: 0644]
tests/defrag/bug-6887-defrag-ppp-ipv6-tcp/suricata.yaml [new file with mode: 0644]
tests/defrag/bug-6887-defrag-ppp-ipv6-tcp/test.rules [new file with mode: 0644]
tests/defrag/bug-6887-defrag-ppp-ipv6-tcp/test.yaml [new file with mode: 0644]
tests/defrag/bug-6942-6887-defrag-eth-ip-gre-ppp-ip-udp-data/eth-ip-gre-ppp-max-ip-packet.pcap [new file with mode: 0644]
tests/defrag/bug-6942-6887-defrag-eth-ip-gre-ppp-ip-udp-data/eth-ip-gre-ppp-max-ip-packet.py [new file with mode: 0755]
tests/defrag/bug-6942-6887-defrag-eth-ip-gre-ppp-ip-udp-data/suricata.yaml [new file with mode: 0644]
tests/defrag/bug-6942-6887-defrag-eth-ip-gre-ppp-ip-udp-data/test.rules [new file with mode: 0644]
tests/defrag/bug-6942-6887-defrag-eth-ip-gre-ppp-ip-udp-data/test.yaml [new file with mode: 0644]

diff --git a/tests/defrag/bug-6887-defrag-eth-vlan-ipv4-tcp-syn/frag-eth-vlan-ip-tcp-syn.pcap b/tests/defrag/bug-6887-defrag-eth-vlan-ipv4-tcp-syn/frag-eth-vlan-ip-tcp-syn.pcap
new file mode 100644 (file)
index 0000000..e8b3bed
Binary files /dev/null and b/tests/defrag/bug-6887-defrag-eth-vlan-ipv4-tcp-syn/frag-eth-vlan-ip-tcp-syn.pcap differ
diff --git a/tests/defrag/bug-6887-defrag-eth-vlan-ipv4-tcp-syn/frag-eth-vlan-ip-tcp-syn.py b/tests/defrag/bug-6887-defrag-eth-vlan-ipv4-tcp-syn/frag-eth-vlan-ip-tcp-syn.py
new file mode 100644 (file)
index 0000000..f80632d
--- /dev/null
@@ -0,0 +1,9 @@
+#!/usr/bin/env python
+from scapy.all import *
+
+pkts = []
+
+packet = Ether(dst='05:04:03:02:01:00', src='00:01:02:03:04:05')/Dot1Q(vlan=6)/IP(src='1.1.1.1', dst='2.2.2.2')/TCP(dport=8080,sport=12345,flags='S',seq=1,options=[('WScale', 14)])
+
+frags = fragment(packet,fragsize=8)
+wrpcap('frag-eth-vlan-ip-tcp-syn.pcap', frags)
diff --git a/tests/defrag/bug-6887-defrag-eth-vlan-ipv4-tcp-syn/suricata.yaml b/tests/defrag/bug-6887-defrag-eth-vlan-ipv4-tcp-syn/suricata.yaml
new file mode 100644 (file)
index 0000000..159d885
--- /dev/null
@@ -0,0 +1,11 @@
+%YAML 1.1
+---
+
+outputs:
+  - eve-log:
+      enabled: yes
+      filetype: regular #regular|syslog|unix_dgram|unix_stream|redis
+      filename: eve.json
+      types:
+        - alert:
+            packet: yes              # enable dumping of packet (without stream segments)
diff --git a/tests/defrag/bug-6887-defrag-eth-vlan-ipv4-tcp-syn/test.rules b/tests/defrag/bug-6887-defrag-eth-vlan-ipv4-tcp-syn/test.rules
new file mode 100644 (file)
index 0000000..4836c6b
--- /dev/null
@@ -0,0 +1 @@
+alert tcp any any -> any any (tcp.flags:S; sid:1;)
diff --git a/tests/defrag/bug-6887-defrag-eth-vlan-ipv4-tcp-syn/test.yaml b/tests/defrag/bug-6887-defrag-eth-vlan-ipv4-tcp-syn/test.yaml
new file mode 100644 (file)
index 0000000..80cad22
--- /dev/null
@@ -0,0 +1,11 @@
+requires:
+  min-version: 8
+
+checks:
+- filter:
+    count: 1
+    match:
+      event_type: alert
+      alert.signature_id: 1
+      packet: "BQQDAgEAAAECAwQFgQAABggARQAALAABAABABnTGAQEBAQICAgIwOR+QAAAAAQAAAABgAiAAGQwAAAMDDgA="
+      packet_info.linktype: 1
diff --git a/tests/defrag/bug-6887-defrag-eth-vlan-ipv6-tcp/frag-eth-vlan-ipv6-tcp.pcap b/tests/defrag/bug-6887-defrag-eth-vlan-ipv6-tcp/frag-eth-vlan-ipv6-tcp.pcap
new file mode 100644 (file)
index 0000000..f919dd5
Binary files /dev/null and b/tests/defrag/bug-6887-defrag-eth-vlan-ipv6-tcp/frag-eth-vlan-ipv6-tcp.pcap differ
diff --git a/tests/defrag/bug-6887-defrag-eth-vlan-ipv6-tcp/frag-eth-vlan-ipv6-tcp.py b/tests/defrag/bug-6887-defrag-eth-vlan-ipv6-tcp/frag-eth-vlan-ipv6-tcp.py
new file mode 100644 (file)
index 0000000..1318eb1
--- /dev/null
@@ -0,0 +1,10 @@
+#!/usr/bin/env python
+from scapy.all import *
+
+pkts = []
+
+data = 'A' * 1000
+packet = Ether(dst='05:04:03:02:01:00', src='00:01:02:03:04:05')/Dot1Q(vlan=6)/IPv6()/IPv6ExtHdrFragment()/TCP(dport=8080,sport=12345,flags='A',seq=1)/data
+
+frags = fragment6(packet,512)
+wrpcap('frag-eth-vlan-ipv6-tcp.pcap', frags)
diff --git a/tests/defrag/bug-6887-defrag-eth-vlan-ipv6-tcp/suricata.yaml b/tests/defrag/bug-6887-defrag-eth-vlan-ipv6-tcp/suricata.yaml
new file mode 100644 (file)
index 0000000..159d885
--- /dev/null
@@ -0,0 +1,11 @@
+%YAML 1.1
+---
+
+outputs:
+  - eve-log:
+      enabled: yes
+      filetype: regular #regular|syslog|unix_dgram|unix_stream|redis
+      filename: eve.json
+      types:
+        - alert:
+            packet: yes              # enable dumping of packet (without stream segments)
diff --git a/tests/defrag/bug-6887-defrag-eth-vlan-ipv6-tcp/test.rules b/tests/defrag/bug-6887-defrag-eth-vlan-ipv6-tcp/test.rules
new file mode 100644 (file)
index 0000000..714e46a
--- /dev/null
@@ -0,0 +1 @@
+alert tcp any any -> any any (dsize:1000; sid:1;)
diff --git a/tests/defrag/bug-6887-defrag-eth-vlan-ipv6-tcp/test.yaml b/tests/defrag/bug-6887-defrag-eth-vlan-ipv6-tcp/test.yaml
new file mode 100644 (file)
index 0000000..9c8816f
--- /dev/null
@@ -0,0 +1,11 @@
+requires:
+  min-version: 8
+
+checks:
+- filter:
+    count: 1
+    match:
+      event_type: alert
+      alert.signature_id: 1
+      packet: "BQQDAgEAAAECAwQFgQAABobdYAAAAAP8BkAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAATA5H5AAAAABAAAAAFAQIADIrQAAQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQ=="
+      packet_info.linktype: 1
diff --git a/tests/defrag/bug-6887-defrag-ipv4-tcp-syn/frag-ip-tcp-syn.pcap b/tests/defrag/bug-6887-defrag-ipv4-tcp-syn/frag-ip-tcp-syn.pcap
new file mode 100644 (file)
index 0000000..3c1e346
Binary files /dev/null and b/tests/defrag/bug-6887-defrag-ipv4-tcp-syn/frag-ip-tcp-syn.pcap differ
diff --git a/tests/defrag/bug-6887-defrag-ipv4-tcp-syn/frag-ip-tcp-syn.py b/tests/defrag/bug-6887-defrag-ipv4-tcp-syn/frag-ip-tcp-syn.py
new file mode 100644 (file)
index 0000000..d5746a9
--- /dev/null
@@ -0,0 +1,9 @@
+#!/usr/bin/env python
+from scapy.all import *
+
+pkts = []
+
+packet = IP(src='1.1.1.1', dst='2.2.2.2')/TCP(dport=8080,sport=12345,flags='S',seq=1,options=[('WScale', 14)])
+
+frags = fragment(packet,fragsize=8)
+wrpcap('frag-ip-tcp-syn.pcap', frags)
diff --git a/tests/defrag/bug-6887-defrag-ipv4-tcp-syn/suricata.yaml b/tests/defrag/bug-6887-defrag-ipv4-tcp-syn/suricata.yaml
new file mode 100644 (file)
index 0000000..159d885
--- /dev/null
@@ -0,0 +1,11 @@
+%YAML 1.1
+---
+
+outputs:
+  - eve-log:
+      enabled: yes
+      filetype: regular #regular|syslog|unix_dgram|unix_stream|redis
+      filename: eve.json
+      types:
+        - alert:
+            packet: yes              # enable dumping of packet (without stream segments)
diff --git a/tests/defrag/bug-6887-defrag-ipv4-tcp-syn/test.rules b/tests/defrag/bug-6887-defrag-ipv4-tcp-syn/test.rules
new file mode 100644 (file)
index 0000000..4836c6b
--- /dev/null
@@ -0,0 +1 @@
+alert tcp any any -> any any (tcp.flags:S; sid:1;)
diff --git a/tests/defrag/bug-6887-defrag-ipv4-tcp-syn/test.yaml b/tests/defrag/bug-6887-defrag-ipv4-tcp-syn/test.yaml
new file mode 100644 (file)
index 0000000..f7ccf03
--- /dev/null
@@ -0,0 +1,11 @@
+requires:
+  min-version: 8
+
+checks:
+- filter:
+    count: 1
+    match:
+      event_type: alert
+      alert.signature_id: 1
+      packet: "RQAALAABAABABnTGAQEBAQICAgIwOR+QAAAAAQAAAABgAiAAGQwAAAMDDgA="
+      packet_info.linktype: 228 # LINKTYPE_IPV4
diff --git a/tests/defrag/bug-6887-defrag-ipv6-tcp/frag-ip-tcp.pcap b/tests/defrag/bug-6887-defrag-ipv6-tcp/frag-ip-tcp.pcap
new file mode 100644 (file)
index 0000000..64cd2f5
Binary files /dev/null and b/tests/defrag/bug-6887-defrag-ipv6-tcp/frag-ip-tcp.pcap differ
diff --git a/tests/defrag/bug-6887-defrag-ipv6-tcp/frag-ip-tcp.py b/tests/defrag/bug-6887-defrag-ipv6-tcp/frag-ip-tcp.py
new file mode 100644 (file)
index 0000000..9277ba8
--- /dev/null
@@ -0,0 +1,10 @@
+#!/usr/bin/env python
+from scapy.all import *
+
+pkts = []
+
+data = 'A' * 1000
+packet = IPv6()/IPv6ExtHdrFragment()/TCP(dport=8080,sport=12345,flags='A',seq=1)/data
+
+frags = fragment6(packet,512)
+wrpcap('frag-ip-tcp.pcap', frags)
diff --git a/tests/defrag/bug-6887-defrag-ipv6-tcp/suricata.yaml b/tests/defrag/bug-6887-defrag-ipv6-tcp/suricata.yaml
new file mode 100644 (file)
index 0000000..159d885
--- /dev/null
@@ -0,0 +1,11 @@
+%YAML 1.1
+---
+
+outputs:
+  - eve-log:
+      enabled: yes
+      filetype: regular #regular|syslog|unix_dgram|unix_stream|redis
+      filename: eve.json
+      types:
+        - alert:
+            packet: yes              # enable dumping of packet (without stream segments)
diff --git a/tests/defrag/bug-6887-defrag-ipv6-tcp/test.rules b/tests/defrag/bug-6887-defrag-ipv6-tcp/test.rules
new file mode 100644 (file)
index 0000000..714e46a
--- /dev/null
@@ -0,0 +1 @@
+alert tcp any any -> any any (dsize:1000; sid:1;)
diff --git a/tests/defrag/bug-6887-defrag-ipv6-tcp/test.yaml b/tests/defrag/bug-6887-defrag-ipv6-tcp/test.yaml
new file mode 100644 (file)
index 0000000..0a8aeea
--- /dev/null
@@ -0,0 +1,11 @@
+requires:
+  min-version: 8
+
+checks:
+- filter:
+    count: 1
+    match:
+      event_type: alert
+      alert.signature_id: 1
+      packet: "YAAAAAP8BkAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAATA5H5AAAAABAAAAAFAQIADIrQAAQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQ=="
+      packet_info.linktype: 229
diff --git a/tests/defrag/bug-6887-defrag-ppp-ipv4-tcp-syn/frag-ppp-ip-tcp-syn.pcap b/tests/defrag/bug-6887-defrag-ppp-ipv4-tcp-syn/frag-ppp-ip-tcp-syn.pcap
new file mode 100644 (file)
index 0000000..b28b362
Binary files /dev/null and b/tests/defrag/bug-6887-defrag-ppp-ipv4-tcp-syn/frag-ppp-ip-tcp-syn.pcap differ
diff --git a/tests/defrag/bug-6887-defrag-ppp-ipv4-tcp-syn/frag-ppp-ip-tcp-syn.py b/tests/defrag/bug-6887-defrag-ppp-ipv4-tcp-syn/frag-ppp-ip-tcp-syn.py
new file mode 100644 (file)
index 0000000..2a394e2
--- /dev/null
@@ -0,0 +1,9 @@
+#!/usr/bin/env python
+from scapy.all import *
+
+pkts = []
+
+packet = PPP()/IP(src='1.1.1.1', dst='2.2.2.2')/TCP(dport=8080,sport=12345,flags='S',seq=1,options=[('WScale', 14)])
+
+frags = fragment(packet,fragsize=8)
+wrpcap('frag-ppp-ip-tcp-syn.pcap', frags)
diff --git a/tests/defrag/bug-6887-defrag-ppp-ipv4-tcp-syn/suricata.yaml b/tests/defrag/bug-6887-defrag-ppp-ipv4-tcp-syn/suricata.yaml
new file mode 100644 (file)
index 0000000..159d885
--- /dev/null
@@ -0,0 +1,11 @@
+%YAML 1.1
+---
+
+outputs:
+  - eve-log:
+      enabled: yes
+      filetype: regular #regular|syslog|unix_dgram|unix_stream|redis
+      filename: eve.json
+      types:
+        - alert:
+            packet: yes              # enable dumping of packet (without stream segments)
diff --git a/tests/defrag/bug-6887-defrag-ppp-ipv4-tcp-syn/test.rules b/tests/defrag/bug-6887-defrag-ppp-ipv4-tcp-syn/test.rules
new file mode 100644 (file)
index 0000000..4836c6b
--- /dev/null
@@ -0,0 +1 @@
+alert tcp any any -> any any (tcp.flags:S; sid:1;)
diff --git a/tests/defrag/bug-6887-defrag-ppp-ipv4-tcp-syn/test.yaml b/tests/defrag/bug-6887-defrag-ppp-ipv4-tcp-syn/test.yaml
new file mode 100644 (file)
index 0000000..d3e01be
--- /dev/null
@@ -0,0 +1,11 @@
+requires:
+  min-version: 8
+
+checks:
+- filter:
+    count: 1
+    match:
+      event_type: alert
+      alert.signature_id: 1
+      packet: "IUUAACwAAQAAQAZ0xgEBAQECAgICMDkfkAAAAAEAAAAAYAIgABkMAAADAw4A"
+      packet_info.linktype: 9
diff --git a/tests/defrag/bug-6887-defrag-ppp-ipv6-tcp/frag-ip-tcp.py b/tests/defrag/bug-6887-defrag-ppp-ipv6-tcp/frag-ip-tcp.py
new file mode 100644 (file)
index 0000000..b9a073e
--- /dev/null
@@ -0,0 +1,10 @@
+#!/usr/bin/env python
+from scapy.all import *
+
+pkts = []
+
+data = 'A' * 1000
+packet = PPP()/IPv6()/IPv6ExtHdrFragment()/TCP(dport=8080,sport=12345,flags='A',seq=1)/data
+
+frags = fragment6(packet,512)
+wrpcap('frag-ppp-ipv6-tcp.pcap', frags)
diff --git a/tests/defrag/bug-6887-defrag-ppp-ipv6-tcp/frag-ppp-ipv6-tcp.pcap b/tests/defrag/bug-6887-defrag-ppp-ipv6-tcp/frag-ppp-ipv6-tcp.pcap
new file mode 100644 (file)
index 0000000..7fdd9fe
Binary files /dev/null and b/tests/defrag/bug-6887-defrag-ppp-ipv6-tcp/frag-ppp-ipv6-tcp.pcap differ
diff --git a/tests/defrag/bug-6887-defrag-ppp-ipv6-tcp/suricata.yaml b/tests/defrag/bug-6887-defrag-ppp-ipv6-tcp/suricata.yaml
new file mode 100644 (file)
index 0000000..159d885
--- /dev/null
@@ -0,0 +1,11 @@
+%YAML 1.1
+---
+
+outputs:
+  - eve-log:
+      enabled: yes
+      filetype: regular #regular|syslog|unix_dgram|unix_stream|redis
+      filename: eve.json
+      types:
+        - alert:
+            packet: yes              # enable dumping of packet (without stream segments)
diff --git a/tests/defrag/bug-6887-defrag-ppp-ipv6-tcp/test.rules b/tests/defrag/bug-6887-defrag-ppp-ipv6-tcp/test.rules
new file mode 100644 (file)
index 0000000..714e46a
--- /dev/null
@@ -0,0 +1 @@
+alert tcp any any -> any any (dsize:1000; sid:1;)
diff --git a/tests/defrag/bug-6887-defrag-ppp-ipv6-tcp/test.yaml b/tests/defrag/bug-6887-defrag-ppp-ipv6-tcp/test.yaml
new file mode 100644 (file)
index 0000000..9d46d2d
--- /dev/null
@@ -0,0 +1,11 @@
+requires:
+  min-version: 8
+
+checks:
+- filter:
+    count: 1
+    match:
+      event_type: alert
+      alert.signature_id: 1
+      packet: "V2AAAAAD/AZAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEwOR+QAAAAAQAAAABQECAAyK0AAEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE="
+      packet_info.linktype: 9
diff --git a/tests/defrag/bug-6942-6887-defrag-eth-ip-gre-ppp-ip-udp-data/eth-ip-gre-ppp-max-ip-packet.pcap b/tests/defrag/bug-6942-6887-defrag-eth-ip-gre-ppp-ip-udp-data/eth-ip-gre-ppp-max-ip-packet.pcap
new file mode 100644 (file)
index 0000000..76899eb
Binary files /dev/null and b/tests/defrag/bug-6942-6887-defrag-eth-ip-gre-ppp-ip-udp-data/eth-ip-gre-ppp-max-ip-packet.pcap differ
diff --git a/tests/defrag/bug-6942-6887-defrag-eth-ip-gre-ppp-ip-udp-data/eth-ip-gre-ppp-max-ip-packet.py b/tests/defrag/bug-6942-6887-defrag-eth-ip-gre-ppp-ip-udp-data/eth-ip-gre-ppp-max-ip-packet.py
new file mode 100755 (executable)
index 0000000..b6457ee
--- /dev/null
@@ -0,0 +1,11 @@
+#!/usr/bin/env python
+from scapy.all import *
+
+pkts = []
+
+data = 'A' * (65535 - 20 - 8)
+encap = IP(src='1.1.1.1', dst='2.2.2.2')/UDP(sport=11111,dport=9999)/data
+frags = fragment(encap, 64)
+for f in frags:
+    pkts += Ether()/IP(src='7.7.7.7', dst='9.9.9.9')/GRE(proto=0x880b)/PPP()/f
+wrpcap('eth-ip-gre-ppp-max-ip-packet.pcap', pkts, snaplen=262144)
diff --git a/tests/defrag/bug-6942-6887-defrag-eth-ip-gre-ppp-ip-udp-data/suricata.yaml b/tests/defrag/bug-6942-6887-defrag-eth-ip-gre-ppp-ip-udp-data/suricata.yaml
new file mode 100644 (file)
index 0000000..159d885
--- /dev/null
@@ -0,0 +1,11 @@
+%YAML 1.1
+---
+
+outputs:
+  - eve-log:
+      enabled: yes
+      filetype: regular #regular|syslog|unix_dgram|unix_stream|redis
+      filename: eve.json
+      types:
+        - alert:
+            packet: yes              # enable dumping of packet (without stream segments)
diff --git a/tests/defrag/bug-6942-6887-defrag-eth-ip-gre-ppp-ip-udp-data/test.rules b/tests/defrag/bug-6942-6887-defrag-eth-ip-gre-ppp-ip-udp-data/test.rules
new file mode 100644 (file)
index 0000000..bde5e4b
--- /dev/null
@@ -0,0 +1 @@
+alert udp any any -> any any (dsize:>65000; sid:1;)
diff --git a/tests/defrag/bug-6942-6887-defrag-eth-ip-gre-ppp-ip-udp-data/test.yaml b/tests/defrag/bug-6942-6887-defrag-eth-ip-gre-ppp-ip-udp-data/test.yaml
new file mode 100644 (file)
index 0000000..8926298
--- /dev/null
@@ -0,0 +1,11 @@
+requires:
+  min-version: 8
+
+checks:
+- filter:
+    count: 1
+    match:
+      event_type: alert
+      alert.signature_id: 1
+      packet.__len: 87384
+        #packet_info.linktype: 12 # Bug 6954: on OpenBSD this value in 14.