mirror of
https://github.com/falcosecurity/falco.git
synced 2025-09-25 04:11:59 +00:00
rule(Container Drift Detected): detect new exec created in a container
Signed-off-by: Omer Azaria <omer.azaria@sysdig.com>
This commit is contained in:
@@ -26,8 +26,8 @@ file(MAKE_DIRECTORY ${SYSDIG_CMAKE_WORKING_DIR})
|
|||||||
# To update sysdig version for the next release, change the default below
|
# To update sysdig version for the next release, change the default below
|
||||||
# In case you want to test against another sysdig version just pass the variable - ie., `cmake -DSYSDIG_VERSION=dev ..`
|
# In case you want to test against another sysdig version just pass the variable - ie., `cmake -DSYSDIG_VERSION=dev ..`
|
||||||
if(NOT SYSDIG_VERSION)
|
if(NOT SYSDIG_VERSION)
|
||||||
set(SYSDIG_VERSION "96bd9bc560f67742738eb7255aeb4d03046b8045")
|
set(SYSDIG_VERSION "422ab408c5706fbdd45432646cc197eb79459169")
|
||||||
set(SYSDIG_CHECKSUM "SHA256=766e8952a36a4198fd976b9d848523e6abe4336612188e4fc911e217d8e8a00d")
|
set(SYSDIG_CHECKSUM "SHA256=367db2a480bca327a46f901bcc8384f151231bcddba88c719a06cf13971f4ab5")
|
||||||
endif()
|
endif()
|
||||||
set(PROBE_VERSION "${SYSDIG_VERSION}")
|
set(PROBE_VERSION "${SYSDIG_VERSION}")
|
||||||
|
|
||||||
|
@@ -2827,6 +2827,34 @@
|
|||||||
Redirect stdout/stdin to network connection (user=%user.name %container.info process=%proc.name parent=%proc.pname cmdline=%proc.cmdline terminal=%proc.tty container_id=%container.id image=%container.image.repository fd.name=%fd.name fd.num=%fd.num fd.type=%fd.type fd.sip=%fd.sip)
|
Redirect stdout/stdin to network connection (user=%user.name %container.info process=%proc.name parent=%proc.pname cmdline=%proc.cmdline terminal=%proc.tty container_id=%container.id image=%container.image.repository fd.name=%fd.name fd.num=%fd.num fd.type=%fd.type fd.sip=%fd.sip)
|
||||||
priority: WARNING
|
priority: WARNING
|
||||||
|
|
||||||
|
# The two Container Drift rules below will fire when a new executable is created in a container.
|
||||||
|
# There are two ways to create executables - file is created with execution permissions or permissions change of existing file.
|
||||||
|
# We will use a new sysdig filter, is_open_exec, to find all files creations with execution permission, and will trace all chmods in a container.
|
||||||
|
# The use case we are targeting here is an attempt to execute code that was not shipped as part of a container (drift) -
|
||||||
|
# an activity that might be malicious or non-compliant.
|
||||||
|
# Two things to pay attention to:
|
||||||
|
# 1) In most cases, 'docker cp' will not be identified, but the assumption is that if an attacker gained access to the container runtime daemon, they are already privileged
|
||||||
|
# 2) Drift rules will be noisy in environments in which containers are built (e.g. docker build)
|
||||||
|
|
||||||
|
- rule: Container Drift Detected (chmod)
|
||||||
|
desc: New executable created in a container due to chmod
|
||||||
|
condition: (chmod and consider_all_chmods and container and evt.rawres>=0 and
|
||||||
|
((evt.arg.mode contains "S_IXUSR") or
|
||||||
|
(evt.arg.mode contains "S_IXGRP") or
|
||||||
|
(evt.arg.mode contains "S_IXOTH")))
|
||||||
|
output: Drift detected! New executable created in a container (user=%user.name command=%proc.cmdline filename=%evt.arg.filename name=%evt.arg.name mode=%evt.arg.mode event=%evt.type)
|
||||||
|
priority: ERROR
|
||||||
|
|
||||||
|
# ****************************************************************************
|
||||||
|
# * "Container Drift Detected (open+create)" requires FALCO_ENGINE_VERSION 6 *
|
||||||
|
# ****************************************************************************
|
||||||
|
- rule: Container Drift Detected (open+create)
|
||||||
|
desc: New executable created in a container due to open+create
|
||||||
|
condition: (evt.type in (open,openat,creat) and evt.is_open_exec=true and container and evt.rawres>=0)
|
||||||
|
output: Drift detected! New executable created in a container (user=%user.name command=%proc.cmdline filename=%evt.arg.filename name=%evt.arg.name mode=%evt.arg.mode event=%evt.type)
|
||||||
|
priority: ERROR
|
||||||
|
|
||||||
|
|
||||||
# Application rules have moved to application_rules.yaml. Please look
|
# Application rules have moved to application_rules.yaml. Please look
|
||||||
# there if you want to enable them by adding to
|
# there if you want to enable them by adding to
|
||||||
# falco_rules.local.yaml.
|
# falco_rules.local.yaml.
|
||||||
|
@@ -16,9 +16,9 @@ limitations under the License.
|
|||||||
|
|
||||||
// The version of rules/filter fields/etc supported by this falco
|
// The version of rules/filter fields/etc supported by this falco
|
||||||
// engine.
|
// engine.
|
||||||
#define FALCO_ENGINE_VERSION (5)
|
#define FALCO_ENGINE_VERSION (6)
|
||||||
|
|
||||||
// This is the result of running "falco --list -N | sha256sum" and
|
// This is the result of running "falco --list -N | sha256sum" and
|
||||||
// represents the fields supported by this version of falco. It's used
|
// represents the fields supported by this version of falco. It's used
|
||||||
// at build time to detect a changed set of fields.
|
// at build time to detect a changed set of fields.
|
||||||
#define FALCO_FIELDS_CHECKSUM "ca9e75fa41fe4480cdfad8cf275cdbbc334e656569f070c066d87cbd2955c1ae"
|
#define FALCO_FIELDS_CHECKSUM "2f324e2e66d4b423f53600e7e0fcf2f0ff72e4a87755c490f2ae8f310aba9386"
|
||||||
|
Reference in New Issue
Block a user