Tous les sujets de détection

Heartbeat anti-tamper : comment Raven Anticheat détecte que sa couche client a été désactivée

Une boucle heartbeat rapporte en continu au serveur l'état d'exécution du client. Si le heartbeat s'arrête, prend du retard ou renvoie de mauvaises valeurs, le serveur considère le client comme manipulé et agit.

Le problème que résout le heartbeat

Le cheat le plus difficile à détecter est celui qui désactive discrètement votre client anti-cheat puis tourne sans être observé. Les contrôles de signature peuvent être hookés. L'inspection NUI peut être bloquée. Les fonctions d'intégrité à l'exécution peuvent être neutralisées. Une fois la couche client silencieuse, un AC à une seule couche est aveugle. Le heartbeat anti-tamper existe pour rendre ce silence coûteux : l'absence de heartbeat est elle-même une détection.

Comment fonctionne la boucle heartbeat

Le client Raven émet une charge utile signée à une cadence fixe (adaptative par serveur, voir l'entrée de changelog du 2026-02-17 ; auparavant fixée à 1500 ms). La charge utile contient un hash cryptographique de l'état d'exécution critique (intégrité des ressources, empreintes de la table de hooks, adresses des gestionnaires d'événements) ainsi qu'un horodatage et un nonce par session. Le serveur vérifie la signature, compare le hash à la référence attendue et note le délai entre deux arrivées. Trois modes de défaillance sont détectés : le heartbeat n'arrive pas (client silencieux), il arrive mais sa charge utile ne correspond plus aux valeurs attendues (client manipulé), ou il arrive à la mauvaise cadence (client rejoué ou périmé).

Pourquoi la cadence compte

Une fenêtre de heartbeat fixe est plus facile à esquiver. Un cheat qui désactive brièvement le client entre deux heartbeats peut garder la boucle vivante tout en tournant sans être observé. Une cadence adaptative par serveur (calibrée sur la latence de tick moyenne des premières 24 h) rend cette fenêtre imprévisible pour le cheat sans poser de problème aux joueurs légitimes sur des routes à forte latence. La version 2026-03 a rééquilibré la fenêtre par défaut, passant de 1500 ms fixes à une plage adaptative de 800 à 1500 ms, ce qui a fait baisser les faux positifs sur les routes EU/AS d'environ 38 %.

Ce qui se passe quand le heartbeat échoue

Les réponses en cas d'échec sont configurables par serveur, sur trois niveaux. Le niveau 1 (avertissement) marque le joueur sur la carte en direct et prévient les admins via le webhook Discord configuré. Le niveau 2 (kick) déconnecte le joueur du serveur avec un motif générique et journalise l'événement avec toutes les preuves (dernier heartbeat valide, horodatage courant, diff de la charge utile). Le niveau 3 (ban automatique) bannit le joueur sur le serveur local et le met en file d'attente pour une promotion vers la base de bans mondiale après revue par un admin. La configuration par défaut est prudente (avertir d'abord, escalader seulement en cas de récidive) parce que la couche heartbeat peut produire des faux positifs lors de vrais problèmes réseau.

Comment le heartbeat interagit avec le score de confiance

Chaque anomalie de heartbeat alimente le score de confiance par joueur (introduit en version 2026.4.0, voir /changelog). Un heartbeat en retard isolé est du bruit. Plusieurs heartbeats en retard chez le même joueur sur plusieurs sessions, un heartbeat qui décroche précisément quand le joueur entre dans certains états de jeu, ou un heartbeat qui renvoie toujours le même hash alors que le pack de ressources a été mis à jour : autant de signaux qui font remonter le joueur sur la carte en direct pour examen par un admin, bien avant qu'un ban de niveau 3 ne se déclenche.

Questions fréquentes

Qu'est-ce que le heartbeat anti-tamper dans un anti-cheat FiveM ?

Un système anti-tamper heartbeat fait envoyer périodiquement au serveur, par le client anti-cheat, une charge utile signée cryptographiquement. Elle contient des hashs de l'état d'exécution critique côté client. Si la charge utile cesse d'arriver, arrive en retard ou arrive avec de mauvaises valeurs, le serveur considère le client comme manipulé et déclenche la réponse configurée.

Un heartbeat peut-il être falsifié ?

Falsifier un heartbeat suppose de produire la bonne charge utile signée, à la bonne cadence, avec le bon hash de l'état d'exécution courant. Y parvenir tout en faisant tourner une logique de triche n'a rien d'anodin, parce que le hash inclut des valeurs d'intégrité des ressources qui changent dès qu'une injection réussit. Le heartbeat seul ne suffit pas, et c'est pourquoi Raven fait aussi tourner la détection par signature et la validation des événements côté serveur.

Le heartbeat affecte-t-il les performances du serveur ?

Aucun impact mesurable. La charge utile du heartbeat est petite (moins de 1 Ko) et l'étape de vérification est à temps constant. Le coût total de la ressource Raven Anticheat reste sous 0,5 ms au resource monitor de FiveM.

Autres sujets de détection

Vous voulez ça sur votre serveur ?

Installation en deux minutes. Détection automatique d'ESX, QBCore, vRP, QBox. À partir de 20 $.