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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
eBPF-hid_guard — eBPFを使用したLinuxカーネル空間のHIDインジェクション攻撃検出器。USBおよびBluetooth HIDデバイスの異常なキーストロークタイミングを監視し、攻撃完了前に悪意のあるデバイスを自動的にアンバインドします。 | Kitploit
ツール/GitHubGitHub/fusion1110/ebpf-hid_guard
防御ツールBluetoothセキュリティハードウェアセキュリティ侵入検知異常検知Archived
GitHubfusion1110/ebpf-hid_guard

eBPF-hid_guard

eBPFを使用したLinuxカーネル空間のHIDインジェクション攻撃検出器。USBおよびBluetooth HIDデバイスの異常なキーストロークタイミングを監視し、攻撃完了前に悪意のあるデバイスを自動的にアンバインドします。

リポジトリを見る
41ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

eBPF-hid_guard

以下を参照してください:なぜアーカイブされたか

eBPF HID-BPF struct_ops を使用して、HIDインジェクション攻撃(Rubber Ducky、O.MG Cable、ESP32ベースのキーボードエミュレータ)を検出およびブロックするLinuxカーネル空間のセキュリティモニタ。

このツールの機能

悪意のあるHIDデバイスはキーボードをエミュレートし、人間のタイピストよりもはるかに速い速度でキーストロークを注入します。このツールはそのタイミング異常を検出し、攻撃が完了する前に問題のデバイスをカーネルHIDドライバからアンバインドします。

起動時に、ツールは現在接続されているすべてのHIDデバイスのスナップショットを取得し、それらを無視します — 新しく接続されたデバイスのみが監視されます。USBおよびBluetooth HIDデバイスの両方をサポートします。

ブランチ構成

main — 実証用プロトタイプ

機能するエンドツーエンドパイプライン。ESP32ベースのキーボードエミュレータでテスト済み:

  • 起動時に既存のデバイスをスナップショットし、無視します
  • 並列のUSBおよびBLE検出スレッド — 新しいデバイスを最初に検出した方が優先されます
  • 検出されたデバイスにHID-BPF struct_ops プログラムをアタッチします
  • BPF側はリングバッファを介して生のHIDレポートバイト、タイムスタンプ、ベンダー/プロダクト/バスをキャプチャします
  • ユーザー空間はキーストローク間の差分を計算し、疑念カウンタを追跡し、しきい値を超えたときにsysfsを介してデバイスをアンバインドします

リライトのきっかけとなった既知の制限事項:

  • レポートサイズが8または9バイトにハードコードされている(標準ブートプロトコルキーボードのみ) — 非標準のディスクリプタでは動作しない
  • HIDレポートディスクリプタの解析なし — デバイスタイプは想定され、検証されない; マウス、タッチパッド、複合デバイスでは誤動作する
  • 検出ロジックは完全にユーザー空間にある — BPFは生データパイプとしてのみ使用される
  • hid_id はsysfsのマイナーナンバーから派生しており、再起動間で安定しない

v0.1 — クリーンリライト(中断)

BPFレイヤーを再配線する前に構築された移植可能な基盤:

  • /sys/bus/hid/devices/ 経由ですべてのHIDデバイスを列挙
  • sysfsから生のレポートディスクリプタを読み取り、16進ダンプ
  • HIDレポートディスクリプタパーサー進行中 (hid_desc_parse.c) — デバイスタイプの識別は未完了
  • メモリクリーン(AddressSanitizerで検証済み)

アーカイブした理由

両方のブランチが同じ壁にぶつかりました:HID-BPFは生のバイト配列で動作するため、検出ロジックの分割方法に関わらず、すべてのディスクリプタ解析とデバイスタイプ検証はユーザー空間に存在しなければなりません。その足場をゼロから作り続ける代わりに、[udev-hid-bpf] に移行しました。

このツールの機能

悪意のあるHIDデバイスはキーボードをエミュレートし、人間のタイピストよりもはるかに速い速度でキーストロークを注入します。このツールはそのタイミング異常を検出し、攻撃が完了する前に問題のデバイスをカーネルHIDドライバからアンバインドします。

起動時に、ツールは現在接続されているすべてのHIDデバイスのスナップショットを取得し、それらを無視します — 新しく接続されたデバイスのみが監視されます。USBおよびBluetooth HIDデバイスの両方をサポートします。

ブランチ構成

main — 実証用プロトタイプ

