mirror of
https://github.com/falcosecurity/falco.git
synced 2025-08-15 12:53:42 +00:00
New tests for handling multi-doc files
New automated tests for testing parsing of multiple-doc rules files: - invalid_{overwrite,append}_{macro,rule}_multiple_docs are just like the previous versions, but with the multiple files combined into a single multi-document file. - multiple_docs combines the rules file from multiple_rules The expect the same results and output as the multiple-file versions. Signed-off-by: Mark Stemm <mark.stemm@gmail.com>
This commit is contained in:
parent
76f64f5d79
commit
94d89eaea2
@ -123,6 +123,18 @@ trace_files: !mux
|
|||||||
trace_file: trace_files/cat_write.scap
|
trace_file: trace_files/cat_write.scap
|
||||||
all_events: True
|
all_events: True
|
||||||
|
|
||||||
|
multiple_docs:
|
||||||
|
detect: True
|
||||||
|
detect_level:
|
||||||
|
- WARNING
|
||||||
|
- INFO
|
||||||
|
- ERROR
|
||||||
|
rules_file:
|
||||||
|
- rules/single_rule.yaml
|
||||||
|
- rules/double_rule.yaml
|
||||||
|
trace_file: trace_files/cat_write.scap
|
||||||
|
all_events: True
|
||||||
|
|
||||||
rules_directory:
|
rules_directory:
|
||||||
detect: True
|
detect: True
|
||||||
detect_level:
|
detect_level:
|
||||||
@ -435,6 +447,35 @@ trace_files: !mux
|
|||||||
- rules/invalid_append_macro.yaml
|
- rules/invalid_append_macro.yaml
|
||||||
trace_file: trace_files/cat_write.scap
|
trace_file: trace_files/cat_write.scap
|
||||||
|
|
||||||
|
invalid_overwrite_macro_multiple_docs:
|
||||||
|
exit_status: 1
|
||||||
|
stdout_is: |+
|
||||||
|
Compilation error when compiling "foo": Undefined macro 'foo' used in filter.
|
||||||
|
---
|
||||||
|
- macro: some macro
|
||||||
|
condition: foo
|
||||||
|
append: false
|
||||||
|
---
|
||||||
|
validate_rules_file:
|
||||||
|
- rules/invalid_overwrite_macro_multiple_docs.yaml
|
||||||
|
trace_file: trace_files/cat_write.scap
|
||||||
|
|
||||||
|
invalid_append_macro_multiple_docs:
|
||||||
|
exit_status: 1
|
||||||
|
stdout_is: |+
|
||||||
|
Compilation error when compiling "evt.type=execve foo": 17: syntax error, unexpected 'foo', expecting 'or', 'and'
|
||||||
|
---
|
||||||
|
- macro: some macro
|
||||||
|
condition: evt.type=execve
|
||||||
|
|
||||||
|
- macro: some macro
|
||||||
|
condition: foo
|
||||||
|
append: true
|
||||||
|
---
|
||||||
|
validate_rules_file:
|
||||||
|
- rules/invalid_append_macro_multiple_docs.yaml
|
||||||
|
trace_file: trace_files/cat_write.scap
|
||||||
|
|
||||||
invalid_overwrite_rule:
|
invalid_overwrite_rule:
|
||||||
exit_status: 1
|
exit_status: 1
|
||||||
stdout_contains: |+
|
stdout_contains: |+
|
||||||
@ -477,6 +518,44 @@ trace_files: !mux
|
|||||||
- rules/invalid_append_rule.yaml
|
- rules/invalid_append_rule.yaml
|
||||||
trace_file: trace_files/cat_write.scap
|
trace_file: trace_files/cat_write.scap
|
||||||
|
|
||||||
|
invalid_overwrite_rule_multiple_docs:
|
||||||
|
exit_status: 1
|
||||||
|
stdout_is: |+
|
||||||
|
Undefined macro 'bar' used in filter.
|
||||||
|
---
|
||||||
|
- rule: some rule
|
||||||
|
desc: some desc
|
||||||
|
condition: bar
|
||||||
|
output: some output
|
||||||
|
priority: INFO
|
||||||
|
append: false
|
||||||
|
---
|
||||||
|
validate_rules_file:
|
||||||
|
- rules/invalid_overwrite_rule_multiple_docs.yaml
|
||||||
|
trace_file: trace_files/cat_write.scap
|
||||||
|
|
||||||
|
invalid_append_rule_multiple_docs:
|
||||||
|
exit_status: 1
|
||||||
|
stdout_contains: |+
|
||||||
|
Compilation error when compiling "evt.type=open bar": 15: syntax error, unexpected 'bar', expecting 'or', 'and'
|
||||||
|
---
|
||||||
|
- rule: some rule
|
||||||
|
desc: some desc
|
||||||
|
condition: evt.type=open
|
||||||
|
output: some output
|
||||||
|
priority: INFO
|
||||||
|
|
||||||
|
- rule: some rule
|
||||||
|
desc: some desc
|
||||||
|
condition: bar
|
||||||
|
output: some output
|
||||||
|
priority: INFO
|
||||||
|
append: true
|
||||||
|
---
|
||||||
|
validate_rules_file:
|
||||||
|
- rules/invalid_append_rule_multiple_docs.yaml
|
||||||
|
trace_file: trace_files/cat_write.scap
|
||||||
|
|
||||||
invalid_missing_rule_name:
|
invalid_missing_rule_name:
|
||||||
exit_status: 1
|
exit_status: 1
|
||||||
stdout_is: |+
|
stdout_is: |+
|
||||||
|
8
test/rules/invalid_append_macro_multiple_docs.yaml
Normal file
8
test/rules/invalid_append_macro_multiple_docs.yaml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
- macro: some macro
|
||||||
|
condition: evt.type=execve
|
||||||
|
---
|
||||||
|
- macro: some macro
|
||||||
|
condition: foo
|
||||||
|
append: true
|
||||||
|
|
13
test/rules/invalid_append_rule_multiple_docs.yaml
Normal file
13
test/rules/invalid_append_rule_multiple_docs.yaml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
- rule: some rule
|
||||||
|
desc: some desc
|
||||||
|
condition: evt.type=open
|
||||||
|
output: some output
|
||||||
|
priority: INFO
|
||||||
|
---
|
||||||
|
- rule: some rule
|
||||||
|
desc: some desc
|
||||||
|
condition: bar
|
||||||
|
output: some output
|
||||||
|
priority: INFO
|
||||||
|
append: true
|
8
test/rules/invalid_overwrite_macro_multiple_docs.yaml
Normal file
8
test/rules/invalid_overwrite_macro_multiple_docs.yaml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
- macro: some macro
|
||||||
|
condition: evt.type=execve
|
||||||
|
---
|
||||||
|
- macro: some macro
|
||||||
|
condition: foo
|
||||||
|
append: false
|
||||||
|
|
13
test/rules/invalid_overwrite_rule_multiple_docs.yaml
Normal file
13
test/rules/invalid_overwrite_rule_multiple_docs.yaml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
- rule: some rule
|
||||||
|
desc: some desc
|
||||||
|
condition: evt.type=open
|
||||||
|
output: some output
|
||||||
|
priority: INFO
|
||||||
|
---
|
||||||
|
- rule: some rule
|
||||||
|
desc: some desc
|
||||||
|
condition: bar
|
||||||
|
output: some output
|
||||||
|
priority: INFO
|
||||||
|
append: false
|
66
test/rules/multiple_docs.yaml
Normal file
66
test/rules/multiple_docs.yaml
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
---
|
||||||
|
#
|
||||||
|
# Copyright (C) 2016-2018 Draios Inc dba Sysdig.
|
||||||
|
#
|
||||||
|
# This file is part of falco.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
- required_engine_version: 2
|
||||||
|
|
||||||
|
- list: cat_binaries
|
||||||
|
items: [cat]
|
||||||
|
|
||||||
|
- list: cat_capable_binaries
|
||||||
|
items: [cat_binaries]
|
||||||
|
|
||||||
|
- macro: is_cat
|
||||||
|
condition: proc.name in (cat_capable_binaries)
|
||||||
|
|
||||||
|
- rule: open_from_cat
|
||||||
|
desc: A process named cat does an open
|
||||||
|
condition: evt.type=open and is_cat
|
||||||
|
output: "An open was seen (command=%proc.cmdline)"
|
||||||
|
priority: WARNING
|
||||||
|
---
|
||||||
|
#
|
||||||
|
# Copyright (C) 2016-2018 Draios Inc dba Sysdig.
|
||||||
|
#
|
||||||
|
# This file is part of falco.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
#
|
||||||
|
# This ruleset depends on the is_cat macro defined in single_rule.yaml
|
||||||
|
|
||||||
|
- rule: exec_from_cat
|
||||||
|
desc: A process named cat does execve
|
||||||
|
condition: evt.type=execve and is_cat
|
||||||
|
output: "An exec was seen (command=%proc.cmdline)"
|
||||||
|
priority: ERROR
|
||||||
|
|
||||||
|
- rule: access_from_cat
|
||||||
|
desc: A process named cat does an access
|
||||||
|
condition: evt.type=access and is_cat
|
||||||
|
output: "An access was seen (command=%proc.cmdline)"
|
||||||
|
priority: INFO
|
Loading…
Reference in New Issue
Block a user