Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
ebpf-container-escape-framework — Audit uniquement EDR eBPF pour Linux 5.15+ LTS : 14 hooks noyau, 15 actions (13 techniques MITRE), lignage de processus, export SIEM, prêt pour K8s/Docker. | Kitploit
Outils/GitHubGitHub/0xmfbk/ebpf-container-escape-framework
Outils DéfensifsSécurité des ConteneursDétection d'IntrusionRéponse aux IncidentsAnalyse de Journaux
GitHub0xmfbk/ebpf-container-escape-framework

ebpf-container-escape-framework

Audit uniquement EDR eBPF pour Linux 5.15+ LTS : 14 hooks noyau, 15 actions (13 techniques MITRE), lignage de processus, export SIEM, prêt pour K8s/Docker.

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Voir le dépôt
Site web
6128il y a 2 joursPas encore vérifié
Partager

Détection d'évasion de conteneur eBPF et EDR d'audit d'exécution

CI Go Version Kernel Support Memory Footprint License

Détection et audit uniquement. Capteur non répressif. Aucun programme BPF ne renvoie -EPERM ; aucun appel système n'est bloqué. Cet agent est un plan d'observation à l'exécution, pas un plan de prévention. Voir docs/SECURITY.md et THREAT_MODEL.md.

eBPF EDR Demo

Un agent EDR Linux ultra léger, en audit uniquement, construit avec eBPF (C) et un démon Go à haute efficacité. Il cible Linux kernel 5.15 LTS et au-delà, avec un chemin critique sans allocation, une empreinte mémoire inférieure à 30 Mo et un enrichissement profond du contexte conteneur/K8s.

✨ Pourquoi ce framework ?

  • 🎯 Fichiers canaris (zéro faux positif) : Plantez des chemins invisibles dans le noyau. Si un attaquant les touche (par exemple, les jetons de compte de service K8s), cela déclenche instantanément une alerte CRITICAL.
  • ☁️ Enrichissement du contexte K8s : Interroge l'API Kubelet de manière asynchrone pour associer cgroup_id au nom du Pod, au namespace et au ServiceAccount sans gonfler le format de transmission noyau de 208 octets.
  • 🐧 Compatible 5.15 LTS : Prise en charge structurelle d'Ubuntu 22.04 et Debian 12, testée et vérifiée sur le noyau 6.12.
  • ⚡ Haute performance : 0,40 % de CPU au repos et 0 perte de ringbuf sous un test de charge de 25 000 fork.

Statut : Phase 2.7 terminée. 13 techniques MITRE ATT&CK sur 16 actions. Vérifié de bout en bout sur le noyau 6.12.111 (82 PASS / 0 FAIL).

Couverture

#ActionSévéritéMITREHook
1Container_Namespace_UnshareHIGHT1611kprobe/__x64_sys_unshare
2Container_Pivot_Root_EscapeCRITICALT1611kprobe/__x64_sys_pivot_root
3Sensitive_File_AccessHIGHT1003.008tracepoint/sys_enter_openat + open
4Process_ExecutionINFO/MEDIUMT1059.004tracepoint/sys_enter_execve
5Network_ConnectionINFO/HIGHT1071tracepoint/sys_enter_connect
6Process_InjectionHIGHT1055.008tracepoint/sys_enter_ptrace
7Log_TamperingHIGHT1562.001tracepoint/sys_enter_unlinkat
8Ebpf_TamperingHIGHT1562.001tracepoint/sys_enter_bpf
9Perf_Event_OpenMEDIUMT1562.001tracepoint/sys_enter_perf_event_open
10Suspicious_MountHIGHT1611tracepoint/sys_enter_mount
11Namespace_SwitchHIGHT1611tracepoint/sys_enter_setns
12Chroot_EscapeHIGHT1611tracepoint/sys_enter_chroot
13Executable_MemoryMEDIUMT1620tracepoint/sys_enter_mprotect
14Core_Pattern_ModificationCRITICALT1611tracepoint/sys_enter_openat + open
15Cgroup_Release_AgentCRITICALT1611tracepoint/sys_enter_openat + open
16Canary_TriggeredCRITICALT1552.001tracepoint/sys_enter_openat + open

