Skip to content

Commit

Permalink
test/eps: Test updates/additions for 6.0.x
Browse files Browse the repository at this point in the history
This commit adds support for 6.0.x eps stream reassembly testing
- Output logging of ips drop reasons is limited to 7 and above
- Create 6.0.x specific test cases for -01, -04, -05

Issue: 6364
  • Loading branch information
jlucovsky committed Sep 19, 2023
1 parent c31735b commit 8f54f47
Show file tree
Hide file tree
Showing 15 changed files with 257 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
requires:
min-version: 7
features:
- DEBUG
files:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
requires:
min-version: 7
features:
- DEBUG
files:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
requires:
min-version: 7
features:
- DEBUG
files:
Expand Down
5 changes: 5 additions & 0 deletions tests/exception-policy-stream-reassembly-memcap-07/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Description

Test exception policy logic for stream reassembly.

DEBUG is required to enable the "eps" logic.
34 changes: 34 additions & 0 deletions tests/exception-policy-stream-reassembly-memcap-07/suricata.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
%YAML 1.1
---

stats:
enabled: yes

outputs:
- eve-log:
enabled: yes
types:
- alert:
tagged-packets: yes
- anomaly:
enabled: yes
types:
decode: no
stream: yes
applayer: yes
- tls:
extended: yes # enable this for extended logging information
- drop:
alerts: yes # log alerts that caused drops
flows: all # start or all: 'start' logs only a single drop
# per flow direction. All logs each dropped pkt.
- flow
- stats:
totals: yes # stats for all threads merged together
threads: no # per thread stats
deltas: no # include delta values
action-order:
- pass
- drop
- reject
- alert
5 changes: 5 additions & 0 deletions tests/exception-policy-stream-reassembly-memcap-07/test.rules
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
pass tls any any -> any any (tls.sni; content:"example.com"; startswith; nocase; endswith; msg:"matching TLS allowlisted"; flow:to_server,established; sid:1;)
drop tls any any -> any any (msg:"not matching any TLS allowlisted Domain"; flow:to_server,established; sid:2; rev:1;)

# matches packet 4, but should not alert due to memcap drop
alert tcp any any -> any any (seq:3964863680; ack:2403674603; dsize:214; sid:3;)
51 changes: 51 additions & 0 deletions tests/exception-policy-stream-reassembly-memcap-07/test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
requires:
lt-version: 7
features:
- DEBUG
files:
- src/util-exception-policy.c
pcap: ../tls/tls-ja3s/input.pcap
args:
- --simulate-ips
- -k none
# pretend tcp memcap was hit in packet 4, the client hello containing the sni
- --simulate-packet-tcp-reassembly-memcap=4
- --set stream.reassembly.memcap-policy=drop-flow
checks:
- filter:
count: 0
match:
event_type: alert
- filter:
count: 29
match:
event_type: drop
- filter:
count: 1
match:
event_type: drop
drop.reason: "stream reassembly"
- filter:
count: 28
match:
event_type: drop
drop.reason: "flow drop"
- filter:
count: 0
match:
event_type: tls
tls.sni: example.com
- filter:
count: 0
match:
event_type: tls
- filter:
count: 0
match:
event_type: flow
app_proto: tls
- filter:
count: 1
match:
event_type: flow
flow.action: drop
5 changes: 5 additions & 0 deletions tests/exception-policy-stream-reassembly-memcap-08/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Description

Test exception policy logic for stream reassembly.

DEBUG is required to enable the "eps" logic.
20 changes: 20 additions & 0 deletions tests/exception-policy-stream-reassembly-memcap-08/suricata.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
%YAML 1.1
---

