Implementing Runtime Security Monitoring
Implementing Runtime Security Monitoring
Runtime security monitoring detects anomalous behaviors that may indicate compromises or attacks. Unlike static security controls, runtime monitoring observes actual container behavior, detecting zero-day exploits and insider threats. Effective monitoring requires understanding normal application behavior to distinguish legitimate activities from potential threats.
System call monitoring forms the foundation of runtime security. Abnormal system call patterns often indicate exploitation attempts or malicious activities. Tools like Falco, Sysdig Secure, and Aqua Security monitor system calls in real-time, alerting on suspicious activities. These tools use rule engines to define expected behaviors and detect deviations.
# Falco rules for runtime security monitoring
- rule: Container Shell Spawned
desc: Detect shell spawned in a container
condition: >
container.id != host and
proc.name in (shell_binaries) and
spawned_process and
not container.image.repository in (allowed_shell_containers)
output: >
Shell spawned in container (user=%user.name container=%container.name
shell=%proc.name parent=%proc.pname cmdline=%proc.cmdline)
priority: WARNING
tags: [container, shell, mitre_execution]
- rule: Write below etc
desc: Detect writes to /etc directory
condition: >
container.id != host and
write and
fd.name startswith /etc/ and
not proc.name in (package_mgmt_binaries) and
not container.image.repository in (allowed_etc_writers)
output: >
File written under /etc (user=%user.name command=%proc.cmdline
file=%fd.name container=%container.name)
priority: ERROR
tags: [container, filesystem, mitre_persistence]
- rule: Outbound Connection to C2 Servers
desc: Detect outbound connections to known C2 servers
condition: >
container.id != host and
outbound and
fd.sip in (c2_server_ips) and
not proc.name in (allowed_outbound_procs)
output: >
Outbound connection to C2 server (command=%proc.cmdline
connection=%fd.name container=%container.name)
priority: CRITICAL
tags: [network, c2, mitre_command_and_control]
- rule: Container Privilege Escalation
desc: Detect privilege escalation attempts
condition: >
container.id != host and
proc.name in (su, sudo, setuid_binaries) and
not container.image.repository in (allowed_privilege_escalation)
output: >
Privilege escalation attempt (user=%user.name command=%proc.cmdline
container=%container.name)
priority: CRITICAL
tags: [container, privilege_escalation, mitre_privilege_escalation]
File integrity monitoring complements system call monitoring by detecting unauthorized file modifications. Runtime security tools can monitor critical directories and alert on changes. This capability proves particularly valuable for detecting web shells, backdoors, and configuration tampering. Integration with admission controllers can prevent deployment of containers with modified files.