Tamper protectionProtection contre l'altération
Why a connected session can never change or stop the program it is connected through, and what happens when it tries.Pourquoi une session connectée ne peut jamais modifier ou arrêter le programme par lequel elle passe, et ce qui arrive quand elle essaie.
A connected session must never change or stop the program it is connected through. On by default (banOnTamper).
Une session connectée ne doit jamais modifier ou arrêter le programme par lequel elle passe. Activé par défaut (banOnTamper).
1. The ideaL'idée
The person at the PC trusts xdesk to show them everything a session does. A session that edits xdesk, its settings or its registry, or kills it, could hide itself or lock them out: so it is banned at once.
La personne devant le PC compte sur xdesk pour lui montrer tout ce que fait une session. Une session qui modifie xdesk, ses réglages ou son registre, ou qui le tue, pourrait se cacher ou l'enfermer dehors : elle est donc bannie aussitôt.
2. What is watchedCe qui est surveillé
| Watched | How | Reaction |
|---|---|---|
| the binary, the config folder, the data folder | hashed and watched | a change while a session is acting (a command running in one of its terminals, input in the last 5 s) bans those sessions; a change while no session acts is logged as a local change (a rebuild, an update) |
| lines typed in a remote terminal | checked before their Enter reaches the shell: paths of xdesk, its name, kill / taskkill / systemctl of its pid... | the line is not run, the session is banned |
| processes started from the remote terminals | scanned (Linux: command line and open files) | ban |
| the host process | hardened (Linux: not dumpable, not traceable; Windows: terminate, memory and thread rights removed) | a host killed during a remote session bans those devices at the next start |
| Surveillé | Comment | Réaction |
|---|---|---|
| le binaire, le dossier de config, le dossier de données | hachés et surveillés | une modification pendant qu'une session agit (une commande qui tourne dans un de ses terminaux, une entrée dans les 5 dernières s) bannit ces sessions ; une modification sans session active est notée comme locale (une recompilation, une mise à jour) |
| les lignes tapées dans un terminal distant | vérifiées avant que leur Entrée n'atteigne le shell : chemins de xdesk, son nom, kill / taskkill / systemctl de son pid... | la ligne n'est pas lancée, la session est bannie |
| les processus lancés depuis les terminaux distants | analysés (Linux : ligne de commande et fichiers ouverts) | ban |
| le processus de l'hôte | durci (Linux : non dumpable, non traçable ; Windows : droits de terminaison, mémoire et threads retirés) | un hôte tué pendant une session à distance bannit ces appareils au démarrage suivant |
3. Local actions onlyActions locales seulement
- Remote input is paused while the local user uses the panel (Windows: the panel is excluded from the capture).
- Unban, trust, forget and the settings are refused while a remote session has control or a terminal.
- Lifting a ban asks the word
unbantyped;xdesk unbanrefuses pipes and shells started by xdesk.
Warning. These checks stop the usual ways of touching xdesk from a remote terminal, not a determined attacker with a shell running as your user. The real protection is not giving the terminal right to people you do not trust.
- Les entrées à distance sont en pause pendant que l'utilisateur local se sert du panneau (Windows : le panneau est exclu de la capture).
- Débannir, faire confiance, oublier et les réglages sont refusés tant qu'une session à distance a le contrôle ou un terminal.
- Lever un ban demande de taper le mot
unban;xdesk unbanrefuse les pipes et les shells lancés par xdesk.
Attention. Ces vérifications arrêtent les moyens habituels de toucher à xdesk depuis un terminal distant, pas un attaquant déterminé avec un shell qui tourne sous ton utilisateur. La vraie protection est de ne pas donner le droit terminal à des personnes en qui tu n'as pas confiance.