ebpH
ebpH copied to clipboard
ebpH (Extended BPF Process Homeostasis) monitors process behavior on your system to establish normal behavioral patterns. ebpH reports anomalous behavior and prevents attacks by denying anoamlous acce...
ebpH
Description
ebpH stands for Extended BPF Process Homeostasis.
ebpH is a modern host-based intrusion detection system for Linux 5.8+ that leverages the power of Extended BPF (eBPF) to monitor processes and detect anomalous behavior. This effectively constitutes an eBPF implementation of pH (Process Homeostasis).
Disclaimer
This product comes with no warranty, and is built as a research system. It should be perfectly safe to run on your system due to the safety guarantees of eBPF, but we make no claims about functionality.
Papers
ebpH
pH
- My supervisor's original dissertation on pH
- A Sense of Self for UNIX Processes
- Lightweight Intrustion Detection for Networked Operating Systems
- Lookahead Pairs and Full Sequences: A Tale of Two Anomaly Detection Methods
Prerequisites
- Linux 5.8+ compiled with at least
CONFIG_BPF=y,CONFIG_BPF_SYSCALL=y,CONFIG_BPF_JIT=y,CONFIG_TRACEPOINTS=y,CONFIG_BPF_LSM=y,CONFIG_DEBUG_INFO=y,CONFIG_DEBUG_INFO_BTF=y,CONFIG_LSM="bpf". pahole >= 0.16 must be installed for the kernel to be built with BTF info. - Either the latest version of bcc from https://github.com/iovisor/bcc or bcc version 0.16+.
- If building from source, be sure to include
-DPYTHON_CMD=python3in your the cmake flags
- If building from source, be sure to include
- Python 3.8+
Installation
- Install the prerequisites (see above).
git clone https://github.com/willfindlay/ebpHcd ebpH && make install(You will be asked for your password)- To install the systemd unit:
make systemd(You will be asked for your password)
How to Use / Examples
- Run
$ sudo ebphd startto start the daemon. - Run
$ sudo ebph admin statusto check daemon status. - Run
$ sudo ebph psto check monitored processes. - Run
$ sudo ebph ps -pto list all active profiles.
Or, with systemd:
- Run
$ sudo systemctl start ebphdto start the daemon if not already running.