Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
ehids-agent — Ein Linux-hostbasiertes Intrusion Detection System basierend auf eBPF. | Kitploit
Tools/GitHubGitHub/gojue/ehids-agent
DefensivwerkzeugeDynamische Analyse (Sandboxing)NetzwerkkartierungEinbruchserkennungPapers & ForschungLernen & BildungDNS-AnalyseContainer-Ausbruch
GitHubgojue/ehids-agent

ehids-agent

Ein Linux-hostbasiertes Intrusion Detection System basierend auf eBPF.

Repository anzeigen
45586vor 2 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Englisch | 中文介绍

Einführung in eHIDS

HIDS-Demo implementiert mit eBPF-Kernel-Technologie.

Warnung Nur eine eBPF-basierte DEMO, bitte verwenden Sie stattdessen Tetragon / Tracee / falco.

Implementierungen und Funktionen:

  1. Erfassung von TCP-Netzwerkdaten
  2. Erfassung von UDP-Netzwerkdaten
  3. Erfassung von DNS-Informationen im uprobe-Modus
  4. Erfassung von Prozessdaten
  5. Mit uprobe die Erfassung von Ereignissen bei der Ausführung von JAVA-RASP-Befehlen realisieren
  6. Go-Framework-Implementierung von eBPF, abstrakte Implementierung von Ereignissen mehrerer Typen für die kprobe-/uprobe-Mounting-Methode.
  7. Entwickler müssen nur drei Dateien implementieren:
    • Die C-Datei für den Kernel-Modus.
    • Die Go-Datei für den Benutzermodus.
    • Die Ereignisnachrichtenstruktur für den Benutzermodus, und das Framework lädt und führt automatisch aus.
  8. Benutzer können die Datenberichterstattung und -verarbeitung gemäß der Logger-Schnittstelle implementieren, z. B. die Meldung an ES\Kafka und andere Logzentren.

Prinzip

Referenz: eBPF Offizielle Website

  1. Im Kernel-Modus wird eBPF-Code in C geschrieben und mit llvm in eBPF-Bytecode kompiliert.
  2. Der Benutzermodus ist in Golang geschrieben, cilium/ebpf reine Go-Klassenbibliothek, Kernel-Laden von eBPF-Bytecode, kprobe/uprobe HOOK der entsprechenden Funktion.
  3. Der Benutzermodus verwendet Golang zum Lesen, Dekodieren und Verarbeiten von Ereignissen.

Planung

Zeitplan

Der Autor analysiert die Laufzeitsicherheits-Schutzprodukte, die von Cloud-nativen eBPF-Technologien wie cilium, datadog, tracee, falco und kubeArmor implementiert werden, aus der Perspektive des Quellcodes. Nach Abschluss der Analyse werde ich weiterhin das Design, die Ideen und Funktionen dieses Produkts teilen.

Aktueller Fortschritt & Änderungen

  • 【ERLEDIGT】2021-12-09 Quellcode-Analyse des Cilium-eBPF-Implementierungsmechanismus
  • 【ERLEDIGT】2021-12-19 Analyse des eBPF-Sicherheitserkennungsmechanismus von Datadog
  • 【ERLEDIGT】2021-12-30 Kernelzustands-eBPF-Programm zur Implementierung von Container-Escape und Verstecken von Account-Rootkits
  • 【OFFEN】2022-1-31 tracee Quellcode-Analyse des eBPF-Implementierungsmechanismus
  • ...

Produktmerkmale

  1. Vollständige Funktionen (Netzwerk, Prozess, Datei, Ereignis)
  2. Überwachung
  3. Alarmierung
  4. Absicherung
  5. Statistiken
  6. Abgleich
  7. Einheitliche Verwaltung und Steuerung

Anleitung

  1. Der Kernel-Modus-Teil ist der eBPF-Programmiercode, der von der nativen Linux-Klassenbibliothek implementiert wird, und verwendet clang (llvm) zur Bytecode-Kompilierung.
  2. Der Benutzermodus-Teil ist für die cilium/ebpf-Klassenbibliothek von Golang geschrieben, die Funktionen wie das Laden von eBPF-Bytecodes in den Kernel, das Mounten an Hook-Punkten und das Lesen von Ereignissen implementiert.
  3. Dieses Projekt verwendet kprobe und uprobe, um die Netzwerkereigniserfassung von TCP und UDP zu realisieren.

Entwicklungsumgebung

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

Installationsschritte für die Umgebung

Siehe auch: CFC4N's eBPF-Entwicklungsumgebung

  • 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

Kompilieren und Ausführen

Kompilierung

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

Ausführen

Öffnen Sie eine weitere Shell, führen Sie Netzwerkbefehle aus und lösen Sie Netzwerkverhalten aus.

root@kitploit:~
wget www.cnxct.com

Oder kompilieren und führen Sie das Java-Befehlsausführungsbeispiel aus, um die Funktion von Java RASP zu testen. Uprobe mountet die JDK_execvpe-Funktion von libjava.so, und die entsprechende Offset-Adresse offset ist 0x19C30. Für andere Versionen ermitteln Sie bitte selbst die Offset-Adresse.

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

JAVA JDK Versionsinformationen

~$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)

Ergebnisse

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

Referenzen

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

Bösartige Ausnutzung und Erkennungsmechanismus von eBPF

Der Artikel über bösartige Ausnutzung und Erkennungsmechanismen basierend auf eBPF wurde auf dem WeChat-öffentlichen Konto des Meituan Security Emergency Response Center geteilt: Bösartige Nutzung und Erkennungsmechanismus von eBPF

WeChat-Gruppe

Anmerkungen

Es handelt sich nicht um das offizielle Repository von Meituan und es wird nur von Ingenieuren beigetragen.

Das Repository enthält nicht die vollständige HIDS-Version, die von Meituan verwendet wird. Für die gestraffte Demo, falls Sie den vollständigen Quellcode im Detail sehen möchten, klicken Sie bitte: https://www.cnxct.com/jobs/

Tool herunterladen