SHA-256 hash chain. Every entry references the previous. Tamper-evident logs.
Hybrid Collection
~10ms auth detection via journald. ~100ms web detection via file. Zero configuration.
YAML-Only Rules
Create custom rules without coding. No Python. No rebuild. Hot reload in seconds.
Zero Attack Surface
================================================================================
CLI COMMAND
================================================================================
$ omega-sentinel status
============================================================
OMEGA Sentinel v3.9.8 - Status
============================================================
[OK] Config: /etc/omega-sentinel/config.yaml
Mode: enforce
[OK] Host: 127.0.0.1 (secure)
[OK] License: ENTERPRISE
[OK] Allowlist: 2 IPs, 0 nets
[OK] Rules: 14 loaded
[OK] Firewall: nftables/SENTINEL
[OK] Audit: Chain intact (74)
[OK] Egress: 1 baseline, port>=32768
============================================================
[OK] All checks passed!
============================================================
================================================================================
ZERO ATTACK SURFACE
================================================================================
NO PORTS — NO API — CANNOT BE DISABLED REMOTELY
================================================================================
SENTINEL is a guardian, not a service.
NO LISTENING PORTS:
────────────────────────────────────────────────────────────────────────────────
$ ss -tlnp | grep sentinel
(no output - SENTINEL opens no ports)
$ sudo nft list chain inet filter SENTINEL
table inet filter {
chain SENTINEL {
type filter hook input priority -100; policy accept;
}
}
================================================================================
Egress Control
================================================================================
CLI COMMAND
================================================================================
$ omega-sentinel egress --status
============================================================
Egress Monitor Status
============================================================
Deny: 16 | Allow: 19
Baseline: 1 processes, 1 IPs
Alerts: 0 | Ephemeral>=32768
============================================================
================================================================================
EGRESS CONTROL
================================================================================
DETECT REVERSE SHELLS — CATCH DATA EXFILTRATION
================================================================================
Your web server shouldn't make outbound calls.
If it does, SENTINEL sees it.
REAL EGRESS ALERT (from audit log):
────────────────────────────────────────────────────────────────────────────────
{
"type": "egress_alert",
"severity": "warning",
"process": "monarx-agent",
"remote_ip": "52.32.9.48",
"remote_port": 443,
"reason": "Process connected to IP not
in baseline",
"timestamp": "2025-12-19T07:19:17.120213",
"host": "axiomrx"
}
────────────────────────────────────────────────────────────────────────────────
SENTINEL detected an outbound connection from a process
that wasn't in the baseline. Immediate alert generated.
================================================================================
Progressive Response
================================================================================
CLI COMMAND
================================================================================
$ omega-sentinel escalation --status
================================================================================
PROGRESSIVE RESPONSE
================================================================================
REPEAT OFFENDERS FACE ESCALATING CONSEQUENCES
================================================================================
Escalation Levels:
• 1st offense → 30 minutes
• 2nd offense → 6 hours
• 3rd offense → 7 days
• 4th offense → PERMANENT
REAL ESCALATION DATA:
────────────────────────────────────────────────────────────────────────────────
Tracked IPs:49192.0.2.100
Offenses: 2 | Next Level: 7
days | Last: 2025-12-23
88.88.88.88
Offenses: 1 | Next Level: 30
minutes | Last: 2025-12-21
55.55.55.55
Offenses: 1 | Next Level: 30
minutes | Last: 2025-12-21
────────────────────────────────────────────────────────────────────────────────
→ Decisions escalate deterministically
→ Same behavior produces predictable consequences
→ Full history tracked per IP
================================================================================
Hybrid Collection
================================================================================
STARTUP LOG
================================================================================
$ journalctl -u omega-sentinel | grep -i collector
================================================================================
HYBRID COLLECTION
================================================================================
JOURNALD FOR AUTH — FILES FOR WEB — ZERO CONFIGURATION
================================================================================
SENTINEL automatically detects the best collector for each service:
Collector(auth): journald (sshd, sudo)
Collector(web): file (/var/log/nginx/access.log)
Collector(container): journald (docker, podman, containerd)
HOW IT WORKS:
────────────────────────────────────────────────────────────────────────────────
AUTH (sshd, sudo)
Method: journald
Latency: ~10ms
Why: Systemd-native, sub-second blocking
WEB (nginx, apache)
Method: file
Latency: ~100ms
Why: Most reliable, no hacks required
CONTAINERS (docker, podman)
Method: journald
Latency: ~10ms
Why: Systemd-native integration
────────────────────────────────────────────────────────────────────────────────
WHY THIS MATTERS:
→ Fresh system, sudo never used? Still monitored from day one.
→ Journald fails? Automatic fallback to file collector.
→ nginx doesn't use journald? We read files instead.
No hidden dependencies. No "works on my machine" surprises.
================================================================================
YAML-Only Rules
================================================================================
CLI COMMAND
================================================================================
$ cat /etc/omega-sentinel/rules.d/ssh_bruteforce.yaml
================================================================================
YAML-ONLY RULES
================================================================================
CREATE CUSTOM RULES WITHOUT CODING — HOT RELOAD IN SECONDS
================================================================================
REAL RULE FILE:
────────────────────────────────────────────────────────────────────────────────
# SSH Brute Force Detectionrule_id: SSH_BRUTEFORCEversion: "1.0"priority: 90enabled: truewhen:
events: [auth_fail, invalid_user]
match:
threshold: 8window: 120sgroup_by: ipthen:
action: blockttl: 30mexplain: "{count} auth failures from
{ip} in {window}"
────────────────────────────────────────────────────────────────────────────────
AVAILABLE RULES (19 total):
────────────────────────────────────────────────────────────────────────────────
$ omega-sentinel rules --list
ssh_bruteforce.yaml ssh_invalid_user.yaml sudo_abuse.yaml
credential_stuffing.yaml sql_injection.yaml xss_attempt.yaml
path_traversal.yaml web_scanner.yaml api_abuse.yaml
reverse_shell.yaml egress_violation.yaml port_scan.yaml
conn_flood.yaml nginx_block.yaml ssh_key_theft.yaml
postfix.yaml dovecot.yaml proftpd.yaml
vsftpd.yaml
────────────────────────────────────────────────────────────────────────────────
HOT RELOAD (no restart needed):
$ omega-sentinel rules --reload
[OK] 19 rules reloaded
→ Edit YAML → Reload → Active in seconds
→ No Python. No compilation. No downtime.
================================================================================
From Events to Decisions
Most tools collect signals. SENTINEL produces decisions.
It does not ask "could this be an attack?"
It answers "this is an attack — and here is the proof."
What SENTINEL Understands
14 detection rules across 100+ attack patterns
SSH Attacks
Brute force
Credential stuffing
Invalid users
Max auth exceeded
OpenSSH 9.x patterns
Web Attacks
SQL injection (45+ patterns)
XSS (13 patterns)
Path traversal
Web scanner detection
API abuse/rate limiting
URL-encoded payloads
Post-Exploitation
Reverse shell detection
SSH key theft (correlation)
Data exfiltration
Privilege escalation
Lateral movement
Sudo Abuse
Auth failures
pam_unix patterns
Incorrect passwords
Network Attacks
Port scanning
SYN floods
Connection floods
Anomalies
Baseline learning
Statistical detection
Auto-promote rules
What SENTINEL Sees
Real detection examples from production systems
SSH Brute Force
Failed password for root from 192.168.1.100 port 22 ssh2