Pendant longtemps, Linux est considéré comme un système d'exploitation secondaire pour les jeux. Cependant, cela change. Selon des enquêtes à vapeur récentes, le nombre de joueurs qui utilisent Linux comme plate-forme principale augmente, en grande partie grâce à l'utilisation de Steam Deck (une console équipée d'un «dystro» Linux et du mécontentement croissant avec Windows et ses fonctions invasives.
Aujourd'hui, grâce à Proton (la couche de compatibilité développée par Valve) des milliers de titres pour Windows peuvent être exécutés dans Linux presque sans problème. Mais il y a un obstacle qui frustre de nombreux joueurs: les systèmes Anti-coche. Et, bien que la plupart des jeux de jeu unique fonctionnent sans revers, les titres multijoueurs compétitifs avec protection antitrampas sont généralement impossibles à exécuter.
Samuel Tulach, un chercheur spécialisé en sécurité à la fois dans ce type de protections et dans le fonctionnement interne des systèmes d'exploitation, a publié dans son blog une réflexion à cet égard qui est assez illustrative.
Pourquoi l'antichat est-il si problématique?
Le Triche Dans les jeux vidéo, ils fonctionnent généralement de deux manières:
- Externe: programmes qui lisent ou modifient la mémoire du jeu de l'extérieur.
- Internal: Librairies chargées directement dans le processus de jeu pour exécuter votre propre code.
Dans les deux cas, l'objectif est le même: accéder à la mémoire du jeu. Par conséquent, le Anti-Cheets Moderne a été créé pour essayer d'éviter cela. Et comment le font-ils? Y compris plusieurs couches: un service d'arrière-plan, des bibliothèques injectées dans le jeu et, surtout, en mode noyau qui bloquent l'accès suspect à la mémoire et surveillent les manipulations possibles.
Dans Windows, cela fonctionne car Microsoft contrôle l'accès au noyau: les pilotes doivent être signés numériquement, ce qui fait une charge de code de bas niveau. Ainsi, le Anti-coche Ils peuvent établir un périmètre de sécurité assez efficace.
Valorant: un exemple paradigmatique
Un cas illustratif est celui de Valorant, le fusil des jeux Riot. Son système Avant-Garde est chargé à partir du début du système d'exploitation, qui vous permet de détecter des vulnérabilités ou des tentatives de manipulation même que le jeu est exécuté. En plus:
- Protéger les zones de mémoire sensibles.
- Crypter les données du jeu des clés, en modifiant les clés à chaque mise à jour.
- Il s'appuie sur des identifiants matériels difficiles à falsifier, tels que les clés TPM.
Grâce à cette combinaison de mesures actives (blocage et détection dans le noyau) et passive (chiffrement, obscurcissement et validations du serveur), Riot a atteint un niveau de sécurité qui, bien que non infaillible, a considérablement réduit la présence de tricheurs.
Et en Linux?
C'est là que la situation est compliquée. Contrairement à Windows, Linux est un système ouvert: il n'y a pas d'autorité centrale qui contrôle ce qui entre et ce qui n'est pas dans le noyau. Cela signifie que toute tentative d'imposer un Anti-coche Robust peut être facilement neutralisé par un utilisateur avancé:
- Recompillaire le noyau pour désactiver le contrôle.
- Exécuter le jeu dans un environnement isolé tandis que le Tricher Il fonctionne avec des privilèges racine.
- Utilisez des grains personnalisés qui évitent les restrictions.
En résumé: il n'y a pas de moyen réaliste de bloquer ou de détecter les pièges à Linux avec le même niveau d'efficacité que dans Windows.
Bien qu'il y ait des tentatives, comme Anti-Cheat facile (EAC) Bajo Proton, en fait, ces versions ne font que des vérifications minimales et facilitent la communication avec les serveurs. Pour des jeux comme Apex Legends, cela implique qu'il est possible d'utiliser des tricheurs dans Linux sans même avoir à surmonter le Anti-coche.
Tout est-il perdu?
Pas nécessairement. Bien que les mécanismes de blocage actifs soient irréalisables chez Linux, les développeurs peuvent toujours s'appuyer sur des mesures passives:
- Implémentez le code réseau robuste, validant chaque action client sur le serveur.
- Utilisez l'obscurcissement et la virtualisation du code, modifiant les modèles dans chaque mise à jour.
- Maintenir des données sensibles dans la mémoire volatile et éviter de publier des binaires avec des symboles de purification.
Des exemples tels que Fall Guys montrent ce qui se passe lorsque le côté serveur est négligé: au lieu de corriger la logique réseau pour éviter le Speedhackingles développeurs ont fait confiance à l'EAC, qui ne pouvait pas faire peu contre ces pièges simples.
L'alternative, en bref, est en train de repenser la façon dont les jeux en ligne sont conçus: moins de dépendance à l'égard des conducteurs invasifs et plus d'accent sur la sécurité des serveurs et la conception du jeu.