Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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é.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
ehids-agent — Un système de détection d'intrusion basé sur l'hôte Linux utilisant eBPF. | Kitploit
Outils/GitHubGitHub/gojue/ehids-agent
Outils DéfensifsAnalyse Dynamique (Sandboxing)Cartographie RéseauDétection d'IntrusionArticles et RechercheApprentissage et ÉducationAnalyse DNSÉvasion de Conteneur
GitHubgojue/ehids-agent

ehids-agent

Un système de détection d'intrusion basé sur l'hôte Linux utilisant eBPF.

Voir le dépôt
455869il y a 2 ansVérifié par Kitploit

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

Anglais | 中文介绍

Introduction à eHIDS

HIDS demo implémenté par la technologie du noyau eBPF.

Avertissement Ce n'est qu'une DÉMO basée sur eBPF, veuillez utiliser Tetragon / Tracee / falco à la place.

Implémentations et fonctionnalités :

  1. Capture des données réseau TCP
  2. Capture des données réseau UDP
  3. Capture des informations DNS en mode uprobe
  4. Capture des données de processus
  5. Capture d'événements de scénario d'exécution de commande JAVA RASP via uprobe
  6. Implémentation du framework Go pour eBPF, implémentation abstraite d'événements multi-types pour la méthode de montage kprobe/uprobe.
  7. Les développeurs n'ont besoin d'implémenter que trois fichiers :
    • Le fichier C en mode noyau.
    • Le fichier Go en mode utilisateur.
    • La structure du message d'événement en mode utilisateur, et le framework chargera et exécutera automatiquement.
  8. Les utilisateurs peuvent implémenter le rapport et le traitement des données selon l'interface du logger, par exemple pour rapporter vers ES\kafka et d'autres centres de logs.

Principe

Référence : Site officiel d'eBPF

  1. En mode noyau, le code eBPF est écrit en C, et llvm est compilé en bytecode eBPF.
  2. Le mode utilisateur est écrit en golang, la bibliothèque de classes Go pure cilium/ebpf, chargement du noyau du bytecode eBPF, kprobe/uprobe HOOK de la fonction correspondante.
  3. Le mode utilisateur utilise golang pour la lecture, le décodage et le traitement des événements.

Planification

Calendrier

L'auteur analyse les produits de protection de sécurité runtime implémentés par les technologies eBPF cloud-native telles que cilium, datadog, tracee, falco et kubeArmor du point de vue du code source. Une fois l'analyse terminée, je continuerai à partager la conception, les idées et les fonctions de ce produit.

Progrès actuels et changements

  • 【DONE】2021-12-09 Analyse du code source du mécanisme d'implémentation de Cilium eBPF
  • 【DONE】2021-12-19 Analyse du mécanisme de détection de sécurité eBPF de datadog
  • 【DONE】2021-12-30 Programme eBPF en mode noyau pour implémenter l'évasion de conteneur et le rootkit de compte caché
  • 【DING】2022-01-31 tracee Analyse du code source du mécanisme d'implémentation eBPF
  • ...

Fonctionnalités du produit

  1. Fonctions complètes (réseau, processus, fichier, événement)
  2. Surveillance
  3. Alerte
  4. Fusion
  5. Statistiques
  6. Réconciliation
  7. Gestion et contrôle unifiés

Instructions

  1. La partie en mode noyau est le code de programmation ebpf implémenté par la bibliothèque de classes native linux, et utilise clang (llvm) pour la compilation en bytecode.
  2. La partie en mode utilisateur est écrite pour la bibliothèque de classes cilium/ebpf de golang, qui implémente des fonctions telles que le chargement de bytecodes eBPF dans le noyau, le montage sur des points de hook et la lecture d'événements.
  3. Ce projet utilise respectivement kprobe et uprobe pour réaliser la capture des événements réseau TCP et UDP.

Environnement de développement

  • 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"

Étapes d'installation de l'environnement

Voir aussi : Environnement de développement eBPF de 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

Compilation et exécution

Compilation

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

Exécution

Ouvrez un autre shell, exécutez des commandes réseau et déclenchez un comportement réseau

root@kitploit:~
wget www.cnxct.com

Ou compilez et exécutez l'exemple d'exécution de commande java pour tester la fonction de java RASP. Uprobe monte la fonction JDK_execvpe de libjava.so, et le décalage d'adresse correspondant est 0x19C30. Pour les autres versions, veuillez localiser l'adresse de décalage par vous-même.

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

Informations sur la version JDK Java

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

Résultats

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

Références

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

Mécanisme d'exploitation malveillante et de détection de l'eBPF

L'article sur le mécanisme d'exploitation malveillante et de détection basé sur eBPF a été partagé sur le compte public WeChat du Meituan Security Emergency Response Center,Mécanisme d'utilisation malveillante et de détection de l'eBPF

Groupe WeChat

Notes

Ce n'est pas le dépôt officiel de Meituan, et il est seulement contribué par des ingénieurs.

Le dépôt ne contient pas la version complète de HIDS utilisée par Meituan, pour la démo simplifiée, si vous souhaitez voir le code source complet en détail, veuillez cliquer:https://www.cnxct.com/jobs/

Télécharger l’outil