Skip to main content

eBPF-based System Inspector and Forensic Tool (Multi-Agent/Web)

Project description

sys-inspector - eBPF-based System Inspector and Audit Tool

OBS Build Status PyPI version License: GPL v3 Python 3.6+ Platform: Linux GitHub Stars GitHub Forks GitHub Release Build Status Issues Code Size Last Commit Code Quality

Sys-Inspector is an advanced observability and forensic tool powered by eBPF (Extended Berkeley Packet Filter).

Unlike traditional tools that poll /proc periodically, Sys-Inspector hooks directly into the Linux Kernel to capture events (process execution, file I/O, network connections) in real-time.

Features (v0.90.00)

  • Fleet View Dashboard: Monitor multiple infrastructure nodes from a single centralized web interface.
  • Forensic Time Machine: Pause live execution and travel back in time to inspect historical snapshots stored in SQLite.
  • Kernel-Level Visibility: Uses eBPF kprobes/tracepoints for zero-blindspot monitoring.
  • Deep Forensics:
    • Real-time MD5 Hashes: Calculates hashes of executed binaries instantly.
    • Context Awareness: Detects SSH origin IPs, Sudo users, and Tmux sessions.
    • Recursive Alert Bubbling: Child process anomalies (e.g., Unsafe Libs, Net Errors) propagate warnings up to the parent process in the tree view.
  • Topology & Infrastructure:
    • Storage Topology: Hierarchical view of Disks -> Partitions -> LVM -> Mount Points with HCTL info.
    • Network Topology: Auto-detection of Gateway, DNS servers, and Interfaces.
  • Enterprise Reporting:
    • Generates self-contained, interactive HTML Dashboards.
    • Custom Logo Support: Embeds your organization's logo automatically.
    • Visual Badges: Instant identification of [SSH], [SUDO], [UNSAFE], [NET ERR].

Requirements

  • Linux Kernel 4.15+ (5.x+ recommended for BTF support).
  • Root privileges (sudo).
  • Python 3.6+.
  • BCC Tools (python3-bcc).
  • iproute2 (for tc command, required only for Chaos Maker).
  • Additional Python libs: flask, cryptography, pyyaml.

Installation (PyPI)

Works on any Linux distribution with Python 3.6+.

    pip install sys-inspector

Installation (RPM / openSUSE)

You can install Sys-Inspector directly via zypper using the openSUSE Build Service repository.

  1. Add the Repository:
    zypper addrepo https://download.opensuse.org/repositories/home:mariosergiosl:sys-inspector/15.6/home:mariosergiosl:sys-inspector.repo
  1. Refresh and Accept GPG Key: During the refresh, you will be asked to trust the repository GPG key.

Fingerprint: 7CF0 5795 053C F397 8E00 948E 9F8D 1AC9 E2BE EABC

    zypper refresh
    # Type 'a' to trust always when prompted.
  1. Install the Package:
    zypper install sys-inspector
  1. Run: Once installed, the command is available globally:
    sys-inspector

Usage

Sys-Inspector is orchestrated via the main.py entry point (or globally as sys-inspector). It supports multiple execution modes.

1. Local Live Mode (Recommended)

Starts the background collector daemon and the Fleet Web Dashboard simultaneously.

    sudo sys-inspector --mode local-live
    # Access the dashboard at http://localhost:8080

2. Snapshot Mode (Static Report)

Captures activity for a specific duration and generates a standalone HTML report.

    sudo sys-inspector --mode snapshot --interval 20
    # Output Example: report/sys-inspector_hostname_20260316_100000.html

3. Custom Logo

To include your company logo in the report header, simply place a PNG file at the following path:

    /etc/sys-inspector/logo.png

The application will automatically detect, resize (max-height: 40px), encode it to Base64, and embed it in the HTML.

Chaos Engineering (Testing Tool)

Included in scripts/chaos_maker.sh is a stress testing tool designed to validate the inspector's detection capabilities.

⚠️ WARNING: DO NOT RUN ON PRODUCTION SYSTEMS. This script uses tc (Traffic Control) to purposefully degrade network quality (packet loss/latency) and consumes CPU/Disk resources.

Capabilities

  • Network Degradation: Injects 100ms latency and 20% packet loss to trigger [NET ERR] alerts in the report.
  • Process Anomalies: Hides processes in /dev/shm to trigger [WARN] alerts.
  • Unsafe Library Loading: Forces loading of dynamic libraries from /tmp via a Python script to trigger [UNSAFE] alerts.
  • Disk Stress: Generates high I/O throughput to test IO accounting.

How to Run

    sudo ./scripts/chaos_maker.sh

To Stop: Press Ctrl+C. The script traps the signal and automatically cleans up the network rules (tc qdisc del) and temporary files.

Project Structure

    ├── conf/                  # Configuration and Cryptographic Keys
    ├── data/                  # SQLite Persistence and Agent IDs
    ├── doc/                   # Documentation and Requirements
    ├── report/                # Standalone HTML Reports Output
    ├── scripts/               # Chaos Engineering & Setup Scripts
    ├── src/
       ├── collectors/        # eBPF Engine and Process Tree Builders
       ├── controllers/       # Execution Modes (Daemon, Web, Snapshot)
       ├── core/              # Database and Crypto Logic
       ├── exporters/         # HTML and Web Assets
       ├── probes/            # C eBPF source code
       ├── storage/           # Storage interface and handlers
       └── utils/             # Configuration loaders
    ├── tools/                 # Utility scripts (e.g., Key Generation)
    └── main.py                # Unified Entry Point

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sys_inspector-0.90.1.tar.gz (63.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sys_inspector-0.90.1-py3-none-any.whl (68.0 kB view details)

Uploaded Python 3

File details

Details for the file sys_inspector-0.90.1.tar.gz.

File metadata

  • Download URL: sys_inspector-0.90.1.tar.gz
  • Upload date:
  • Size: 63.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.10.0 readme-renderer/34.0 requests/2.25.1 requests-toolbelt/1.0.0 urllib3/1.26.20 tqdm/4.64.1 importlib-metadata/4.2.0 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.6.15

File hashes

Hashes for sys_inspector-0.90.1.tar.gz
Algorithm Hash digest
SHA256 9c83afcf798458cca27c15aeaf0e6b04e76414c48171bb02cf5d6570fef5f90d
MD5 cb72b215497ca8b88c89bc671cf77616
BLAKE2b-256 2dabad2b9c20f16d04e63649cefabfc429921676e05cf0f076645f7b29863734

See more details on using hashes here.

File details

Details for the file sys_inspector-0.90.1-py3-none-any.whl.

File metadata

  • Download URL: sys_inspector-0.90.1-py3-none-any.whl
  • Upload date:
  • Size: 68.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.10.0 readme-renderer/34.0 requests/2.25.1 requests-toolbelt/1.0.0 urllib3/1.26.20 tqdm/4.64.1 importlib-metadata/4.2.0 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.6.15

File hashes

Hashes for sys_inspector-0.90.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6f2c25155851ca04c32d9d06b271c4b03c6e618b0a8033f65c1ee7f92291b304
MD5 df4d2cfe2e40eac6f80c8bc65ff3fb1a
BLAKE2b-256 39089a2a2f7b6a7788e9a11c6617282452cfa3ad921ec4e54a49646db6aef6b9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page