Capacité

Enregistre ce que l'utilisateur a réellement fait — et non des instantanés périodiques

Les captures d'écran périodiques produisent le plus souvent des images vides. ZeroLeak capture les instants qui comptent — chaque clic, navigation, soumission de formulaire, événement de touche et opération du presse-papiers — avec le curseur de souris marqué, avant-et-après aux transitions de page, et un tampon clavier par mots qui se lit comme du texte, et non comme un déversement de touches.

La conformité, le risque interne et l'investigation d'incident doivent toutes répondre à la même question : qu'a réellement fait l'utilisateur dans cette session ? Les captures d'écran à intervalle périodique vous donnent le plus souvent un index d'images vides et forcent le réviseur humain à parcourir un état vide sans fin pour trouver les instants critiques. ZeroLeak inverse cela. La session est enregistrée en continu sous forme de vidéo, les captures d'écran sont déclenchées aux instants où des événements importants se produisent (clics, navigations, soumissions de touche, opérations du presse-papiers), la position de la souris est dessinée sur chaque capture d'écran pour qu'on puisse voir ce qui a été cliqué, les navigations capturent à la fois l'avant et l'après chargement de la nouvelle page, et les saisies clavier sont mises en mémoire tampon en mots plutôt qu'en événements de touche individuels — de sorte que l'audit se lit comme le texte que l'utilisateur a saisi, avec des marqueurs [BS] pour les corrections, et non comme une chronologie impassible de chaque keydown.

Déclenché par événement
Les captures d'écran sont déclenchées par les actions de l'utilisateur, non par un minuteur — index courts, signal élevé
3 flux
Captures d'écran déclenchées par événement, vidéo continue, enregistrement d'événements structuré — tous alignés par horodatage
Par mots
Les saisies clavier sont vidées en texte lisible avec marqueurs [BS], et non en bruit touche par touche

Les captures d'écran périodiques produisent du bruit ; il vous faut les instants qui comptent

L'approche d'enregistrement de session par défaut consiste à prendre une capture d'écran toutes les quelques secondes. Le résultat est un index rempli d'images qui se ressemblent — l'utilisateur lit la page, l'utilisateur lit la page, l'utilisateur lit encore la page — avec de vrais événements importants intercalés, quelque part entre deux instantanés qui arrivent trop tard et ne montrent que le résultat.

La capture périodique manque aussi la réponse à la question la plus importante pour tout audit ou investigation : qu'a fait l'utilisateur ? Un instantané pris 1,5 seconde après un clic ne montre pas ce qui a été cliqué. Un instantané pris 3 secondes après une soumission de formulaire ne montre pas ce qui a été saisi. L'enregistrement d'audit contient des événements sans contexte ; les captures d'écran contiennent du contexte sans événement. Les relier est un travail manuel qui passe mal à l'échelle avec le nombre de sessions.

ZeroLeak utilise une approche différente. Les captures d'écran sont déclenchées non par un minuteur, mais par les événements eux-mêmes. Les navigations capturent deux captures d'écran — la page avant le clic et l'après chargement de la nouvelle page — de sorte que cause et effet sont préservés en paire. La position de la souris est dessinée sur chaque capture, pour qu'on puisse voir ce qui a été cliqué. Les saisies clavier sont mises en mémoire tampon en mots lisibles. En dessous, une vidéo continue est enregistrée, de sorte que les intervalles entre les événements capturés restent rejouables si nécessaire.

Capture déclenchée par événement, vidéo continue, texte lisible

Pour chaque session, trois sous-systèmes d'enregistrement fonctionnent en parallèle : captures d'écran déclenchées par événement aux instants critiques, vidéo FFmpeg continue à la fréquence d'images configurée, et enregistrement d'événements structuré avec saisie clavier mise en mémoire tampon par mots et activité complète du presse-papiers. Chacun peut être activé et désactivé par service protégé ; par défaut, les trois fonctionnent ensemble, de sorte que la reconstitution est toujours possible.

