Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
ehids-agent — Un sistema di rilevamento delle intrusioni basato su host per Linux basato su eBPF. | Kitploit
Strumenti/GitHubGitHub/gojue/ehids-agent
Strumenti DifensiviAnalisi Dinamica (Sandboxing)Mappatura della ReteRilevamento IntrusioniPaper e RicercaApprendimento e FormazioneAnalisi DNSEscape dal Container
GitHubgojue/ehids-agent

ehids-agent

Un sistema di rilevamento delle intrusioni basato su host per Linux basato su eBPF.

Vedi Repository
455862 anni faRevisionato da Kitploit

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 →
Condividi

Inglese | Introduzione in cinese

Introduzione a eHIDS

HIDS demo implementato con tecnologia kernel eBPF.

Attenzione Solo un DEMO basato su eBPF, utilizza invece Tetragon / Tracee / falco.

Implementazioni e Funzionalità:

  1. Cattura dati di rete TCP
  2. Cattura dati di rete UDP
  3. Cattura informazioni DNS in modalità uprobe
  4. Cattura dati di processo
  5. Modalità uprobe per ottenere la cattura degli eventi di esecuzione di comandi JAVA RASP
  6. Implementazione del framework Go per eBPF, implementazione astratta di eventi multi-tipo per il metodo di montaggio kprobe/uprobe.
  7. Gli sviluppatori devono solo implementare tre file:
    • Il file C in modalità kernel.
    • Il file Go in modalità utente.
    • La struttura del messaggio evento in modalità utente, e il framework caricherà ed eseguirà automaticamente.
  8. Gli utenti possono implementare la segnalazione e l'elaborazione dei dati tramite l'interfaccia logger, ad esempio la segnalazione a ES\kafka e altri centri di log.

Principio

Riferimento: Sito ufficiale eBPF

  1. In modalità kernel, il codice eBPF è scritto in C, e llvm lo compila in bytecode eBPF.
  2. La modalità utente è scritta in golang, libreria pura Go cilium/ebpf, caricamento del bytecode eBPF nel kernel, HOOK kprobe/uprobe della funzione corrispondente.
  3. La modalità utente utilizza golang per la lettura, decodifica ed elaborazione degli eventi.

Pianificazione

Programmazione

L'autore sta analizzando i prodotti di protezione di sicurezza runtime implementati da tecnologie eBPF cloud-native come cilium, datadog, tracee, falco e kubeArmor dal punto di vista del codice sorgente. Una volta completata l'analisi, continuerò a condividere il design, le idee e le funzionalità di questo prodotto.

Progresso attuale e modifiche

  • 【COMPLETATO】2021-12-09 Analisi del codice sorgente del meccanismo di implementazione eBPF di Cilium
  • 【COMPLETATO】2021-12-19 Analisi del meccanismo di rilevamento di sicurezza eBPF di datadog
  • 【COMPLETATO】2021-12-30 Programma eBPF in spazio kernel per implementare container escape e nascondere rootkit di account
  • 【IN CORSO】2022-1-31 tracee Analisi del codice sorgente del meccanismo di implementazione eBPF
  • ...

Caratteristiche del Prodotto

  1. Funzioni complete (rete, processo, file, evento)
  2. Monitoraggio
  3. Allarme
  4. Fusione
  5. Statistiche
  6. Riconciliazione
  7. Gestione e controllo unificati

Istruzioni

  1. La parte in modalità kernel è il codice di programmazione ebpf implementato dalla libreria nativa di Linux e utilizza clang (llvm) per la compilazione in bytecode.
  2. La parte in modalità utente è scritta per la libreria cilium/ebpf di golang, che implementa funzioni come il caricamento dei bytecode eBPF nel kernel, il montaggio sui punti di hook e la lettura degli eventi.
  3. Questo progetto utilizza rispettivamente kprobe e uprobe per realizzare la cattura degli eventi di rete di TCP e UDP.

