IsoLog is a lightweight, offline-capable Security Information and Event Management (SIEM) system designed for air-gapped and isolated networks.
- Multi-source Log Collection: Syslog, file watchers, USB import
- ECS-compliant Parsing: Linux syslog, Windows events, JSON, CSV, firewall logs
- Detection Engine:
- Sigma rule matching
- MITRE ATT&CK TTP mapping
- ML anomaly detection (Isolation Forest)
- Threat scoring
- Blockchain Integrity: Tamper-evident log hashing with Merkle trees
- Offline Updates: Signed update bundles for rules, models, and intel
- Web Dashboard: React-based UI with event streams, alerts, and MITRE heatmap
# Clone and setup
git clone https://github.com/your-org/isolog.git
cd isolog
# Backend
cd backend
pip install -r requirements.txt
python main.py
# Frontend (new terminal)
cd ui
npm install
npm run devAccess at http://localhost:8000 (backend) or http://localhost:3000 (frontend dev)
cd docker
docker-compose up -dAccess at http://localhost:8000 (backend) or http://localhost:3000 (frontend)
# Build portable package
python build.py portable
# Run
cd dist/isolog-portable
./start.sh # Linux/Mac
start.bat # WindowsIsoLog/
├── backend/
│ ├── api/ # FastAPI routes
│ ├── config/ # Configuration management
│ ├── storage/ # SQLite + SQLAlchemy models
│ ├── parsers/ # Log format parsers
│ ├── detection/ # Sigma, MITRE, ML detection
│ ├── blockchain/ # Hash chain integrity
│ ├── updates/ # Offline update system
│ └── main.py # Entry point
├── ui/ # React frontend
├── rules/ # Sigma detection rules
├── docker/ # Docker configuration
├── config.yml # Main configuration
└── build.py # Build script
| Endpoint | Description |
|---|---|
GET /api/events |
Query log events |
GET /api/alerts |
Query security alerts |
GET /api/dashboard/stats |
Dashboard statistics |
POST /api/search |
Full-text search |
GET /api/integrity/verify |
Verify blockchain |
GET /api/system/status |
System health |
Place YAML rules in rules/sigma_rules/. Example:
title: Brute Force Attack
detection:
selection:
event.action: ssh_login
event.outcome: failure
condition: selection
level: medium
tags:
- attack.credential_access
- attack.t1110Automatic mapping of detections to ATT&CK tactics and techniques.
Isolation Forest model trains on event patterns and flags anomalies.
- Create update bundle:
from backend.updates import UpdateBundle
bundle = UpdateBundle()
path = bundle.create(
output_dir="./updates",
sigma_rules_path="./new_rules",
)- Apply update via UI Settings page or API
Edit config.yml:
server:
host: 0.0.0.0
port: 8000
detection:
sigma:
enabled: true
anomaly:
enabled: true
threshold: 0.85
blockchain:
enabled: true
batch_size: 100MIT License - See LICENSE for details.