Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
ehids-agent — Система обнаружения вторжений на хосте Linux на основе eBPF. | Kitploit
Инструменты/GitHubGitHub/gojue/ehids-agent
Оборонительные ИнструментыДинамический анализ (песочница)Картирование сетиОбнаружение ВторженийСтатьи и ИсследованияОбучение и ОбразованиеАнализ DNSПобег из Контейнера
GitHubgojue/ehids-agent

ehids-agent

Система обнаружения вторжений на хосте Linux на основе eBPF.

Репозиторий
4558692 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Английский | 中文介绍

Введение в eHIDS

HIDS demo, реализованная с помощью технологии eBPF ядра.

Предупреждение Это всего лишь DEMO на основе eBPF, используйте Tetragon / Tracee / falco вместо него.

Реализации и функции:

  1. Захват данных TCP-сети
  2. Захват данных UDP-сети
  3. Захват DNS-информации в режиме uprobe
  4. Захват данных процессов
  5. Способ uprobe для захвата событий выполнения команд JAVA RASP
  6. Реализация фреймворка Go для eBPF, абстрактная реализация событий нескольких типов для метода монтирования kprobe/uprobe.
  7. Разработчикам нужно реализовать только три файла:
    • Файл на C для режима ядра.
    • Файл на Go для режима пользователя.
    • Структура сообщений событий режима пользователя, а фреймворк автоматически загрузит и выполнит.
  8. Пользователи могут реализовать отчетность и обработку данных в соответствии с интерфейсом логгера, например, отправку в ES\kafka и другие центры логирования.

Принцип

Ссылка: Официальный сайт eBPF

  1. В режиме ядра код eBPF пишется на C и компилируется с помощью llvm в байт-код eBPF.
  • Режим пользователя написан на golang с использованием чистой Go-библиотеки cilium/ebpf, загрузка байт-кода eBPF в ядро, kprobe/uprobe HOOK соответствующих функций.
  • Режим пользователя использует golang для чтения, декодирования и обработки событий.
  • Планирование

    График

    Автор анализирует продукты защиты времени выполнения, реализованные с помощью облачных нативных технологий eBPF, таких как cilium, datadog, tracee, falco и kubeArmor, с точки зрения исходного кода. После завершения анализа я продолжу делиться дизайном, идеями и функциями этого продукта.

    Текущий прогресс и изменения

    • 【DONE】2021-12-09 Анализ исходного кода механизма реализации eBPF в Cilium
    • 【DONE】2021-12-19 Анализ механизма обнаружения безопасности eBPF от datadog
    • 【DONE】2021-12-30 Программа eBPF в пространстве ядра для реализации контейнерного побега и скрытия rootkit аккаунта
    • 【DING】2022-1-31 tracee Анализ исходного кода механизма реализации eBPF
    • ...

    Функции продукта

    1. Полный набор функций (сеть, процессы, файлы, события)
    2. Мониторинг
    3. Оповещения
    4. Слияние (Fusing)
    5. Статистика
    6. Согласование
    7. Единое управление и контроль

    Инструкции

    1. Часть режима ядра — это программный код eBPF, реализованный с помощью нативной библиотеки Linux, и использует clang (llvm) для компиляции байт-кода.
    2. Часть режима пользователя написана для Go-библиотеки cilium/ebpf, которая реализует такие функции, как загрузка байт-кода eBPF в ядро, монтирование к точкам перехвата и чтение событий.
    3. Этот проект использует kprobe и uprobe соответственно для захвата сетевых событий TCP и UDP.

    Среда разработки

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

    Шаги установки среды

    См. также: Среда разработки eBPF от 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

    Компиляция и запуск

    Компиляция

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

    Запуск

    Откройте другой терминал, выполните сетевые команды и вызовите сетевое поведение

    root@kitploit:~
    wget www.cnxct.com
    

    Или скомпилируйте и запустите пример выполнения команды Java для тестирования функции Java RASP. Uprobe монтирует функцию JDK_execvpe из libjava.so, и соответствующее смещение адреса равно 0x19C30. Для других версий найдите смещение адреса самостоятельно.

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

    Информация о версии 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)

    Результаты

    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
    

    Ссылки

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

    Механизм вредоносного использования и обнаружения eBPF

    Статья о механизме вредоносного использования и обнаружения на основе eBPF была опубликована в официальном аккаунте WeChat Meituan Security Emergency Response Center, Механизм вредоносного использования и обнаружения eBPF

    WeChat-группа

    Примечания

    Это не официальный репозиторий Meituan, он создан только силами инженеров.

    Репозиторий не содержит полной версии HIDS, используемой Meituan, только упрощенное демо. Если вам нужно подробно ознакомиться с полным исходным кодом, нажмите: https://www.cnxct.com/jobs/

    Скачать инструмент