Les actions 9 et 13 sont attachées mais supprimées côté noyau par défaut via disabled_actions dans config.toml.

Architecture

Les hooks noyau (14) alimentent un filtre comm/cgroup, une recherche par hachage O(1) canary_paths, puis une recherche action_enabled. Les événements sont poussés vers un ringbuf de 1 MiB transportant des enregistrements de 208 octets. L'espace utilisateur lit dans un tampon mutualisé fixe, applique un token bucket par action, enrichit avec la lignée de processus et le chemin cgroup, et les métadonnées de Pod K8s à partir de caches LRU bornés, et achemine via un Encoder + Sink vers n'importe quelle destination.

Détails complets : docs/ARCHITECTURE.md.

Intégration SIEM

ebpf edr exporte les alertes vers n'importe quel SIEM via une couche format + transport.

[output]
format = "ecs"        # json | ecs | ocsf | cef | leef
target = "webhook"    # file | stdout | syslog | webhook

[output.webhook]
url         = "https://splunk.internal:8088/services/collector/event"
auth_header = "Splunk ${SPLUNK_HEC_TOKEN}"
splunk_hec  = true

Transports pris en charge : file, stdout, syslog (UDP/TCP/TLS), webhook HTTPS. Formats pris en charge : JSON natif, ECS 8.11, OCSF 1.3.0, CEF, LEEF 2.0.

Recettes pour Splunk, Elastic, Sentinel, QRadar et syslog générique : docs/SIEM_INTEGRATION.md.

En l'absence de [output], le comportement est identique octet pour octet à la v1.x.

Prérequis

  • Noyau Linux >= 5.15 LTS avec CONFIG_DEBUG_INFO_BTF=y (/sys/kernel/btf/vmlinux)
  • Testé sur Debian 13 (noyau 6.12). Voir docs/KERNEL_COMPATIBILITY.md pour la matrice complète.
  • clang, gcc, Go >= 1.21, bpftool, en-têtes libbpf
  • Root avec CAP_BPF CAP_PERFMON CAP_SYS_ADMIN

Compilation

make kernel        # kernel/bpf_program.o
make userspace     # userspace/ebpf_controller
make emulation     # emulation/adversary

Vérification (15 étapes principales + 2 étapes SIEM)

sudo -E make verify

Exécute la sonde d'environnement, la compilation, l'assertion de disposition des structures C/Go, le dry-run du vérificateur BPF, le smoke test d'exécution, l'émulation d'adversaire, les performances, la matrice de configuration, le rechargement SIGHUP, le CPU au repos, l'enrichissement de lignage, les bornes de cache, les nouveaux hooks, la matrice de formats et la livraison par webhook.

Installation (systemd)

sudo ./install.sh --dry-run
sudo ./install.sh
sudo ./install.sh --uninstall

Installe /usr/local/sbin/ebpf-edr, /usr/local/lib/ebpf-edr/bpf_program.o, /etc/ebpf-edr/config.toml (existant préservé ; nouveau défaut dans .new), /etc/systemd/system/ebpf-edr.service, /etc/logrotate.d/ebpf-edr.

Configuration

TOML dans /etc/ebpf-edr/config.toml. Priorité : CLI > env (EDR_*) > fichier > valeurs par défaut.

mode = "audit"

disabled_actions = [
    "Perf_Event_Open",
    "Executable_Memory",
]

[log]
path        = "/var/log/ebpf_edr.json"
max_bytes   = 52428800
max_backups = 5
level       = "info"

[filter]
comm_allowlist   = []
cgroup_allowlist = []
canary_paths     = ["/var/run/secrets/kubernetes.io/serviceaccount/token"]

[k8s]
enrichment = true

[rates]
events_per_sec = 200
burst          = 400

[container]
cache_max_entries = 5000

[context]
lineage_max_depth  = 16
lineage_cache_size = 20000
cgroup_cache_size  = 5000

Rechargement : sudo systemctl reload ebpf-edr. mode = "enforce" est rejeté ; cette build est en audit uniquement.

Schéma d'événement (v3, 208 octets sur le fil)

Télécharger l’outil