Introduction
Les systèmes anti-cheat de noyau modernes sont parmi les logiciels les plus sophistiqués qui tournent sur les machines Windows grand public. Ils opèrent au niveau de privilège le plus élevé disponible pour les logiciels, interceptent des rappels de noyau conçus pour des produits de sécurité légitimes, analysent des structures de mémoire que la plupart des programmeurs ne touchent jamais au cours de leur carrière, et le font de manière transparente pendant que le jeu est en cours d'exécution.
Contexte Technique
Le problème fondamental avec les anti-cheat en mode utilisateur uniquement est le modèle de confiance. Un processus en mode utilisateur s'exécute à l'anneau 3, soumis à l'autorité complète du noyau. Toute protection mise en œuvre entièrement en mode utilisateur peut être contournée par tout ce qui s'exécute à un niveau de privilège plus élevé, et dans Windows, cela signifie l'anneau 0 (pilotes de noyau) ou en dessous (hyperviseurs, firmware). Les développeurs de cheats ont compris cela des années avant que la plupart des ingénieurs anti-cheat soient prêts à agir.
La réponse était inévitable : déplacer l'anti-cheat dans le noyau. L'escalade a été sans relâche. Les cheats en mode utilisateur ont cédé la place aux cheats de noyau. Les anti-cheats de noyau sont apparus en réponse. Les développeurs de cheats ont commencé à exploiter des pilotes légitimes signés avec des vulnérabilités pour atteindre l'exécution du noyau sans charger un pilote non signé.
Analyse et Implications
Chaque escalation oblige le côté attaquant à investir plus de capital et d'expertise, ce qui a un effet important : cela filtre les cheats occasionnels. Un abonnement à un cheat de noyau de 30 $ est accessible à de nombreuses personnes. Un ensemble de configuration DMA FPGA personnalisé coûte des centaines de dollars et nécessite des connaissances techniques significatives pour le configurer.
Quatre systèmes dominent le paysage du jeu compétitif : BattlEye, EasyAntiCheat (EAC), Vanguard et FACEIT AC. Chacun de ces systèmes a sa propre architecture et ses propres méthodes pour détecter et prévenir les cheats.
Perspective
Les anti-cheats de noyau modernes suivent universellement une architecture à trois couches : un pilote de noyau, un service en mode utilisateur et une DLL injectée dans le processus du jeu. Cette séparation des préoccupations est à la fois architecturale et motivée par la sécurité. Le pilote de noyau peut faire des choses qu’aucun composant en mode utilisateur ne peut faire, mais il ne peut pas facilement établir des connexions réseau ou mettre en œuvre une logique d’application complexe.
Les systèmes anti-cheat de noyau sont devenus essentiels pour protéger l’intégrité des jeux en ligne. Cependant, leur sophistication et leur capacité à intercepter des appels de système et à analyser des structures de mémoire soulèvent des questions sur la sécurité et la confidentialité des joueurs. Il est essentiel de trouver un équilibre entre la protection des jeux et la protection des données des joueurs.