post: Bojemoi Lab — Architecture de la plateforme
All checks were successful
Hugo Build & Deploy / build-deploy (push) Successful in 7s
All checks were successful
Hugo Build & Deploy / build-deploy (push) Successful in 7s
Vue d'ensemble complète : orchestrateur, borodino (ak47/bm12/uzi), samsonov, CTI (razvedka/vigie/dozor/ml-threat-intel), honeypot medved, suricata-attack-enricher et stacks Docker Swarm. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
127
content/posts/bojemoi-lab-architecture.md
Normal file
127
content/posts/bojemoi-lab-architecture.md
Normal file
@@ -0,0 +1,127 @@
|
||||
---
|
||||
title: "Bojemoi Lab — Architecture de la plateforme"
|
||||
date: 2026-02-19
|
||||
draft: false
|
||||
tags: ["infrastructure", "docker-swarm", "metasploit", "security", "architecture"]
|
||||
summary: "Vue d'ensemble complète de la plateforme Bojemoi Lab : orchestration Docker Swarm, workers de scan Metasploit, CTI, honeypot et pipeline de threat intelligence."
|
||||
---
|
||||
|
||||
Bojemoi Lab est une plateforme hybride d'Infrastructure-as-Code déployée sur Docker Swarm (4 nœuds). Elle combine sécurité offensive, CTI, monitoring et orchestration de déploiement.
|
||||
|
||||
**Environnement :**
|
||||
- Manager : meta-76 (Alpine/BusyBox, i9-10900X, 16 GB RAM)
|
||||
- Workers : meta-68, meta-69, meta-70 (contrainte `node.role == worker`)
|
||||
- Registry local : `localhost:5000`
|
||||
- Gitea : `gitea.bojemoi.me`
|
||||
|
||||
---
|
||||
|
||||
## 1. Orchestrateur de déploiement
|
||||
|
||||
FastAPI avec middleware de validation IP géographique, chaîne blockchain SHA-256 pour l'audit immuable des déploiements, et intégration XenServer pour les VMs.
|
||||
|
||||
**Endpoints principaux :**
|
||||
- `POST /api/v1/vm/deploy` — Déployer une VM sur XenServer
|
||||
- `POST /api/v1/container/deploy` — Déployer un service Docker Swarm
|
||||
- `GET /api/v1/blockchain/verify` — Vérifier l'intégrité de la chaîne d'audit
|
||||
|
||||
**Workflow VM :**
|
||||
1. Validation IP source (whitelist Europe Occidentale, bypass RFC1918)
|
||||
2. Récupération du template cloud-init depuis Gitea
|
||||
3. Rendu Jinja2 avec les variables
|
||||
4. Création VM via XenAPI
|
||||
5. Enregistrement blockchain (karacho) + PostgreSQL
|
||||
|
||||
---
|
||||
|
||||
## 2. Borodino — Workers de scan Metasploit
|
||||
|
||||
Image `ruby:3.3-alpine` avec Metasploit Framework complet, nmap, pymetasploit3 et ProtonVPN.
|
||||
|
||||
### ak47 (15 répliques)
|
||||
|
||||
Script ash qui sélectionne des CIDRs depuis `ip2location_db1` via `TABLESAMPLE SYSTEM(1)` et lance `db_nmap -sS -A -O` via msfconsole. Les résultats alimentent la base `msf` (6,15M hosts, 33,7M services).
|
||||
|
||||
### bm12 v2 (15 répliques)
|
||||
|
||||
Fingerprinting profond des hosts existants :
|
||||
- Sélection aléatoire via `TABLESAMPLE SYSTEM(0.001)`
|
||||
- Mapping des services ouverts vers 25 catégories NSE ciblées (http, ssh, smtp, smb, dns, mysql, rdp…)
|
||||
- Un seul msfconsole par host (timeout 600s)
|
||||
- Classification : web / mail / dns / database / file_server / vpn_proxy / voip / iot_embedded / remote_access
|
||||
- Résultat stocké dans `hosts.comments`, `hosts.scan_details` (JSON), `hosts.scan_status='bm12_v2'`
|
||||
|
||||
### uzi (1 réplique)
|
||||
|
||||
Exploitation via MsfRpcClient (pymetasploit3) sur port 55553. Itère les modules exploit Linux post-2021, tente chaque exploit avec chaque payload, alerte Telegram en cas de session ouverte.
|
||||
|
||||
---
|
||||
|
||||
## 3. Samsonov — Orchestrateur Pentest
|
||||
|
||||
Architecture plugin chargée dynamiquement depuis Redis (`pentest:commands`).
|
||||
|
||||
**Pipeline de scan :** Masscan → ZAP spider/active → Burp passive → Nuclei → VulnX → Metasploit
|
||||
|
||||
**Types de scan :** `full`, `web`, `network`, `vuln`, `cms`
|
||||
|
||||
Les résultats sont agrégés et importés dans Faraday.
|
||||
|
||||
---
|
||||
|
||||
## 4. Bibliothèque MITRE ATT&CK
|
||||
|
||||
Package Python partagé `bojemoi-mitre-attack` embarqué dans plusieurs images. Mappe 35+ catégories Suricata vers des techniques ATT&CK avec niveau de confiance (high/medium/low), couvrant : initial-access, reconnaissance, C2, credential-access, privilege-escalation, exfiltration, lateral-movement.
|
||||
|
||||
---
|
||||
|
||||
## 5. Suricata Attack Enricher
|
||||
|
||||
Service Python async qui suit `eve.json` de Suricata en temps réel, mappe chaque alerte vers ATT&CK, et insère en batch dans PostgreSQL (`bojemoi_threat_intel.suricata_attack_alerts`). Batch 50 entrées / flush 5s.
|
||||
|
||||
---
|
||||
|
||||
## 6. Services CTI
|
||||
|
||||
| Service | Rôle |
|
||||
|---|---|
|
||||
| **razvedka** | Surveille canaux Telegram hacktvistes (KillNet, CyberArmyOfRussia…), score l'intention DDoS ciblant la France |
|
||||
| **vigie** | Scrape flux RSS ANSSI/CERT-FR, alerte sur nouvelles vulnérabilités selon une watchlist produits |
|
||||
| **dozor** | Génère les règles blocklist Suricata depuis threat intel, reload via socket Unix |
|
||||
| **ml-threat-intel** | Classificateur ML d'IoC (VT/AbuseIPDB/OTX/Shodan/Anthropic APIs) |
|
||||
|
||||
---
|
||||
|
||||
## 7. Honeypot Medved
|
||||
|
||||
Multi-protocole : SSH :22, HTTP :8888, RDP :3389, SMB :445, FTP :2121, Telnet :2323, Elasticsearch :9200. Toutes les interactions sont loguées dans la base `msf` et envoyées à Faraday.
|
||||
|
||||
---
|
||||
|
||||
## Stacks Docker Swarm
|
||||
|
||||
| Stack | Services principaux |
|
||||
|---|---|
|
||||
| **base** (manager) | postgres, grafana, prometheus, loki, tempo, alertmanager, orchestrator |
|
||||
| **borodino** (workers) | ak47×15, bm12×15, uzi×1, karacho, masscan, nuclei, faraday, zaproxy, redis |
|
||||
| **ml-threat-intel** (workers) | API classificateur IoC |
|
||||
| **razvedka** (workers) | Monitor Telegram hacktvistes |
|
||||
| **vigie** (workers) | Monitor ANSSI/CERT-FR |
|
||||
| **dozor** (workers) | Générateur règles Suricata |
|
||||
| **telegram** (workers) | Bot Telegram (interface Redis + docker-socket-proxy) |
|
||||
| **medved** (workers) | Honeypot multi-protocoles |
|
||||
|
||||
---
|
||||
|
||||
## Base de données
|
||||
|
||||
Instance PostgreSQL partagée sur meta-76 :
|
||||
|
||||
| Base | Usage |
|
||||
|---|---|
|
||||
| `msf` | Metasploit — 6,15M hosts, 33,7M services, 9 GB |
|
||||
| `ip2location` | CIDRs géolocalisation |
|
||||
| `faraday` | Findings sécurité |
|
||||
| `deployments` | État orchestrateur |
|
||||
| `bojemoi_threat_intel` | Alertes Suricata enrichies ATT&CK |
|
||||
| `karacho` | Blockchain audit déploiements |
|
||||
Reference in New Issue
Block a user