Skip to content

0xCyberLiTech/SOC

Repository files navigation



SOC 0xCyberLiTech



SOC homelab · défense en profondeur · Kill Chain temps réel · IA intégrée

🌐 Portfolio 🔗 Profil GitHub 📦 Dernière version 📄 CHANGELOG Astuces 📂 Dépôts publics 👥 Contributeurs Astuces

CyberSec

Cybersécurité défensive  •  Homelab en production  •  IA locale intégrée


Philosophie du projet

🎯 Conditions réelles

Apprendre la cyberdéfense sur une infrastructure exposée à internet — pas un lab isolé. Chaque outil est confronté à de vrais scans, de vrais bots, de vraies tentatives d'exploit. Ce qui fonctionne ici fonctionne.

🔒 Savoir construit, pas redistribué

Le framework de déploiement et la documentation sont publics — la méthode est partageable. Les sources du dashboard (24 modules JS) et les scripts opérationnels restent privés : connaissance acquise, pas distribuée.

🛡️ Résilience face à la compromission

Si le serveur est compromis, l'attaquant ne récupère pas la configuration complète depuis ce dépôt. Les configs publiées sont anonymisées. L'archive de restauration reste hors ligne — rebuild en moins de 30 min sur VM vierge.


Cartographie des menaces — Live

GeoIP World

GeoIP — Cartographie mondiale des menaces 24h · arcs d'attaque animés · top pays · 169 IPs actives · 25 pays sources


Kill Chain — Progression des attaques

Kill Chain

Tracking en temps réel : RECON → SCAN → EXPLOIT → BRUTE → NEUTRALISÉ · fenêtre 15 min · score menace par IP


Vue tactique Europe & Investigation IP

SOC Map — Vue Europe Investigation IP
SOC Map Europe IP Investigation
Score ÉLEVÉ 53 · 169 hostiles · 78% neutralisation · arcs kill chain Modal forensique : Kill Chain · CrowdSec · Fail2ban · WHOIS · verdict

GeoIP — Statistiques & Corrélations

GeoIP Stats

Kill Chain 15 min · Top pays attaquants · Scénarios CrowdSec · Heatmap activité · Top 60 IPs 24h


Moteur de corrélation & Chaîne de défense

XDR — Corrélation cross-source Chaîne de défense — Pipeline sécurité
XDR Engine Defense Chain
COLLECT · NORMALIZE · CORRELATE · RESPOND · Score 200 UFW → GeoIP → WAF → CrowdSec → Suricata → Fail2ban → nginx · 8 couches

Heatmap & Monitoring système

Heatmap Attaques 24h Windows / GPU Metrics
Heatmap Windows Metrics
13.2k req · 358 bloqués · 2.7% · pics horaires détectés CPU · RAM · GPU RTX · disques — supervision machine hôte

JARVIS — IA défensive intégrée

JARVIS AI

JARVIS (Ollama phi4-reasoning) · réponse proactive automatique · alertes TTS · analyse LLM événements critiques · ban auto


Construction par phases

# Phase Ce qui a été construit Pourquoi ce choix
1 Reverse proxy + SSL nginx · TLS Let's Encrypt · vhosts · headers sécurité · access_log JSON structuré Point d'entrée unique — logs structurés dès le départ pour tout le pipeline
2 CrowdSec WAF + bouncer nftables AppSec 150+ règles · bouncer kernel-space · scénarios custom · whitelist LAN Blocage comportemental avant que nginx traite la requête — kernel-space = zéro bypass applicatif
3 fail2ban + UFW + GeoIP block 3 jails nginx/ssh · nftables · blocage géographique MaxMind GeoLite2 Compléter CrowdSec : patterns ciblés, firewall stateful, filtrage géo en entrée
4 Dashboard monitoring monitoring_gen.py · monitoring.json · SPA Vanilla JS · premières tuiles système Sans visibilité temps réel, la défense est aveugle — dashboard avant tout ajout
5 Kill Chain + GeoIP cartographie Classification 5 stages · score 0–100 · canvas monde · heatmap 24h · top IPs Transformer les logs bruts en renseignement tactique — qui fait quoi, d'où, quand
6 Suricata IDS 7 + rsyslog centralisé 49k règles Emerging Threats · AF_PACKET · eve.json · 5 hôtes centralisés Détection réseau passive indépendante + corrélation cross-host unifiée
7 JARVIS IA défensive Ollama phi4-reasoning · auto-engine · TTS · ban-ip · restart-service Couche d'expertise optionnelle — le SOC se défend seul, JARVIS amplifie quand disponible
8 AppArmor + AIDE HIDS Confinement processus · base intégrité 49k fichiers · exclusions CrowdSec hub Dernier rempart : un attaquant qui passe tout le reste ne peut ni s'étendre ni persister
9 DR exercice réel + audit 10/10 Exercice Phase A/B/C (2026-04-28) · 8 écarts corrigés · 144 NDT · 90 passes Valider que le système se reconstruit réellement, pas juste sur le papier

