Dans cet article, nous allons vous apprendre à penser comme des chasseurs de menaces et à utiliser l'outil open source YARA avec Censys pour trouver Coinhive, un service de minage de crypto-monnaies. Créé pour aider les analystes en sécurité, YARA (aujourd'hui géré par VirusTotal) permet aux utilisateurs d'écrire des règles/descriptions complexes pour identifier et classer les logiciels malveillants. Yara est suffisamment flexible pour vous permettre d'itérer sur les balises HTML, une technique que nous utiliserons plus loin dans ce billet.
Les attaquants créent souvent de "nouveaux" logiciels malveillants en modifiant simplement quelques caractéristiques mineures de logiciels malveillants connus afin de contourner les protections de sécurité. YARA et les outils similaires vous permettent de regrouper les logiciels malveillants qui suivent des modèles et des comportements similaires afin de trouver des logiciels malveillants similaires et de prévenir les risques de sécurité. Grâce à des outils comme YARA, les analystes des menaces peuvent plus facilement repérer ces "nouveaux" logiciels malveillants et prévenir les attaques.
Attaques réelles utilisant Coinhive
Selon les recherches menées par l'équipe SpiderLab de TrustWave, Coinhive a affecté plus de 200 000 routeurs MikroTik en août 2018. À l'époque, le chercheur en sécurité de SpiderLab, Simon Kenin, a déclaré à BleepingComputer:
"L'attaquant a judicieusement pensé qu'au lieu d'infecter de petits sites avec peu de visiteurs, ou de trouver des moyens sophistiqués d'exécuter des logiciels malveillants sur les ordinateurs des utilisateurs finaux, il irait directement à la source : les routeurs de classe opérateur. Même si cette attaque ne fonctionne que sur les pages qui renvoient des erreurs, il s'agit toujours d'un potentiel de millions de pages quotidiennes pour l'attaquant".
Ces attaques semblent toucher principalement des sites web brésiliens, mais le rapport des SpiderLabs indique que l'auteur de l'attaque est susceptible de diffuser le logiciel malveillant à un public plus large, à l'échelle mondiale, après avoir rencontré un certain succès au Brésil.
Bien que l'impact de cette attaque ait été important, MikroTik a rapidement publié un correctif qui a permis d'éviter que d'autres exploits ne touchent ses clients.
Trouver les infections coïncidentes avec Censys + YARA
Les chasseurs de menaces seront ravis d'apprendre que Censys permet aux utilisateurs de rechercher la source d'une page web à l'aide d'expressions régulières. Récemment, nous avons montré aux utilisateurs comment trouver le logiciel malveillant Magecart à l'aide de Censys. Étant donné que Magecart fonctionne en injectant du Javascript malveillant dans la page racine des sites web, nous pouvons rechercher des sites web infectés en recherchant des liens vers les sources de script connues hébergeant le code malveillant dans le HTML brut. Dans le cas de Magecart, peu de résultats ont été obtenus, de sorte que nous avons pu inspecter manuellement les résultats de la recherche pour nous assurer que le code HTML dans le corps HTTP(S) contenait un lien de script vers l'un des domaines suspects. À l'époque, nous avions indiqué que si les résultats de la recherche renvoyaient un plus grand nombre de domaines, le processus manuel deviendrait lourd, mais qu'il était possible d'automatiser la vérification des faux positifs à l'aide d'un script.
Nous voulons nous concentrer ici sur un processus de chasse aux menaces similaire, mais sur la façon dont vous pouvez utiliser un script pour vous aider à éliminer les faux positifs lorsque les résultats de votre recherche sont trop nombreux pour être examinés manuellement. C'est là que les règles YARA entrent en jeu.
Comme pour Magecart, l'un des moyens utilisés par les attaquants pour diffuser la famille de codes Coinhive consiste à l'injecter dans des sites web légitimes. Les attaquants utilisent Coinhive pour utiliser le navigateur du visiteur du site (alias la victime) afin de commencer à miner de la crypto-monnaie pour eux, en utilisant le processeur de la victime pour faire le gros du travail et en libérant la machine de l'attaquant. Nous avons créé un script utile qui lit la liste des domaines suspects qui utilisent le code Javascript malveillant connu de Coinhive. Il utilise la bibliothèque Python Censys et la bibliothèque Python Yara.
Ce script lit la liste des domaines et construit dynamiquement une recherche Censys pour les mentions des domaines infectés dans le corps du texte des pages web, en utilisant la règle YARA personnalisée pour affiner les résultats de la recherche et éliminer les faux positifs. Ces faux positifs comprennent souvent des mentions des sites dans le texte, mais pas dans une commande indiquant au navigateur d'exécuter ce Javascript.
Voici un exemple de recherche que vous pourriez effectuer, en utilisant des noms de domaine connus pour être utilisés pour diffuser du code Javascript malveillant. Vous pouvez utiliser Censys pour rechercher ces noms de domaine dans tous les détails de l'hôte, voir ci-dessous :
Le script YARA que nous avons inclus dans ce billet réduit ensuite les résultats de la recherche à des occurrences de code de script. Malheureusement, YARA n'est pas en mesure d'analyser nativement le HTML, donc même si nous voulons rechercher les balises de script du site Web pour le code Javascript malveillant lié à Coinhive, nous devons créer une solution de contournement pour analyser les balises. Yara peut itérer sur ses groupes de capture et les rechercher, nous utilisons donc des modèles d'ouverture et de fermeture de balises de script pour extraire uniquement les fragments que nous voulons.
Dans notre script, nous avons écrit des règles pour rechercher tous les noms de domaine situés entre les balises d'ouverture et de fermeture du script, ce qui empêche les correspondances sur les champs en texte clair. Voici une capture d'écran de la sortie pour vous donner une idée de la manière dont nous affinons nos résultats de recherche :
Une certaine créativité de votre part, en tant que chasseur de menaces, vous aidera à trouver la véritable puissance des recherches de logiciels malveillants sur Censys et des outils open-source utiles tels que YARA peuvent vous aider à automatiser une partie de l'analyse et à filtrer le bruit.
Que faire si vous trouvez Coinhive sur l'un de vos domaines ?
Voici quelques conseils pour contrecarrer Coinhive si vous le trouvez dans vos actifs :
- Modifier et appliquer des mots de passe robustes pour les utilisateurs et les comptes de service qui ont accès à la modification ou à la mise à jour du contenu du site web.
- Mettre à jour le mot de passe de tout site ou service tiers susceptible d'avoir accès à la modification ou à la mise à jour du contenu du site web.
- Renforcer l'authentification à plusieurs facteurs pour les comptes d'administrateurs et les comptes d'utilisateurs qui peuvent modifier le contenu du site web.
- Examiner et mettre à jour les plugins WordPress. S'assurer que les plugins installés sont toujours en cours de développement.
- Si possible, mettez en place un système d'enregistrement des audits sur vos serveurs web et de base de données. Des outils open source comme OSSEC ou OSQuery peuvent alerter les administrateurs en cas de comportement anormal sur le serveur.
Cet exemple particulier n'est qu'un exemple des possibilités infinies qui s'offrent à vous. Nous serions ravis d'entendre ce que vous avez trouvé - partagez avec nous sur Twitter(@censysio). Ensemble, nous pouvons construire une communauté où nous partageons nos découvertes et nos tactiques, d'égal à égal, pour aider à lutter contre les attaquants et les menaces.