// FiveM

Installer des scripts FiveM en sécurité (et repérer les malwares)

Installer des scripts FiveM en sécurité (et repérer les malwares)

Ajouter un nouveau script à votre serveur FiveM prend cinq minutes. Installer un mauvais script aussi — sauf qu'ensuite, ce ne sont plus cinq minutes mais des jours de travail, car dans l'univers FiveM circulent étonnamment beaucoup de resources avec une backdoor intégrée. Qui comprend comment une resource est construite et sait où se cachent les signaux d'alerte installe plus vite et plus sûrement.

Comment une resource FiveM est construite

Tout ce que votre serveur exécute vit dans le dossier resources. Chaque resource y possède son propre dossier, et les dossiers entre crochets comme [standalone] ne sont que des catégories pour garder de l'ordre — FiveM les traverse sans s'y arrêter.

Le cœur de chaque resource est fxmanifest.lua (dans les scripts plus anciens, vous rencontrerez encore __resource.lua). Il indique quels fichiers tournent côté client, lesquels côté serveur, et de quelles autres resources le script dépend. Les fichiers client tournent sur le PC de chaque joueur, les fichiers serveur uniquement chez vous, et les fichiers partagés aux deux endroits. Ce manifest est aussi votre premier point de contrôle : un simple script de décoration qui, selon son manifest, exécute aussi toutes sortes de choses côté serveur soulève des questions. Et si le manifest mentionne des fichiers introuvables dans le dossier — ou inversement, des fichiers qui n'y sont mentionnés nulle part — c'est une raison de regarder de très près ce qui s'y passe.

Le nom du dossier est en même temps le nom de la resource. N'utilisez pas d'espaces ni de caractères étranges, et ne renommez pas un dossier à la légère : certains scripts font référence en interne à leur propre nom et se cassent alors sans message d'erreur clair.

