PHP Malware FinderQu’est-ce que PHP Malware Finder

Après avoir attaqué un site et l’avoir compromis, un pirate dépose très souvent du code malveillant sur le serveur hébergeant ce site, que ce soit pour maintenir son accès à la machine, exfiltrer des données, envoyer du spam anonymement, réaliser des attaques DDoS, héberger du contenu illégal, …

PHP Malware Finder (PMF) est un outil open source qui a pour objectif de repérer ces codes malveillants, et de les signaler à l’administrateur afin que celui-ci puisse prendre les mesures nécessaires à la protection de son serveur.

Pourquoi avoir créé cet outil ?

Créée en 1999, NBS System héberge aujourd’hui plus de 3.000 sites web dans plusieurs domaines : e-commerce, médias, finance, …  Comme tout hébergeur qui se respecte, nous portons une grande attention à la sécurité de nos clients. Certains sont particulièrement protégés des attaques grâce à leur choix pour notre solution CerberHost, le Cloud de très haute sécurité, qui n’a jamais été compromis à ce jour ; mais nous faisons également tout notre possible pour garantir la sécurité des clients n’ayant pas choisi cette option.

Il arrive cependant que certains d’entre eux soient victimes d’attaques informatiques et voient leurs sites piratés, à plus ou moins grande échelle.

Pour accélérer les réponses à ces incidents (qui restent relativement rares), notre collaborateur Julien Voisin a développé en interne un « anti-malware maison », nommé PHP Malware Finder (PMF) et basé sur le projet open source yara. Cet outil n’est pas spécifique à NBS System et pourrait servir à d’autres entités, nous l’avons donc rendu disponible en licence Libre, non seulement pour le partager, mais également en espérant recevoir des contributions.

En effet, nous sommes une entreprise à l’esprit open source et estimons important que de tels outils, utiles à la sécurité de tous, soient disponibles et que chacun puisse participer à l’avancement général de la sécurité informatique. La mise à disposition de PHP Malware Finder s’inscrit notamment dans la lignée de NAXSI, notre pare-feu applicatif, également open source.

Le fonctionnement de PMF

Une fois qu’un pirate a pénétré un serveur, les utilisations possibles de celui-ci sont multiples et ce n’est pas l’imagination des pirates qui manque. L’avantage, c’est que ces portes dérobées se ressemblent en général beaucoup, car elles fournissent souvent le même genre de fonctionnalités, comme celles citées en début d’article.

Détection de codes malveillants

porte dérobéeL’un des principes de fonctionnement de PMF repose donc sur la détection de ces similarités.

Si un fichier PHP présent sur un serveur contient des fonctions pour envoyer des emails, exfiltrer des fichiers et exécuter des commandes, il y a de grandes chances qu’il soit malveillant. PMF va rechercher dans les fichiers du serveur, étudier les fonctions douteuses de celui-ci ; et s’il en repère un certain nombre dans un même fichier, il va donc le marquer comme illégitime. Il va également déceler des morceaux de code correspondant à des malwares, ou même des signatures de hackers (un pseudonyme par exemple) présents dans les fichiers à partir d’une blacklist (liste noire), et ces derniers seront marqués de la même manière.

Parfois, ces fichiers sont obfusqués afin de ralentir leur analyse par des outils automatisés. Cependant, peu nous importe car en général seule la détection est importante et cette dernière ne nécessite pas une analyse poussée du fichier malveillant. PMF va dans ce cas simplement repérer les patterns d’obfuscation utilisés dans les malwares (bien souvent des modèles tout faits et peu évolués) et étiqueter le fichier en question comme douteux.

Encodage Base64 ou Hex

Autre point intéressant de l’outil : il reconnaît les encodages triviaux de type `base64` et `hex`. Il est donc capable de déchiffrer ces fichiers et de les analyser également, ce qui étend sa portée de détection.

Whitelist de hashs

hachageDe plus, l’outil dispose d’un système de liste blanche de fichiers, ce qui permet d’éviter les faux positifs. En effet, nos experts ont déjà scanné une multitude de plateformes et de CMS afin de noter les fichiers légitimes sous forme d’une whitelist de hashs (SHA-1). Après avoir analysé un fichier, si celui-ci est considéré comme malveillant, PMF va le hacher et comparer ce résultat aux entrées de sa liste blanche. S’il ne correspond à aucun fichier autorisé, le fichier douteux sera alors considéré comme un malware.

L’utilisation de cette fonction de hachage permet une unilatéralité de la liste blanche. Ainsi, un pirate ne pourra pas, même en ayant accès à la liste des fichiers légitimes, créer des fichiers qui passeraient comme légitime alors qu’ils sont malveillants.

N’hésitez pas à contribuer !

Comme nous l’avons déjà précisé, les experts en sécurité de NBS System ont passé au crible plusieurs plateformes et CMS pour créer une whitelist. Mais nous avons besoin de vous pour l’enrichir !

Si vous possédez un site utilisant un Framework web, nous vous invitons donc à faire tourner le script que vous trouverez sur la page Github de PHP Malware Finder et à renvoyer vos résultats, afin que les hashs de nouveaux fichiers légitime soient ajoutés dans la whitelist.

Bien entendu, des correctifs de PMF sont également les bienvenus, ainsi que des exemples de fichiers encore non reconnus par l’outil.

Nous le rappelons, PHP Malware Finder est open source, et vos contributions de tout type et/ou retours permettront une amélioration continue de l’outil pour un web plus sûr, pour tous !

UPDATE : découvrez les dernières évolutions de PHP Malware Finder

Source technique : Julien Voisin

Lucie Saunois
Lucie Saunois
Passionnée d'informatique, en particulier de sécurité, depuis qu'elle a rejoint l'OT Group en 2015, Lucie se spécialise dans la vulgarisation technique pour permettre à tous d'appréhender ces sujets parfois complexes.