S’il y a bien un domaine dans lequel les jeux de simulation sur PC peuvent être réalistes, c’est les simulations de hacking. Depuis que c’est un domaine devenu hype, on en trouve un grand nombre sur Steam. Tous ne se valent pas, et la catégorie associée sur Steam va comporter des jeux dans lesquels à un moment on va pirater un serveur pour faire avancer l’intrigue, sans que ça ne dépasse une simple opération activée par un clic. C’est par exemple le cas du jeu Ghost Recon Breakpoint qui est avant tout un jeu d’infiltration militaire, dans lequel, à un moment du scénario, il est demandé de pirater un serveur en insérant une clé USB (ce qui est déjà bien assez réaliste, dans le sens où certaines opérations militaires peuvent réellement amener à planter un logiciel malveillant en douce sur du matériel difficile d’accès, mais ce n’est pas la personne qui se charge de la conception de la charge qui se chargera de son dépôt). Je vais donc évoquer un certain nombre de jeux de hacking auxquels j’ai eu l’occasion de jouer au cours des 20+ dernières années, en donnant un simple ressenti, le but n’étant pas non plus de lister l’ensemble des actions possibles pour dire si c’est réaliste ou non.

Ayant découvert l’informatique au milieu des années 90, je ne saurais pas trop dire si des jeux s’y sont aventurés avant, mais en 2001, Introversion sort le jeu Uplink. Il y a eu des tentatives de clones open source, dont MyLink en Perl, mais à part passer des plombes à essayer d’installer des dépendances via CPAN, je n’ai jamais réussi à y jouer. Pas grave, Uplink bénéficiait d’un port sous Linux. De nos jours, le jeu est disponible très facilement via Steam pour une poignée d’euros (un peu moins de 10€ actuellement). A l’époque (entre 2001 et 2003), je découvrais la programmation en C et ai fait des tentatives de simulations de hacking en mode texte plus ou moins ratées (ou abouties).

Alors je n’ai pas rejoué récemment à Uplink (juste assez pour caser des screenshots), mais on se retrouve face à une carte du monde avec des points correspondant à des serveurs dont nous avons les adresses IP. On peut recevoir des e-mails faisant office de lettres de mission, nous disant d’attaquer tel serveur et de retirer telle somme d’argent. Une notion de serveurs de rebond et de “traçage” durant un piratage - obligeant à réussir un piratage en un temps relativement court - existe. L’ajout de serveurs intermédiaires augmentant le temps disponible avant d’être tracé et retrouvé. Il est également possible d’acheter du matériel (RAM/CPU) afin de faire tourner les différents logiciels que l’on souhaite utiliser. Chaque logiciel occupant plus ou moins d’espace disque et ram, il va falloir augmenter les capacités de stockage. Le jeu met fortement l’accent sur le côté traçage, et il faudra utiliser des rebonds pour augmenter le temps disponible pour qu’une attaque réussisse, et également supprimer les logs sur les machines rebond (et acheter/utiliser l’outil qui va bien à cet effet). Pas de ligne de commande dans celui-ci, mais des menus dans lesquels cliquer.

A noter le petit côté nostalgie avec le petit DTMF de connexion à internet, que les moins de 35 ans n’ont généralement pas connu (sauf exceptions, comme toujours).

Uplink

Hacker Evolution (Source Code)

