ποΈ Architecture
Jibril's architecture represents a fundamental reimagining of how runtime security tools should work. By replacing traditional event streaming with query-driven data retrieval, Jibril eliminates the performance bottlenecks that plague conventional security monitoring.
π― The Core Innovation: Query-Driven eBPFβ
β Traditional Approach: Ring Buffersβ
Traditional security tools push events from kernel to userspace through ring buffers:

β οΈ Problems with this approach:
- π₯ Ring buffers overflow during high-event scenarios
- π CPU usage spikes exponentially under load
- π Memory consumption becomes unpredictable
- β Critical events get dropped when you need them most
β Jibril's Query-Driven Approachβ
Jibril's revolutionary approach stores events in kernel maps and retrieves them on demand:

π Advantages:
- β Zero event loss - maps don't overflow
- β‘ Constant overhead - CPU usage stays flat
- π Bounded memory - configurable, predictable usage
- π Better performance at scale - higher loads improve caching
π‘ Learn more about eBPF maps: eBPF Map Types
ποΈ System Architectureβ
Jibril consists of three main layers working together seamlessly:

1οΈβ£ Kernel Space (eBPF Programs)β
π‘ Event Captureβ
eBPF programs attach to kernel hooks and capture system events in real-time:
- βοΈ Process execution and lifecycle
- π File access and modifications
- π Network connections and communication
- π¦ Container operations
- π Security-relevant system calls
πΎ In-Kernel Storageβ
Events are stored in high-performance eBPF maps:
- ποΈ Hash maps for event metadata and context
- π Array maps for configuration and counters
- β»οΈ LRU maps for automatic memory management
- π Cryptographic hashing ensures data integrity
π Uniform Executionβ
eBPF programs run consistently across all kernel versions without modules or recompilation (thanks to CO-RE).
2οΈβ£ Userspace Daemonβ
π Query Engineβ
The daemon periodically queries kernel maps to retrieve relevant events:
- π― Selective data retrieval reduces overhead
- π¦ Batch processing optimizes performance
- β±οΈ Configurable query intervals balance latency and efficiency
π‘οΈ Detection Engineβ
Retrieved events are analyzed against detection rules:
- π Pattern matching identifies suspicious behavior
- π§ Contextual analysis reduces false positives
- π Real-time threat scoring prioritizes alerts
π§© Plugin Systemβ
Modular architecture organizes detection logic by event type:
- βοΈ Execution plugins - Process and binary monitoring
- π File access plugins - Filesystem operation tracking
- π Network plugins - Connection and traffic analysis
- π Thread-based isolation ensures stability and performance
3οΈβ£ Output Layer (Printers)β
π Flexible Routingβ
Events can be sent to multiple destinations simultaneously:
- π» Standard output (stdout) for debugging
- π Log files for persistence
- π SIEM platforms for centralized monitoring
- π Custom APIs for integration
- π Dashboards for visualization
π Secure Transmissionβ
All external communication uses authenticated HTTPS with API tokens.
ποΈ What Jibril Monitorsβ
Jibril provides comprehensive visibility into all system resources and operations.

π Resources Trackedβ
π€ Identity & Accessβ
- π₯ Users and groups
- π Permissions and capabilities
- π Authentication events
π₯οΈ Infrastructureβ
- π» Physical and virtual machines
- π¦ Container hosts and nodes
- π·οΈ Hostnames and namespaces
πΎ Storageβ
- πΏ Disks and filesystems
- π Volumes and mount points
- π Files and directories
- π Symbolic links
βοΈ Execution Contextβ
- π¦ Containers and pods
- π Processes and threads
- π Binary executables
- π Shared libraries
- π Interpreters
π Networkβ
- π‘ Network protocols
- π Domain names and DNS
- π Ports and sockets
- π IP addresses
- π Network flows and peers
π¬ Actions Monitoredβ

π Lifecycle Eventsβ
- β Create, destroy
- βΆοΈ Start, stop, restart
- π Fork, clone, exit
βοΈ Modificationsβ
- βοΈ Truncate, link, rename
- π Open, close
- ποΈ Mount, unmount
- π·οΈ Attribute changes
π Data Operationsβ
- π Read, write, seek
- βΆοΈ Execute
- π Copy, move
π§ Advanced Operationsβ
- πΊοΈ Memory mapping
- π Synchronization
- π Locking and unlocking
- ποΈ Capability modifications
π Execution Flowβ
Jibril follows a structured initialization and execution sequence:
π Startup Sequenceβ
- π§ Initialization - Core libraries and system checks
- π eBPF and Caches - eBPF programs loading and caches setup
- π§© Components - Components initialization
- π Features - Features initialization (Netpolicy, Alchemies, Detect, etc.)
- π€ Printers - Printers initialization (Stdout, Varlog, etc.)
- π Main Loop - Main loop execution
All components follow: Init β Start β Execute β Finish β Exit in an hiearchy of components.
β‘ Runtime Operationβ
- π‘ Event Capture - eBPF programs capture system events in kernel space
- πΎ Storage - Events stored in eBPF maps with metadata and context
- π Query - Daemon queries maps at configured intervals
- π‘οΈ Detection - Retrieved events analyzed against detection rules
- π― Action - Matching events trigger alerts or reactions
- π€ Output - Results sent to configured destinations
π Data Immutabilityβ
Once captured, event data is immutable:
- β Ensures forensic integrity
- π‘οΈ Prevents tampering
- π Creates trustworthy audit trails
- π Enables reliable investigation
β‘ Performance Characteristicsβ
- A pre-defined cadence stipulates deterministic CPU behavior. CPU consumption is reduced with higher cadence values.