Installer en quatre étapes

  1. Examinez avant de téléverser. Décompressez le fichier zip en local et parcourez le code (ce qu'il faut surveiller, vous le lirez plus bas). Téléverser d'abord et regarder ensuite est le mauvais ordre.
  2. Téléversez dans resources. Via votre panneau ou SFTP, proprement dans un dossier de catégorie, pour savoir encore dans six mois ce qui se trouve où.
  3. Ajoutez la resource dans server.cfg avec une ligne du type ensure mijn-script. L'ordre compte : votre framework (comme ESX ou QBCore) et les bibliothèques comme oxmysql doivent être démarrés avant les scripts qui s'appuient dessus.
  4. Redémarrez et testez. Vérifiez dans la console que la resource démarre sans erreur et testez vous-même la fonctionnalité en jeu, de préférence avec un deuxième compte.

Encore un conseil qui évite bien des tracas : n'installez jamais cinq scripts en même temps. Si quelque chose tourne mal, vous ne saurez pas lequel des cinq est le coupable. Installer et tester un par un ne coûte presque pas de temps supplémentaire et vous épargne une longue chasse.

Et attention à votre server.cfg lui-même. Il contient votre clé de licence et souvent aussi des mots de passe et des clés API. Ne partagez jamais ce fichier tel quel dans un canal Discord quand vous cherchez de l'aide pour un problème d'installation — retirez d'abord tous les secrets. Une clé de licence qui fuite signifie que quelqu'un d'autre peut se faire passer pour votre serveur, et vous ne voulez pas de ce cadeau.

Payant, gratuit ou « leaké » ?

Les scripts payants s'achètent presque toujours via Tebex, la plateforme de vente officielle de l'écosystème FiveM. Beaucoup de créateurs y utilisent l'escrow : le code est chiffré et ne tourne qu'avec votre licence. L'avantage, c'est la certitude d'avoir la version originale. L'inconvénient : vous ne pouvez pas lire le code chiffré, donc ni le vérifier ni le modifier vous-même, à l'exception des fichiers de configuration laissés ouverts volontairement. C'est un vrai compromis, pas un détail.

Les scripts gratuits de GitHub sont, eux, entièrement lisibles. Les projets connus ont des milliers d'utilisateurs qui gardent un œil dessus, ce qui fait vite remonter les erreurs et les mauvaises blagues. Les petits dépôts inconnus sans historique méritent la même méfiance que n'importe quel téléchargement aléatoire sur internet.

Puis il y a les « leaks » : des scripts payants proposés gratuitement quelque part. Au-delà du fait que vous lésez les développeurs, les sites de leaks sont LE canal de distribution des malwares. Un script leaké a régulièrement été modifié avant d'être remis en ligne — avec un petit extra qui ne vous coûte rien, sauf votre serveur tout entier.

Signaux d'alerte : reconnaître une backdoor

Ouvrez simplement chaque nouvelle resource dans un éditeur de texte ; le Lua se lit bien, même sans expérience en programmation. Voici les signaux à surveiller :

SignalPourquoi c'est suspect
Blocs de code illisibles : chaînes hexadécimales, base64, une seule ligne gigantesqueL'obfuscation cache ce que fait le code — dans un script « gratuit », c'est presque toujours mauvais signe
load( ou assert(load( sur des chaînes ou des données récupéréesExécute du code qui n'arrive qu'à l'exécution, complètement hors de votre vue
PerformHttpRequest vers des domaines inconnus au démarragePeut récupérer des commandes externes ou faire fuiter les données de votre serveur
Des webhooks Discord que vous n'avez pas configurés vous-mêmeEnvoie des données de votre serveur vers le canal de quelqu'un d'autre
Des event handlers qui distribuent argent, armes ou droitsLa backdoor à distance classique : le créateur peut se donner les droits admin à distance

Une recherche pratique avant chaque installation : parcourez tous les fichiers à la recherche de PerformHttpRequest, load( et webhook. Toute occurrence n'est pas forcément mauvaise — un script de logging doit contenir des webhooks — mais chaque occurrence doit s'expliquer par ce que le script est censé faire.

Encore une nuance : les fichiers escrow chiffrés de Tebex sont autre chose que du Lua auto-obfusqué dans un téléchargement gratuit. Dans le premier cas, la plateforme gère le chiffrement et vous connaissez le vendeur ; dans le second, celui qui a mis le fichier en ligne a quelque chose à cacher.

Restez aussi vigilant après l'installation. Une backdoor discrète dans le code se trahit souvent quand même par son comportement : une resource qui, d'après resmon, consomme étonnamment beaucoup de puissance de calcul alors qu'elle ne fait rien de visible, ou des connexions vers des domaines que vous ne connaissez pas. Surveiller quelques jours après chaque nouvelle installation coûte peu et attrape précisément les cas qui vous ont échappé à la lecture.

Touché quand même ? Voici comment nettoyer

Signes que quelque chose ne va pas : des « admins » que vous ne connaissez pas, de l'argent ou des objets sortis de nulle part, des commandes que vous n'avez jamais ajoutées, ou un script qui se connecte à des domaines étranges. Dans ce cas :

  1. Mettez le serveur hors ligne, pour que la backdoor ne puisse pas être exploitée activement pendant que vous nettoyez.
  2. Remplacez tous vos secrets : clé de licence, mots de passe txAdmin et RCON, mots de passe de base de données et éventuelles clés API.
  3. Supprimez la resource suspecte — ainsi que tout ce que vous avez récupéré de la même source.
  4. Restaurez une sauvegarde antérieure à l'infection, ou reconstruisez votre dossier resources à partir de sources connues et propres.

Cette dernière étape semble radicale, mais une backdoor peut avoir modifié d'autres fichiers. Ne jeter que le script visiblement fautif n'est alors qu'une fausse sécurité. Faites donc systématiquement une sauvegarde avant chaque nouvelle installation — la restauration devient alors une affaire de minutes au lieu de jours.

Expérimenter en sécurité sans risquer votre serveur principal

La façon la plus sûre d'essayer de nouveaux scripts est un serveur de test séparé, sans données réelles de joueurs. Chez MC-Node, c'est possible sans frais : l'offre Free à 0,00 € par mois est exactement faite pour ça. Si un script y tourne proprement un moment, vous pouvez le placer l'esprit tranquille sur votre serveur principal. Pour la production, choisissez parmi les offres de Small (1,75 € par mois) à Enterprise (56,00 € par mois), toutes résiliables mensuellement, sur du matériel dédié avec stockage NVMe et protection anti-DDoS dans le datacenter Previder à Hengelo. Découvrez les options dans la boutique FiveM de MC-Node — et gardez ce serveur de test gratuit à côté, car il est et reste votre meilleure défense contre les mauvais scripts.

// ESSAYEZ VOUS-MÊME
Votre serveur Minecraft en ligne en 60 secondes
Voir les offres →