xdeskv1.0.0
SecuritySécurité

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é

WatchedHowReaction
the binary, the config folder, the data folderhashed and watcheda 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 terminalchecked 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 terminalsscanned (Linux: command line and open files)ban
the host processhardened (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éCommentRéaction
le binaire, le dossier de config, le dossier de donnéeshachés et surveillésune 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 distantvé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 distantsanalysés (Linux : ligne de commande et fichiers ouverts)ban
le processus de l'hôtedurci (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 unban typed; xdesk unban refuses 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 unban refuse 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.