Aller au contenu

Système de fichiers virtuel

Le Système de Fichiers Virtuel (VFS) de HYDRA résout un problème fondamental des honeypots basés sur LLM : la mémoire.

Si un attaquant exécute mkdir /tmp/tools puis ls /tmp, le dossier doit exister. Sans système de fichiers avec état, le LLM générerait des réponses incohérentes et l'attaquant saurait immédiatement que quelque chose ne va pas.

Architecture

Le VFS repose sur un modèle Copy-on-Write :

  1. Chaque persona définit un fs_blueprint.yaml — une arborescence complète avec fichiers, répertoires, permissions et contenu
  2. Au début de la session, le VFS fork une copie du blueprint
  3. Toute modification (mkdir, touch, rm, echo >>) écrit dans l'overlay de la session
  4. Les lectures vérifient d'abord l'overlay, puis se rabattent sur le blueprint
  5. Les sessions sont complètement isolées — les modifications d'un attaquant n'affectent jamais celles d'un autre
Blueprint (partagé, lecture seule)
├── /root/.aws/credentials     ← clés AWS leurres
├── /root/.bash_history        ← historique admin réaliste
├── /opt/trading/config/       ← configs spécifiques au persona
└── /etc/passwd                ← liste d'utilisateurs réaliste

Overlay de session (par connexion, inscriptible)
├── /tmp/tools/                ← créé par l'attaquant
├── /root/scan.sh              ← uploadé par l'attaquant
└── /etc/crontab               ← modifié par l'attaquant

Pourquoi c'est important

Sans le VFS, un honeypot basé sur LLM est sans état — il peut générer une sortie plausible pour des commandes individuelles mais ne peut pas maintenir la cohérence à travers une session. Le VFS apporte :

  • Cohérence — l'état du système de fichiers est déterministe au sein d'une session
  • Cascade de credentials — un attaquant qui trouve un chemin dans .bash_history peut effectivement cat ce fichier et trouver un contenu correspondant
  • Suivi des modifications — chaque mkdir, touch, rm est logué comme événement filesystem, fournissant un signal d'entraînement supplémentaire
  • Isolation — les sessions concurrentes n'interfèrent jamais entre elles