Je n’ai pas terminé ce jeu, que j’ai pris avec le bundle “Source Code” et donnant donc accès, outre le code source du jeu (autrement disponible sur Github au passage) à deux DLC. Le jeu commence par un tutoriel pas très compliqué, il suffit de taper des commandes et c’est validé. Tout comme Uplink, il est ici question de capacité matérielle qui peut être améliorée (RAM, CPU, bande passante, …) moyennant de l’argent que l’on peut looter sur des serveurs. Là encore, une notion de “trace” enclenchée dès lors que l’on effectue des actions offensives. Game Over dès lors que la trace arrive à 100%, heureusement il est possible de payer pour réduire ce pourcentage. En ce qui concerne le piratage en lui même, il est assez rudimentaire. Disons que l’objectif est de faire sauter des mécanismes de sécurité sur des serveurs. Chaque service est protégé par un mécanisme de sécurité (mot de passe, chiffrement) et il faut utiliser l’outil adéquat pour désactiver cette sécurité. Par exemple, on verra des serveurs mentionnant un chiffrement de 512 bits (ouais, rien que ça), il faudra donc utiliser la commande “decrypt”, qui prendra plus ou moins de temps à aboutir, mais augmentera d’autant le niveau de trace: il faudra donc enchainer les serveurs “bounce” (rebonds) et payer un peu pour réduire le niveau de trace. Une notion d’exploit à utiliser en fonction du service ciblé existe. Par exemple si l’on se rend compte qu’il y a un service FTP en écoute après un scan, il peut être judicieux d’utiliser l’exploit adéquat. Autrement, il y a aussi une phase de post-exploitation/situational awareness, consistant principalement à lire des fichiers sur des machines compromises pour y trouver des informations (autres serveurs à cibler, mots de passe, voire même des exploits à récupérer).

Amusant mais pas trop longtemps. A voir si les DLC sont intéressants, mais je me suis arrêté aux missions du pack original (On verra si un jour j’ai le temps de finir).

L’interface du jeu Synopsis

Hacknet

Dans l’esprit, Hacknet est très proche de Hacker Evolution ou Uplink. On dispose d’une interface digne de ce que l’on peut imaginer au cinéma avec une carte du monde, des trucs qui font “beep” régulièrement (par exemple lorsque nos attaques sont détectées et que la cyberpolice remonte notre trace) et évidemment un terminal dans lequel il faut taper des commandes.

Ici encore, il va falloir enchaîner les serveurs de rebond, scanner les systèmes pour identifier des mécanismes de sécurité à désactiver avant d’exploiter des vulnérabilités. On dispose d’une boite mail dans laquelle on reçoit des instructions/missions à compléter pour avancer dans l’histoire. Au plus une machine dispose de “ports ouverts”, au plus il sera complexe de la hacker, et l’on aura besoin de davantage d’outils pour y arriver sans se faire détecter. Une notion de produits de sécurité (firewall/proxy) ajoute de la complexité, et il faudra désactiver ces derniers avant de pouvoir “hacker un port” en … les saturant de connexions (un gros DDoS quoi). En soi le jeu est pas mal graphiquement, mais il n’apporte pas grand chose de plus que Hacker Evolution. Il y a une petite référence à Uplink, concernant le mot de passe initial (“rosebud”). Ici il semblerait qu’il ne soit pas possible d’augmenter les ressources (ram/cpu). Pas possible de lancer plus de 2 taches en parallèle. Il y a une notion d’anti-forensics, assez minimale, mais on est assez vite encouragé à supprimer nos logs dans /log/. Dans la réalité ce n’est pas aussi simple que cela, mais j’ai trouvé ça amusant.

Hacknet

Watch_Dogs

Le jeu est développé par Ubisoft et dispose par conséquent d’une force de frappe assez conséquente (comparé à des petits studios) et se fend d’une campagne promotionnelle amusante au moment de sa sortie :

En soi, le jeu n’est qu’une sorte de GTA-like, le personnage principal pouvant pirater un peu tout ce qui l’entoure avec un smartphone, ou se battre avec une matraque télescopique ou des armes. Il est possible d’avoir tout un tas d’informations sur les gens que l’on croise et vider leur compte en banque en un clic, l’argent servant à acheter des armes ou des véhicules principalement. Pour le reste, le gameplay est similaire à tout ce que propose Ubisoft depuis quelques années (j’ai retrouvé beaucoup d’éléments de jeux type Far Cry). Il est également possible de pirater différents éléments type feux de circulation, barrières ou ponts à bascule afin de ralentir nos poursuivants lors des phases de course poursuite. On peut même faire exploser des canalisations sous la route. Certaines pièces sont inaccessibles (ou très difficiles d’accès) et hébergent un serveur à pirater, auquel cas il sera possible de pirater des caméras, depuis lesquelles on pourra pirater d’autres caméras et ainsi de suite pour accéder au serveur à pirater. Ces phases là consisteront en des puzzles à résoudre (un signal doit passer d’un point A à un point B, et il faut restaurer le cablage pour que le signal passe sans interruption).