機能するエンドツーエンドパイプライン。ESP32ベースのキーボードエミュレータでテスト済み:

  • 起動時に既存のデバイスをスナップショットし、無視します
  • 並列のUSBおよびBLE検出スレッド — 新しいデバイスを最初に検出した方が優先されます
  • 検出されたデバイスにHID-BPF struct_ops プログラムをアタッチします
  • BPF側はリングバッファを介して生のHIDレポートバイト、タイムスタンプ、ベンダー/プロダクト/バスをキャプチャします
  • ユーザー空間はキーストローク間の差分を計算し、疑念カウンタを追跡し、しきい値を超えたときにsysfsを介してデバイスをアンバインドします

リライトのきっかけとなった既知の制限事項:

  • レポートサイズが8または9バイトにハードコードされている(標準ブートプロトコルキーボードのみ) — 非標準のディスクリプタでは動作しない
  • HIDレポートディスクリプタの解析なし — デバイスタイプは想定され、検証されない; マウス、タッチパッド、複合デバイスでは誤動作する
  • 検出ロジックは完全にユーザー空間にある — BPFは生データパイプとしてのみ使用される
  • hid_id はsysfsのマイナーナンバーから派生しており、再起動間で安定しない

v0.1 — クリーンリライト(開発中)

BPFレイヤーを再配線する前に構築中の移植可能な基盤:

  • /sys/bus/hid/devices/ 経由ですべてのHIDデバイスを列挙
  • sysfsから生のレポートディスクリプタを読み取り、16進ダンプ
  • HIDレポートディスクリプタパーサー進行中 (hid_desc_parse.c) — アタッチ前にデバイスタイプを識別予定
  • メモリクリーン(AddressSanitizerで検証済み)

想定アーキテクチャ

root@kitploit:~
┌─────────────────────────────────────────────────────┐
│                    Userspace                         │
│                                                      │
│  udev monitor → descriptor parse → keyboard?         │
│       ↓                                              │
│  populate BPF config maps (thresholds, device info)  │
│       ↓                                              │
│  attach HID-BPF struct_ops to hid_id                 │
│       ↓                                              │
│  ring buffer consumer → sysfs unbind on attack       │
└──────────────────────────┬──────────────────────────┘
                           │
┌──────────────────────────▼──────────────────────────┐
│                  BPF (kernel side)                   │
│                                                      │
│  hid_device_event → timing math (Welford's online    │
│  variance, fixed-point) → per-key timestamp maps     │
│  → ring buffer submit on anomaly                     │
└─────────────────────────────────────────────────────┘

検出ロジックはBPFに移動します。ユーザー空間はディスクリプタ解析、設定マップの設定、およびアンバインド応答を処理します。デバイス接続とBPFアタッチの間の列挙ウィンドウは、文書化された制限された制限です — 実際のHIDインジェクションツールは意図的な列挙後遅延を含んでおり、このウィンドウ内に収まります。

必要条件

  • Linuxカーネル ≥ 6.3 (HID-BPF struct_ops 安定)
  • libbpf 開発ヘッダ
  • LLVM/Clang (BPFコンパイル用)
  • libelf および zlib 開発ヘッダ
  • ルート権限

ビルド

root@kitploit:~
make

使用方法

root@kitploit:~
# 自動検出:プロンプトが表示されたらデバイスを接続またはペアリング
sudo ./hid_guard

# 既知のhid_idによる手動オーバーライド
sudo ./hid_guard <hid_id>

# 利用可能なHIDデバイスをリスト表示
ls /sys/bus/hid/devices/

検出調整パラメータ (main.c)

パラメータデフォルト意味
ATTACK_MAX_MS5 msインジェクションを示すキーストローク間隔
HUMAN_MIN_MS

ステータス

テスト

ESP32-S2がBLEキーストローク送信に使用されました。次に、rubber duckyやESP32-S3などのハードウェアを使用して、USBポートをターゲットにテストします。

ライセンス

GPL v2

ツールをダウンロード
30 ms
人間のタイピングの最小間隔
ALERT_THRESHOLD3ブロック前の連続した疑わしいイベント数
コンポーネント状態
デバイス列挙完了
レポートディスクリプタ読み取り完了
ディスクリプタパーサー(キーボード識別)進行中
BPF設定マップの設定計画中
HID-BPF struct_ops アタッチ完了(mainブランチ)
タイミング検出(Welford分散、BPF側)計画中
Sysfsアンバインドブロッキング完了(mainブランチ)