I use lua to write a script that saves http request headers, request body, etc. This script can run normally and record http request logs through the specified network card.
suricata.yaml:
outputs:
- eve-log:
enabled: yes
filetype: regular
filename: eve.json
metadata: yes
pcap-file: false
community-id: false
community-id-seed: 0
xff:
enabled: no
mode: extra-data
deployment: reverse
header: X-Forwarded-For
types:
- alert:
# payload: yes
# payload-buffer-size: 4kb
# payload-printable: yes
# packet: yes
metadata: yes
# http-body: yes
# http-body-printable: yes
tagged-packets: yes
- lua:
enabled: yes
scripts-dir: /opt/suricata/lua
scripts:
- http.lua
app-layer:
protocols:
http:
enabled: yes
libhtp:
default-config:
personality: IDS
request-body-limit: 100kb
response-body-limit: 100kb
request-body-minimal-inspect-size: 32kb
request-body-inspect-window: 4kb
response-body-minimal-inspect-size: 40kb
response-body-inspect-window: 16kb
response-body-decompress-layer-limit: 2
http-body-inline: auto
swf-decompression:
enabled: yes
type: both
compress-depth: 100kb
decompress-depth: 100kb
double-decode-path: no
double-decode-query: no
server-config:
stream:
memcap: 128mb
checksum-validation: yes
inline: no
memcap-policy: ignore
reassembly:
memcap: 256mb
depth: 1mb
toserver-chunk-size: 2560
toclient-chunk-size: 2560
I use the following rule to record alerts for web page visits.
alert http any any -> any $HTTP_PORTS (msg:"Web access."; flow:established, to_server; content:"/"; http_uri; sid:1; rev:1;)
However, this rule sometimes does not produce warnings in eve.json normally.
The details are as follows:
- When using a browser to access the webpage, the alarm is often lost.
- Test with different browsers, all have this problem. Tested browsers include Chrome, Firefox, Edge.
- When using Postman to send the same request, the alarm must be generated and not lost.
- Every time I visit, I will pay attention to the content recorded in the lua script, and I make sure that every request produces the HTTP request header, request body and other content.
So, I’m not sure if it’s a browser issue, or a suricata issue.
Hope you all can help me. Thanks.