06 Seguridad de Runtime en Kubernetes
Seguridad de Runtime en Kubernetes
La seguridad de Kubernetes depende en gran medida del Runtime como hemos visto en docker, con la complejidad de que podemos encontrarnos con cientos de servidores.
El material de este ejercicio se realiza en la carpeta 6
Falco
Cloud Native Runtime Security
https://github.com/falcosecurity/falco
Falco puede detectar y alertar sobre cualquier comportamiento que implique realizar llamadas al sistema Linux. Las alertas de Falco se activan en función de llamadas al sistema específicas, argumentos y propiedades del proceso de llamada. Falco opera en el espacio del usuario y el espacio del kernel. Las llamadas al sistema son interpretadas por el módulo kernel de Falco. Luego, las llamadas al sistema se analizan utilizando las bibliotecas en el espacio de usuario. Luego, los eventos se filtran utilizando un motor de reglas donde se configuran las reglas de Falco. por último, los eventos sospechosos reciben alertas sobre salidas que están configuradas como Syslog, archivos, salida estándar y otras.
Falco se encuentra configurado en el sistema, para instalar falco en Ubuntu se realizan los siguientes pasos:
url -s https://falco.org/repo/falcosecurity-packages.asc | sudo apt-key add – echo “deb https://download.falco.org/packages/deb stable main” | \ tee /etc/apt/sources.list.d/falcosecurity.list apt-get update apt install -y dkms make linux-headers-$(uname -r) apt install -y clang llvm apt install -y dialog FALCO_FRONTEND=noninteractive apt-get install -y falco systemctl mask falcoctl-artifact-follow.service falco-driver-loader bpf systemctl enable falco-bpf.service systemctl start falco-bpf.service |
Falco se inicia en modo auditoría, para acceder a los logs ejecutaremos:
sudo less /var/log/syslog |
¿Vemos los pasos que hemos realizado en puntos anteriores?
Tetragon
El componente Tetragon permite una potente observabilidad de la seguridad basada en eBPF y cumplimiento del tiempo de ejecución en tiempo real.
Tetragon detecta y es capaz de reaccionar ante eventos importantes para la seguridad, como
Eventos de ejecución de procesos
Actividad de llamadas al sistema
Actividad de E/S, incluida la red y el acceso a archivos
Cuando se usa en un entorno de Kubernetes, Tetragon es compatible con Kubernetes, es decir, comprende las identidades de Kubernetes, como espacios de nombres, pods, etc., por lo que la detección de eventos de seguridad se puede configurar en relación con cargas de trabajo individuales.
https://github.com/cilium/tetragon
Tetragon está desplegado en Kubernetes, en la carpeta 6 tenemos una demo de sus características.