
SOC piloté par l'IA pour les réseaux OT/ICS — 6 agents autonomes, mapping MITRE ATT&CK, ingestion Suricata/Zeek, réponse avec intervention humaine, plus de 330 tests. Alternative open-source à Claroty/Dragos pour les PME.
Cybersécurité autonome open-source pour réseaux industriels
Des agents IA qui détectent, enquêtent, chassent et répondent aux menaces sur votre infrastructure OT/ICS — avec des portes d'approbation humaine et des pistes d'audit complètes.
Configuration de la démo · Fonctionnalités · Démarrage rapide · Architecture
Démo en direct : https://onealert-demo.mangoglacier-b3ad215d.southeastasia.azurecontainerapps.io/app/
[email protected] | |
| Mot de passe | password123 |
Préchargé avec une usine de traitement d'eau réaliste : 11 actifs OT/IT, un scénario d'attaque multi-étapes (compromission VPN → mouvement latéral → tentative d'accès PLC), un cas d'investigation généré par IA avec cartographie MITRE ATT&CK, et plus de 15 événements de sécurité.
Tableau de bord de posture de sécurité avec KPI, répartition par sévérité et carte thermique des risques
Les outils SOC d'entreprise coûtent 300 000 $ à 800 000 $ par an. Les PME industrielles avec PLC, systèmes SCADA et réseaux OT ne peuvent pas se les permettre — mais elles sont de plus en plus ciblées. OneAlert leur donne une équipe bleue IA qui :
Six agents spécialisés travaillant en équipe :
git clone https://github.com/mangod12/OneAlert.git
cd OneAlert
pip install -r requirements.txt
python -m backend.demo
Ouvrez http://localhost:8000/app/ — les données de démonstration se chargent automatiquement avec le scénario d'attaque.
docker compose up --build
# Backend
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python -m uvicorn backend.main:app --reload
# Frontend
cd frontend-v2 && npm install && npm run dev
# Requis pour les agents IA
AI_PROVIDER=anthropic # ou openai, ollama, vllm, groq
ANTHROPIC_API_KEY=sk-ant-... # ou AI_API_KEY pour les compatibles OpenAI
# Optionnel
AI_TRIAGE_MODEL=claude-sonnet-4-20250514
AI_BASE_URL=http://localhost:11434/v1 # pour Ollama/vLLM
SECRET_KEY=your-production-secret
DATABASE_URL=postgresql://user:pass@host/db
OneAlert AI Security OS
┌─────────────────┬───────────────────┬───────────────────────┐
│ Sensor Layer │ Agent Layer │ Control Plane │
│ │ │ │
│ Suricata EVE │ Detect Agent │ Policy Engine │
│ Zeek Logs │ Triage Agent │ Autonomy Levels │
│ Syslog/Auth │ Hunt Agent │ Approval Workflow │
│ OT Discovery │ Response Agent │ Agent Ledger │
│ PII Redaction │ Purple Agent │ OT Zone Constraints │
│ │ Compliance Agent │ Action Executor │
├─────────────────┼───────────────────┼───────────────────────┤
│ Data Layer │ AI Runtime │ Frontend │
│ │ │ │
│ PostgreSQL │ Claude (default) │ Dashboard │
│ SQLite (dev) │ OpenAI-compat │ Cases & Investigations│
│ Event Store │ Ollama/vLLM │ Events Viewer │
│ Agent Ledger │ Model Routing │ MITRE ATT&CK Map │
│ Semantic Search│ │ Hunt Lab │
│ │ │ Response Plans │
│ │ │ Purple-Team Validation│
└─────────────────┴───────────────────┴───────────────────────┘
Suricata/Zeek Events ──► Ingest API ──► Event Store
│
Detect Agent (anomaly detection)
│
CVE Alerts (NVD/CISA/ICS-CERT) ──► Triage Agent (correlation + MITRE)
│
Investigation Cases
│
Response Agent (governed plans)
│
Human Approval ──► Execute Actions
Documentation complète de l'API à /docs lors de l'exécution locale.
backend/
├── services/ai/ # Runtime LLM indépendant du fournisseur
├── services/agents/ # Agents Detect, Triage, Hunt, Response, Purple
├── services/mitre/ # Intégration MITRE ATT&CK
├── services/parsers/ # Analyseurs d'événements Suricata + Zeek
├── models/ # Modèles SQLAlchemy + schémas Pydantic
├── routers/ # Gestionnaires de routes FastAPI
├── services/pii_redactor.py # Pipeline d'expurgation PII/secret
├── services/action_executor.py # Exécution d'actions de réponse
├── services/semantic_search.py # Recherche TF-IDF + rayon d'impact
└── services/ # CVE, conformité, facturation, notifications
frontend-v2/src/
├── pages/ # Dashboard, Cases, Events, HuntLab, MitreMap, ResponsePlans, Validation
├── components/ # Graphiques, mise en page, UI partagée
└── stores/ # État d'authentification Zustand
tests/ # 309 tests pytest
tests/e2e/ # E2E Playwright contre l'application déployée
docs/ # AI_CONTEXT, ARCHITECTURE, CODEMAP, VISION
Le différenciateur d'OneAlert : des agents IA qui enquêtent et répondent, pas seulement qui collectent des journaux. Chaque action régie par une politique avec approbation humaine pour les actifs OT.
Contributions bienvenues ! Domaines où l'aide est la plus précieuse :
MIT — voir License.
Conçu pour les équipes de sécurité qui ne peuvent pas se permettre une plateforme SOC à 500 000 $ mais qui en ont quand même besoin.
Cas d'investigation généré par IA avec cartographie MITRE ATT&CK et chronologie d'attaque |
Carte thermique de couverture MITRE ATT&CK avec recherche par technique |
Chasse aux menaces en langage naturel avec requêtes générées par IA |
Événements de sécurité Suricata/Zeek avec filtrage par sévérité |
Alertes de vulnérabilité CVE avec correction IA |
Inventaire des actifs OT/IT avec classification du modèle Purdue |
| Agent | Ce qu'il fait |
|---|
| Agent Détection | Analyse les statistiques d'événements pour les scans de ports, les anomalies de protocole OT, les motifs C2 |
| Agent Triage | Corrèle les alertes + événements en cas d'investigation avec cartographie MITRE ATT&CK |
| Agent Chasse | Prend des hypothèses en langage naturel, génère des requêtes SQL, produit des règles Sigma |
| Agent Réponse | Génère des plans de réponse avec actions de confinement ordonnées |
| Agent Pourpre | Simule des techniques ATT&CK pour valider la couverture de détection |
| Agent Conformité | Mappe les données de la plateforme aux contrôles IEC 62443 et NIST CSF |
| Couche | Technologie |
|---|
| Backend | FastAPI, Python 3.11+, SQLAlchemy 2.0 async |
| Frontend | React 19, Vite 8, Tailwind CSS v4, Zustand, Recharts |
| Runtime IA | Indépendant du fournisseur (Claude, GPT-4o, Ollama, vLLM, Groq) |
| Base de données | PostgreSQL (prod), SQLite (dev) |
| Authentification | JWT + GitHub OAuth + TOTP MFA |
| Déploiement | Docker, Azure Container Apps |
| CI | GitHub Actions, 330+ tests (309 pytest + 22 Playwright E2E) |
| Point d'accès | Description |
|---|
POST /api/v1/events/ingest | Récepteur webhook pour les événements de sécurité |
POST /api/v1/events/upload | Télécharger des fichiers journaux Suricata/Zeek |
POST /api/v1/cases/pipeline | Exécuter le pipeline complet d'agents IA |
POST /api/v1/cases/auto-triage | Exécuter l'agent de triage sur les données récentes |
POST /api/v1/hunt/ | Lancer une chasse aux menaces en langage naturel |
GET /api/v1/mitre/coverage | Couverture de détection MITRE ATT&CK |
GET /api/v1/cases/ | Lister les cas d'investigation |
GET /api/v1/alerts/ | Lister les alertes de vulnérabilité |
GET /api/v1/events/stats | Statistiques d'ingestion d'événements |
GET /api/v1/cases/search?q= | Recherche sémantique de cas |
GET /api/v1/cases/{id}/similar | Trouver des incidents similaires |
GET /api/v1/cases/{id}/blast-radius | Graphe d'entités du rayon d'impact |
GET /api/v1/response-plans/ | Lister les plans de réponse |
POST /api/v1/response-plans/{id}/approve | Approuver un plan de réponse |
POST /api/v1/response-plans/{id}/execute | Exécuter un plan approuvé |
POST /api/v1/validation/runs | Créer une exécution de validation par équipe pourpre |
POST /api/v1/validation/runs/{id}/execute | Exécuter des tests de techniques ATT&CK |
GET /api/v1/validation/coverage | Couverture de détection par technique |
| Capacité | OneAlert | Wazuh | SecurityOnion | OSSEC | Caldera |
|---|
| Triage alimenté par IA | Oui (6 agents) | Non | Non | Non | Non |
| Cartographie MITRE ATT&CK | Cartographie automatique | Règles manuelles | Manuelle | Non | Oui |
| Support des protocoles OT/ICS | Modbus, S7, EtherNet/IP | Limité | Basé sur Zeek | Non | Non |
| Chasse aux menaces en langage naturel | Oui | Non | Non | Non | Non |
| Réponse gouvernée (portes d'approbation) | Oui (L0-L4) | Non | Non | Non | Non |
| Validation par l'équipe pourpre | Intégré | Non | Non | Non | Oui (noyau) |
| Expurgation des PII avant LLM | Oui | N/A | N/A | N/A | N/A |
| Ingestion Suricata + Zeek | Oui | Oui | Oui | Non | Non |
| Conformité (IEC 62443, NIST CSF) | Automatisée | Manuelle | Non | Non | Non |
| Analyse SBOM | Oui | Non | Non | Non | Non |
| Auto-hébergeable | Oui | Oui | Oui | Oui | Oui |
| Facturation SaaS (Stripe) | Intégré | Non | Non | Non | Non |
| Industrie | Cas d'utilisation |
|---|
| Eau/Assainissement | Surveiller les PLC contrôlant le dosage chimique et les stations de pompage |
| Fabrication | Protéger les IHM et systèmes SCADA sur le sol d'usine |
| Énergie/Utilitaires | Détecter les mouvements latéraux de l'IT vers les réseaux de contrôle OT |
| MSSP | SOC-as-a-Service multi-locataire pour clients industriels |
| Équipes de sécurité | Validation par équipe pourpre de la couverture de détection |
| Conformité | Collecte automatisée de preuves IEC 62443 et NIST CSF |