SécuritéSecurity
Ce que le programme touche, comment il se protège, comment ses mises à jour sont vérifiées et ce qui est testé avant chaque version.What the program touches, how it protects itself, how its updates are checked and what is tested before every version.
Ce que le programme touche dans le jeuWhat the program touches in the game
Prédiction RL n'injecte rien dans Rocket League et n'en modifie aucun fichier de jeu. Il écoute la Stats API, l'outil que Psyonix propose justement pour que des programmes externes reçoivent les événements d'un match.Prédiction RL injects nothing into Rocket League and modifies none of its game files. It listens to the Stats API, the tool Psyonix offers precisely so that external programs can receive a match's events.
La seule chose qu'il modifie côté jeu est l'option PacketSendRate du fichier TAStatsAPI.ini, dans Documents\My Games\Rocket League, celle qui active la Stats API. Une mise à jour du jeu peut la remettre à zéro : le programme la réactive alors tout seul.The only thing it modifies on the game side is the PacketSendRate option of the TAStatsAPI.ini file, in Documents\My Games\Rocket League, the one that turns the Stats API on. A game update may reset it to zero: the program then turns it back on by itself.
Une installation sans droits administrateurAn installation without administrator rights
Le programme s'installe pour ton compte Windows, dans %LOCALAPPDATA%, sans jamais demander les droits administrateur. Il ne peut donc modifier ni le système ni les autres comptes.The program installs for your Windows account, in %LOCALAPPDATA%, without ever asking for administrator rights. It therefore cannot modify the system or other accounts.
Des mises à jour vérifiéesVerified updates
- Le programme ne télécharge une mise à jour qu'en https, et seulement depuis GitHub : le téléchargement part de
github.com, qui le redirige vers son propre stockage. Toute autre adresse de départ est refusée.The program only downloads an update over https, and only from GitHub: the download starts atgithub.com, which redirects it to its own storage. Any other starting address is refused. - Avant d'installer, il compare l'empreinte SHA-256 du fichier reçu à celle publiée avec la version. Si elles diffèrent, la mise à jour est ignorée.Before installing, it compares the SHA-256 fingerprint of the received file with the one published with the version. If they differ, the update is ignored.
- L'installation est silencieuse et n'a lieu que quand Rocket League est fermé, jamais en pleine partie : il attend et revérifie chaque minute.The installation is silent and only happens when Rocket League is closed, never in the middle of a match: it waits and rechecks every minute.
Un navigateur invisible tenu à l'écartAn invisible browser kept apart
- Le navigateur qui lit tracker.gg ne charge que tracker.gg et la page de vérification de Cloudflare : les publicités, les mesures d'audience et les scripts des autres sites sont refusés avant d'être téléchargés.The browser that reads tracker.gg only loads tracker.gg and Cloudflare's check page: ads, audience measurement and other sites' scripts are refused before being downloaded.
- Il tourne dans le bac à sable de Chromium, comme ton propre navigateur : une page piégée ne pourrait pas en sortir pour toucher à tes fichiers.It runs in Chromium's sandbox, like your own browser: a booby-trapped page could not get out of it to touch your files.
- Il est remplacé par une version plus récente, avec ses correctifs de sécurité, quand une mise à jour du programme en apporte une.It is replaced by a newer version, with its security fixes, when a program update brings one.
Le serveur localThe local server
Le programme garde un petit serveur local qui tourne sur ton PC. Il ne sert plus de page web : seulement la page compacte de l'overlay Steam et les échanges avec le menu. Il est protégé de plusieurs façons :The program keeps a small local server running on your PC. It no longer serves a web page: only the compact Steam overlay page and the exchanges with the menu. It is protected in several ways:
- Il n'écoute que sur
127.0.0.1: aucun autre appareil de ton réseau ne peut le joindre.It only listens on127.0.0.1: no other device on your network can reach it. - Il vérifie l'en-tête
Hostde chaque requête. Cela bloque les attaques dites de « DNS rebinding », où un site malveillant fait pointer son nom de domaine vers ton PC.It checks theHostheader of every request. This blocks so-called “DNS rebinding” attacks, where a malicious website points its domain name at your PC. - Il vérifie l'origine de chaque requête qui modifie quelque chose, et refuse celles qui viennent d'un autre site.It checks the origin of every request that changes something, and rejects those coming from another site.
- Aucun site ne peut afficher la page de l'overlay Steam dans un cadre invisible pour te faire cliquer sur ses boutons, et seul le script de cette page peut s'y exécuter.No website can show the Steam overlay page inside an invisible frame to make you click its buttons, and only that page's own script can run in it.
- La taille des requêtes est limitée, chaque réglage reçu est contrôlé (valeurs connues, pseudo de 200 caractères au plus), il n'accepte que ce dont la page de l'overlay Steam et le menu ont besoin, et aucune saisie n'est jamais passée à une commande système.The size of requests is limited, every setting received is checked (known values, username of 200 characters at most), it only accepts what the Steam overlay page and the menu need, and no input is ever passed to a system command.
- Les programmes Windows qu'il appelle le sont par leur chemin complet dans
System32.The Windows programs it calls are called by their full path inSystem32.
Ce qui est testé avant chaque versionWhat is tested before every version
Aucune version n'est publiée sans que ces contrôles passent :No version is published unless these checks pass:
- des tests automatiques qui couvrent tout le code, et de nouveaux tests pour ce qui a changé dans la version ;automated tests that cover all of the code, and new tests for what changed in the version;
- une analyse de sécurité du code et une recherche de vulnérabilités connues dans les bibliothèques utilisées ;a security analysis of the code and a search for known vulnerabilities in the libraries used;
- une relecture de sécurité manuelle des changements : rien ne doit sortir du PC en dehors de tracker.gg et de GitHub ;a manual security review of the changes: nothing must leave the PC except to tracker.gg and GitHub;
- une construction faite par l'éditeur sur son PC, signée avec une clé qui ne quitte jamais son coffre de mots de passe, puis installée et essayée avant la publication ; une fois publiée, une version ne peut plus être modifiée.a build made by the publisher on their PC, signed with a key that never leaves their password vault, then installed and tried before publication; once published, a version can no longer be modified.
Ce qu'il faut savoirWhat you should know
- Le programme n'est pas signé. Windows affiche donc un avertissement à l'installation. Voir Installation. L'empreinte SHA-256 te permet de vérifier que ton fichier n'est pas abîmé.The program is not signed. Windows therefore shows a warning at installation. See Installation. The SHA-256 fingerprint lets you check that your file is not damaged.
- Le code source n'est plus publié depuis la version 1.1.2. Tu ne peux donc pas le relire toi-même : la confiance repose sur le fonctionnement décrit ici, sur les contrôles ci-dessus et sur la liste exacte de ce qui sort de ton PC dans Tes données.The source code has no longer been published since version 1.1.2. So you cannot read it yourself: trust rests on the behaviour described here, on the checks above and on the exact list of what leaves your PC in Your data.
Signaler une failleReport a vulnerability
Si tu penses avoir trouvé une faille de sécurité, ne la publie pas dans un ticket public. Utilise le formulaire de signalement privé : seul le mainteneur le voit. Décris ce que tu as observé, la version concernée et, si possible, comment le reproduire.If you think you have found a security vulnerability, do not post it in a public issue. Use the private reporting form: only the maintainer can see it. Describe what you observed, the affected version and, if possible, how to reproduce it.
Le formulaire demande un compte GitHub. Pour tout autre problème, qui n'est pas une faille, ouvre un ticket public comme d'habitude.The form requires a GitHub account. For any other problem that is not a vulnerability, open a public issue as usual.