mirror of
https://github.com/falcosecurity/falco.git
synced 2025-07-31 22:16:49 +00:00
Also add endswith to lua parser (#443)
* Also add endswith to lua parser Add endswith as a symbol so it can be parsed in filter expressions. * Unit test for endswith support Add a test case for endswith support, based on the filename ending with null.
This commit is contained in:
parent
8d60d374f7
commit
7dbdb00109
@ -264,6 +264,13 @@ trace_files: !mux
|
||||
- rules/rule_order.yaml
|
||||
trace_file: trace_files/cat_write.scap
|
||||
|
||||
endswith:
|
||||
detect: True
|
||||
detect_level: WARNING
|
||||
rules_file:
|
||||
- rules/endswith.yaml
|
||||
trace_file: trace_files/cat_write.scap
|
||||
|
||||
invalid_rule_output:
|
||||
exit_status: 1
|
||||
stderr_contains: "Runtime error: Error loading rules:.* Invalid output format 'An open was seen %not_a_real_field': 'invalid formatting token not_a_real_field'. Exiting."
|
||||
|
22
test/rules/endswith.yaml
Normal file
22
test/rules/endswith.yaml
Normal file
@ -0,0 +1,22 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
- rule: open_ending with null
|
||||
desc: A file ending with null is opened
|
||||
condition: evt.type=open and fd.name endswith null
|
||||
output: "An open was seen (command=%proc.cmdline)"
|
||||
priority: WARNING
|
@ -265,7 +265,8 @@ local G = {
|
||||
symb("contains") / "contains" +
|
||||
symb("icontains") / "icontains" +
|
||||
symb("glob") / "glob" +
|
||||
symb("startswith") / "startswith";
|
||||
symb("startswith") / "startswith" +
|
||||
symb("endswith") / "endswith";
|
||||
InOp = kw("in") / "in";
|
||||
PmatchOp = kw("pmatch") / "pmatch";
|
||||
UnaryBoolOp = kw("not") / "not";
|
||||
|
Loading…
Reference in New Issue
Block a user