Les captures d'écran sont déclenchées par les événements, non par un minuteur

Les captures sont déclenchées par les actions réelles de l'utilisateur — clics, navigations de page, soumissions de touche, soumissions de formulaire, opérations du presse-papiers. Pas de polling temporel qui remplit le disque d'images vides. Chaque capture d'écran saisit un instant important ; l'index est court et informatif, et non long et bruyant.

Le curseur de souris est dessiné sur chaque capture d'écran

Sur chaque capture d'écran prise, la position de la souris est marquée par un indicateur visible — un point rouge aux coordonnées exactes du clic ou du survol. Vous voyez ce sur quoi l'utilisateur a cliqué, et non la page résultant du clic. Une reconstitution de l'intention en une seule image, et non un puzzle à plusieurs images.

Paire avant-et-après à chaque navigation

Lorsque l'utilisateur navigue, deux captures d'écran sont prises — l'une de la page avant le clic, l'autre de la page cible après le chargement complet du nouveau contenu. Cause et effet sont préservés en paire. Le réviseur voit « l'utilisateur a cliqué sur le lien X, la page suivante chargée était Y » sous forme de deux images contiguës.

Les saisies clavier sont mises en mémoire tampon en mots lisibles

Les événements de touche individuels s'accumulent dans un tampon vidé sur l'espace, l'entrée, la tabulation ou une courte pause. Le résultat se lit comme le texte que l'utilisateur a saisi, et non comme un déversement d'événements touche par touche. Les retours arrière sont préservés comme marqueur [BS], de sorte que les corrections sont visibles. Les touches répétées (maintenues) sont filtrées. Les opérations du presse-papiers sont enregistrées séparément avec leur contenu réel.

Ce que capture le sous-système d'enregistrement

Chaque mécanisme de capture peut être configuré indépendamment par service protégé et fonctionne sans impact sur les performances de la session utilisateur. Les trois flux (captures d'écran, vidéo, enregistrement d'événements) sont alignés par horodatage, de sorte que le réviseur peut passer de l'un à l'autre sans rupture.

Déclencheurs de capture d'écran déclenchés par événement

Les captures d'écran sont déclenchées aux clics de l'utilisateur, aux navigations (avec paire avant-et-après), aux soumissions de formulaire, aux soumissions de touche (Entrée), aux opérations du presse-papiers (copie, coupe, collage), aux captures déclenchées manuellement depuis la console opérateur et à plusieurs autres types d'événements importants. La liste complète des événements se configure par service protégé.

Attente network-idle pour les captures de navigation

Lors d'une navigation, la capture d'écran de la cible n'est prise qu'après la fin du chargement de la nouvelle page — en attendant la mise au repos du réseau plus un court délai de rendu supplémentaire. La capture d'écran prise montre la page telle que l'utilisateur la verra réellement, et non un état intermédiaire à moitié chargé.

Vidéo FFmpeg continue à la fréquence d'images configurée

Sous les captures d'écran déclenchées par événement, la session est enregistrée en continu sous forme de vidéo en utilisant x11grab de FFmpeg. La fréquence d'images est configurable (10 fps par défaut pour des fichiers compacts ; des fréquences plus élevées sont disponibles pour une capture à haut détail). La vidéo est segmentée pour un flux et un replay sûrs ; les segments sont horodatés pour s'aligner avec les flux de captures d'écran et d'enregistrement d'événements.

Enregistrement de la saisie clavier mise en mémoire tampon par mots

Les événements de touche s'accumulent dans un tampon vidé aux frontières de mots (espace, entrée, tabulation) ou après une courte pause inactive. La chaîne vidée se lit comme du texte — « bonjour le monde [BS][BS][BS][BS][BS]salut le monde » — préservant l'intention et les corrections de l'utilisateur sans le bruit de chaque événement keydown individuel.

Activité du presse-papiers capturée avec le contenu

Les opérations de copie, coupe et collage sont enregistrées séparément des saisies clavier, y compris le contenu réel du presse-papiers concerné. Un réviseur voit exactement ce qui a été copié et collé, et non seulement qu'un événement de presse-papiers s'est produit.

