One-command security monitoring for containers and Linux systems, powered by Falco and VictoriaMetrics.
π Website: in-a-box-tools.tech
SIB provides a complete, self-hosted security monitoring stack for detecting threats in real-time. Built on Falco's runtime security engine with VictoriaLogs for log storage and Grafana for visualization. Loki/Prometheus available as an alternative backend.
- Runtime Security: Detect suspicious behavior in real-time using Falco's eBPF-based syscall monitoring
- Alert Forwarding: Falcosidekick routes alerts to 50+ destinations (Slack, PagerDuty, Loki, etc.)
- Log Aggregation: VictoriaLogs (default) or Loki stores security events with efficient querying
- Pre-built Dashboards: Grafana dashboards for security overview and event exploration
- MITRE ATT&CK Coverage: Dashboard mapping detections to the ATT&CK framework
- Demo Mode: Generate realistic security events to see dashboards in action
- Sigma Rules: Convert Sigma rules to Falco/LogsQL format
- Threat Intel: IP blocklists from Abuse.ch, Spamhaus, and more
- Remote Collectors: Ship logs/metrics from multiple hosts (Vector+vmagent or Alloy)
- Fleet Management: Dockerized Ansible for deploying agents across infrastructure (no local Ansible needed)
- Smart Deployment: Auto-detects Docker, installs from static binaries if needed β works on any Linux
- AI-Powered Analysis (Beta): LLM-based alert analysis with attack vectors, MITRE ATT&CK mapping, and mitigation strategies
- One Command Setup: Get started with
make install
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β SIEM in a Box β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β ββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββββββββββββ β
β β Falco β β Falcosidekick β β VictoriaLogs β β
β β (Detection) ββββββΆβ (Fan-out) ββββββΆβ (Log Storage) β β
β β modern_ebpf β β β β β β
β ββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββββββββββββ β
β β β
β βΌ β
β ββββββββββββββββ βββββββββββββββββββββββββββββ β
β β node_exporterβ β Grafana β β
β β (Metrics) ββββββββββββββββββββββββββββββΆβ β’ Security Overview β β
β ββββββββββββββββ β β’ Events Explorer β β
β β β β’ MITRE ATT&CK β β
β βΌ β β’ Fleet Overview β β
β ββββββββββββββββ βββββββββββββββββββββββββββββ β
β βVictoriaMetricsβ β² β
β β (Metrics) ββββββββββββββββββββββββββββββββββββββββββββ β
β ββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Docker CE 20.10+ from docker.com with Docker Compose v2+, or Podman 4.0+ in rootful mode with podman-compose
β οΈ Podman must run as root (rootful mode) β Falco requires kernel access to monitor syscalls
- Linux kernel 5.8+ (for modern_ebpf driver)
- 4GB+ RAM recommended
β οΈ Note: Docker Desktop is not supported. Install Docker CE (Community Edition) directly from docker.com or use Podman.
| Deployment | CPU | RAM | Disk | Notes |
|---|---|---|---|---|
| SIB Server (single host) | 2 cores | 4GB | 20GB | Runs Falco + full stack |
| SIB Server (with fleet) | 4 cores | 8GB | 50GB+ | More storage for logs from multiple hosts |
| Fleet Agent | 1 core | 512MB | 1GB | Falco + collectors (vmagent or Alloy) |
π‘ Not a network sniffer! SIB uses Falco's eBPF-based syscall monitoring β it watches what programs do at the kernel level, not network packets. No mirror ports, TAPs, or bridge interfaces needed. Just install on any Linux host and it sees everything that host does.
# Docker CE
docker --version # Should be 20.10+
docker compose version # Should be v2+
# Or Podman
podman --version # Should be 4.0+
podman-compose --version # Alternative to docker compose
# Kernel (both)
uname -r # Should be 5.8+ for eBPF# Clone the repository
git clone https://github.com/matijazezelj/sib.git
cd sib
# Configure environment
cp .env.example .env
# Edit .env if needed (defaults work for local testing)
# Install everything
make install
# Verify it's working
./scripts/test-pipeline.shSIB supports two monitoring stacks. Choose based on your preferences:
| Stack | Components | Best For |
|---|---|---|
vm (default) |
VictoriaLogs + VictoriaMetrics + node_exporter | 10x less RAM, faster queries, recommended |
grafana |
Loki + Prometheus | Grafana ecosystem, native integration |
# In .env - choose your stack (one simple setting)
STACK=vm # Default - VictoriaMetrics ecosystem (recommended)
STACK=grafana # Alternative - Grafana ecosystem (Loki + Prometheus)The make install command automatically:
- Deploys the correct storage stack
- Configures Falcosidekick to send alerts to the chosen backend
- Sets up Grafana with the appropriate datasources and dashboards
- For VM stack: includes node_exporter for host metrics
| Service | URL | Stack |
|---|---|---|
| Grafana | http://localhost:3000 | Both |
| Sidekick API | http://localhost:2801 | Both |
| Loki | http://localhost:3100 | grafana only |
| Prometheus | http://localhost:9090 | grafana only |
| VictoriaLogs | http://localhost:9428 | vm only |
| VictoriaMetrics | http://localhost:8428 | vm only |
Default Grafana credentials: admin / admin
Note: Only the services for your selected
STACKwill be running.
π Safe defaults: Grafana, Falcosidekick, storage APIs, and AI analysis bind to
127.0.0.1by default. To expose them on a LAN, setGRAFANA_BIND_ADDR=0.0.0.0,SIDEKICK_BIND_ADDR=0.0.0.0,STORAGE_BIND=0.0.0.0, orANALYSIS_BIND=0.0.0.0intentionally.
β οΈ Fleet Security Note: If fleet hosts need to send events to Sidekick (2801), expose it deliberately and use firewall rules to restrict access to your fleet nodes only:# UFW example: allow only from fleet subnet ufw allow from 192.168.1.0/24 to any port 2801
| Category | Examples |
|---|---|
| Credential Access | Reading /etc/shadow, SSH key access |
| Container Security | Shells in containers, privileged operations |
| File Integrity | Writes to /etc, sensitive config changes |
| Process Anomalies | Unexpected binaries, shell spawning |
| Persistence | Cron modifications, systemd changes |
| Cryptomining | Mining processes, pool connections |
| Tool | Pros | Cons | Best for |
|---|---|---|---|
| SIB | One-command setup, Falco runtime detection, curated Grafana dashboards, self-hosted | Not a full log SIEM platform, Linux-only detection | Homelabs, startups, lean SecOps teams |
| Wazuh | Strong host-based SIEM, broad OS support, built-in agents | Heavier setup, more tuning required, multi-component stack | Organizations needing HIDS + log SIEM |
| Splunk | Powerful search/analytics, enterprise-grade scale | Expensive at scale, complex operations | Large enterprises with budget and dedicated SIEM team |
| Elastic SIEM | Flexible, open-source core, great search | Requires careful sizing/tuning, operational overhead | Teams already using Elastic Stack |
Takeaway: SIB prioritizes speed of deployment and actionable runtime detection. For large-scale log analytics and complex compliance reporting, Wazuh/Splunk/Elastic may be a better fit.
- Total events, Critical/Error/Warning/Notice counts
- Events over time by priority
- Events by rule (pie chart)
- π¨ Critical Events panel - Dedicated view for high-priority events
- Recent security events log
- Query help with LogQL examples
- Event volume by rule
- Filterable log view with priority and rule filters
- Detection events mapped to ATT&CK tactics
- Visual matrix showing coverage across 12 tactics
- Events over time by tactic
- Technique breakdown and priority distribution
- Hostname filter to focus on specific hosts
- Active hosts with collectors
- CPU, memory, disk usage per host
- Network traffic graphs
- Log volume by host
- Hostname selector to filter all panels by host
# Installation (reads STACK from .env: vm or grafana)
make install # Install all stacks (auto-configures based on STACK)
make uninstall # Remove everything
# Storage (Manual override)
make install-storage-vm # Install VictoriaLogs + VictoriaMetrics (default)
make install-storage-grafana # Install Loki + Prometheus (alternative)
# Management
make start # Start all services
make stop # Stop all services
make restart # Restart all services
make status # Show service status
make health # Quick health check
make doctor # Diagnose common issues
# Logs
make logs # Tail all logs
make logs-falco # Tail Falco logs
make logs-sidekick # Tail Falcosidekick logs
make logs-storage # Tail storage logs (auto-detects stack)
make logs-grafana # Tail Grafana logs
# Demo & Testing
make demo # Run comprehensive security demo (~30 events)
make demo-quick # Run quick demo (1s delay)
make test-alert # Generate a test security alert
./scripts/test-pipeline.sh # Run full pipeline test
# Threat Intel & Sigma
make update-threatintel # Download threat intel feeds
make convert-sigma # Convert Sigma rules to Falco/LogsQL
# AI Analysis (Optional)
make install-analysis # Install AI analysis API (integrated with Grafana)
make logs-analysis # View analysis API logs
# Utilities
make open # Open Grafana in browser
make info # Show all endpoints
# Backup & Restore
make backup # Create timestamped backup of configs, rules, and Grafana dashboards
make restore # Restore from a backup file- docs/installation.md
- docs/minimal-install.md
- docs/quickstart.md
- docs/security-hardening.md
- docs/troubleshooting.md
- docs/faq.md
- ROADMAP.md
- Kubernetes deployment: sib-k8s
- VictoriaLogs backend: docs/victorialogs.md
sib/
βββ Makefile # Main entry point
βββ .env.example # Environment template (STACK config)
βββ scripts/
β βββ test-pipeline.sh # Pipeline verification script
βββ detection/ # Falco stack
β βββ compose.yaml
β βββ config/
β βββ falco.yaml # Falco config (modern_ebpf)
β βββ rules/
β βββ custom_rules.yaml # Custom detection rules
βββ alerting/ # Falcosidekick
β βββ compose.yaml
β βββ config/
β βββ config.yaml # Generated from .env on install (do not edit)
β βββ custom-outputs.yaml.example # Optional user-managed extra outputs
βββ storage/ # Log storage backends
β βββ compose-vm.yaml # VictoriaLogs + VictoriaMetrics (default)
β βββ compose-grafana.yaml # Loki + Prometheus (alternative)
β βββ config/
β βββ loki-config.yml
β βββ prometheus.yml
βββ grafana/ # Dashboards
β βββ compose.yaml
β βββ provisioning/
β βββ datasources/
β β βββ templates/ # Datasource templates
β βββ dashboards/
β βββ loki/ # Loki-specific dashboards
β βββ victorialogs/ # VictoriaLogs-specific dashboards
βββ ansible/ # Fleet management (Dockerized)
β βββ inventory/
β β βββ hosts.yml.example # Host inventory template
β β βββ group_vars/all.yml # Deployment settings
β βββ roles/
β β βββ falco/ # Falco deployment role
β β βββ vm_collectors/ # Vector + vmagent deployment (VM stack)
β β βββ alloy/ # Alloy deployment role (Grafana stack)
β β βββ certs/ # mTLS certificate distribution
β β βββ common/ # Shared tasks (Docker checks, etc.)
β βββ playbooks/
βββ collectors/ # Remote host collectors
β βββ compose-vm.yaml # VM stack collectors (Vector + vmagent)
β βββ compose-grafana.yaml # Grafana stack collectors (Alloy)
β βββ config/
β β βββ vector.toml # Vector log shipping config
β β βββ vmagent.yml # vmagent metrics scraping config
β β βββ config.alloy # Alloy configuration (Grafana stack)
β βββ scripts/
β βββ deploy.sh # Remote deployment script
βββ examples/
βββ rules/ # Example custom rules
Add detection rules in detection/config/rules/custom_rules.yaml:
- rule: Detect Cryptocurrency Mining
desc: Detect cryptocurrency mining processes
condition: >
spawned_process and
proc.name in (xmrig, minerd, cpuminer)
output: "Crypto miner detected (user=%user.name cmd=%proc.cmdline)"
priority: CRITICAL
tags: [cryptomining, mitre_impact]Configure outputs in .env, then re-run make install-alerting to apply:
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/XXX/YYY/ZZZ
SLACK_CHANNEL=#security-alerts
SLACK_MINIMUM_PRIORITY=warning
PAGERDUTY_ROUTING_KEY=your-routing-key
PAGERDUTY_MINIMUM_PRIORITY=criticalSlack, Discord, PagerDuty, Opsgenie, Teams, and Elasticsearch have .env settings.
For any of Falcosidekick's other outputs, copy
alerting/config/custom-outputs.yaml.example to custom-outputs.yaml β it is
appended to the generated config and never overwritten.
β οΈ alerting/config/config.yamlis regenerated on every install. Do not hand-edit it.
Key variables in .env:
# Auto-generated on install (leave as CHANGE_ME to regenerate)
GRAFANA_ADMIN_PASSWORD=<auto-generated>
GRAFANA_PORT=3000
LOKI_PORT=3100
PROMETHEUS_PORT=9090
SIDEKICK_PORT=2801- Internal services (Loki, Prometheus) bind to localhost only
- Grafana and Sidekick API are externally accessible (for fleet support)
- Falco requires privileged access for syscall monitoring
- Change default Grafana password in production
- mTLS available for encrypted fleet communication
- Restrict external ports to trusted IPs
- Put Grafana behind TLS + auth (reverse proxy)
- Rotate default credentials before production use
- Set retention limits for Loki/Prometheus
- Back up Grafana and Loki volumes
- Enable mTLS for production fleet deployments (
make generate-certs)
See docs/security-hardening.md for full guidance.
SIB includes an optional AI-powered analysis feature that uses LLMs to analyze security alerts and provide:
- Attack Vector Identification - What technique is being used
- MITRE ATT&CK Mapping - Tactic and technique IDs
- Risk Assessment - Severity, confidence, and potential impact
- Mitigation Strategies - Immediate, short-term, and long-term actions
- False Positive Assessment - Likelihood and common legitimate causes
Sensitive data is obfuscated before sending to the LLM:
- IPs β
[INTERNAL-IP-1],[EXTERNAL-IP-1] - Usernames β
[USER-1] - Hostnames β
[HOST-1] - Container IDs β
[CONTAINER-1] - Secrets/credentials β
[REDACTED]
The analyzer auto-detects the storage backend from the STACK env var β it queries VictoriaLogs when STACK=vm (default) or Loki when STACK=grafana.
# Install the Analysis API service
make install-analysisYour server's IP is auto-detected, and an ANALYSIS_API_TOKEN is generated into .env
if you haven't set one. Then open Grafana and use the Events Explorer dashboard to
analyze any event with AI β the provisioned data links carry the token for you.
π Every endpoint except
/healthrequires that token (Authorization: Bearer <token>or?token=<token>). Analysis triggers billed LLM calls, so do not run this API without one. If you rotate the token in.env, re-runmake install-analysisto refresh the dashboard links.
Once installed, the Events Explorer dashboard includes a table where you can click any event to analyze it with AI:
- Open Events Explorer dashboard in Grafana
- Scroll to the "π€ Select Event to Analyze" table
- Click on any log line to see the "π€ Analyze with AI" link
- View the analysis with attack vectors, MITRE mapping, and mitigations
The analysis page shows:
- Original Alert - The raw event
- What Was Sent to AI - The obfuscated version (your sensitive data stays private)
- Attack Vector & MITRE ATT&CK mapping
- Risk Assessment with severity and confidence
- Mitigations (immediate, short-term, long-term)
- False Positive Assessment
Browse past analyses from the API history page:
| Provider | Privacy | Setup |
|---|---|---|
| Ollama (local) | β Data stays on-premises | ollama pull llama3.1:8b |
| OpenAI | Set OPENAI_API_KEY |
|
| Anthropic | Set ANTHROPIC_API_KEY |
Configure in analysis/config.yaml. See analysis/README.md for full documentation.
Deploy lightweight collectors to ship logs and metrics from remote hosts to your central SIB server.
| SIB Stack | Collectors | Components |
|---|---|---|
vm (default) |
VM Collectors | Vector (logs) + vmagent + node_exporter (metrics) |
grafana |
Alloy | Grafana Alloy (logs + metrics) |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Hub and Spoke Model β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β Host A β β Host B β β Host C β β
β β (Collectors) β β (Collectors) β β (Collectors) β β
β ββββββββ¬ββββββββ ββββββββ¬ββββββββ ββββββββ¬ββββββββ β
β β β β β
β β Logs + Metrics (Remote Write) β
β β β β β
β βββββββββββββββββββββΌββββββββββββββββββββ β
β βΌ β
β ββββββββββββββββββββ β
β β SIB Server β β
β β ββββββββββββββ β β
β β βVictoriaLogsβ β βββ Logs (or Loki for grafana stack)β
β β ββββββββββββββ β β
β β ββββββββββββββ β β
β β βVictoriaM. β β βββ Metrics (or Prometheus) β
β β ββββββββββββββ β β
β β ββββββββββββββ β β
β β β Grafana β β βββ Fleet Overview dashboard β
β β ββββββββββββββ β β
β ββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
On the SIB server, enable external access for collectors:
make enable-remoteThis exposes storage endpoints externally:
- VM stack: VictoriaLogs (9428), VictoriaMetrics (8428)
- Grafana stack: Loki (3100), Prometheus (9090)
Ensure your firewall is configured appropriately.
# Using the Makefile (recommended)
make deploy-collector HOST=user@remote-host
# Or using the deploy script directly
./collectors/scripts/deploy.sh user@192.168.1.50 192.168.1.163The deploy script will:
- Copy collector configuration to the remote host
- Configure the SIB server address
- Start collectors via Docker Compose
- Verify the deployment
| Type | Sources | Labels |
|---|---|---|
| System Logs | /var/log/syslog, /var/log/messages |
job="syslog" |
| Auth Logs | /var/log/auth.log, /var/log/secure |
job="auth" |
| Kernel Logs | /var/log/kern.log |
job="kernel" |
| Journal | systemd journal | job="journal" |
| Docker Logs | All containers | job="docker", container=... |
| Node Metrics | CPU, memory, disk, network | job="node" |
All data is tagged with host (hostname of the remote machine).
If you prefer manual deployment:
# On the remote host
mkdir -p ~/sib-collector/config
# For VM stack (default): copy Vector and vmagent configs
scp collectors/config/vector.toml user@remote:~/sib-collector/config/
scp collectors/config/vmagent.yml user@remote:~/sib-collector/config/
scp collectors/compose-vm.yaml user@remote:~/sib-collector/compose.yaml
# For Grafana stack: copy Alloy config
# scp collectors/config/config.alloy user@remote:~/sib-collector/config/
# scp collectors/compose-grafana.yaml user@remote:~/sib-collector/compose.yaml
# Edit configs - replace SIB_SERVER with your SIB server IP
# Start the collector
ssh user@remote "cd ~/sib-collector && SIB_SERVER=192.168.1.100 HOSTNAME=\$(hostname) docker compose up -d"# VM stack (default) - check Vector and vmagent
ssh user@remote "docker logs sib-vector --tail 20"
ssh user@remote "docker logs sib-vmagent --tail 20"
# Grafana stack - check Alloy
# ssh user@remote "docker logs sib-alloy --tail 20"
# Query logs on SIB server
curl -s "http://localhost:9428/select/logsql/query?query=*" | head # VM stack
# curl -s "http://localhost:3100/loki/api/v1/query?query={job=~\".+\"}" | head # Grafana stack
# Check metrics
curl -s 'http://localhost:8428/api/v1/query?query=node_uname_info' # VM stack
# curl -s 'http://localhost:9090/api/v1/query?query=node_uname_info' # Grafana stackSee collectors/README.md for detailed configuration.
The Fleet Overview dashboard in Grafana shows:
- Number of active hosts with collectors
- CPU, memory, disk utilization per host
- Network traffic graphs
- Log volume by host
For managing multiple hosts at scale, SIB includes a Dockerized Ansible setup. No local Ansible installation required.
SIB supports both native packages and Docker containers:
| Strategy | Description |
|---|---|
docker |
Run agents as containers. Recommended for simplicity. |
native |
Falco from repo as systemd service |
auto (default) |
Use Docker if available, otherwise native |
Note: VM stack collectors (Vector, vmagent, node_exporter) always run as Docker containers. The strategy setting primarily affects Falco deployment.
β οΈ LXC Limitation: Falco cannot run in LXC containers due to kernel access restrictions. Use VMs or run Falco on the LXC host itself.
# Configure your hosts
cp ansible/inventory/hosts.yml.example ansible/inventory/hosts.yml
vim ansible/inventory/hosts.yml # Add your servers
# Test connectivity
make fleet-ping
# Deploy to all hosts
make deploy-fleet
# Or target specific hosts
make deploy-fleet LIMIT=webserver| Command | Description |
|---|---|
make deploy-fleet |
Deploy Falco + collectors to all fleet hosts |
make update-rules |
Push detection rules to fleet |
make fleet-health |
Check health of all agents |
make fleet-docker-check |
Check/install Docker on fleet hosts |
make fleet-ping |
Test SSH connectivity |
make fleet-shell |
Open shell in Ansible container |
make remove-fleet |
Remove agents from fleet |
See ansible/README.md for detailed configuration options.
Generate realistic security events locally on your SIB server β no fleet setup required! Perfect for first-time users, demonstrations, or testing detection capabilities.
# Run comprehensive demo (~30 events across 9 MITRE ATT&CK categories)
make demo
# Quick demo with 1-second delays
make demo-quickThe demo spins up a temporary container and triggers various Falco rules. Watch your Grafana dashboards light up in real-time at http://localhost:3000.
The demo script generates events across these MITRE ATT&CK categories:
| Tactic | Events Generated |
|---|---|
| Credential Access | Shadow file access, /etc/passwd reads |
| Execution | Shell spawning, script execution |
| Persistence | Cron job creation, systemd manipulation |
| Defense Evasion | Log clearing, history deletion |
| Discovery | System enumeration, network scanning |
| Impact | Crypto miner detection |
| Container Escape | Docker socket access, namespace breakout |
| Lateral Movement | SSH key access, authorized_keys reads |
| File Integrity | /etc/ file modifications |
Each event triggers corresponding Falco rules and flows through to Grafana in real-time.
Sigma is the universal language for security detection rules. SIB includes a converter to translate Sigma rules to Falco rules and LogsQL alerts (VictoriaLogs).
# Convert all Sigma rules in sigma/rules/
make convert-sigma
# Convert to LogsQL for VictoriaLogs (default)
./sigma/sigma2sib.py sigma/rules/ -o logsql
# Convert a specific rule
./sigma/sigma2sib.py sigma/rules/crypto_mining.yml| Rule | Description | MITRE Tactic |
|---|---|---|
crypto_mining.yml |
Detects cryptocurrency miners | Impact (T1496) |
shadow_access.yml |
Password file access | Credential Access (T1003) |
ssh_keys.yml |
SSH private key access | Credential Access (T1552) |
reverse_shell.yml |
Reverse shell patterns | Execution (T1059) |
container_escape.yml |
Container breakout attempts | Privilege Escalation (T1611) |
- Download rules from the Sigma community rules repo
- Place
.ymlfiles insigma/rules/ - Run
make convert-sigma - Copy generated Falco rules to
detection/config/rules/custom_rules.yaml
SIB includes a MITRE ATT&CK dashboard that maps all detections to the ATT&CK framework, providing visibility into your security coverage.
- Tactic Coverage: 12 stat panels showing detection counts for each ATT&CK tactic
- Timeline View: Events over time grouped by tactic
- Technique Breakdown: Table showing most-triggered techniques
- Priority Distribution: Pie chart of event severities
The dashboard tracks events across all ATT&CK tactics:
ββββββββββββββββ¬ββββββββββββββββ¬βββββββββββββββββ¬ββββββββββββββββββββ
β Initial β Execution β Persistence β Privilege β
β Access β β β Escalation β
ββββββββββββββββΌββββββββββββββββΌβββββββββββββββββΌββββββββββββββββββββ€
β Defense β Credential β Discovery β Lateral β
β Evasion β Access β β Movement β
ββββββββββββββββΌββββββββββββββββΌβββββββββββββββββΌββββββββββββββββββββ€
β Collection β Command & β Exfiltration β Impact β
β β Control β β β
ββββββββββββββββ΄ββββββββββββββββ΄βββββββββββββββββ΄ββββββββββββββββββββ
- Open Grafana at http://localhost:3000
- Navigate to Dashboards β MITRE ATT&CK Coverage
- Run
make demoto generate events across multiple tactics
SIB can enrich detections with threat intelligence from public IP blocklists.
# Download/update threat intel feeds
make update-threatintel| Source | Feed Type | URL |
|---|---|---|
| Feodo Tracker | C&C IPs | abuse.ch |
| SSL Blacklist | SSL abuse IPs | abuse.ch |
| Emerging Threats | Compromised IPs | rules.emergingthreats.net |
| Spamhaus DROP | Spam/DDoS | spamhaus.org |
| Blocklist.de | Attack IPs | blocklist.de |
| CINSscore | Bad reputation | cinsscore.com |
After running make update-threatintel:
threatintel/
βββ feeds/ # Individual feed downloads
β βββ feodo_ipblocklist.txt
β βββ sslbl_aggressive.txt
β βββ emerging_threats.txt
β βββ spamhaus_drop.txt
β βββ blocklist_de_ssh.txt
β βββ blocklist_de_all.txt
β βββ cinsscore.txt
βββ combined_blocklist.txt # Unified blocklist
βββ falco_threatintel_rules.yaml # Generated Falco rules
βββ lookup-ip.sh # IP lookup utility
# Look up an IP against all feeds
./threatintel/lookup-ip.sh 1.2.3.4
# Add generated rules to Falco
cat threatintel/falco_threatintel_rules.yaml >> detection/config/rules/custom_rules.yaml
make restartAdd to crontab to update feeds daily:
# Update threat intel every day at 2 AM
0 2 * * * cd /path/to/sib && make update-threatintel# Check kernel version (need 5.8+ for modern_ebpf)
uname -r
# Check Falco logs
docker logs sib-falco
# Verify privileged mode is working
docker run --rm --privileged alpine echo "OK"# Run the pipeline test
./scripts/test-pipeline.sh
# Check Falcosidekick is receiving events
docker logs sib-sidekick --tail 20
# Query Loki directly (Grafana stack)
curl -s "http://localhost:3100/loki/api/v1/query?query={source=\"syscall\"}" | jq .
# Query VictoriaLogs directly (VM stack β default)
curl -s 'http://localhost:9428/select/logsql/query?query=source:syscall&limit=5'Apache 2.0 License - See LICENSE for details.
- Falco - Cloud native runtime security
- Falcosidekick - Alert routing
- Grafana - Observability platform
- Loki - Log aggregation
- Prometheus - Metrics monitoring
- VictoriaMetrics - Fast metrics & logs storage (thanks @valyala for the suggestion!)

