Du Modèle au Système : Orchestration & Validation Bare-Metal
Du Modèle au Système : Orchestration & Validation “Bare-Metal”
Entraîner un adaptateur LoRA performant (Article 3) est une étape cruciale, mais en cybersécurité, un modèle isolé n’est qu’un composant passif. Pour qu’il soit réellement utile et sûr, l’expert doit être intégré dans un système d’orchestration capable de planifier des actions, de gérer des dépendances complexes, et surtout, de prouver son efficacité sur du matériel réel.
Pour transformer nos modèles en agents opérationnels, nous utilisons deux piliers technologiques : LangGraph pour le cerveau cognitif et Hyper-V pour la validation sur le terrain (Façon de parler).
1. L’Orchestration avec LangGraph : Le Graphe d’États
Pour accomplir des missions complexes (ex: “Investigue cette alerte de brute force, bloque l’attaquant et génère un rapport de remédiation”), une simple boucle linéaire ne suffit plus. Nous utilisons LangGraph pour construire un graphe d’états récursif où chaque nœud représente une étape de raisonnement ou d’action.
Pourquoi un Graphe plutôt qu’une Chaîne ?
Contrairement aux chaînes linéaires (Sequential Chain), un graphe permet à l’agent de revenir en arrière, de corriger son plan si une action échoue, ou de solliciter un autre agent spécialisé.
Les Nœuds Critiques du Workflow :
analyze: Le Pilot Agent identifie les outils nécessaires à partir de la requête utilisateur.plan: Décomposition de la tâche en micro-étapes séquentielles ou parallèles.execute: Appel effectif des adaptateurs LoRA via notre Runtime Multi-LoRA (PEFT).human_review: Pause du graphe pour les actions critiques. L’état est persisté grâce à la coucheCheckpointerde LangGraph (SQLite par défaut).evaluate: Analyse de la sortie technique. Si l’action a échoué, le graphe boucle versplanpour une alternative stratégique.
Exemple de Logique de Transition Métier
Le graphe n’est pas statique. Il contient de la logique conditionnelle pour gérer les imprévus :
def should_continue(state: SecurityState) -> Literal["continue", "approve", "end"]:
# Si une action destructive est prévue, on demande l'approbation
last_action = state["actions_history"][-1]
if last_action.get("is_impacting") and not state["approved"]:
return "approve"
# Si la mission n'est pas finie, on reboucle vers le Pilot
if not state["is_task_complete"]:
return "continue"
return END
from langgraph.graph import StateGraph, END
# Définition de l'état partagé entre les agents
class SecurityState(TypedDict):
mission: str
plan: List[str]
actions_history: List[dict]
needs_approval: bool
final_report: str
# Création du workflow
workflow = StateGraph(SecurityState)
# Ajout des nœuds d'IA
workflow.add_node("pilot", pilot_agent_node)
workflow.add_node("specialist", specialist_lora_node)
workflow.add_node("approver", human_approval_node)
# Définition de la logique de transition
workflow.add_edge("pilot", "specialist")
workflow.add_conditional_edges(
"specialist",
should_continue_logic,
{"continue": "pilot", "approve": "approver", "end": END}
)
2. Human-in-the-Loop (HITL) : La Gouvernance Obligatoire
L’autonomie totale d’une IA sur un firewall de production est un risque inacceptable. lora-factory implémente un système de gouvernance rigide basé sur les “Checkpoints” de LangGraph :
- Tagging des Fonctions : Chaque fonction de l’agent est taguée
SAFE(Lecture/Diagnostics) ouIMPACTING(Modification de configuration). - Point d’Interruption (Checkpointing) : Toute transition vers un appel
IMPACTINGspécial (ex:delete_filter_rule) interrompt le flux d’exécution. - Audit Contextuel : L’analyste humain reçoit une notification avec le “Pourquoi” (la pensée du modèle) et le “Comment” (le JSON d’appel API). Il peut alors valider, rejeter ou modifier l’action avant qu’elle ne soit transmise physiquement.
Ce mécanisme transforme l’IA de “décideur à haut risque” en un “conseiller à haute vélocité” supervisé.
3. La Preuve par le Réel : Validation Bare-Metal Hyper-V
Comment être sûr que l’agent OPNsense fonctionne vraiment ? Un test “mocké” (simulé) ne suffit pas. Nous avons développé un pipeline de validation sur infrastructure réelle via Hyper-V.
Configuration de la VM de Test (Standard “Factory”)
Pour garantir des résultats répétables, chaque VM de validation suit des spécifications strictes :
- OS : FreeBSD 13.2 (Fondation OPNsense 23.7).
- vCPUs : 4 (Allocation statique).
- RAM : 4096 MB (Mémoire dynamique désactivée pour éviter les lags système).
- Network : 2 adaptateurs synthétiques (WAN et LAN) isolés sur un commutateur privé.
Le Cycle de Validation Automatisé
Nous utilisons des scripts PowerShell pour orchestrer le cycle de vie de la VM :
# Extrait du script de déploiement Hyper-V
New-VM -Name "OPNsense-Validation-Node" -MemoryStartupBytes 4GB -Generation 2
Add-VMDvdDrive -VMName "OPNsense-Validation-Node" -Path $ISO_PATH
Set-VMFirmware -VMName "OPNsense-Validation-Node" -FirstBootDevice $dvd
Start-VM -Name "OPNsense-Validation-Node"
# Injection de configuration via l'API configctl
Invoke-Command -VMName "OPNsense-Agent-VNode" -ScriptBlock {
/usr/local/sbin/configctl template reload OPNsense/Filter
/usr/local/sbin/configctl filter reload
}
Le Cycle de Test End-to-End
Une fois la VM “Up”, l’orchestrateur lance une mission réelle. La validation confirme une corrélation de 98% entre les prédictions du modèle fine-tuné et les effets réels sur le réseau.
4. Architecture Hybride : Local vs Cloud
lora-factory supporte une architecture hybride permettant d’utiliser :
- Un Grand Modèle (LLM Teacher) dans le Cloud pour les phases de réflexion stratégique.
- Des Modèles Spécialisés (LoRA Experts) en local via Ollama ou vLLM pour l’exécution technique rapide et sécurisée.
Cette approche garantit la Confidentialité des Données : les logs sensibles de vos firewalls ne quittent jamais votre infrastructure locale ; seul le plan d’action de haut niveau (abstrait) peut être discuté avec le modèle Cloud.
Conclusion
Le MLOps moderne pour la cybersécurité ne s’arrête pas au fichier .safetensors. C’est une chaîne de confiance qui va du Fine-Tuning à la validation réseau physique. En combinant l’intelligence orchestrée de LangGraph et la rigueur de la validation Hyper-V, nous garantissons des agents non seulement brillants, mais surtout opérationnels et dignes de confiance.
Dans notre dernier article, nous explorerons comment cette approche s’étend au monde de l’Infrastructure as Code (Ansible/Terraform) et notre vision pour un SOC autonome.
Navigation dans la série :