Numérotation séquentielle et recherche

Les captures d'écran sont numérotées séquentiellement (0001, 0002, ...) et stockées avec l'horodatage et les métadonnées d'événement. La console opérateur les liste avec l'événement qui les a déclenchées, de sorte que le réviseur peut sauter directement à l'instant qui l'intéresse — par exemple toutes les captures déclenchées par le presse-papiers dans une session, ou la paire de navigation autour d'une URL précise.

Enregistrement d'événements — ce qui est enregistré au-delà des clics

Au-delà des captures d'écran et de la vidéo, un enregistrement d'événements structuré capture l'historique d'interaction de l'utilisateur avec le contexte complet. Chaque événement a un type, un horodatage, une référence de capture d'écran associée (le cas échéant) et son payload pertinent. C'est ce qui rend l'enregistrement non seulement parcourable visuellement, mais recherchable et analytiquement utile.

01

Clics de souris avec coordonnées et élément cible

Chaque événement de clic enregistre les coordonnées x/y et l'élément DOM sous le curseur (balise, classe, ID, contenu texte lorsqu'il est présent). Le réviseur peut rechercher dans l'enregistrement de session les clics sur un bouton ou un lien précis, sans avoir à parcourir les captures d'écran pour en chercher un.

02

Événements de défilement (throttled)

Les changements de position de défilement sont enregistrés de manière throttled pour éviter le spam de journaux. Une résolution suffisante pour reconstituer où l'utilisateur regardait sur les longues pages, mais sans produire des milliers d'événements de défilement superflus par minute.

03

Événements de navigation, y compris les changements de route SPA

Chaque navigation — chargements de page complets, changements pushState d'applications monopage, changements de position programmatiques — est journalisée avec l'URL source, l'URL cible, le déclencheur (clic de lien, manuel, programmatique) et le temps d'achèvement. Les navigations SPA que la journalisation traditionnelle manque sont captées par la couche de polling d'URL de ZeroLeak.

04

Événements de soumission de formulaire avec références de champs