outputs:
- eve-log:
enabled: yes
types:
- alert:
tagged-packets: yes
- tls:
extended: yes # enable this for extended logging information
- drop:
alerts: yes # log alerts that caused drops
flows: all # start or all: 'start' logs only a single drop
# per flow direction. All logs each dropped pkt.
- flow
- stats:
totals: yes # stats for all threads merged together
threads: no # per thread stats
deltas: no # include delta values
3 changes: 3 additions & 0 deletions tests/exception-policy-stream-reassembly-memcap-08/test.rules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
pass tls any any -> any any (tls.sni; content:"example.com"; startswith; nocase; endswith; msg:"matching TLS allowlisted"; flow:to_server,established; priority:2; sid:1;)
# matches packet 4, but no match due to memcap drop
alert tcp any any -> any any (seq:3964863680; ack:2403674603; dsize:214; priority:1; sid:3;)
51 changes: 51 additions & 0 deletions tests/exception-policy-stream-reassembly-memcap-08/test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
requires:
lt-version: 7
features:
- DEBUG
files:
- src/util-exception-policy.c
pcap: ../tls/tls-ja3s/input.pcap
args:
- --simulate-ips
- -k none
# pretend tcp memcap was hit in packet 4, the client hello containing the sni
- --simulate-packet-tcp-reassembly-memcap=4
- --set stream.reassembly.memcap-policy=drop-flow
checks:
- filter:
count: 0
match:
event_type: alert
- filter:
count: 29
match:
event_type: drop
- filter:
count: 1
match:
event_type: drop
drop.reason: "stream reassembly"
- filter:
count: 28
match:
event_type: drop
drop.reason: "flow drop"
- filter:
count: 0
match:
event_type: tls
tls.sni: example.com
- filter:
count: 0
match:
event_type: tls
- filter:
count: 0
match:
event_type: flow
app_proto: tls
- filter:
count: 1
match:
event_type: flow
flow.action: drop
5 changes: 5 additions & 0 deletions tests/exception-policy-stream-reassembly-memcap-09/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Description

Test exception policy logic for stream reassembly.

DEBUG is required to enable the "eps" logic.
20 changes: 20 additions & 0 deletions tests/exception-policy-stream-reassembly-memcap-09/suricata.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
%YAML 1.1
---

outputs:
- eve-log:
enabled: yes
types:
- alert:
tagged-packets: yes
- tls:
extended: yes # enable this for extended logging information
- drop:
alerts: yes # log alerts that caused drops
flows: all # start or all: 'start' logs only a single drop
# per flow direction. All logs each dropped pkt.
- flow
- stats:
totals: yes # stats for all threads merged together
threads: no # per thread stats
deltas: no # include delta values
3 changes: 3 additions & 0 deletions tests/exception-policy-stream-reassembly-memcap-09/test.rules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
pass tls any any -> any any (tls.sni; content:"example.com"; startswith; nocase; endswith; msg:"matching TLS allowlisted"; flow:to_server,established; priority:2; sid:1;)
# matches packet 4, but no match due to memcap drop
alert tcp any any -> any any (seq:3964863680; ack:2403674603; dsize:214; priority:1; sid:3;)
52 changes: 52 additions & 0 deletions tests/exception-policy-stream-reassembly-memcap-09/test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
requires:
lt-version: 7
features:
- DEBUG
files:
- src/util-exception-policy.c
pcap: ../tls/tls-ja3s/input.pcap
args:
- --simulate-ips
- -k none
# pretend tcp memcap was hit in packet 4, the client hello containing the sni
- --simulate-packet-tcp-reassembly-memcap=4
- --set stream.reassembly.memcap-policy=drop-packet
- --set app-layer.error-policy=ignore
checks:
- filter:
count: 0
match:
event_type: alert
- filter:
count: 1
match:
event_type: drop
- filter:
count: 1
match:
event_type: drop
drop.reason: "stream reassembly"
- filter:
count: 0
match:
event_type: drop
drop.reason: "flow drop"
- filter:
count: 0
match:
event_type: tls
tls.sni: example.com
- filter:
count: 1
match:
event_type: tls
- filter:
count: 1
match:
event_type: flow
app_proto: tls
- filter:
count: 0
match:
event_type: flow
flow.action: drop

0 comments on commit 8f54f47

Please sign in to comment.