Open-source cybersecurity ecosystem for Europe and beyond.
10 integrated security platforms + 1 governance layer + 4-language SDK — built for NIS2 compliance, API security, incident response, threat intelligence, and AI-attack defence. Fully self-hosted. Zero vendor lock-in.
Status (May 2026): 10 platforms + SDK at v1.0.0 production. OpenScrub v1.0.0 shipped — kernel-level DDoS mitigation via XDP/eBPF, GoBGP blackhole routing, per-IP rate limiting, CITADEL WORM evidence. CyberPath v1.0.0 shipped — security training with Docker/Wasm labs, Ed25519-signed certifications, NIS2 Article 21(2)(g) evidence to CITADEL WORM, NIS2 Compass coverage API, multi-tenant isolation. SecureLab v1.0.0 shipped — attack simulation and detection validation, 15 built-in attack types, MITRE ATT&CK coverage maps, detection validation against OpenScrub + APIGuard + ThreatFlow, IRFlow integration. VertGuard v1.0.0 shipped — real-time AI-attack defence: prompt injection, C2PA media authenticity, AI threat feed, deepfake video/voice detection, Zoom/Teams/WebEx plugin scaffolding, Python ML layer (HuggingFace), 28 API endpoints, 54 docs, NIS3-ready. APIGuard updated with JWT multi-secret rotation, Redis sliding-window rate limiting, access token denylist, and trusted-proxy depth stripping. OpenCSIRT hardened: silent error elimination, outbox idempotency, CITADEL WORM emission on advisory publish, HMAC replay window fix.
| Platform | What it does | |
|---|---|---|
| 🛡️ | APIGuard | Automated API security testing — OWASP API Top 10 (A1–A10), CVSS 3.1, SARIF/PDF/HTML/JSON reports, CI/CD integration, custom rules, React dashboard. JWT multi-secret rotation, Redis sliding-window rate limiting, access token denylist, trusted-proxy depth stripping |
| 📋 | NIS2 Compass | NIS2 Article 21(2) compliance assessment (all 10 measures), evidence vault, PDF reporting, Article 23 notification delivery, multi-org support |
| 🏛️ | CITADEL | Cryptographic governance engine — MARSHAL 5-gate decision, immutable WORM audit chain, TripleHash (SHA-256 + SHA-512 + BLAKE3), Ed25519 anchor signatures, NDS separation of duties, AUGUR behavioural heuristics |
| 🚨 | IRFlow | Incident response orchestration — graph-based playbook executor, JWT + RBAC (5 roles), HMAC-signed webhooks from APIGuard / CITADEL / ThreatFlow, MARSHAL-gated actions, NIS2 Article 23 async notification |
| 🔍 | ThreatFlow | Threat intelligence aggregation — IOC ingestion, STIX 2.1 bundles, MITRE ATT&CK technique mapping, TAXII / CSV / MISP feeds, cross-feed correlation |
| 📡 | OpenCSIRT | CSIRT operations — constituency lifecycle, incident + advisory management, CSAF 2.0, CITADEL WORM emission, HMAC replay protection, EU peer federation via VertGuard subscriber |
| 🧠 | VertGuard | AI-attack defence — prompt injection (OWASP LLM Top 10), C2PA media authenticity (Rust), AI threat feed (MITRE ATLAS), deepfake video/voice detection, Python ML layer (HuggingFace sklearn), Zoom/Teams/WebEx plugin scaffolding, 28 API endpoints, NIS3-ready |
| 🧱 | OpenScrub | Kernel-level DDoS mitigation — XDP/eBPF data plane (C), Rust/Aya loader, GoBGP blackhole routing, ThreatFlow IOC auto-block, per-IP rate limiting, CITADEL WORM evidence, React dashboard |
| 🎓 | CyberPath | Security training & certification — Docker-based labs, Wasm sandbox (wasmtime), Ed25519-signed certificates, NIS2 Article 21(2)(g) evidence to CITADEL WORM, NIS2 Compass coverage API, multi-tenant isolation |
| 🔬 | SecureLab | Attack simulation and detection validation — 15 built-in attack types (BOLA, JWT bypass, SYN flood, DNS tunnel, multi-stage APT), MITRE ATT&CK coverage maps, detection validation against OpenScrub + APIGuard + ThreatFlow, payload fuzzing engine (Rust), IRFlow integration |
Typed client libraries for Go, Python, TypeScript, and Rust — integrate with any opensecstack platform. v1.0.0 production.
// Go
client := opensecstack.NewAPIGuardClient(baseURL, apiKey)
scan, _ := client.CreateScan(ctx, "https://api.example.com/openapi.json")
findings, _ := client.GetFindings(ctx, scan.ID, opensecstack.GetFindingsOptions{Severity: "critical"})# Python — pip install opensecstack-sdk
client = APIGuardClient(base_url, api_key=api_key)
scan = client.create_scan(spec_url="https://api.example.com/openapi.json")
findings = client.get_findings(scan["id"])// TypeScript — Node 18+ and browser, zero external runtime dependencies
const client = new APIGuardClient({ baseURL, apiKey });
const scan = await client.createScan({ specUrl: "https://api.example.com/openapi.json" });
const findings = await client.getFindings(scan.id, { severity: "critical" });// Rust — async-first with tokio + reqwest
let client = APIGuardClient::new(base_url, api_key);
let scan = client.create_scan("https://api.example.com/openapi.json").await?;
let findings = client.get_findings(&scan.id).await?;Shared module: Argon2id + server-side pepper password hashing — byte-compatible PHC encoding across Go and Python via sdk/go/password and sdk/python-password.
→ sdk/go · sdk/python · sdk/typescript · sdk/rust
All platforms share typed SDK contracts and route governance-sensitive actions through CITADEL's 5-gate engine, with every decision committed to the tamper-evident WORM chain.
APIGuard ──────┐ ┌─ AuthN (session validity)
NIS2 Compass ──┤ ├─ AuthZ (RBAC permission)
ThreatFlow ────┤ ├─ NDS (separation of duties)
IRFlow ────────┼──► opensecstack/sdk ──► CITADEL ─────► ├─ AUGUR (behavioural heuristics)
OpenCSIRT ─────┤ MARSHAL └─ WORM (unconditional append)
VertGuard ─────┤ engine │
OpenScrub ─────┤ ▼
CyberPath ─────┤ ┌──────────┐
SecureLab ─────┘ │ WORM chain│ SHA-256 + SHA-512 + BLAKE3
│ Ed25519 │ (TripleHash)
│ anchors │ every 100 entries
└──────────┘
Inter-service authentication:
- API clients → platforms: JWT HS256 Bearer tokens
- Platform → CITADEL: HMAC-SHA256 request signing with shared secret
- Platform → platform webhooks: HMAC-SHA256 with ±5 min replay window (
X-Irflow-Signature, per-source secrets)
→ Full architecture and data-flow map
| Layer | Technologies |
|---|---|
| API servers | Go 1.24 · chi v5 · zerolog / zap · PostgreSQL 16 · pgx |
| Parsing, crypto, hot paths | Rust 1.75+ (OpenAPI, GraphQL, CVSS 3.1, STIX 2.1, TripleHash, C2PA c2pa-rs, MFCC audio fingerprint, triple-hash) |
| ML & AI defence | Python 3.10+ · HuggingFace Transformers · DistilBERT · scikit-learn (GradientBoosting, IsolationForest) · ONNX · gRPC InferenceService |
| Compliance & reporting | Python 3.10+ · Flask · SQLAlchemy 2.0 · ReportLab · Alembic · CSAF 2.0 · SARIF 2.1.0 |
| Frontend | React 18 + TypeScript + Vite + Tailwind CSS · WebSocket (live video stream) |
| Observability | Prometheus metrics · structured JSON logs with request_id propagation · Grafana dashboards · cstate status page |
| Deployment | Docker · docker-compose · Kubernetes · Helm · Istio/Linkerd mTLS · OPA Gatekeeper · multi-stage builds |
| Crypto | Ed25519 (today) → ML-DSA hybrid (v2.0, 2028) → PQ-default (v3.0, 2030) — see post-quantum roadmap |
git clone https://github.com/opensecstack/opensecstack
cd opensecstack
cp deploy/.env.example deploy/.env # fill in secrets
docker compose -f deploy/docker-compose.yml up -d| Service | URL |
|---|---|
| APIGuard API / UI | http://localhost:8080 / :3000 |
| NIS2 Compass API / UI | http://localhost:8090 / :3001 |
| CITADEL API | http://localhost:8099 |
| IRFlow API | http://localhost:8083 |
| ThreatFlow API | http://localhost:8084 |
| OpenCSIRT API / UI | http://localhost:8088 / :3088 |
| VertGuard API / UI | http://localhost:8091 / :3009 |
| OpenScrub API / UI | http://localhost:8087 / :3087 |
| CyberPath API / UI | http://localhost:8086 / :3006 |
| SecureLab API / UI | http://localhost:8085 / :3085 |
Kubernetes: deploy/k8s. Full topology (ports, network segments, secret distribution): docs/deployment-topology.md.
| Phase | Theme | Timeline | Status |
|---|---|---|---|
| 1 — Foundation | 5 platforms + SDK at v1.0.0 | 2026 Q1-Q2 | ✅ Complete |
| 2 — Network defence & training | OpenScrub v1.0.0, CyberPath v1.0.0 | 2026 Q3 – 2027 Q2 | ✅ Complete |
| 3 — Simulation & CSIRT | SecureLab v1.0.0, OpenCSIRT v1.0.0, ecosystem hardening | 2027 Q3 – 2028 Q2 | ✅ Complete |
| 4 — AI-attack defence | VertGuard v1.0.0 — all 3 sub-phases complete | 2026 Q3 – 2028 Q4 | ✅ Complete |
| 5 — Long-term sovereignty (tiered) | vantage-hash, pyramid-registry, pyramid-os, symphy-os, pyramid-mvno | 2028 – 2036 | 🔮 Aspirational |
→ Full roadmap with quarterly milestones, ecosystem release tags, and honest caveats
v1.0.0 fits different deployments differently. Be honest about which bracket you're in before going live:
| Deployment profile | v1.0.0 verdict |
|---|---|
| Standard — single region, trusted operator, typical SaaS / NGO / public administration | Production-ready |
| Elevated — multi-region, multi-tenant, internal zero-trust mandates | Production-ready with Vault + service mesh + OpenTelemetry |
| High assurance — banking Tier 1, national CSIRTs, NIS2 essential entities | Not yet — wait for v1.1 (JWKS, mTLS, third-party audit) |
Full tier matrix with required controls, known gaps, and roadmap dates: docs/security-maturity.md.
NIST PQC standards finalised 2024. NIS3 (~2030-2032) likely mandates PQC migration. We're moving now, not when the deadline hits:
- v1.1 (2026-2027): crypto-agility schema (algorithm identifiers on every signature + hash)
- v2.0 (2028): hybrid Ed25519 + ML-DSA anchors
- v3.0 (2030): ML-DSA becomes default — aligned with NIS3 transposition
- v4.0 (2033): Ed25519 signing retired (historical verification retained)
→ docs/post-quantum-roadmap.md · ADR-011
| Category | Licence | Platforms |
|---|---|---|
| Security tools (embeddable) | Apache 2.0 | APIGuard, ThreatFlow, OpenScrub, CyberPath, SecureLab, SDK |
| Governance (copyleft prevents closed-source forks of trust layer) | AGPL-3.0 | CITADEL, IRFlow, NIS2 Compass, OpenCSIRT, VertGuard |
The AGPL split is deliberate: governance infrastructure must remain open for its value to hold. Tools remain permissive so you can embed them freely in proprietary pipelines.
The ecosystem grows with the community. Three ways to contribute right now:
- Extend VertGuard. Real ML model weights for video/voice detection, adversarial robustness benchmarks, and Zoom/Teams/WebEx SDK provisioning (OAuth token exchange) are open contributions.
- Expand SecureLab's attack library. Add new attack types, improve MITRE ATT&CK coverage, or build detection adapters for new platforms. File an issue with label
securelab-attack. - Deploy it and break it. File realistic-deployment issues — what broke, what docs misled, what metrics are missing. All 10 platforms are live; real-world findings across any of them are extremely valuable.
- Contributing guide
- Code of conduct
- Governance & maintainer structure
- Security disclosure policy
- GitHub Discussions
- Release process · Compatibility matrix · Deprecation policy
We prefer users find out from us, not from a surprise:
- IRFlow's action dispatcher is a dry-run stub in v1.0. Decisions are stored correctly; real dispatch wiring lands v1.2.
- CITADEL's
/worm/verifydoes linear chain integrity; in-API anchor signature cross-check is v1.1. - VIGIL cross-platform health monitor is design-stage only. Prometheus dashboards cover the gap today.
- Rust SDK CI is Linux-only until cross-compile toolchain on Windows runners stabilises.
- Phase 5 (pyramid-os, symphy-os, pyramid-mvno) is aspirational and depends on foundation backing + EU funding. Without those, ecosystem stabilises at 10-11 active platforms.
Full transparency in CITADEL § Known Limitations and each platform's ROADMAP.md.