Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Detect log alert tx one 7199 v6 #2157

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions tests/bug-130/test.yaml
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
requires:
min-version: 5.0.0
features:
- HAVE_LIBJANSSON

args:
- -k none
- -k none --set detect.guess-applayer-tx=true

checks:
- filter:
Expand Down
15 changes: 15 additions & 0 deletions tests/bug-7199/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Test

Showcase change of behavior from Suricata-7.0.5 to Suricata-7.0.6.
Before, a non-stream rule that matched traffic associated with an app-layer
transaction would result in app-layer metadata being logged with the alert, if
metadata was enabled. Starting with 7.0.6, this will only be achieved if the
rule is an app-layer/stream one.

### Pcap

Packet capture resulting of a curl to suricata.io.

### Ticket

https://redmine.openinfosecfoundation.org/issues/7199
Binary file added tests/bug-7199/TLPW-curl-http-suricata.pcap
Binary file not shown.
22 changes: 22 additions & 0 deletions tests/bug-7199/suricata.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
%YAML 1.1
---

outputs:
- eve-log:
enabled: yes
filetype: regular
filename: eve.json
types:
- alert:
enabled: true
tagged-packets: true
metadata: true
http-body: true
- http:
extended: true
tagged-packets: true
- tls:
extended: true

detect:
guess-applayer-tx: yes
3 changes: 3 additions & 0 deletions tests/bug-7199/test.rules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
reject ip any any -> any any (msg: "Reject by AntreaNetworkPolicy:default/ingress-allow-http-request-to-api-v2"; flow: to_server, established; sid: 1;)
pass http any any -> any any (msg: "Allow http by AntreaNetworkPolicy:default/ingress-allow-http-request-to-api-v2"; http.uri; content:"/api/v2/"; startswith; http.method; content:"GET"; http.host; content:"foo.bar.com"; startswith; endswith; sid: 2;)
alert http any any -> any any (msg: "Alert by AntreaNetworkPolicy:default/ingress-allow-http-request-to-api-v2"; http.uri; content:!"/api/v2/"; sid: 3;)
33 changes: 33 additions & 0 deletions tests/bug-7199/test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
requires:
features:
- LIBNET1.1

args:
- -k none
- --set stream.midstream=true
- --simulate-ips

checks:
- filter:
count: 4
match:
event_type: alert
alert.signature_id: 1
- filter:
min-version: 8
count: 1
match:
event_type: alert
alert.signature_id: 1
has-key: http
- filter:
count: 0
match:
event_type: alert
alert.signature_id: 2
- filter:
count: 1
match:
event_type: alert
alert.signature_id: 3
has-key: http
4 changes: 4 additions & 0 deletions tests/firewall/firewall-06-tls-sni-enforce/suricata.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ stats:
# Add stream events as stats.
#stream-events: false

detect:
stream-tx-log-limit: 4
guess-applayer-tx: true

# Configure the type of alert (and other) logging you would like.
outputs:
- eve-log:
Expand Down
8 changes: 8 additions & 0 deletions tests/firewall/firewall-06-tls-sni-enforce/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,14 @@ checks:
count: 26
match:
event_type: alert
- filter:
min-version: 8
# check for https://redmine.openinfosecfoundation.org/issues/7350
count: 4
match:
event_type: alert
alert.signature_id: 3
tls.sni: raw.githubusercontent.com
- filter:
count: 1
match:
Expand Down
3 changes: 3 additions & 0 deletions tests/pgsql/pgsql-7000-ids/suricata.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,6 @@ app-layer:
protocols:
pgsql:
enabled: yes

detect:
guess-applayer-tx: true
7 changes: 0 additions & 7 deletions tests/pgsql/pgsql-7000-ids/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -171,11 +171,4 @@ checks:
[email protected].....\[email protected]...'[email protected]...)[email protected]...,[email protected]...'[email protected]...)[email protected][email protected]...\r\
SELECT 8.Z....I"
pcap_cnt: 87
pgsql.request.simple_query: SELECT * FROM new_table;
pgsql.response.command_completed: SELECT 8
pgsql.response.data_rows: 8
pgsql.response.data_size: 236
pgsql.response.field_count: 2
pgsql.tx_id: 26
stream: 1
tx_id: 25
3 changes: 3 additions & 0 deletions tests/pgsql/pgsql-bug-6983-ips/suricata.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,6 @@ app-layer:
protocols:
pgsql:
enabled: yes

detect:
guess-applayer-tx: true
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should there also be a test.yaml update with this test?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, why should there be ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

to include that the tx was guessed? (I guess?)

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do not think it is important... Is it ?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what is the point of the change if there is no test update with it?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TL;DR Otherwise this test pgsql-bug-6983-ips fails with the Suricata PR.

I think you are referring to Suricata change here : https://github.com/OISF/suricata/pull/12197/files#diff-ee484ae4b77e59eb8b6b50f628c84ab626bd6178a6d43e1219dbc9619be7e027L816

Over simplifying it : instead of using (alert_flags & PACKET_ALERT_FLAG_STREAM_MATCH) we now use de_ctx->force_applayer

pgsql-bug-6983-ips resorted to (alert_flags & PACKET_ALERT_FLAG_STREAM_MATCH) to have pgsql metadata in alerts.
With the Suricata PR, we now need de_ctx->force_applayer meaning detect.guess-applayer-tx: true in yaml

That comes from how I understood your comment OISF/suricata#12166 (comment)

We've decided it's worse to log the wrong one, than to log none.

Beyond pgsql-bug-6983-ips test, this SV PR has test bug-7199 to show the new benefits of the new behavior.

Loading