Ambiente di Sviluppo

  • Server UBUNTU 21.04
  • go version go1.17.2 linux/amd64
  • Ubuntu clang version 12.0.0-3ubuntu1~21.04.2
  • openjdk version "1.8.0_292"

Passaggi di installazione dell'ambiente

Vedi anche : Ambiente di sviluppo eBPF di CFC4N

  • sudo apt-get install -y make gcc libssl-dev bc libelf-dev libcap-dev clang gcc-multilib llvm libncurses5-dev git pkg-config libmnl-dev bison flex graphviz
  • sudo apt-get install -y make gcc clang llvm git pkg-config dpkg-dev gcc-multilib
  • cd ~/download/
  • sudo apt update
  • sudo apt-get source linux-image-$(uname -r)
  • sudo apt-get source linux-image-unsigned-$(uname -r)
  • sudo apt install libbfd-dev libcap-dev zlib1g-dev libelf-dev libssl-dev

Compilazione ed esecuzione

Compilazione

root@kitploit:~
git clone https://github.com/ehids/ehids-agent.git
cd ehids
make
./bin/ehids-agent

Esecuzione

Aprire un'altra shell, eseguire comandi di rete e attivare il comportamento di rete

root@kitploit:~
wget www.cnxct.com

Oppure compilare ed eseguire l'esempio di esecuzione di comandi java per testare la funzione di java RASP. Uprobe monta la funzione JDK_execvpe di libjava.so e l'offset dell'indirizzo corrispondente è 0x19C30. Per altre versioni, individuare l'offset da soli.

root@kitploit:~
cd examples
javac Main.java
java Main

Informazioni sulla versione di JAVA JDK

~$java -version

openjdk version "1.8.0_292"

OpenJDK Runtime Environment (build 1.8.0_292-8u292-b10-0ubuntu1-b10)

OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)

Risultati

root@kitploit:~
root@vmubuntu:/home/cfc4n/project/ehids# ./bin/ehids
2021/12/01 19:27:08 start to run EBPFProbeUJavaRASP probe
2021/12/01 19:27:08 start to run EBPFProbeKTCP probe
2021/12/01 19:27:08 start to run EBPFProbeKTCPSec probe
2021/12/01 19:27:08 start to run EBPFProbeKUDP probe
2021/12/01 19:27:08 start to run EBPFProbeUDNS probe
2021/12/01 19:27:08 probeName:EBPFProbeKTCPSec, probeTpye:kprobe, start time:07:23:49, PID:864, UID:101, AF:2, TASK:5systemd-resolv
2021/12/01 19:27:08 probeName:EBPFProbeKUDP, probeTpye:kprobe, PID:0, comm:systemd-resolve, qname:57.22.91.101.in-addr.arpa, qclass:1, qtype:12.
2021/12/01 19:27:09 probeName:EBPFProbeKTCP, probeTpye:kprobe, start time:19:31:19, family:AF_INET, PID:409744, command:curl, UID:0, rx:67408, tx:79, dest:118.31.44.218:20480, source:172.16.71.4, type:OUT, result:True
2021/12/01 19:27:10 probeName:EBPFProbeUJavaRASP, probeTpye:uprobe, JAVA RASP exec and fork. PID:409049, command:ifconfig, mode:MODE_VFORK

Riferimenti

  • https://ebpf.io
  • https://github.com/trichimtrich/dns-tcp-ebpf
  • https://github.com/p-/socket-connect-bpf

Meccanismo di sfruttamento e rilevamento malevolo di eBPF

L'articolo sul meccanismo di sfruttamento e rilevamento malevolo basato su eBPF è stato condiviso sull'account pubblico WeChat di Meituan Security Emergency Response Center,Meccanismo di sfruttamento e rilevamento malevolo di eBPF

Gruppo WeChat

Note

Non è il repository ufficiale di Meituan ed è contribuito solo da ingegneri.

Il repository non contiene la versione completa di HIDS in uso da Meituan, è una demo semplificata, se hai bisogno di vedere il codice sorgente completo in dettaglio, clicca:https://www.cnxct.com/jobs/

Scarica lo strumento