Niveau réalisme, on est quand même assez loin de la réalité, après il faut que le jeu reste un divertissement. Donc on ne doit pas le voir comme un jeu de hacking à proprement parler, mais plutôt comme un jeu où le hacking est une compétence de soutien pour avancer dans l’histoire. A l’époque le jeu avait fait parler de lui car il rendait possible le piratage d’un pacemaker. Beaucoup de choses peuvent être piratées par un simple clic sur un téléphone, ce qui est techniquement possible mais nécessite d’avoir passé un temps conséquent dans la conception de cet outil sur téléphone (fuzzing et développement d’exploits pour tous les équipements pouvant être ciblés, et intégration des actions possibles pour chacun d’eux dans l’application). D’ici à ce qu’un Flipper Zero permette de faire ça, on a le temps de vieillir !

Plusieurs DLC et deux suites ont suivi. Watch_Dogs 2 amenait l’intrigue dans une autre ville des états-unis (San Francisco, au lieu de Boston) et permettait sensiblement la même chose tout en ajoutant des gadgets additionnels (par exemple des drones permettant d’accéder à des zones difficiles d’accès et entamer le piratage à partir de là), mais autrement rien de bien nouveau. Watch_Dogs Legion est le 3e opus de cette série, il est sorti il y a maintenant quelques années mais je n’y ai pas passé beaucoup de temps. Les mécaniques sont sensiblement les mêmes, la principale différence que j’ai vu jusque là c’est que potentiellement tous les habitants de Londres peuvent être enrolés dans notre “légion”, chacun ayant des compétences bien particulières en plus de pouvoir hacker des serveurs et se battre (par exemple avoir un avocat dans l’équipe permet de réduire le cooldown en cas d’arrestation, et un médecin permet de réduire le même cooldown en cas de blessure grave).

NITE Team 4

C’est le dernier jeu de la catégorie que j’ai testé, et ce assez récemment alors qu’il est sorti il y a déjà au moins 4 ans (courant 2019). Dans ce jeu, on rejoint un service de renseignement US (la NSA ?) dans une division chargée des opérations offensives numériques (TAO ?). On commence par un training faisant office de tutoriel où l’on va découvrir petit à petit les différents outils à notre disposition, et comment combiner leurs usages dans le cadre de TP :

  • OSINT et énumération DNS
  • Scanning et recherche de vulnérabilités
  • Exploitation de vulnérabilités pour déposer un implant
  • Post exploitation

Des outils de support sont disponibles, comme une vue satellite par exemple. Certaines missions vont ainsi nécessiter de visualiser une zone géographique dans laquelle se déplace notre cible dans une voiture, puis pirater l’opérateur téléphonique de la zone pour accéder aux infos des antennes, pour isoler le smartphone de la cible (le seul qui se connecte à toutes les antennes en gros), le pirater (avec une backdoor magique qui ne nécessite que l’adresse MAC) et ensuite fouiller le téléphone à la recherche des données que l’on recherche. Le tout nécessitant d’utiliser de manière intelligente les différents outils mis à disposition.

