# PunkBuster

PunkBuster est un logiciel tiers développé par la société Even Balance dont le but est d'interdire la triche dans les jeux vidéo et d'empêcher les tricheurs de perturber les jeux légitimes, notamment en mode multijoueur ou dans le jeu en ligne. Pour cela, le programme analyse le contenu de la mémoire de la machine locale. Un ordinateur identifié comme utilisant des cheats peut se voir interdire la connexion à des serveurs protégés.
PunkBuster a été déployé dans plusieurs jeux et séries de jeux populaires tels que Quake III Arena et ses suites, les séries Battlefield, Call of Duty et bien d'autres.

## Présentation
### Historique

Tony Ray, un développeur de logiciels indépendant américain basé à Houston au Texas, fonde la société Even Balance pour développer PunkBuster après son expérience face à des tricheurs sur le jeu Team Fortress Classic.
La première version version bêta de PunkBuster sort le 21 septembre 2000 pour le jeu vidéo Half-Life, quand Valve Software s'aperçoit et s'inquiète du nombre croissant de tricheurs. À ces débuts, Punkbuster était une application à part entière, lancée en arrière-plan en même temps que le jeu. Depuis 2001, elle est directement intégrée au moteur de jeu.
Le premier jeu vidéo dans lequel PunkBuster est intégré de matière native est Return to Castle Wolfenstein d'id Software.

### Fonctionnement

Lors d'une partie, le logiciel PunkBuster installé sur le serveur de jeu peut communiquer avec le logiciel client PunkBuster du joueur, et ainsi vérifier si le joueur se conforme aux règles communes.
Dans le cas où le serveur détecte une anomalie, il bannit temporairement ou définitivement le joueur suspect (il le « kicke », de l'anglais kicking, littéralement « botter les fesses »), bannissant également le numéro de série du jeu utilisé par ce joueur, ainsi que plusieurs numéros de série des pièces détachées de son ordinateur (disque dur, carte graphique, etc.) afin que le « tricheur » ne puisse plus jouer en ligne aux jeux protégés par PunkBuster.

### Méthodes

Voici les moyens que PunkBuster utilise pour repérer la triche :
* Punkbuster recherche en temps réel des programmes de triche connus dans la mémoire vive des clients, en utilisant une base de données ;
* le système de mise à jour en arrière plan s'assure qu'aucune nouvelle version corrompue ou fausse ne soit installée sur la machine client du joueur, par le biais de multiples serveurs sur Internet ;
* des rapports d'erreurs chiffrés sont fréquemment envoyés au serveur par les clients ;
* les administrateurs du serveur peuvent manuellement bannir un joueur ;
* le serveur peut optionnellement être configuré pour rechercher des joueurs exploitant des bugs du moteur de jeu (exploit) ;
* le serveur peut également être configuré pour vérifier l'authenticité des fichiers de base du jeu, par des fonctions de hachage MD5 ;
* les administrateurs du serveur peuvent prendre et consulter des captures d'écran des ordinateurs clients : cela peut permettre de détecter de visu une triche éventuelle ;
* certains noms de joueurs insultants peuvent être prohibés ;
* le serveur peut donner des privilèges d'administrateurs à certains joueurs, lors qu’aucun administrateur n'est présent durant une partie ;
* il est possible aux administrateurs de contrôler le serveur par le protocole HTTP sans être présents dans une partie ;
* les administrateurs peuvent publier les journaux de bord du serveur. Quelques organisations telles que PunksBusted, PBBans et AASA utilisent ces fichiers pour créer et maintenir des listes de tricheurs ;
* le « Punkbuster Hardware Bans » permet de bannir une configuration matérielle d'un ordinateur en cas de triche « extrême », c'est-à-dire qu'un ordinateur peut être banni et non plus juste l'adresse IP, ou l'adresse MAC, rendant ainsi la protection plus efficace.
Grâce aux mises à jour fréquentes et automatiques, PunkBuster reçoit les descriptions des programmes de triche et les repère presque aussitôt qu'ils sont découverts.
Il est théoriquement possible de créer un programme, utilisant le protocole de PunkBuster, qui enverrait de faux rapports masquant la présence de programmes interdits. En pratique, les mises à jour du programme très fréquentes sont suffisamment dissuasives et ne laissent pas le temps aux hackers de trouver des failles. Les listes de tricheurs dissuadent également les joueurs tentés de tricher.

## Liste des jeux vidéo utilisant ou ayant utilisé PunkBuster

Liste non exhaustive.
* All Points Bulletin
* America's Army
* America's Army 3
* APB: Reloaded
* Assassin's Creed: Revelations
* Assassin's Creed III
* Assassin's Creed IV Black Flag
* Battlefield 1942
* Battlefield 2
* Battlefield 2142
* Battlefield 3
* Battlefield 4
* Battlefield Vietnam
* Battlefield: Bad Company 2
* Battlefield Heroes
* Battlefield Play4Free
* Blacklight: Retribution
* Call of Duty
* Call of Duty 2
* Call of Duty 4: Modern Warfare
* Call of Duty: World at War
* Crysis
* Doom 3
* Enemy Territory: Quake Wars
* Far Cry
* Far Cry 2
* Far Cry 3
* FEAR Combat
* Tom Clancy's Ghost Recon: Future Soldier
* Tom Clancy's Ghost Recon Phantoms
* Frontlines: Fuel of War
* Infestation: Survivor Stories
* Joint Operations: Typhoon Rising
* Knight Online
* Medal of Honor
* Medal of Honor: Airborne
* Medal of Honor : Batailles du Pacifique
* Medal of Honor: Warfighter
* Need for Speed: ProStreet
* Need for Speed: Undercover
* Prey
* Quake III Arena
* Quake 4
* Quake Live
* Red Orchestra 2: Heroes of Stalingrad
* Return to Castle Wolfenstein
* Soldier of Fortune II: Double Helix
* The Mighty Quest for Epic Loot
* Tom Clancy's Ghost Recon Phantoms
* Tom Clancy's Rainbow Six: Vegas
* Tom Clancy's Rainbow Six 3: Raven Shield
* Tom Clancy's Splinter Cell: Pandora Tomorrow
* Tribes: Vengeance
* TrueCombat: Elite
* Turok
* Wolfenstein: Enemy Territory
* War Rock
* Warhammer Online: Age of Reckoning
La liste des jeux supportés actuellement est mise en ligne sur le site de l'éditeur.

## Problèmes de vie privée

La licence du logiciel précise :
a) « Licensee consents to allow PunkBuster software to transfer actual screenshots taken of Licensee’s computer during the operation of PunkBuster software for possible publication. »
En d'autres termes, le logiciel a le droit de faire des captures d'écran de l'ordinateur et de les diffuser publiquement.
b) « Licensee understands and agrees that the information that may be inspected and reported by PunkBuster software includes, but is not limited to, devices and any files residing on the hard-drive and in the memory of the computer on which PunkBuster software is installed. »
PunkBuster est donc autorisé à récupérer n'importe quel fichier de l'ordinateur pour le transmettre à la société qui l'édite.