- Minimal CPU consumption can be obtained controlling cache size and cadence values. There is no security event processing loss.

π Deterministic Resource Usageβ
π» CPU Consumptionβ
- π Constant overhead regardless of event volume
- β‘ Typically less than 2% CPU even at 100,000+ events/second
- π― No performance spikes during attacks or high activity
πΎ Memory Usageβ
- π¦ Bounded, configurable memory footprint
- π Predictable allocation based on map sizes
- β»οΈ Automatic LRU eviction prevents unbounded growth
β±οΈ Latencyβ
- π Sub-second query response times
- β‘ Immediate threat detection
- ποΈ Real-time event visibility
π Scaling Behaviorβ
Traditional tools degrade under load. Jibril improves:
- π― Higher event volumes create better cache hit ratios
- π¦ Batch processing becomes more efficient
- π Query-driven model naturally handles bursts
- β‘ Kernel-space storage eliminates context-switching overhead
π Jibril has been designed and tested on high workload environments.
π Security Modelβ
π‘οΈ Tamper-Proof Operationβ
π Kernel-Level Enforcementβ
- π« Cannot be bypassed from userspace
- π Root processes cannot evade detection
- π¦ Container escapes are visible
β Verified Executionβ
- π eBPF verifier guarantees program safety
- π No kernel crashes possible
- ποΈ Sandboxed execution environment
π Learn more about eBPF security: eBPF Verifier
ποΈ Comprehensive Coverageβ
π― No Blind Spotsβ
- π System-wide monitoring
- π All processes visible
- π Complete event capture
- π Full context for every action
π‘οΈ Defense in Depthβ
- π Multiple detection mechanisms
- ποΈ Layered security checks
- β»οΈ Redundant event capture
π¨ Extensibilityβ
π§ Custom Detectionsβ
Jibril supports custom detection rules for organization-specific threats:
- π Pattern matching on events
- π§ Contextual analysis
- π Multi-event correlation
- π Threat scoring
π Learn more: Customization
π€ Reaction Engineβ
Automatically respond to detected threats with JavaScript-based reactions:
- π« Block malicious processes
- π¦ Isolate compromised containers
- π’ Alert security teams
- π§ Trigger automated remediation
β‘ Learn more: Reactions
π Integration Pointsβ
Seamlessly integrate with existing security infrastructure:
- π SIEM platforms (Splunk, Elastic, etc.)
- π’ Alert management (PagerDuty, Slack, etc.)
- π« Ticketing systems (Jira, ServiceNow, etc.)
- π Custom APIs and webhooks
π Deployment Modesβ
π¦ Standaloneβ
Single binary with no dependencies:
- β Simple installation
- βοΈ Minimal configuration
- π Quick deployment
- π Easy updates
π Standalone
βοΈ System Serviceβ
Run as a systemd service:
- π Automatic startup
- ποΈ Process supervision
- π Log management
- π Resource limits
π Systemd Service
π³ Containerβ
Deploy in containerized environments:
- π³ Docker container
- βΈοΈ Kubernetes DaemonSet
- β Helm chart
- π GitOps ready
βοΈ Configurationβ
Jibril uses a simple YAML configuration file:
cadences:
file-access: 3 # File access cadence
network-peers: 3 # Network peers cadence
network-flows: 3 # Network flows cadence
env-vars: 3 # Environment variables cadence
caches:
rec-tasks: 32 # * 1k of recent tasks
tasks: 64 # * 1k of tasks
cmds: 32 # * 1k of commands
args: 32 # * 1k of arguments
files: 32 # * 1k of files
dirs: 16 # * 1k of directories
bases: 32 # * 1k of bases
task-file: 32 # * 1k of task-file mapping
file-task: 32 # * 1k of file-task mapping
task-ref: 32 # * 1k of task-ref tracking
flows: 32 # * 1k of network flows
task-flow: 32 # * 1k of task-flow mapping
flow-task: 32 # * 1k of flow-task mapping
flow-ref: 32 # * 1k of flow-ref tracking
π Learn more: Configuration File
βοΈ Comparison with Traditional Architecturesβ
| Aspect | β Traditional Streaming | β Jibril Query-Driven |
|---|---|---|
| π Data Flow | Push (ring buffers) | Pull (on-demand) |
| πΎ Memory | Unpredictable | Bounded & configurable |
| π» CPU Overhead | Increases with load | Constant |
| π Event Loss | Common under stress | Impossible by design |
| β±οΈ Latency | Variable, degrades | Consistent sub-second |
| π Scalability | Decreases with load | Increases with load |