Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ehids-agent — eBPFに基づくLinuxホストベースの侵入検知システム。 | Kitploit
ツール/GitHubGitHub/gojue/ehids-agent
防御ツール動的分析 (サンドボックス)ネットワークマッピング侵入検知論文と研究学習と教育DNS分析コンテナエスケープ
GitHubgojue/ehids-agent

ehids-agent

eBPFに基づくLinuxホストベースの侵入検知システム。

リポジトリを見る
455862年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

English | 中文介绍

eHIDS の紹介

eBPF カーネル技術で実装された HIDS デモ。

警告 これは eBPF ベースのデモにすぎません。代わりに Tetragon / Tracee / falco を使用してください。

実装と機能:

  1. TCP ネットワークデータキャプチャ
  2. UDP ネットワークデータキャプチャ
  3. uprobe モードでの DNS 情報キャプチャ
  4. プロセスデータキャプチャ
  5. uprobe 方式による JAVA RASP コマンド実行シナリオのイベントキャプチャ
  6. Go フレームワークによる eBPF の実装。kprobe/uprobe のマウント方式における複数タイプのイベントの抽象化実装。
  7. 開発者は以下の 3 ファイルのみを実装する必要があります:
    • カーネルモードの C ファイル
    • ユーザーモードの Go ファイル
    • ユーザーモードのイベントメッセージ構造。フレームワークが自動的にロード・実行します。
  8. ユーザーは logger インターフェースに従ってデータの報告・処理を実装できます(例:ES/kafka などのログセンターへの報告)。

原理

参照 : eBPF 公式サイト

  1. カーネルモードでは、C で eBPF コードを記述し、llvm で eBPF バイトコードにコンパイルします。
  2. ユーザーモードは golang で記述され、cilium/ebpf 純粋な Go ライブラリを使用し、eBPF バイトコードのカーネルへのロード、kprobe/uprobe HOOK 対応関数のマウントを行います。
  3. ユーザーモードでは golang を使用してイベントの読み取り、デコード、処理を行います。

計画

スケジュール

著者は cilium、datadog、tracee、falco、kubeArmor などのクラウドネイティブ eBPF 技術で実装されたランタイムセキュリティ保護製品をソースコードの観点から分析しています。 分析完了後、本製品の設計、アイデア、機能を引き続き共有します。

現在の進捗と変更

  • 【完了】2021-12-09 Cilium eBPF 実装メカニズムのソースコード解析
  • 【完了】2021-12-19 datadog の eBPF セキュリティ検出メカニズムの解析
  • 【完了】2021-12-30 カーネル状態 eBPF プログラムによるコンテナエスケープとアカウントハイディング rootkit の実装
  • 【進行中】2022-1-31 tracee eBPF 実装メカニズムのソースコード解析
  • ...

製品機能

  1. 完全な機能(ネットワーク、プロセス、ファイル、イベント)
  2. 監視
  3. アラート
  4. ヒュージング
  5. 統計
  6. リコンシリエーション
  7. 一元管理・制御

使用方法

  1. カーネルモード部分は Linux ネイティブクラスライブラリで実装された ebpf プログラミングコードで、clang (llvm) を使用してバイトコードコンパイルを行います。
  2. ユーザーモード部分は golang の 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"

環境インストール手順

参照 : CFC4N の eBPF 開発環境

  • 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 は libjava.so の JDK_execvpe 関数をマウントし、対応するオフセットアドレスは 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 公式アカウントで公開されています:eBPF の悪用と検出メカニズム

WeChat グループ

注意事項

これは美団の公式リポジトリではなく、エンジニアが個人的に提供しているものです。

このリポジトリは、美団が使用している完全な HIDS バージョンを含んでいません。簡略化されたデモです。完全なソースコードを詳しく確認したい場合は、こちらをクリックしてください:https://www.cnxct.com/jobs/

ツールをダウンロード