Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
ebpf-container-escape-framework — EDR eBPF di sola verifica per Linux 5.15+ LTS: 14 hook del kernel, 15 azioni (13 tecniche MITRE), lineage dei processi, esportazione SIEM, pronto per K8s/Docker. | Kitploit
Strumenti/GitHubGitHub/0xmfbk/ebpf-container-escape-framework
Strumenti DifensiviSicurezza dei ContenitoriRilevamento IntrusioniRisposta agli IncidentiAnalisi dei Log
GitHub0xmfbk/ebpf-container-escape-framework

ebpf-container-escape-framework

EDR eBPF di sola verifica per Linux 5.15+ LTS: 14 hook del kernel, 15 azioni (13 tecniche MITRE), lineage dei processi, esportazione SIEM, pronto per K8s/Docker.

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Vedi Repository
Sito web
61171 giorno faNon ancora revisionato
Condividi

Rilevamento di Container Escape e Audit Runtime EDR tramite eBPF

CI Go Version Kernel Support Memory Footprint License

Solo rilevamento e audit. Sensore non applicativo. Nessun programma BPF restituisce -EPERM; nessuna syscall viene bloccata. Questo agente è un piano di osservazione runtime, non un piano di prevenzione. Vedi docs/SECURITY.md e THREAT_MODEL.md.

eBPF EDR Demo

Un agente EDR per Linux ultra leggero, solo audit, realizzato con eBPF (C) e un daemon Go altamente efficiente. È destinato a Linux kernel 5.15 LTS e versioni successive, con un hot path a zero allocazioni, un footprint di memoria inferiore a 30MB e un profondo arricchimento del contesto container/K8s.

✨ Perché questo framework?

  • 🎯 Canary Files (Zero Falsi Positivi): Pianta percorsi invisibili nel kernel. Se un attaccante li tocca (ad es. i token degli account di servizio K8s), scatta istantaneamente un avviso CRITICAL.
  • ☁️ Arricchimento del contesto K8s: Interroga in modo asincrono l'API Kubelet per mappare cgroup_id su Pod Name, Namespace e ServiceAccount senza appesantire il formato wire del kernel da 208 byte.
  • 🐧 Compatibile con 5.15 LTS: Supporto strutturale per Ubuntu 22.04 e Debian 12, testato e verificato su Kernel 6.12.
  • ⚡ Alte prestazioni: 0.40% di CPU in idle e 0 drop del ringbuf sotto uno stress test di 25.000 fork.

Stato: Fase 2.7 completata. 13 tecniche MITRE ATT&CK su 16 azioni. Verificato end to end su kernel 6.12.111 (82 PASS / 0 FAIL).

Copertura

#AzioneGravità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

Le azioni 9 e 13 sono collegate ma soppresse lato kernel per impostazione predefinita tramite disabled_actions in config.toml.

Architettura

Gli hook del kernel (14) alimentano un filtro comm/cgroup, una ricerca hash O(1) su canary_paths, poi una ricerca su action_enabled. Gli eventi vengono inviati a un ringbuf da 1 MiB che trasporta record da 208 byte. Lo userspace legge in un buffer pooled fisso, applica un token bucket per azione, arricchisce con la lineage del processo e il percorso cgroup, e con i metadati del Pod K8s da cache LRU limitate, e instrada attraverso un Encoder + Sink verso qualsiasi destinazione.

Dettagli completi: docs/ARCHITECTURE.md.

Integrazione SIEM

ebpf edr esporta gli avvisi verso qualsiasi SIEM tramite un livello formato + trasporto.

[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

Trasporti supportati: file, stdout, syslog (UDP/TCP/TLS), webhook HTTPS. Formati supportati: JSON nativo, ECS 8.11, OCSF 1.3.0, CEF, LEEF 2.0.

Ricette per Splunk, Elastic, Sentinel, QRadar e syslog generico: docs/SIEM_INTEGRATION.md.

In assenza di [output], il comportamento è identico byte per byte alla v1.x.

Requisiti

  • Linux Kernel >= 5.15 LTS con CONFIG_DEBUG_INFO_BTF=y (/sys/kernel/btf/vmlinux)
  • Testato su Debian 13 (Kernel 6.12). Consulta docs/KERNEL_COMPATIBILITY.md per la matrice completa.
  • clang, gcc, Go >= 1.21, bpftool, header libbpf
  • Root con CAP_BPF CAP_PERFMON CAP_SYS_ADMIN

Compilazione

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

Verifica (15 fasi principali + 2 fasi SIEM)

sudo -E make verify

Esegue la sonda dell'ambiente, la compilazione, l'asserzione del layout delle struct C/Go, la dry-run del verificatore BPF, lo smoke test a runtime, l'emulazione dell'avversario, le prestazioni, la matrice di configurazione, il reload SIGHUP, la CPU in idle, l'arricchimento della lineage, i limiti della cache, i nuovi hook, la matrice dei formati e la consegna del webhook.

Installazione (systemd)

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

Installa /usr/local/sbin/ebpf-edr, /usr/local/lib/ebpf-edr/bpf_program.o, /etc/ebpf-edr/config.toml (quello esistente viene preservato; il nuovo default in .new), /etc/systemd/system/ebpf-edr.service, /etc/logrotate.d/ebpf-edr.

Configurazione

TOML in /etc/ebpf-edr/config.toml. Precedenza: CLI > env (EDR_*) > file > default.

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

Reload: sudo systemctl reload ebpf-edr. mode = "enforce" viene rifiutato; questa build è solo in modalità audit.

Schema degli eventi (v3, 208 byte sul wire)

Scarica lo strumento