- increase memory limits - Falco: add 512Mi memory limit - Falcosidekick: increase memory limit 256Mi -> 512Mi - Redis: increase memory limit 512Mi -> 1Gi (was 84 restarts) - Redis: increase maxmemory 400mb -> 800mb
220 lines
5.4 KiB
YAML
220 lines
5.4 KiB
YAML
# Falco Helm Values
|
|
# Chart: https://github.com/falcosecurity/charts/tree/master/charts/falco
|
|
|
|
# Driver configuration - use modern_ebpf (no compilation needed)
|
|
driver:
|
|
enabled: true
|
|
kind: modern_ebpf # Uses modern eBPF features, no driver compilation needed
|
|
|
|
# Image configuration - use Falco 0.40.0 for kernel 6.14 support
|
|
image:
|
|
registry: docker.io
|
|
repository: falcosecurity/falco
|
|
tag: 0.40.0
|
|
|
|
# Resource requests
|
|
resources:
|
|
requests:
|
|
cpu: 30m
|
|
memory: 256Mi
|
|
limits:
|
|
memory: 512Mi # Prevent OOM
|
|
|
|
# Falco configuration
|
|
falco:
|
|
# Enable JSON output for better parsing
|
|
json_output: true
|
|
json_include_output_property: true
|
|
|
|
# Log to stdout
|
|
log_stderr: true
|
|
log_syslog: false
|
|
log_level: info
|
|
|
|
# Performance tuning
|
|
buffered_outputs: true
|
|
|
|
# Rules configuration
|
|
rules_files:
|
|
- /etc/falco/falco_rules.yaml
|
|
- /etc/falco/falco_rules.local.yaml
|
|
- /etc/falco/rules.d
|
|
|
|
# Load default rules
|
|
load_plugins: []
|
|
|
|
# Custom rules (add to this section)
|
|
customRules:
|
|
custom-rules.yaml: |-
|
|
# Custom Falco Rules for your cluster
|
|
# Optimized to reduce noise from trivy, postgres, minio, vault, etc.
|
|
|
|
# Macro for known safe processes
|
|
- macro: known_safe_processes
|
|
condition: >
|
|
proc.name in (sh, bash, node, python, java, nginx, postgres,
|
|
trivy, minio, vault, containerd-shim, runc,
|
|
pidof, cat, ls, grep, find, head, tail,
|
|
kubectl, helm, git, curl, wget)
|
|
|
|
# Macro for known safe container images
|
|
- macro: known_safe_images
|
|
condition: >
|
|
(container.image.repository contains "trivy" or
|
|
container.image.repository contains "aquasec" or
|
|
container.image.repository contains "postgres" or
|
|
container.image.repository contains "minio" or
|
|
container.image.repository contains "vault" or
|
|
container.image.repository contains "falco")
|
|
|
|
- rule: Unauthorized Process in Container
|
|
desc: Detect unexpected processes in containers
|
|
condition: >
|
|
spawned_process and container and
|
|
not known_safe_processes and
|
|
not known_safe_images
|
|
output: >
|
|
Unauthorized process started in container
|
|
(user=%user.name command=%proc.cmdline container=%container.name image=%container.image.repository)
|
|
priority: WARNING
|
|
tags: [container, process]
|
|
|
|
- rule: Sensitive File Access
|
|
desc: Detect access to sensitive files (excluding /etc/passwd for normal lookups)
|
|
condition: >
|
|
open_read and container and
|
|
fd.name in (/etc/shadow, /root/.ssh/id_rsa, /root/.ssh/authorized_keys) and
|
|
not known_safe_images
|
|
output: >
|
|
Sensitive file accessed
|
|
(user=%user.name file=%fd.name container=%container.name image=%container.image.repository)
|
|
priority: CRITICAL
|
|
tags: [file, security]
|
|
|
|
# Disabled: Too noisy, causes excessive events
|
|
# - rule: Container Drift Detection
|
|
# desc: Detect file modifications in containers
|
|
# condition: ...
|
|
# Reason: trivy, postgres, minio constantly write files
|
|
|
|
# Enable Prometheus metrics
|
|
metrics:
|
|
enabled: true
|
|
|
|
# Service Monitor for Prometheus Operator
|
|
serviceMonitor:
|
|
enabled: true
|
|
interval: 30s
|
|
|
|
# Grafana dashboard
|
|
grafanaDashboard:
|
|
enabled: false
|
|
|
|
# Falcosidekick integration (for forwarding alerts)
|
|
falcosidekick:
|
|
enabled: true
|
|
fullfqdn: false
|
|
replicaCount: 1
|
|
|
|
resources:
|
|
requests:
|
|
cpu: 10m
|
|
memory: 128Mi
|
|
limits:
|
|
memory: 512Mi # Increased to prevent OOM
|
|
|
|
config:
|
|
# Output to stdout/logs
|
|
debug: false
|
|
|
|
# Slack integration (optional)
|
|
# slack:
|
|
# webhookurl: ""
|
|
# minimumpriority: "warning"
|
|
|
|
# Discord integration (optional)
|
|
# discord:
|
|
# webhookurl: ""
|
|
# minimumpriority: "warning"
|
|
|
|
# Falcosidekick Web UI
|
|
webui:
|
|
enabled: true
|
|
replicaCount: 1
|
|
disableauth: true # Disable basic auth - using Authelia SSO
|
|
|
|
service:
|
|
type: ClusterIP
|
|
port: 2802
|
|
|
|
ingress:
|
|
enabled: false
|
|
# annotations:
|
|
# cert-manager.io/cluster-issuer: letsencrypt-prod
|
|
# hosts:
|
|
# - host: falco0213.kro.kr
|
|
# paths:
|
|
# - path: /
|
|
# pathType: Prefix
|
|
|
|
resources:
|
|
requests:
|
|
cpu: 30m
|
|
memory: 128Mi
|
|
limits:
|
|
# cpu: removed to prevent throttling
|
|
memory: 512Mi
|
|
|
|
redis:
|
|
storageEnabled: true
|
|
resources:
|
|
requests:
|
|
cpu: 10m
|
|
memory: 256Mi
|
|
limits:
|
|
memory: 1Gi # Increased from 512Mi to prevent OOM (84 restarts)
|
|
extraArgs:
|
|
- "--maxmemory 800mb"
|
|
- "--maxmemory-policy allkeys-lru"
|
|
|
|
# Authentication disabled - using Authelia SSO
|
|
# existingSecret: falco-ui-secret
|
|
|
|
# RBAC
|
|
rbac:
|
|
create: true
|
|
|
|
# Service Account
|
|
serviceAccount:
|
|
create: true
|
|
name: falco
|
|
|
|
# Node selector to run on all nodes
|
|
nodeSelector: {}
|
|
|
|
# Tolerations to run on all nodes including masters
|
|
tolerations:
|
|
- effect: NoSchedule
|
|
key: node-role.kubernetes.io/master
|
|
- effect: NoExecute
|
|
key: node-role.kubernetes.io/master
|
|
- effect: NoSchedule
|
|
key: node-role.kubernetes.io/control-plane
|
|
- effect: NoExecute
|
|
key: node-role.kubernetes.io/control-plane
|
|
|
|
# Run as DaemonSet on all nodes
|
|
daemonset:
|
|
updateStrategy:
|
|
type: RollingUpdate
|
|
|
|
# Priority class
|
|
priorityClassName: ""
|
|
|
|
# Extra environment variables
|
|
extraEnvVars: []
|
|
|
|
# Extra volumes
|
|
extraVolumes: []
|
|
extraVolumeMounts: []
|