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.
Console PULSAR (web, port 9333)
+ terminal de tasking
Fenêtre de la sonde (coupe-circuit visible)
+ journal d'audit qui défile
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.
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
Écran droit : Check-in envoyé — sonde EN LIGNE. Écran gauche : elle apparaît dans la console.
« Sortie HTTPS uniquement. Aucun port entrant ouvert sur la cible. Transparent au pare-feu — exactement comme un beacon C2 moderne. »
# 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"}'
La capture remonte dans la console (cliquable, zoomable), la sortie shell s'affiche.
« 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é. »
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 |
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é).
« 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.
| 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. » |
« Et ce n'est que la sonde. Voilà où ça va. »
« 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. »
Le PV de recette HTML + le journal registre-actions.jsonl qui s'est rempli pendant la séance.
| Offensif (qu'ils connaissent) | PULSAR (le contrepoint) |
|---|---|
| Beacon C2 / implant | Sonde consentie, mTLS |
| Tasking / commandes | Commande approuvée + tracée nominativement |
| Exfiltration | Reporting chiffré + horodaté + signé |
| Persistance furtive | Coupe-circuit visible, audit inviolable |
| Anti-forensic | Pro-forensic : tout est prouvable |
generer-certs.sh)sonde.confagent-client.pfx à côté de la sonde (pour l'acte mTLS)tail -f registre-actions.jsonl visibles à l'écran