Contexto
Já pensou em uma ferramenta HIDS para o seu Kubernetes gerenciado? Há uma maneira pouco dramática para implantá-la utilizando Falco com suporte a eBPF. É uma das três alternativas disponibilizadas. Além disso, é uma recomendação para GKE:
We suggest using the eBPF driver for running Falco on GKE.
Falco é uma solução CNCF e você pode conhecer mais no site: falco.org
Requisitos
Na documentação oficial, os requisitos para utilizar eBPF probe são:
CONFIG_BPF_JIT
habilitado- valor da variável de ambiente
FALCO_BPF_PROBE
para vazio net.core.bpf_jit_enable
definida para 1 (habilita BPF JIT Compiler)
Antes, vamos verificar a versão de kernel atual:
$ uname -r
5.4.170+
✅ Bom! É uma versão com suporte.
Verificando CONFIG_BPF_JIT
:
$ grep CONFIG_BPF_JIT /boot/config-$(uname -r)
CONFIG_BPF_JIT_ALWAYS_ON=y
CONFIG_BPF_JIT=y
✅ Sim, está habilitado.
Verificando FALCO_BPF_PROBE
:
{{- if .Values.ebpf.enabled }}
- name: FALCO_BPF_PROBE
value: {{ .Values.ebpf.path }}
{{- end }}
✅ Sim, o template se encarrega disso.
Verificando net.core.bpf_jit_enable
:
$ sudo sysctl net.core.bpf_jit_enable
net.core.bpf_jit_enable = 1
✅ Sim, está habilitado.
Instalação
O comando abaixo utilizando Helm Chart fará a instalação necessária:
helm repo add falcosecurity https://falcosecurity.github.io/charts
helm repo update
helm install falco falcosecurity/falco --set ebpf.enabled=true
Você pode conferir os objetos criados com:
$ kubectl get all -n falco
Onde você pode incrementar outros parâmetros para habilitar Falcosidekick com WebUI no mesmo Helm Chart:
...
--set falcosidekick.enabled=true \
--set falcosidekick.webui.enabled=true
Confira os parâmetros disponíveis aqui.
E uma lista de outputs disponíveis para Falcosidekick aqui como Google Cloud Storage, Slack, webhooks etc.
Obs.: você pode usar um manifesto Yaml com parâmetro -f values.yaml
se preferir.
Pronto
O que está acontecendo agora?
Você pode fazer um Port Forward para a UI:
kubectl port-forward svc/falco-falcosidekick-ui 2802:2802 -n falco
Feito! Vá ao nevegador: localhost:2802/ui
Então, você verá uma página como essa:
O conjunto de regras padrão é aplicado. Você pode evoluir a sua configuração como necessário.
Se divirta! Obrigado.