Points forts

Capacité Détail
🛡️ 8 couches défense Blocage actif : UFW · nftables · GeoIP Block · CrowdSec WAF · Suricata IDS · Fail2ban — Contrôle : AppArmor (isolation processus) · AIDE HIDS (intégrité fichiers)
🧠 IA défensive JARVIS (Ollama phi4-reasoning) — couche optionnelle · le SOC se défend seul 24h/24 · quand la machine Windows est active : analyse LLM · alertes TTS · ban contextuel
📡 Logs centralisés 5 hôtes via rsyslog — corrélation cross-host temps réel
🎯 Kill Chain Tracking RECON → SCAN → EXPLOIT → BRUTE → NEUTRALISÉ par IP
📊 Score menace 24 briques · calcul temps réel · seuils FAIBLE / MOYEN / ÉLEVÉ / CRITIQUE
🔍 XDR Corrélation Fail2ban + ModSec + UFW + Suricata + rsyslog + routeur
🗺️ GeoIP Cartographie Leaflet + MaxMind · arcs d'attaque animés · top pays
🔄 Plug-and-play Archive 13 blocs · restauration complète sur VM vierge en < 30 min
🔥 DR validé en conditions réelles Exercice Phase A/B/C exécuté le 2026-04-28 · basculement réseau · 8 écarts corrigés · rapport
Audit 10/10 Zéro dette technique · 90 passes · 144 NDT corrigés

Stack technique

OS          Debian 13 (Trixie)
Proxy       nginx 1.26 — reverse proxy · TLS · vhosts
Sécurité    CrowdSec (WAF AppSec ~207 vpatch CVE) · Suricata IDS (96k règles)
            Fail2ban · AppArmor · UFW + nftables · AIDE HIDS
Logs        rsyslog centralisé (5 hôtes) · GoAccess
Dashboard   SPA vanilla JS — 24 modules · 35 tuiles · zéro dépendance NPM
Backend     Python 3.11 — monitoring_gen.py (génération JSON live)
IA          JARVIS — Ollama phi4-reasoning · Flask · edge-tts
GeoIP       MaxMind GeoLite2 · Leaflet.js
Infra       Proxmox VE — 3 VMs (srv-ngix · site-01 · site-02)

Architecture

INTERNET
   │
   ▼
┌─────────────────────────────────────────────────────┐
│                    srv-ngix                         │
│                                                     │
│  UFW + nftables ──→ GeoIP Block ──→ CrowdSec WAF    │
│       ──→ Suricata IDS ──→ Fail2ban ──→ nginx       │
│       ──→ AppArmor · AIDE HIDS                      │
│                                                     │
│  ┌──────────────────────────────────────────────┐   │
│  │         Dashboard SOC (port 8080)            │   │
│  │  24 modules JS · polling 60s · Kill Chain    │   │
│  └──────────────────────────────────────────────┘   │
│                                                     │
│  rsyslog ◄── site-01 · site-02 · pve · <ROUTER>     │
└─────────────────────────────────────────────────────┘
         │                    │
         ▼                    ▼
   site-01                site-02
   Apache · AppArmor      Apache · AppArmor
   ModSecurity WAF        ModSecurity WAF

