Mode opératoire — Démonstration « Sonde PULSAR »

Sonde de recette consentie · reverse-polling · mTLS · audit inviolable
Réf. MOP-DEMO-001
Version 1.0
Public : formation cyber
Diffusion : encadrée
Cadre légal et éthique. Démonstration sur des machines possédées, des VM de laboratoire, ou avec autorisation écrite uniquement. Cet outil n'est pas un moyen d'intrusion : il illustre la frontière entre un outil offensif et un produit gouverné — cette frontière n'est pas technique, elle est faite de consentement, d'authentification mutuelle, de chiffrement et de traçabilité opposable.

Message de la démonstration : « Même mécanique qu'un C2 — mais consentie, mutuellement authentifiée, chiffrée et inaltérablement tracée. La frontière malware/produit n'est pas technique : c'est la gouvernance. » Durée ≈ 10 min.

0 Disposition de l'écran

Écran gauche — Opérateur

Console PULSAR (web, port 9333)

+ terminal de tasking

Écran droit — Cible & preuve

Fenêtre de la sonde (coupe-circuit visible)

+ journal d'audit qui défile

1 Avant la salle — préparation (5 min)

Serveur / relais (portable ou VPS) :

# PKI pour ton relais (LAN / VPN / VPS)
cd recette
./demo-kit/generer-certs.sh <hôte-ou-IP> ./demo-kit/tls-demo
cp demo-kit/tls-demo/{cert.pem,key.pem,ca.pem} tls/
python3 serveur_recette.py        # note le jeton affiché

Sonde (la VM « cible ») : copier sonde-pulsar.ps1, agent-client.pfx et un sonde.conf (serveur=… / jeton=…). Ouvrir la console web à gauche et tail -f recette/registre-actions.jsonl à droite.

0:00Acte 1 — La pose de sondeleur terrain

Sur la cible, le one-liner de déploiement :

$d="$env:LOCALAPPDATA\sonde-pulsar.ps1"; Invoke-WebRequest 'http://<relais>:8080/sonde-pulsar.ps1' -OutFile $d -UseBasicParsing; powershell -ExecutionPolicy Bypass -File $d
Montre

Écran droit : Check-in envoyé — sonde EN LIGNE. Écran gauche : elle apparaît dans la console.

Dis

« Sortie HTTPS uniquement. Aucun port entrant ouvert sur la cible. Transparent au pare-feu — exactement comme un beacon C2 moderne. »

2:00Acte 2 — Le taskingvue opérateur C2
# capture d'écran de la cible
curl -sk -X POST https://127.0.0.1:9333/api/agent/commande -H 'Content-Type: application/json' \
  -d '{"action":"screenshot","machine":"<CIBLE>","libelle":"Capture poste cible","scenario":"demo"}'

# inventaire rapide (shell)
curl -sk -X POST https://127.0.0.1:9333/api/agent/commande -H 'Content-Type: application/json' \
  -d '{"action":"shell","params":{"script":"whoami; hostname"},"machine":"<CIBLE>","libelle":"Inventaire","scenario":"demo"}'
Montre

La capture remonte dans la console (cliquable, zoomable), la sortie shell s'affiche.

Dis

« Capture, exécution distante, collecte. À ce stade, rien ne le distingue d'un RAT… » (pause) « …sauf tout ce que je ne vous ai pas encore montré. »

4:00Acte 2-bis — Le piège métier : la fuite de données patientclimax santé

La capture de l'acte 2 (ou un tail de log applicatif) contient — comme souvent sur un poste de soin — un nom de patient, un NIR, un IPP, une date de naissance…

Outil de diagnostic « normal »PULSAR — Privacy Engine
La capture / le log part en clair dans le journal de l'opérateur → la donnée patient a quitté l'hôpital (RGPD / secret médical / HDS)Le moteur caviarde la PHI avant écriture disque : NOM_PATIENT_a3f2, NIR_… — l'original n'atteint jamais le log ni le contexte de l'IA
Montre

Dans le ticket/log : identités remplacées par des jetons. Le mapping n'est levable que par glass-break (justification ≥ 20 car. ; rôle MÉDECIN_SENIOR / RSSI / DPO ; tracé).

Dis

« Votre outil de diagnostic vient d'exfiltrer le nom d'un patient dans un log sur votre portable. Le mien l'a caviardé avant qu'il touche le disque — et il a tracé qu'il l'a fait. »

Détection : NER CamemBERT-bio + regex · 12 types PHI (NOM/PRÉNOM patient, NIR, IPP, naissance, adresse, téléphone, email, RPPS, n° séjour…) · pseudonymisation réversible par jeton SHA-256 salé · ré-scan des sorties IA (garde-fou N3) · actif par défaut.

5:00Acte 3 — Le twist (gouvernance)de malware à produit
Montre…Dis…
Le coupe-circuit : ferme la fenêtre sonde → elle meurt, la console la voit hors-ligne« Pas de persistance furtive. L'utilisateur garde la main, visiblement. »
mTLS : la ligne mTLS : CN=sonde-demo ; en mode imposé, une sonde sans cert est refusée« Seule une sonde enrôlée se connecte. Authentification mutuelle. »
Les 3 modes (autonome / hybride / piloté) + approbation nominative« En mode piloté, la machine propose, un humain identifié décide. »
Le journal chaîné SHA-256 — chaque action attribuée et chaînée« Inviolable. Qui, quand, quoi. Anti-forensic ? Non : PRO-forensic. »
« Tout ce qu'un trojan vous cache, celui-ci le prouve.
Le code est le même. Le régime juridique est l'opposé. »
8:00Acte 4 — Le cerveaula vision

« Et ce n'est que la sonde. Voilà où ça va. »

Dis

« Un pentest qui produit sa propre preuve, en temps réel, opposable à un auditeur. C'est une tour de contrôle souveraine du SI — et le marché cyber souverain ne l'a pas encore. »

Montre

Le PV de recette HTML + le journal registre-actions.jsonl qui s'est rempli pendant la séance.

2 Clôture (10:00) — le tableau-miroir

« Vous m'avez appris à poser une sonde. Je vous montre la même —
défensive, légale, traçable, gouvernée, pilotée par IA.
La différence, ce n'est pas la technique. C'est ce qu'on en prouve. »
Offensif (qu'ils connaissent)PULSAR (le contrepoint)
Beacon C2 / implantSonde consentie, mTLS
Tasking / commandesCommande approuvée + tracée nominativement
ExfiltrationReporting chiffré + horodaté + signé
Persistance furtiveCoupe-circuit visible, audit inviolable
Anti-forensicPro-forensic : tout est prouvable

3 Checklist matériel