From 84e6c55b53f26d5eed5626682884db0ec3e05d7d Mon Sep 17 00:00:00 2001 From: Jason Ish Date: Mon, 27 May 2024 15:54:53 -0600 Subject: [PATCH] test: test lua memory limit errors --- tests/lua/lua-memory-limit/README.md | 1 + tests/lua/lua-memory-limit/test.lua | 16 ++++++++++++++++ tests/lua/lua-memory-limit/test.rules | 1 + tests/lua/lua-memory-limit/test.yaml | 26 ++++++++++++++++++++++++++ 4 files changed, 44 insertions(+) create mode 100644 tests/lua/lua-memory-limit/README.md create mode 100644 tests/lua/lua-memory-limit/test.lua create mode 100644 tests/lua/lua-memory-limit/test.rules create mode 100644 tests/lua/lua-memory-limit/test.yaml diff --git a/tests/lua/lua-memory-limit/README.md b/tests/lua/lua-memory-limit/README.md new file mode 100644 index 000000000..a7a768985 --- /dev/null +++ b/tests/lua/lua-memory-limit/README.md @@ -0,0 +1 @@ +Test for Lua rules that exceed the memory limit. diff --git a/tests/lua/lua-memory-limit/test.lua b/tests/lua/lua-memory-limit/test.lua new file mode 100644 index 000000000..8d69a8261 --- /dev/null +++ b/tests/lua/lua-memory-limit/test.lua @@ -0,0 +1,16 @@ +global_data = {} + +function init(args) + for i = 1, 8000 do + global_data[i] = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + end + + return {} +end + +function match(args) + local data = {} + for i = 1, 17000 do + data[i] = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + end +end diff --git a/tests/lua/lua-memory-limit/test.rules b/tests/lua/lua-memory-limit/test.rules new file mode 100644 index 000000000..7a543f17d --- /dev/null +++ b/tests/lua/lua-memory-limit/test.rules @@ -0,0 +1 @@ +alert http any any -> any any (msg:"TEST Lua Memory Limit"; content:"uid=0"; lua:test.lua; sid:1; rev:1;) diff --git a/tests/lua/lua-memory-limit/test.yaml b/tests/lua/lua-memory-limit/test.yaml new file mode 100644 index 000000000..36b4f688f --- /dev/null +++ b/tests/lua/lua-memory-limit/test.yaml @@ -0,0 +1,26 @@ +requires: + min-version: 8 + +args: + - --set default-rule-path=${TEST_DIR} + - --set security.lua.allow-rules=true + - --set logging.outputs.1.file.type=json + +pcap: ../lua-blocked-function-1/testmyids.pcap + +checks: + - filter: + filename: suricata.log + count: 1 + match: + engine.message.__startswith: "Lua script failed to run successfully: memory limit exceeded" + - filter: + count: 1 + match: + event_type: stats + stats.detect.lua.errors: 1 + stats.detect.lua.memory_limit_errors: 1 + - filter: + count: 0 + match: + event_type: alert -- 2.47.2