Skip to content

EvilBit-Labs/DaemonEye

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

67 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ›‘οΈ DaemonEye β€” High-Performance Security Process Monitoring

CI codecov wakatime Maintainability

DaemonEye is a security-focused, high-performance process monitoring system built for cybersecurity professionals, threat hunters, and security operations centers. This is a complete Rust rewrite of the proven Python prototype, delivering enterprise-grade performance with audit-grade integrity.

πŸ›οΈ Architecture Overview

DaemonEye is a three-component security package designed for robust, secure, and auditable system monitoring:

DaemonEye/
β”œβ”€β”€ procmond/         # :lock: Privileged Process Collector
β”œβ”€β”€ daemoneye-cli/    # :computer: Command-Line Interface
β”œβ”€β”€ daemoneye-agent/  # :satellite: User-Space Orchestrator
└── daemoneye-lib/    # :gear: Shared Library Components

Component Roles

  • πŸ”’ ProcMonD (Collector): Runs with elevated privileges, focused solely on process monitoring with minimal attack surface. Writes to Certificate Transparency-style audit ledger and communicates via protobuf IPC with daemoneye-agent.
  • πŸ“‘ DaemonEye Agent (Orchestrator): Operates in user space with minimal privileges. Manages procmond lifecycle, executes SQL detection rules, and handles alert delivery. Translates complex SQL rules into simple protobuf tasks for procmond.
  • πŸ’» DaemonEye CLI: Local command-line interface for data queries, result exports, and service configuration. Communicates with daemoneye-agent for all operations.

This separation ensures robust security: ProcMonD remains isolated and hardened, while orchestration/network tasks are delegated to low-privilege processes.

🎯 Key Features

Feature Description
πŸ¦€ Rust Performance Memory-safe, high-performance rewrite with <5% CPU overhead
πŸ” Cross-Platform Linux, macOS, and Windows support with native OS integration
πŸ“ˆ SQL Detection Engine Flexible anomaly detection using standard SQL queries
πŸ—„οΈ Audit-Grade Integrity Certificate Transparency-style Merkle tree with inclusion proofs
πŸ“‘ Multi-Channel Alerting stdout, syslog, webhooks, email with delivery guarantees
⚑ High-Performance Handle 10k+ processes with bounded queues and backpressure
πŸ”’ Security-First Design Principle of least privilege, sandboxed rule execution
🌐 Offline-Capable No external dependencies for core functionality

🎁 Free Forever

The Free Tier of DaemonEye is completely free forever with no time limits or feature restrictions. This includes:

  • Full process monitoring and detection capabilities
  • All built-in detection rules and SQL-based custom rules
  • Complete alerting system (stdout, syslog, webhooks, email)
  • Local data storage and querying
  • Cross-platform support (Linux, macOS, Windows)
  • Offline operation with no external dependencies

Future Business and Enterprise tiers will add centralized management, advanced integrations, and kernel-level monitoring for organizations that need these capabilities, but the core functionality will always remain free.

πŸš€ Getting Started

Prerequisites

  • Rust 1.85+ (2024 Edition support)
  • Just task runner

Quick Start

# Build all components
just build

# Run linting and tests
just lint && just test

# Start orchestrator agent (manages procmond automatically)
just run-daemoneye-agent

# Launch CLI interface
just run-daemoneye-cli --help

# Run single-shot collection (for testing)
just run-daemoneye-agent --once

Example Usage

# Start the orchestrator (manages procmond automatically)
daemoneye-agent --config /etc/daemoneye/config.yaml

# Query historical process data through orchestrator
daemoneye-cli query --sql "SELECT * FROM processes WHERE name = 'suspicious_proc'"

# Test alert delivery
daemoneye-cli alerts send-test

# Check system health
daemoneye-cli health-check --verbose

# Export data for analysis
daemoneye-cli export --format json --output /tmp/process_data.json

🧠 Detection Capabilities

Built-in Detection Rules:

  • Process hollowing detection (processes without executables)
  • Executable integrity violations (file modifications during runtime)
  • Suspicious process name duplications
  • Unusual parent-child process relationships
  • Anomalous resource consumption patterns

Custom Rule Support:

  • SQL-based detection logic with sandboxed execution
  • Hot-reloadable rules with metadata and versioning
  • Performance monitoring and optimization hints

πŸ“€ Alert Integration

Channel Format Use Case
stdout/stderr JSON, Plain Text Development, debugging
Syslog RFC5424, JSON SIEM integration
Webhooks JSON POST Security orchestration
Email HTML, Plain Text Incident notifications
File Output JSON, CEF Log aggregation, archival

βš™οΈ Technology Stack

  • Language: Rust 2024 Edition (MSRV: 1.70+)
  • Async Runtime: Tokio for I/O and task management
  • Database: redb pure Rust embedded database for optimal performance and security
  • CLI Framework: clap v4 with derive macros and shell completions
  • Process Enumeration: sysinfo crate with platform-specific optimizations
  • Logging: tracing ecosystem with structured JSON output

πŸ”§ Development

This project follows strict Rust coding standards:

  • Linting: cargo clippy -- -D warnings (zero warnings policy)
  • Formatting: rustfmt with consistent code style
  • Testing: Comprehensive unit and integration test coverage
  • Safety: unsafe_code = "forbid" in workspace lints
  • Performance: <100MB memory, <5% CPU, <5s for 10k+ processes

Available Commands

# Development workflow
just fmt          # Format code
just lint         # Run clippy with strict warnings
just test         # Run all tests
just build        # Build workspace

# Component execution
just run-procmond --once --verbose      # Run process monitor with flags
just run-daemoneye-cli --help             # Run CLI interface
just run-daemoneye-agent --config /path   # Run orchestrator agent

πŸ‘₯ Target Users

  • SOC Analysts monitoring fleet infrastructure for process anomalies
  • Incident Responders investigating compromised systems
  • Red Team Operators detecting defensive monitoring
  • Security Engineers integrating with SIEM platforms
  • System Administrators maintaining security visibility
  • DevSecOps Teams embedding security monitoring in deployments

πŸ“š Documentation

For comprehensive documentation, see:

πŸ“„ License

Licensed under the Apache License, Version 2.0. See LICENSE for details.


DaemonEye β€” When your process monitoring actually matters. πŸ›‘οΈ

About

Continuous monitoring; instant alerts.

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Contributors 2

  •  
  •  

Languages