Une fois le tuto terminé (enfin, la “formation”) on est déclaré apte au service et on se voit assigner des missions où l’on se contente de refaire le même genre d’actions que dans le tuto. Je n’ai pas vu de notions de furtivité mais je ne suis pas forcément allé très loin dans le jeu (tuto et les 2 premières opérations, ainsi que des missions de type “bounty” accessibles pendant un cours laps de temps). L’exploitation de vulnérabilités nécessite juste de combiner différents vecteurs ensemble (protocole, type de payload, port, etc.) mais ces données sont communiquées durant la phase de collecte d’informations (en soi, c’est déjà réaliste, parce que lancer un exploit à l’aveugle a de grandes chances de ne pas fonctionner :))

Le jeu reste excessivement simple et on voit assez vite le cheminement demandé pour avancer. En tout cas c’est un des jeux de hacking qui m’a le plus plu ces dernières années. Je n’irais pas jusqu’à dire qu’il est réaliste, mais au niveau du rapport réalisme/divertissement je trouve que c’est un des plus réussis. A noter que durant le training, des liens vers des ressources du monde réel sont fournis, pour se documenter. Certains outils du jeu sont basés sur des outils réels (FoxAcid est vaguement inspiré de Cobalt Strike par exemple, bien que son nom soit le nom de code d’un projet de la NSA de spear phishing)

Bitburner

Dernièrement j’ai découvert Bitburner. Il est accessible via des plateformes type Steam, mais est entièrement jouable gratuitement depuis un navigateur. Je n’y ai pas encore passé beaucoup de temps, mais on devient assez vite accro. Il se présente sous la forme d’un jeu de rôle (RPG) textuel avec un personnage présentant diverses caractéristiques de force, charisme, etc. et des compétences en hacking. Un terminal est disponible, dans lequel on peut taper des commandes et explorer le réseau. Il est possible de se connecter aux machines directement adjacentes (1 hop) et les pirater pour générer de l’argent. C’est là que les choses vont se corser. Chaque machine requiert un niveau de hacking plus ou moins élevé ainsi que des outils spécifiques pour être piratée. Et si pirater une machine génère un peu d’argent et donne quelques points d’expérience pour faire monter le niveau de hacking, faire ça manuellement peut prendre un temps incroyablement long. D’autant qu’après chaque piratage, le nombre de points d’XP et l’argent généré vont baisser si on pirate la même machine. C’est là que le jeu est différent, car un IDE est disponible et permet de développer des scripts automatisant toutes les taches (en NetScript, basé sur du JavaScript). Le but du jeu étant alors de développer petit à petit un script qui découvre le réseau et pirate chaque machine pour générer de l’argent (de plus en plus), et se propager aux machines environantes (un ver quoi), en permanence. Au final c’est une sorte de Dyson Sphere Program ou Factorio mais orienté hacking. D’autres aspects de l’histoire me sont encore inconnus, car il y a une intrigue là derrière, mais j’espère bien finir par la découvrir après y avoir passé assez de temps.

Conclusion

J’ai passé un temps assez long à la rédaction de cet article, mais probablement encore plus long à (re)jouer à ces jeux. Il est temps de conclure. On avait déjà vu le hacking au cinéma/télé ou dans des romans (voire dans des adaptations de romans !) mais on parle au final assez peu du hacking dans les jeux vidéo. Rendre ce sujet amusant pour le grand public sans trop s’y perdre dans des considérations réelles chiantes (qui a envie d’une simulation où il faut passer les 3/4 de son temps à faire du fuzzing ou du debug pour développer un outil d’attaque ?) passe forcément par de la simplification. C’est pareil dans des fictions comme Millennium ou Mr Robot (le rythme serait beaucoup moins soutenu si Elliot passait les 3/4 de son temps sur de l’OSINT ou à comprendre pourquoi son exploit ne fonctionne pas sur une maquette). La simulation la plus réaliste reste le côté CTF/labs, mais implique donc d’y passer beaucoup de temps, et est donc beaucoup moins sympa à regarder :)

J’ajoute qu’il y a quelques années, Gynvael Coldwind avait fait un live Youtube sur certains de ces jeux, permettant de se faire un avis de la part d’un expert en sécu :