Aller au contenu

Personas

Au lieu d'un serveur Ubuntu générique, chaque session HYDRA sélectionne aléatoirement l'un des trois personas — des environnements simulés complets conçus pour attirer des profils d'attaquants spécifiques.

Pourquoi les personas comptent

Un serveur vide ne donne rien à explorer aux attaquants. Un serveur avec des credentials réalistes, des services et un historique leur donne une raison de rester — et chaque minute qu'ils restent produit des données d'entraînement.

L'insight : les environnements à valeur financière attirent un engagement plus profond. Nos données le confirment : fintech_trading génère 2,4× plus de commandes que corp_ad.

Les trois personas

fintech_trading

Un serveur d'API de trading appartenant à une petite fintech.

Élément Contenu
Hostname srv-prod-01
Services PostgreSQL, Redis, API Node.js de trading
Credentials leurres Clés AWS dans /root/.aws/credentials, .env.prod avec mots de passe DB
bash_history pg_dump trading_prod -t wallets, vim /opt/trading/config/.env.prod
MOTD Bannière d'avertissement serveur de production

Performance : 34 sessions signal, 1 349 commandes moy., 94s durée moy.

crypto_validator

Un nœud validateur blockchain Solana.

Élément Contenu
Hostname solana-val-01
Services Validateur Solana, stack de monitoring
Credentials leurres Keypairs dans /root/.config/solana/, solde simulé ~4 847 SOL
bash_history solana balance, solana-keygen, commandes de gestion validateur

Performance : 17 sessions signal, 643 commandes moy., 148s durée moy. Notamment, 303 tentatives de login ont utilisé les noms sol et solana — les scanners ciblent spécifiquement les nœuds Solana.

corp_ad

Un serveur membre Active Directory dans un environnement corporate.

Élément Contenu
Hostname dc-backup-03
Services Samba, SSSD, Kerberos, LDAP
Credentials leurres Keytabs Kerberos, exports LDAP, comptes de service
bash_history smbclient, ldapsearch, kinit admin@CORP.LOCAL

Performance : 15 sessions signal, 555 commandes moy., 86s durée moy. Moins de commandes mais des TTPs plus variés — énumération LDAP, Kerberos et SMB.

Fonctionnement technique

Le PersonaEngine gère la sélection et l'injection des personas :

  1. Sélection — Choix aléatoire au session_start, pondéré par la configuration
  2. Overlay VFS — Chaque persona a un fs_blueprint.yaml définissant son arborescence. Le VFS démarre avec ce blueprint et fork une copie CoW pour la session.
  3. Contexte LLM — La description du persona est injectée dans le prompt système du LLM, pour que les réponses correspondent à l'environnement (ex : lister des processus liés à Solana sur le persona crypto)
  4. Surcharges d'identité — Hostname, MOTD, variables d'environnement, services en cours d'exécution
  5. Événements live — Sorties asynchrones périodiques (logs cron, alertes monitoring) pour rendre l'environnement vivant
  6. Fichiers de remplissage — Dotfiles universels (.Xauthority, .lesshst, .rnd) ajoutés à chaque persona pour que ls -la /root ne montre pas un répertoire suspecteusement propre