Lorsque l'utilisateur soumet un formulaire, l'enregistrement d'événements capture l'URL d'action du formulaire, sa méthode et les noms des champs. Les valeurs réelles des champs sont capturées via l'enregistrement de la saisie clavier (afin que l'historique de saisie soit préservé), et ne sont pas répétées dans l'événement de formulaire.

05

Transitions inactif et actif

La couche d'entrée de session surveille l'activité de l'utilisateur. Les transitions entre les états actif et inactif sont enregistrées avec horodatages, de sorte que les réviseurs peuvent voir les périodes d'attention et l'inactivité — utile pour la revue de conformité et les questions d'audit basées sur le temps.

06

Métadonnées au niveau de la session en fin de session

En fin de session, des métadonnées de synthèse sont enregistrées : durée totale, répartition inactif-actif, total d'événements par type, captures d'écran produites, références des fichiers vidéo et motif de terminaison (expiration, terminaison manuelle, erreur). Si un webhook de coordinateur est configuré, ce résumé lui est aussi déclenché.

Là où l'enregistrement de session révèle sa valeur

Audits de conformité et revue réglementaire

Des régulateurs qui demandent ce qu'ont fait des utilisateurs précis dans des sessions précises — revue HIPAA d'accès aux dossiers patient, conformité des salles de marché financières, audits de traitement des données publiques. La capture déclenchée par événement produit par session une trace courte et informative que les réviseurs peuvent parcourir rapidement.

Investigation de menace interne

Lorsqu'une fuite ou une violation de politique est suspectée, l'enquêteur doit savoir exactement ce que l'utilisateur a fait — et pas seulement quand. Les captures d'écran séquentielles avec marquage de souris, les saisies clavier mises en mémoire tampon par mots et le contenu complet du presse-papiers rendent la session rejouable en détail sans regarder des heures de vidéo.

Audit de l'accès des sous-traitants et des tiers

Des utilisateurs externes recevant un droit de consultation uniquement sur votre environnement. Un enregistrement complet par session — accompagné d'un filigrane visible qui identifie l'utilisateur — assure la responsabilité pour tout ce qu'ils ont vu et chaque action qu'ils ont effectuée pendant la fenêtre d'accès.

Analyse d'incident opérationnel

Après un événement inattendu sur une console SCADA ou opérationnelle, l'enregistrement montre exactement ce que l'opérateur a vu dans les instants précédents et sur quels contrôles il a cliqué. La paire avant-et-après à la navigation accélère grandement le diagnostic des erreurs en cascade.

Questions fréquentes

Combien de stockage une session typique consomme-t-elle ?
Comme les captures d'écran déclenchées par événement ne se déclenchent qu'aux instants importants, elles produisent un petit index par session — généralement des dizaines de captures par session active, et non des milliers. Le flux vidéo continu est configurable en fréquence d'images et en résolution ; avec 10 fps par défaut et la compression par segment, des heures de vidéo de session restent à des tailles de fichier gérables. L'enregistrement d'événements est du texte et apporte peu de surcharge. Le stockage total évolue avec les heures-utilisateur actives, et non avec le nombre de sessions.
L'utilisateur sait-il qu'il est enregistré ?
C'est une décision de politique par service protégé. Certains régimes de conformité imposent une notification explicite à l'utilisateur au début de session ; d'autres effectuent un enregistrement silencieux pour la couverture de menace interne. Les deux modes sont pris en charge. Le filigrane visible (lorsque le filigrane forensique est aussi activé) fait office de double notification d'enregistrement pour les déploiements qui combinent les deux.
Que devient l'enregistrement si la session se termine brusquement ?
L'arrêt propre capture l'état final et ferme proprement le segment vidéo. En cas de terminaison inattendue (crash de processus, arrêt forcé du conteneur), l'enregistrement par segment de FFmpeg laisse derrière lui des segments récupérables — au pire le tout dernier segment est perdu, et non toute la session. L'enregistrement d'événements et les captures d'écran précédentes survivent à une telle terminaison.
Comment les réviseurs naviguent-ils dans une session enregistrée ?
La console opérateur liste les événements de la session par ordre chronologique avec le type d'événement déclencheur, l'horodatage et (le cas échéant) un petit aperçu de la capture d'écran associée. Le réviseur peut sauter directement à n'importe quel événement — « montrer toutes les opérations du presse-papiers », « montrer la navigation qui a éloigné l'utilisateur du tableau de bord », « montrer les soumissions de formulaire » — sans parcourir la vidéo.
Comment cela s'articule-t-il avec le filigrane et l'isolation ?
L'isolation du contexte de navigateur donne à chaque session son propre environnement de navigateur et impose la frontière de navigation. Le filigrane forensique identifie l'utilisateur sur chaque image. L'enregistrement de session capture ce qu'ils ont fait. Les trois sont des couches complémentaires — l'isolation définit le périmètre, le filigrane détermine qui s'y trouve, l'enregistrement capture ce qu'ils y ont fait.
L'application protégée peut-elle désactiver l'enregistrement ou interférer avec lui ?
Non. Le sous-système d'enregistrement fonctionne en dehors de l'exécution de l'application protégée — non dans le DOM ou le JavaScript de l'application, mais dans les couches de rendu et d'entrée gérées par ZeroLeak. L'application n'a pas d'API pour bloquer les captures d'écran, supprimer les saisies clavier de l'enregistrement ou mettre la vidéo en pause. L'enregistrement n'est pas demandé à l'application, il est imposé par la politique.

Voyez l'enregistrement déclenché par événement en démo en direct

Nous ouvrirons une session, cliquerons sur quelques liens, remplirons quelques formulaires, copierons du contenu et montrerons l'index de captures d'écran résultant, l'enregistrement clavier et les segments vidéo — ainsi que la façon dont un réviseur reconstitue la session à partir d'eux.