Par où commencer ?

Objectif Point d'entrée
📖 Comprendre l'architecture et les choix défensifs Documentation 0109
⚙️ Installer la stack logicielle sur Debian 13 deploy-soc.sh — paquets + configuration de base
🔧 Adapter une configuration à votre infrastructure CONFIGS/ — exemples anonymisés · placeholders <NOM>
📋 Comprendre la méthodologie de déploiement GUIDE-DEPLOIEMENT-RAPIDE.md — workflow disaster recovery

Ce dépôt met à disposition : Architecture complète · 9 documents techniques · framework de déploiement · configs anonymisées · rapport DR exercice réel (2026-04-28)

🔒 Les sources du dashboard (24 modules JS) et les scripts opérationnels restent privés — connaissance construite, pas redistribuée.

Infrastructure de référence : ce SOC tourne sur Proxmox VE (machine physique) hébergeant 3 VMs Debian 13. La reconstruction sur un autre hyperviseur (KVM, VMware, bare-metal) est possible en adaptant les 4 IPs du bloc CONFIG de deploy-soc.sh :

Placeholder Rôle Exemple générique
<SRV-NGIX-IP> VM nginx + SOC dashboard 203.0.113.10
<CLT-IP> VM site-01 (Apache) 203.0.113.11
<PA85-IP> VM site-02 (Apache) 203.0.113.12
<PROXMOX-IP> Hyperviseur Proxmox VE 203.0.113.1

Documentation

# Document Description
01 PRESENTATION.md Présentation, objectifs, points forts
02 ARCHITECTURE.md Infrastructure, stack, schéma réseau
03 SECURITE-BRIQUES.md 8 couches défense · matrice couverture par vecteur
04 DASHBOARD-SOC.md Dashboard : modules JS · tuiles · polling · CSS
05 CHAINE-DEFENSE.md Flux attaque → détection → ban · intégrations
06 THREATSCORE.md Score menace : 24 briques · formule · anti-doublons
07 RSYSLOG-CENTRAL.md Logs centralisés : 5 hôtes · filtres · rétention
08 JARVIS-DEFENSE.md Défense proactive IA : boucle 60s · 12 déclencheurs
09 ROADMAP.md Axes d'évolution · décisions d'architecture

Framework de déploiement

⚠️ Disaster recovery personnel — non reproductible depuis ce dépôt seul. restore-soc.sh nécessite une archive de configuration privée (configs, clés SSH, scripts opérationnels) conservée hors dépôt. deploy-soc.sh est utilisable indépendamment pour installer la stack logicielle sur n'importe quel Debian 13.

Script / Guide Rôle Utilisable sans archive
deploy-soc.sh Installation paquets — nginx · CrowdSec · Suricata · Fail2ban · AIDE · rsyslog · --dry-run · --step
restore-soc.sh Restauration complète depuis archive privée — 13 blocs · --dry-run · --step · rollback auto 🔒 archive requise
create-archive.sh Export de la configuration en cours — génère l'archive 13 blocs
GUIDE-DEPLOIEMENT-RAPIDE.md Documentation du workflow complet — référence méthodologique
RUNBOOK-DEBIAN13.md Runbook installation Debian 13
CHECKLIST-DEPLOY.md 61 points de vérification post-déploiement
CHECKLIST-OPERATIONNELLE.md Checklist exploitation quotidienne
DR-EXERCISE-2026-04-28.md Rapport exercice DR réel — Phase A/B/C · 8 écarts détectés et corrigés
CONTENU-ARCHIVE.md Structure détaillée des 13 blocs de l'archive
AUDIT-ARCHIVE-CHECKLIST.md Checklist avant chaque archivage

Scripts Python & Shell

