Slide 1

Slide 1 text

Access, Assert, Act. La sécurité à l'échelle avec Falco 🦅 Speakers : Pierre-Yves Aillet - @pyaillet Eric Briand - @eric_briand

Slide 2

Slide 2 text

Pierre-Yves Aillet Consultant formateur Leader communauté Devops Z Nantes Security Engineer + Official Trainer @pyaillet @pyaillet

Slide 3

Slide 3 text

Éric Briand Directeur technique Nantes GDE Cloud + Official Trainer Orga CNCF Meetup Nantes @eric_briand @ebriand

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Avant - 🐈

Slide 6

Slide 6 text

Maintenant - 🐄🐄🐄🐄🐄🐄🐄🐄🐄

Slide 7

Slide 7 text

Et la sécurité ? 🔐

Slide 8

Slide 8 text

C’est plus possible maintenant 󰢄

Slide 9

Slide 9 text

Plusieurs approches - Enforcement ❌✅ - SELinux - Seccomp

Slide 10

Slide 10 text

Plusieurs approches - Audit 🔍

Slide 11

Slide 11 text

Falco 🦅 Detect abnormal behavior in applications, containers, and hosts. Audit orchestrator activity.

Slide 12

Slide 12 text

Présentation du projet 🎉 - Créé par en 2016 - Open source et en incubation @ CNCF 🥚🐥 - Codé en C/C++ 🤕 - 107 contributeur·trice·s󰠁󰳕 - 4.1k ⭐

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

Trailmap CNCF

Slide 16

Slide 16 text

Architecture 🗺 Falco Userspace Kernel Kernel module / Program eBPF Falco-sidekick Response Engine Application Syscall Hook Logs... Socket eBPF Map HTTP ? Falco rules ...

Slide 17

Slide 17 text

Falco sidekick ...

Slide 18

Slide 18 text

Falco sidekick-ui 📺

Slide 19

Slide 19 text

Syscall 📣 Kernel Disque Programme Syscall (open, read, write, …)

Slide 20

Slide 20 text

Modes d’installation 📦 - Kernel module - À privilégier - Outillage fourni par le projet pour construire le module pour la version de kernel visée - eBPF probe - À utiliser lorsqu’il n’est pas possible de charger un module kernel - Exemple : GKE - ptrace userspace program: pdig - Lent (utilisation de ptrace) - En dernier recours, lorsque les 2 autres solutions sont impossibles

Slide 21

Slide 21 text

Module - Kernel Tracepoints 🔍

Slide 22

Slide 22 text

eBPF - Historique 📄 $ tcpdump tcp port 80 $ tcpdump net 1.1.1.0/24 or net 2.2.2.0/24 and tcp port 80 tcpdump libpcap BPF program Kernel Userspace

Slide 23

Slide 23 text

eBPF

Slide 24

Slide 24 text

eBPF Falco

Slide 25

Slide 25 text

pdig Parfois vous n’êtes pas en mesure d’installer vos propres modules kernel ou sondes eBPF. Dans ce cas, vous pourrez tout de même utiliser une solution moins performante basée sur ptrace : pdig https://github.com/falcosecurity/pdig

Slide 26

Slide 26 text

Règles de Falco 🎛 Des règles sont fournies par le projet Falco : ● 60 règles au niveau O.S. ● 39 règles d’audit k8s ● 15 règles spécifiques à des applications (ex elasticsearch) mais pas activée par défaut ● Règles spécifiques à des CVEs

Slide 27

Slide 27 text

Security Hub

Slide 28

Slide 28 text

Format d’une règle (1/2) rule: shell_in_container desc: notice shell activity within a container condition: container.id != host and proc.name = bash output: shell in a container (container=%container.id) priority: WARNING

Slide 29

Slide 29 text

Format d’une règle (2/2) ● Macros - macro: in_container condition: container.id != host ● Lists - list: userexec_binaries items: [sudo, su] ● On peut aussi étendre des règles - rule: shell_in_container append: true condition: and not user.name=root

Slide 30

Slide 30 text

Démo de falco avec une VM Attaque

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

Intégration avec Kubernetes ● Falco peut s’installer en mode Daemonset (une instance par noeud) ● Grâce à falco-sidekick, on peut utiliser une fonction qui va réagir à un événement Falco (avec Knative par exemple) ● ⚠ Par contre l'instanciation de Falco sous forme de Pod dans Kubernetes n’est pas recommandée : c’est un Pod qui a beaucoup de droits sur les hosts

Slide 33

Slide 33 text

La démo Attaque

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

La suite ? Encore en incubation à la CNCF 👍 Chart Helm 󰠻 Architecture en cours d’évolution 🚀 Le projet progresse rapidement 😅 Documentation pas toujours à jour 🤔 A quand la 1.0 ?

Slide 36

Slide 36 text

La suite ? https://twitter.com/kelseyhightower/status/1326610296530563073?s=20

Slide 37

Slide 37 text

Merci ! Des questions ?

Slide 38

Slide 38 text

Références - https://falco.org/ - https://sysdig.com/blog/sysdig-and-falco-now-powered-by-ebpf/ - https://ebpf.io/ - https://github.com/ebriand/falco-demo