## Problèmes de fonctionnement

À certaines périodes, un certain nombre d'utilisateurs a connu des problèmes de fonctionnement avec PunkBuster, celui-ci bannissant automatiquement les joueurs même sans triche, par exemple dans le cas de « faux positif ».
Par ailleurs, PunkBuster n'autorise pas les utilisateurs de Windows sans comptes administrateurs à se connecter à des jeux. Lors de la connexion à un jeu, l'utilisateur sera immédiatement « kické » (expulsé) pour manque de privilèges administrateurs sur son OS. À partir du PB client v1.700, un service Windows avec tous les droits administratifs est utilisé en complément avec le client PunkBuster en jeu, permettant des mises à jour sans élévation des droits utilisateur. Cependant, certains jeux peuvent encore nécessiter des droits d'administrateurs avant que PunkBuster ne fonctionne correctement.
Plusieurs aides et tutoriels sont depuis disponibles sur Internet pour tenter de remédier à ces dysfonctionnements, ainsi que sur le site de l'éditeur de Punkbuster.

## Attaques sur Punkbuster

PunkBuster recherche généralement les signatures de programmes de triche connus, au lieu de s'appuyer sur une approche heuristique.
Le 23 mars 2008, des pirates ont publié et mis en œuvre une preuve de concept exploitant l'analyse de mémoire aveugle de PunkBuster. Parce que PunkBuster analyse toute la mémoire virtuelle d'une machine, les utilisateurs malveillants ont pu provoquer des faux positifs de masse en transmettant des fragments de texte de programmes de triche connus sur un canal IRC à forte population. Lorsque PunkBuster a détecté le texte dans les tampons de texte (buffers) du client IRC de l'utilisateur, les utilisateurs ont été bannis. Le 25 mars 2008, Even Balance a confirmé l'existence de cet exploit.