Ce document est le premier d’une série d’articles explorant les parallèles et les distinctions entre les protections en termes de cybersécurité dans l’industrie des jeux vidéo et les solutions de cybersécurité d’entreprise, notamment les plateformes EDR (Endpoint Detection and Response).Cette série s’inscrira également dans une réflexion plus large sur le SecDevOps et l’industrie du jeu vidéo, abordant des sujets tels que la gestion des paiements et des microtransactions, ainsi que la signature des applications. Pour approfondir les mécanismes de contournement d’EDR et leur fonctionnement avancé, des liens vers des articles spécialisés sont inclus dans les sections pertinentes.
Pourquoi les joueurs sont en première ligne des guerres du Kernel ?
Le stéréotype du joueur occasionnel masque une réalité cachée et souvent sous-estimée : le monde des développeurs de Cheat est devenu un terrain de jeu pour certains des logiciels malveillants les plus agressifs, sophistiqués et techniquement avancés de la planète. Loin d’être de simples amateurs, ces créateurs de triche opèrent avec une rigueur et une ingéniosité qui rappellent celles des groupes de cybercriminels de haut niveau.
Alors que les équipes de sécurité d’entreprise luttent sans relâche contre des campagnes de logiciels malveillants de plus en plus complexes et des attaques de type APT (Menace Persistante Avancée), les créateurs de triche pour jeux vidéo déploient des capacités de type rootkit (type de programme malveillant qui permet aux cybercriminels d’accéder aux données des machines et de les infiltrer sans être détectés) et des techniques d’évasion d’une étonnante complexité. Leur objectif est de contourner la détection par les systèmes anti-triche des jeux, obtenant ainsi un avantage déloyal dans les environnements compétitifs. Cette course à l’armement technologique entre les développeurs de triche et les éditeurs de jeux révèle des avancées en matière de persistance, de contournement de la sécurité et d’injection de code qui pourraient être exploitées dans des contextes de cybercriminalité bien plus larges.
Dans cet article, nous explorerons en détail le comparatif entre les systèmes anti-triche de niveau noyau et les solutions EDR (Endpoint Detection and Response). Nous analyserons également les enseignements que nous pouvons en tirer, ou que nous avons déjà tirés, pour renforcer la cybersécurité.
Quick Reminder
Qu’est-ce que la sécurité au niveau du noyau, en détail ?
En informatique, les anneaux de protection sont une architecture de sécurité qui organise les privilèges d’accès aux ressources système en couches concentriques. Plus l’anneau est proche du centre, plus les privilèges sont élevés :
- Ring 0 (Noyau / Kernel Mode) : C’est le niveau le plus privilégié, avec un accès direct au matériel et la capacité d’exécuter toutes les instructions. Le noyau du système d’exploitation et les pilotes essentiels y résident.
- Ring 1 & 2 : Rarement utilisés dans les systèmes modernes, ils servaient pour des services ou pilotes à privilèges intermédiaires.
- Ring 3 (Mode Utilisateur / User Mode) : C’est le niveau le moins privilégié. Les applications classiques y fonctionnent et doivent passer par des appels système au noyau pour interagir avec le matériel.
Cette structure assure l’isolation et la sécurité : une application en Ring 3 ne peut pas directement endommager le système sans passer par les contrôles du noyau, limitant ainsi l’impact des erreurs ou des logiciels malveillants.
Gestion de la mémoire
Le noyau contrôle la manière dont la mémoire est allouée et est accédée par les programmes. Il garantit qu’un processus n’interfère pas avec la mémoire d’un autre, maintenant ainsi la stabilité et la sécurité du système.
Gestion des processus
Il gère la création, la planification et la terminaison des processus. Cela inclut la décision du processus qui s’exécute à un moment donné (planification du CPU), permettant le multitâche et assurant une distribution équitable du temps CPU entre les programmes en cours d’exécution.
Gestion des entrées/sorties (E/S)
Le noyau gère les opérations d’entrée et de sortie avec les périphériques matériels (comme les claviers, les disques, les imprimantes, etc.) via les pilotes de périphériques. Il fournit un moyen standardisé pour les logiciels d’interagir avec le matériel, en masquant les détails spécifiques au matériel.
Gestion du système de fichiers
Il fournit un accès à divers systèmes de fichiers (comme ext4, NTFS, FAT32) et garantit que les données sont correctement lues, écrites et organisées sur les périphériques de stockage.
Sécurité et accès aux ressources
Le noyau applique les politiques de sécurité, en restreignant l’accès de chaque processus ou utilisateur. Il garantit que les opérations privilégiées (l’accès direct au matériel ou la modification des fichiers système centraux) ne soient disponibles que pour les utilisateurs autorisés.
Abstraction matérielle
Le noyau offre une couche d’abstraction qui masque la complexité du matériel. Cela permet aux développeurs de créer des applications compatibles avec différentes plates-formes, sans avoir à adapter leur code à chacune d’elles.
En quoi est-ce important ?
L’exécution de code en mode noyau (Ring 0) est très recherchée par les développeurs de logiciels malveillants et les créateurs de triche, en effet, elle permet d’accorder un accès illimité aux fonctions centrales du système. Par exemple, ce privilège élevé permet aux logiciels malveillants de manipuler des composants système critiques, de masquer leur présence aux outils de détection standard et d’intercepter ou d’altérer les opérations du système sans que l’utilisateur n’en soit conscient. De telles capacités rendent les menaces au niveau du noyau particulièrement dangereuses et difficiles à détecter et à supprimer.
L’essor de l’Anti-Cheat au niveau du Kernel : Où l’Anti-Cheat au niveau du Kernel s’intègre ?
Les systèmes anti-cheat au niveau du kernel sont une couche de protection puissante .et controversée. Conçue pour détecter et prévenir la triche dans les environnements logiciels compétitifs, en particulier les jeux en ligne. En opérant dans le Ring 0, la même couche privilégiée que le kernel du système d’exploitation, ces systèmes peuvent surveiller et contrôler les processus à un niveau plus profond que les solutions traditionnelles en mode utilisateur (Ring 3). Cela leur permet de détecter les triches qui modifient la mémoire, injectent du code, ou interagissent avec le client du jeu de manières qui passeraient autrement inaperçues. Étant donné que de nombreuses triches sophistiquées fonctionnent également dans le kernel pour contourner la détection, les outils anti-cheat doivent correspondre à ce niveau pour être efficaces. Cependant, cet accès élevé introduit de graves préoccupations concernant la confidentialité, la stabilité et la sécurité du système , les logiciels anti-cheat au niveau du kernel peuvent théoriquement accéder à tout sur la machine d’un utilisateur, soulevant des inquiétudes quant à la surveillance et aux abus potentiels. Malgré cela, dans des environnements compétitifs à enjeux élevés comme l’e-sport ou le jeu en ligne classé, les développeurs considèrent souvent l’anti-cheat au niveau du kernel comme un compromis nécessaire pour maintenir l’équité et l’intégrité du jeu.
Comment fonctionnent vraiment les Anti-Cheat au niveau Kernel ?
Pilotes en mode kernel
Les solutions anti-cheat au niveau kernel installent des pilotes qui se chargent dès le démarrage du système. Exécutés au niveau de privilège Ring 0, ils interceptent les appels système, surveillent la mémoire et supervisent les interactions entre le matériel et les logiciels.
Vérification de l’Intégrité de la Mémoire
En scannant les zones mémoire allouées aux processus de jeu, ces systèmes détectent les modifications non autorisées comme les injections de code ou la manipulation de la mémoire des techniques courantes dans les cheats de type aimbot ou wallhack.
Surveillance des Appels Système
Ils surveillent les appels système critiques (par ex. : NtReadVirtualMemory, NtWriteVirtualMemory) pour repérer les accès suspects ou non autorisés aux processus protégés.
Vérification des Pilotes
Les anti-cheat au niveau kernel vérifient l’intégrité et la légitimité des autres pilotes chargés dans le système. Cela permet d’identifier et de bloquer les pilotes malveillants ou non signés qui pourraient faciliter la triche.
Analyse des Processus et Threads
Ils analysent les processus et threads actifs pour repérer les activités cachées ou suspectes comme les processus qui tentent de se camoufler ou de se faire passer pour des processus système légitimes.
Étude de Cas : Vanguard de Riot Games
L’univers des jeux vidéo compétitifs est en constante évolution, non seulement en termes de graphismes et de gameplay, mais aussi sur le front de la sécurité. Au cœur de cette bataille, le système anti-triche Vanguard, développé par Riot Games pour son populaire FPS, Valorant, se positionne comme une référence. Son approche architecturale avancée, profondément intégrée au système d’exploitation Windows, vise à éradiquer la triche en s’attaquant à ses racines les plus profondes. L’objectif est de préserver l’intégrité de l’expérience de jeu et garantir une compétition équitable. L’architecture de Vanguard : Une immersion au cœur du système
La puissance de Vanguard réside dans son architecture. Il s’appuie sur un pilote en mode noyau, nommé `vgk.sys`, qui se distingue par son exécution dès les premières étapes du démarrage de Windows. Ce pilote opère avec des privilèges de niveau 0, le même niveau d’accès que le système d’exploitation lui-même. Cette position privilégiée lui confère une capacité de surveillance et d’interaction sans précédent avec l’ensemble des processus et des pilotes chargés en mémoire. Cette approche radicale est une réponse directe à la sophistication croissante des logiciels de triche, dont bon nombre opèrent précisément à ce niveau. En se plaçant au même niveau d’exécution que les triches les plus avancées, Vanguard peut détecter et neutraliser des menaces qui échapperaient à des systèmes anti-triche traditionnels fonctionnant à un niveau d’utilisateur moins privilégié.
L’escalade de la triche : Du « user-mode » au « kernel-mode »
Le recours à une surveillance au niveau du noyau, telle que celle mise en œuvre par Vanguard, n’est pas un choix anodin. Il trouve son origine dans la complexification sans cesse croissante des outils de triche, particulièrement visible dans des jeux compétitifs comme Counter-Strike. Dans ce dernier, les tricheurs ont progressivement abandonné les méthodes d’injection de code en espace utilisateur (ring3) au profit de techniques plus furtives et plus puissantes. Ils ont commencé à exploiter des vulnérabilités pour manipuler directement la mémoire du jeu ou à injecter des pilotes non signés, capables d’opérer en contournant totalement les anti-triches fonctionnant au niveau utilisateur. Ces logiciels de triche, souvent désignés sous les termes de « ring0 cheats » ou « kernel cheats », sont devenus particulièrement populaires en raison de leur efficacité et de leur difficulté de détection. Ils représentent une menace bien plus sérieuse, car ils peuvent altérer le comportement du système de manière plus fondamentale, rendant la détection et la suppression complexes pour les outils anti-triche conventionnels.
Aimware : Un exemple emblématique de l’évolution de la triche
L’évolution de la triche peut être illustrée par l’exemple emblématique d’Aimware, un cheat qui a connu une popularité notable sur Counter-Strike: Global Offensive (CS:GO) avant l’apparition généralisée des anti-triches en mode noyau comme Vanguard. L’histoire d’Aimware est un témoignage de l’adaptation constante des tricheurs aux mesures de sécurité mises en place par les développeurs de jeux.
Au départ, Aimware reposait sur une méthode d’injection de DLL en espace utilisateur (ring3). Le processus était relativement simple : l’utilisateur lançait un injecteur, un petit programme conçu pour charger la DLL d’Aimware dans le processus `csgo.exe` (le processus du jeu CS:GO). Une fois injectée, cette DLL s’intégrait au sein du processus du jeu et interagissait directement avec les fonctions internes du moteur Source, sur lequel CS:GO est basé.
Cette DLL offrait une panoplie de fonctionnalités de triche. Elle interceptait notamment les appels aux API graphiques Direct3D. Cette interception permettait à Aimware de superposer des éléments d’interface sur l’écran du joueur, tels que l’ESP (Extra Sensory Perception), qui affichait des informations cruciales comme la position des ennemis, leur santé, leurs armes, même à travers les murs. Les fameuses « boxes » autour des ennemis étaient également rendues grâce à cette technique, offrant au tricheur un avantage visuel considérable.
Au-delà de l’affichage, Aimware accédait directement à la mémoire du jeu pour manipuler les données des entités, qu’il s’agisse des joueurs, des armes ou des objets. C’est grâce à cette capacité que des fonctionnalités comme l’aimbot et le « silent aim » pouvaient fonctionner. L’aimbot lisait en temps réel la position des adversaires dans la mémoire du jeu et ajustait automatiquement la visée du joueur au moment du tir, garantissant une précision quasi parfaite. Le « silent aim » allait encore plus loin en déviant la trajectoire des balles côté client pour toucher un ennemi sans que la visée du joueur ne semble se verrouiller, rendant la triche encore plus difficile à détecter par l’observation visuelle.
L’évolution d’Aimware, et de nombreux autres logiciels de triche, vers des méthodes plus complexes et opérant à des niveaux plus profonds du système d’exploitation, a forcé les développeurs d’anti-triches à repenser entièrement leurs stratégies. C’est cette course à l’armement technologique entre les développeurs de jeux et les tricheurs qui a conduit à l’émergence de solutions comme Vanguard, qui s’immiscent au cœur même du système pour tenter de rétablir un équilibre et préserver l’équité des compétitions en ligne.
Pourquoi les simples antivirus ne suffisent pas face à cette course ?
Blocage de l’accès aux processus via NtOpenProcess
Objectif
Empêcher qu’un processus externe, comme un cheat, puisse accéder au processus du jeu pour lire ou écrire dans sa mémoire. Cela se fait en interceptant les appels à NtOpenProcess, une API de Windows très utilisée pour manipuler d’autres processus.
| PVOID OriginalNtOpenProcess; NTSTATUS HookedNtOpenProcess( PHANDLE ProcessHandle, ACCESS_MASK DesiredAccess, POBJECT_ATTRIBUTES ObjectAttributes, PCLIENT_ID ClientId ) { if (EstUnProcessusSuspect(ClientId->UniqueProcess)) { return STATUS_ACCESS_DENIED; } return ((NTSTATUS(*)(…))OriginalNtOpenProcess)( ProcessHandle, DesiredAccess, ObjectAttributes, ClientId); } |
Pourquoi cette technique est utilisée ?
L’anti-triche remplace l’adresse de la fonction d’origine par une version modifiée (hook), capable d’identifier et de bloquer les processus suspects. Cela empêche les cheats d’interagir directement avec le jeu.
Contournement possible : restauration de la fonction d’origine
Un tricheur peut utiliser des outils comme Kernel RW, DrvMap ou un driver vulnérable pour :
- Lire l’adresse de la fonction hookée dans la table des appels système (SSDT par exemple),
- Restaurer l’adresse d’origine (non modifiée),
- Réaliser ses manipulations mémoire sans passer par le filtre de l’anti-triche.
Cela fonctionne parce que Windows exécute la fonction à l’adresse actuellement enregistrée. Si cette adresse est remise à sa version d’origine, le hook est contourné.
Scan de la mémoire du jeu à la recherche de signatures
Objectif
Identifier des patterns typiques de triche, comme des séquences de bytes, du code injecté ou des chaînes de caractères spécifiques (par exemple : « ESP_HACK ») dans la mémoire du processus du jeu.
| NTSTATUS ScannerMemoire(PEPROCESS proc) { for (ULONG_PTR addr = 0; addr < MAX_MEM; addr += 0x1000) { KAPC_STATE apc; KeStackAttachProcess(proc, &apc); __try { char buf[16]; RtlCopyMemory(buf, (PVOID)addr, sizeof(buf)); if (memcmp(buf, CHEAT_SIGNATURE, sizeof(CHEAT_SIGNATURE)) == 0) { TerminerProcessus(proc); } } __except (EXCEPTION_EXECUTE_HANDLER) { } KeUnstackDetachProcess(&apc); } return STATUS_SUCCESS; } |
Pourquoi cette technique est utilisée ?
Le scan mémoire permet de détecter des cheats présents en mémoire vive, même s’ils n’apparaissent pas sur disque. Certains cheats laissent des traces évidentes (signatures fixes) qui peuvent être reconnues rapidement.
Contournement possible : chiffrement ou obfuscation dynamique
Les tricheurs peuvent contourner cette technique en :
- Par le chiffrement ou l’obfuscation des données en mémoire
- En ne déchiffrant leurs signatures qu’au moment précis de leur utilisation.
- En les chiffrant de nouveau immédiatement
Ce comportement empêche l’anti-triche de détecter des signatures fixes ou lisibles.
Protection de la mémoire du jeu contre les modifications
Objectif
Empêcher toute tentative d’écriture dans les parties sensibles de la mémoire du jeu, telles que les variables de santé, munitions ou même le code exécutable. Le but est d’empêcher des outils comme Cheat Engine de modifier ces valeurs afin de tricher dans le jeu
| VOID ProtegerZoneMemoire(PEPROCESS jeu) { PMDL mdl = IoAllocateMdl(jeu->SectionBaseAddress, jeu->ImageSize, FALSE, FALSE, NULL); MmBuildMdlForNonPagedPool(mdl); // Ici on pourrait changer les permissions d’accès, par exemple en lecture seule.} |
Pourquoi cette technique est utilisée ?
Elle bloque l’accès non autorisé aux zones critiques de la mémoire, y compris depuis des processus à privilèges élevés, rendant ainsi plus difficile toute tentative de modification directe de l’état du jeu.
Contournement possible : accès DMA (Direct Memory Access)
Un cheat peut utiliser un dispositif externe (carte PCIe, FPGA, etc.) pour accéder à la mémoire physique de l’ordinateur sans passer par Windows. Ce type d’attaque permet de lire et d’écrire en mémoire sans être vu par le système d’exploitation.
Puisque l’anti-triche fonctionne à l’intérieur du système, il ne peut pas détecter ce type d’activité matérielle, ce qui rend ce contournement extrêmement difficile à bloquer.
Les simples antivirus sont conçus pour détecter des menaces générales (malware, ransomware, etc.) et ne disposent pas de la granularité ni de l’autorité nécessaire pour combattre les triches modernes dans les jeux vidéo.
Les anti-triches kernel-level, eux, :
- Interceptent les appels systèmes critiques,
- Surveillent la mémoire du jeu en profondeur,
- Bloquent le chargement de modules suspects,
- Protègent activement les ressources du jeu contre toute manipulation.
Pour approfondir le sujet :
- If It Looks Like a Rootkit and Deceives Like a Rootkit: A Critical Examination of Kernel-Level Anti-Cheat Systems
- Kernel-Level Anti-Cheat Systems – L’Atelier BNP Paribas
- What’s the Deal With Anti-Cheat Software in Online Games? – WIRED
- Understanding Kernel-Level Anticheats in Online Games
Perspectives et dilemmes de l’utilisation d’outils de surveillance noyau pour contrer les menaces APT
L’intégration d’un système de surveillance au niveau noyau tel que Vanguard dans un jeu vidéo soulève une réflexion plus large sur la possibilité d’utiliser cette même approche pour analyser d’autres menaces informatiques, telles que les groupes d’attaquants avancés (APT, Advanced Persistent Threat). Les APT recourent souvent à des techniques comparables à celles employées par les tricheurs de jeux vidéo : manipulation du noyau, drivers malveillants, injection de code et dissimulation de processus. De ce fait, un module anti-triche en mode noyau, disposant d’une visibilité étendue sur l’ensemble des processus et des interactions du système, présente un potentiel intéressant pour la détection de ces menaces persistantes.
Techniques de Cheat = Techniques des APTs ?
Il est fascinant de constater la convergence des techniques utilisées par les développeurs d’outils de triche dans le monde du jeu vidéo et les groupes de menaces persistantes avancées (APT) dans le domaine de la cybersécurité. Cette ressemblance n’est pas fortuite ; elle découle d’une quête commune pour contourner les protections classiques et obtenir un contrôle approfondi des systèmes. En effet, les mêmes principes fondamentaux de manipulation de bas niveau sont mis en œuvre, que ce soit pour dominer un jeu en ligne ou pour exfiltrer des données sensibles d’une entreprise.
Prenons l’exemple des drivers noyau non signés. Cette technique, couramment employée par des cheats réputés comme Aimware pour obtenir un accès complet à la mémoire physique du système, est également une marque de fabrique des APT. Ces derniers l’exploitent pour installer des rootkits persistants, leur permettant de s’ancrer profondément dans le système d’exploitation et de maintenir une présence indétectable. L’APT28, par exemple, est connue pour ses modules de noyau malveillants qui lui confèrent un contrôle quasi-total sur la machine infectée, lui permettant de lire et modifier n’importe quelle donnée en mémoire. La capacité à charger un pilote non signé permet de contourner les mécanismes de sécurité intégrés à Windows qui exigent normalement que les pilotes soient signés numériquement par une autorité de certification reconnue, garantissant ainsi leur légitimité et leur intégrité.
De même, les injections mémoire, technique de prédilection des cheats pour manipuler les textures du jeu, la visée ou les données internes afin de conférer des avantages injustes aux joueurs (comme le fameux « wallhack » ou « aimbot »), trouvent leur pendant exact dans le monde des APT. Les acteurs malveillants injectent des charges utiles dans des processus légitimes, souvent critiques pour le fonctionnement du système, afin de masquer leur activité et d’opérer sous le radar des solutions de sécurité. Mimikatz, un outil d’extraction d’identifiants bien connu, utilise l’injection mémoire pour extraire les identifiants stockés dans le processus `lsass.exe`, un composant essentiel de la sécurité de Windows. Cette technique permet aux attaquants d’obtenir des privilèges élevés et de se déplacer latéralement au sein d’un réseau.
Cependant, la similarité ne s’arrête pas là. Le tableau comparatif suivant illustre de manière exhaustive la convergence de ces techniques :
| Technique | Application dans les Cheats | Application dans les APT |
| Injection de code dans des processus légitimes | DLL injection pour manipuler la mémoire du jeu (ex. Aimware dans `csgo.exe`). Cela permet de modifier le comportement du jeu en temps réel, comme l’affichage d’informations cachées ou l’automatisation des actions. | Injections mémoire par Mimikatz dans `lsass.exe` pour extraire des identifiants. Cette technique est cruciale pour l’escalade de privilèges et le mouvement latéral dans un réseau compromis. |
| Utilisation de pilotes noyau | Drivers kernel non signés pour lire la mémoire physique et contourner les protections ring3. Ces pilotes opèrent avec les privilèges les plus élevés, leur permettant d’interagir directement avec le matériel et le système d’exploitation. | Modules noyau malveillants (rootkits, APT28) pour l’escalade de privilèges et la persistance. Les rootkits peuvent masquer des processus, des fichiers et des connexions réseau, rendant la détection extrêmement difficile. |
| Interception des appels système (hooks) | Modifications des API Direct3D/OpenGL pour wallhacks et aimbots. En interceptant les appels graphiques, les cheats peuvent altérer la façon dont le jeu est rendu, affichant par exemple les joueurs à travers les murs. | Hooks API pour intercepter les flux réseau ou la saisie clavier. Ces techniques permettent de collecter des informations sensibles, comme des identifiants de connexion ou des données financières, en temps réel. |
| Évasion des solutions de sécurité en espace utilisateur | Bypass des anti-cheats en ring3 via modules noyau (ring0). Les cheats opèrent à un niveau de privilège plus élevé que les solutions anti-cheat, leur permettant de les désactiver ou de les contourner sans être détectés. | Évasion des antivirus en opérant au niveau noyau ou via injections dans des processus critiques (`explorer.exe`, `services.exe`). Les APT cherchent à éviter la détection en s’intégrant dans des processus système légitimes ou en opérant à un niveau où les solutions de sécurité ont une visibilité limitée. |
| Manipulation des structures internes | Modifications de l’EntityList et ViewMatrix pour altérer la visibilité ou la visée. Ces structures de données définissent la position des objets et des joueurs dans le monde du jeu, ainsi que la perspective de la caméra du joueur. | Altération des structures du noyau pour masquer les modules ou processus malveillants. Les APT peuvent modifier les tables de descripteurs de processus ou les listes de modules chargés pour masquer leur présence. |
| Utilisation de certificats compromis | Signatures volées pour charger des drivers de cheats non détectés. En utilisant des certificats numériques volés, les développeurs de cheats peuvent faire passer leurs pilotes pour des logiciels légitimes, contournant ainsi les contrôles de signature de pilotes. | Signatures numériques volées (ex. APT41) pour charger des drivers malveillants et masquer l’activité. Cette technique est particulièrement insidieuse car elle exploite la confiance accordée aux certificats légitimes. |
| Masquage des communications réseau | Trafic chiffré (VPNs, proxys) pour éviter la détection par les serveurs de jeu. Les tricheurs utilisent ces méthodes pour masquer leur adresse IP réelle et empêcher la détection de leur activité par les systèmes anti-cheat basés sur le réseau. | Tunnels HTTPS, DNS tunneling et C2 personnalisés pour l’exfiltration discrète des données. Les APT chiffrent et dissimulent leurs communications avec les serveurs de commande et de contrôle (C2) pour éviter la détection par les systèmes de surveillance du réseau. |
| Persistance par démarrage automatique | Création de services Windows ou tâches planifiées pour relancer le cheat à chaque démarrage. Cela garantit que le cheat reste actif même après un redémarrage du système, sans intervention manuelle du joueur. | Configuration de services et de tâches planifiées pour maintenir la présence du malware après redémarrage. Les APT s’assurent ainsi que leur malware reste actif et fonctionnel, même après des mises à jour ou des redémarrages du système compromis. |
| Détection et contournement des protections | Fonctions intégrées pour détecter les modules d’anti-cheat et ajuster le comportement pour éviter le bannissement. Certains cheats sont conçus pour s’adapter dynamiquement aux mesures anti-triche, en modifiant leur comportement si une détection est imminente. | Modules d’anti-analyse pour échapper aux sandbox et prolonger la durée de vie de l’attaque. Les APT intègrent souvent des techniques d’anti-analyse dans leurs malwares pour détecter les environnements de sandboxing et les outils d’analyse, afin d’éviter d’être étudiés par les chercheurs en sécurité. |
Cette analyse met en lumière une réalité troublante : les frontières entre la triche dans le jeu vidéo et la cybercriminalité avancée sont de plus en plus poreuses. Les outils et techniques développés pour obtenir un avantage dans un jeu peuvent être adaptés et réutilisés pour des attaques bien plus malveillantes. La lutte contre la triche et la lutte contre les APT partagent donc des défis communs, notamment la nécessité de comprendre et de contrer les menaces au niveau du noyau, là où opèrent les attaques les plus sophistiquées. Les leçons tirées de la sécurité du noyau dans le contexte des jeux vidéo peuvent donc s’avérer précieuses pour renforcer la sécurité globale des systèmes informatiques face aux APT.
Kernel Antivirus and EDR : Un combat différent
Il est important de noter que, malgré des similitudes techniques, la détection anti-triche et la cybersécurité générale, notamment contre les menaces persistantes avancées (APT), représentent des défis fondamentalement distincts qui exigent des approches et des outils différents. Les outils anti-triche opèrent dans un environnement intrinsèquement plus contrôlé et circonscrit. Leur objectif est de cibler un jeu spécifique, avec des processus et des interactions bien définis et limités. La nature prédictible de l’environnement de jeu permet des règles plus strictes et des détections spécifiques.
En revanche, les solutions EDR (Endpoint Detection and Response) et les antivirus de niveau noyau doivent surveiller l’intégralité de l’espace noyau et distinguer les activités légitimes des malveillantes, souvent dissimulées de manière sophistiquée dans des processus système critiques et apparemment bénins (comme `explorer.exe` ou `services.exe`). Cette distinction est d’autant plus complexe que les attaquants d’APT cherchent activement à se fondre dans le fonctionnement normal du système pour échapper à la détection.
La complexité réside principalement dans la nécessité d’une connaissance exhaustive, dynamique et en temps réel de l’environnement. Pour identifier les comportements réellement suspects, il ne suffit pas de repérer des signatures connues ; il faut comprendre précisément les interactions normales et attendues du noyau, des pilotes tiers, et de toutes les applications métier déployées sur un parc informatique hétérogène. Contrairement aux systèmes anti-triche qui se focalisent sur un binaire de jeu unique et ses dépendances directes, les EDR doivent gérer une immense diversité de configurations logicielles. Ils font face à la présence omniprésente de pilotes signés, mais potentiellement vulnérables, une tactique courante des APT pour élever leurs privilèges. De plus, ils doivent s’adapter à l’évolution constante des tactiques, techniques et procédures (TTP) des menaces APT. Les attaquants adaptent continuellement leurs méthodes, rendant les approches basées sur des signatures statiques obsolètes.
De plus, il est impératif de limiter les faux positifs afin de ne pas compromettre la stabilité du système d’information ou de bloquer des processus essentiels à l’activité de l’entreprise. Un faux positif dans un jeu peut être une nuisance ; dans une entreprise, il peut paralyser des opérations critiques, engendrer des pertes financières considérables et dégrader la confiance dans les systèmes de sécurité.
Ces différences fondamentales de périmètre d’action, de contexte opérationnel, de précision requise et de tolérance aux erreurs rendent impossible une transposition directe et naïve d’un anti-triche de niveau noyau, aussi sophistiqué soit-il (comme Vanguard de Riot Games pour Valorant), à la détection et la réponse aux APT dans une entreprise.
Une telle adaptation exigerait une refonte complète et l’intégration d’une connaissance exhaustive, adaptative et contextuelle de tous les composants du système d’information et de leur fonctionnement légitime, une tâche qui est au cœur des défis de la cybersécurité moderne.
Leçons tirées des anti-triches et leur importance
Bien que fondamentalement différents, les systèmes anti-triche des jeux vidéo sont une source d’enseignements inestimables pour la cybersécurité. Les jeux, même s’ils ne sont pas les environnements les plus riches financièrement, sont des bancs d’essai intenses pour les techniques offensives et défensives. La motivation des tricheurs, souvent guidée par le prestige et la reconnaissance plutôt que par l’argent, les pousse à innover constamment avec des méthodes techniques avancées pour contourner les protections.
Ainsi, les jeux vidéo sont un laboratoire où s’affrontent des techniques de manipulation mémoire, d’injection de code, de drivers noyau et d’évasion des détections, toutes pertinentes pour l’analyse des APT et des malwares industriels. Cette dynamique souligne l’importance de suivre les évolutions des anti-triches : elles protègent non seulement l’équité de l’e-sport, mais contribuent aussi indirectement à une meilleure compréhension globale des techniques d’attaque, nourrissant ainsi les réflexions plus larges en sécurité informatique.
Voici quelques pistes de réflexion et éléments à adapter si l’on envisage de transposer les techniques des anti-triches vers la cybersécurité professionnelle :
Maîtrise de l’environnement ciblé : Une Complexité Accrue
Contrairement aux jeux vidéo, des environnements fermés où chaque binaire et interaction sont connus de l’éditeur, un environnement professionnel se caractérise par sa complexité. Il intègre une multitude d’applications tierces, des pilotes variés et des configurations propres à chaque entreprise. Transposer un modèle de sécurité comme Vanguard dans un tel contexte exigerait une connaissance approfondie et dynamique de l’écosystème entier pour différencier les activités légitimes des attaques.
Vérification des modules chargés : Un Défi en Milieu Professionnel
Dans l’univers du jeu vidéo, les systèmes anti-triche s’appuient sur une liste exhaustive et contrôlée des modules et des bibliothèques dynamiques (DLL ou pilotes) autorisés. Cette approche permet une surveillance efficace de tout chargement inhabituel, signalant une potentielle injection ou manipulation malveillante. Cependant, en environnement professionnel, cette méthode est compliquée par la diversité des applications et des configurations spécifiques. Un grand nombre de bibliothèques tierces ou de pilotes légitimes sont chargés dynamiquement, en fonction des besoins métier et des contraintes techniques, rendant la surveillance exhaustive particulièrement ardue.
Analyse Comportementale et Surveillance des EDR
Voici des pistes supplémentaires déjà explorées par les EDR (Endpoint Detection and Response) pour renforcer la sécurité des systèmes :
- Escalade de privilèges : Détection des tentatives de gain de droits d’accès supérieurs par un processus malveillant, y compris la surveillance des appels système suspects et des activités anormales (création de comptes privilégiés, modification de groupes de sécurité). L’objectif est de prévenir la prise de contrôle totale après un accès initial limité.
- Mouvements latéraux : Identification des activités anormales lorsqu’un attaquant se déplace entre machines du réseau interne. Cela inclut la surveillance des connexions à distance inhabituelles (RDP, SSH, PsExec), l’analyse du trafic réseau, la détection d’outils comme BloodHound ou Mimikatz, et les anomalies de partage de fichiers ou d’accès aux services.
- Exfiltration de données : Surveillance des volumes et des destinations des données sortantes pour détecter des anomalies (grandes quantités vers des destinations inhabituelles (serveurs cloud non autorisés, IP suspectes, sites de partage). Cela inclut l’analyse des protocoles (FTP, HTTP/S, DNS), la détection de canaux cachés/chiffrés et la surveillance des copies vers des périphériques externes. L’objectif est d’empêcher le vol d’informations sensibles.
- Manipulation des processus critiques : Alerte en cas de modification suspecte ou non autorisée des processus système critiques. Cela inclut la détection d’injections de code, de modifications de mémoire, de tentatives de terminer des processus de sécurité, et de création de processus enfants inhabituels, essentiel pour contrecarrer les techniques de persistance et d’évasion.
Si vous voulez approfondir ce sujet :
Peeler : Profiler les événements au niveau du noyau pour détecter les ransomwares
Ahmed, M. E., Kim, H., Camtepe, S., & Nepal, S.
- Présente « Peeler », un système qui surveille les événements au niveau du noyau pour détecter les activités de ransomware avec une grande précision.
Lire l’article
Détection, prévention et profilage comportemental des rootkits au niveau du noyau : une taxonomie et une étude
Nadim, M., Lee, W., & Akopian, D.
- Fournit une étude complète des techniques de détection et de prévention des rootkits au niveau du noyau.
Lire l’article
Si ça ressemble à un rootkit et que ça trompe comme un rootkit : un examen critique des systèmes anti-triche au niveau du noyau
Dorner, C., & Klausner, L. D.
- Évalue de manière critique les systèmes anti-triche au niveau du noyau, en soulignant leurs similitudes avec les rootkits et les préoccupations en matière de confidentialité associées.
Lire l’article
Noyau de graphe de Weisfeiler-Lehman contextuel pour la détection de logiciels malveillants
Narayanan, A., Meng, G., Yang, L., Liu, J., & Chen, L.
- Propose une nouvelle méthode de noyau de graphe pour la détection de logiciels malveillants, capturant des informations structurelles et contextuelles.
Lire l’article
Anti-Triche : Attaques et efficacité des défenses côté client
Chothia, T., & autres
- Analyse l’efficacité des mesures anti-triche côté client et les défis posés par les triches au niveau du noyau.
Lire l’article
The Reversing Machine : Reconstruire les hypothèses de la mémoire
Karvandi, M. S., Meghdadizanjani, S., Arasteh, S., & autres
- Présente une conception d’introspection de la mémoire basée sur l’hyperviseur pour analyser les logiciels malveillants évasifs et obfusqués au niveau du noyau.
Lire l’article