Fichier Rôle Statut
monitoring_gen.py Moteur principal — génère monitoring.json toutes les 5 min · 60+ fonctions · parsing nginx / CrowdSec / Suricata / Fail2ban / rsyslog 🔒 privé
soc-daily-report.py Rapport HTML quotidien par mail (08h00) 🔒 privé
monitoring.sh Wrapper cron + GoAccess HTML analytics 🔒 privé
proto-live.py Statistiques protocoles temps réel (fenêtre 5 min) 🔒 privé
alert.conf.example Configuration SMTP alertes — copier en alert.conf ✅ public
jail.local Fail2ban — 3 jails : sshd · nginx-cve · nginx-botsearch ✅ public
rsyslog-10-central-receiver.conf Récepteur rsyslog central (TCP+UDP 514) ✅ public
rsyslog-99-forward-site01.conf Émetteur rsyslog — site-01 → srv-ngix ✅ public
rsyslog-99-forward-site02.conf Émetteur rsyslog — site-02 → srv-ngix ✅ public
apparmor-apache2-clt.conf Profil AppArmor Apache2 — site-01 ✅ public
apparmor-apache2-pa85.conf Profil AppArmor Apache2 — site-02 ✅ public
crowdsec/ 4 scénarios CrowdSec custom (http-bad-ua · exploit-scan · php-rce · geo-block) ✅ public
logrotate.d/ 7 règles logrotate : nginx · fail2ban · monitoring · rsyslog · aide · ufw · sites ✅ public

Dashboard SOC

SPA Vanilla JS — zéro dépendance NPM · 24 modules · 35 tuiles.

Les sources JS ne sont pas publiées dans ce dépôt. La page HTML et le CSS sont disponibles à titre de référence.

Caractéristique Détail
Architecture 24 modules JS à responsabilité unique — rendu, canvas, fetch, modals, XDR, investigation IP…
35 tuiles Kill Chain · GeoIP · XDR · Fail2ban · CrowdSec · Suricata · AIDE HIDS · rsyslog · nginx · Freebox · JARVIS
Kill Chain Canvas 2D — tracking RECON → SCAN → EXPLOIT → BRUTE → NEUTRALISÉ · score menace par IP
Investigation IP Modal forensique — CrowdSec · Fail2ban · GeoIP · WHOIS · verdict · historique 30j
XDR Engine Corrélation cross-source 6 flux · score 0-200 · seuils FAIBLE / MOYEN / ÉLEVÉ / CRITIQUE
GeoIP Leaflet.js + MaxMind GeoLite2 — cartographie mondiale · arcs d'attaque animés
Polling Cycle 60s — toutes les tuiles se rafraîchissent automatiquement · zéro rechargement de page
Thème Glassmorphism — tokens CSS --fs-* · responsive · zéro framework CSS
Qualité Audit 10/10 · 90 passes · 144 NDT corrigés · zéro dette technique

Configurations de référence

Fichiers de configuration anonymisés — remplacer les placeholders <LAN-SUBNET>, <SSH-PORT>, <SRV-NGIX-IP>, etc.

# Fichier Description
01 nginx.md nginx.conf · vhosts · snippets SSL · headers sécurité · GeoIP block
02 crowdsec.md Collections · LAPI · bouncer nftables · scénarios custom · whitelist LAN
03 fail2ban.md jail.local · action crowdsec-sync · filtres nginx-cve · nginx-botsearch
04 suricata.md AF_PACKET · ring buffer · eve.json · update.yaml · sysctl hardening
05 rsyslog.md Récepteur central · 5 hôtes · template par hôte · logrotate · corrélations
06 ufw-apparmor.md Règles UFW entrantes/sortantes · bouncer nftables · profils AppArmor
07 crons.md 9 tâches planifiées : monitoring · Suricata · CrowdSec · rapport · GeoIP

🖥️ Infrastructure & Sécurité 💻 Développement & Web 🤖 Intelligence Artificielle


Ollama

Anthropic

🔒 Projets proposés par 0xCyberLiTech · Développés en collaboration avec Claude AI (Anthropic) 🔒

About

Dashboard sécurité production — CrowdSec WAF · Suricata IDS · Kill Chain · 24 modules · audit 10/10.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors