Par Bhabesh Raj Rai, Associate Security Analytics Engineer, LogPoint

Les malwares de cryptomining étaient extrêmement populaires en 2019 et sont toujours d’actualité dans le paysage des menaces actuel. Selon la télémétrie IBM X-Force, le cryptomining a atteint des niveaux sans précédent au milieu de 2019.

À l’heure actuelle, le nombre de signalements de mineurs de cryptomonnaie augmente de manière constante au cours du premier semestre 2020 par rapport à 2019. Selon BitDefender Mid Year Threat Landscape Report of 2020, le nombre total de signalements de mineurs de cryptomonnaie au cours du premier semestre 2020 a augmenté de 20,32% par rapport au premier semestre 2019. Cette tendance montre un intérêt continu pour ces derniers. Bien que les mineurs ne soient pas aussi rentables financièrement que les ransomwares, ils sont utilisés comme un moyen de gagner de l’argent sans demander de paiement direct.

Les acteurs malveillants ont exploité les vulnérabilités des applications populaires pour déployer des mineurs de cryptomonnaie. En 2019, des attaquants ont exploité une vulnérabilité majeure d’Oracle WebLogic Server (CVE-2019-2725) pour propager des cryptomineurs. De même, au cours de l’année précédente, des attaquants avaient exploité CVE-2017-10271 dans le produit d’Oracle pour répandre ce type de malware.

Dans ce scénario, les acteurs malveillants ont déployé des cryptomineurs sur le serveur Web en exploitant la vulnérabilité Apache Struts (CVE-2017-5638) et l’auditd concerné a été configuré sur le serveur Web.

Accès initial

Les attaquants ont réalisé cette exécution de code à distance en exploitant la vulnérabilité Apache Struts (CVE-2017-5638) sur le serveur Web (WEB-SRV-01). La vulnérabilité Apache provient d’une analyse incorrecte de l’en-tête HTTP Content-Type non valide de l’attaquant. N’oubliez pas que la vulnérabilité était également à l’origine de la tristement célèbre faille Equifax qui a conduit à l’exposition de données sensibles de plus de 140 millions de consommateurs américains.

Les attaquants ont installé une tâche cron sur le serveur Web pour télécharger la charge virale via curl et l’ont exécutée par la suite, comme indiqué ci-dessous dans notre log Apache Tomcat.

Event 4742 in Microsoft security audit

L’exploitation de la vulnérabilité peut également être détectée par IDS/IPS, comme Zeek et Snort/Suricata.

norm_id=BroIDS label=Notice message="*CVE-2017-5638*"

Event 4742 in Microsoft security audit

norm_id=Snort OR norm_id=SuricataIDS) message="*2017-5638*"

Event 4742 in Microsoft security audit

Persistance

L’installation d’une nouvelle tâche cron par des attaquants peut être détectée côté serveur Web.

norm_id=Unix label=User label=Information label=Change "process"=crontab

Event 4742 in Microsoft security audit

Exécution

La tâche cron planifiée a été déclenchée, la charge virale a ensuite été téléchargée par curl puis exécutée.

norm_id=Unix label=Schedule label=Task label=Execute command="*curl*sh"

Event 4742 in Microsoft security audit

Backdoor

La charge virale configure un accès backdoor SSH au niveau du serveur Web en ajoutant la clé publique de l’attaquant au fichier allowed_keys.

Mais heureusement pour nous, les défenseurs, auditd a été configuré pour surveiller les changements dans le fichier authorised_keys du serveur Web.

norm_id=Unix "process"=audit event_type=SYSCALL command=bash key="ssh_key_monitor"

Event 4742 in Microsoft security audit

Les outils populaires tels que curl et wget qui sont présents dans les systèmes Linux sont facilement utilisés par les attaquants. Nous pouvons détecter leur activité en recherchant leurs chaînes user-agent dans le trafic du pare-feu et du serveur proxy.

device_category IN ["Firewall", "ProxyServer"] user_agent IN ["*wget*", "*curl*"]

Suppression des obstacles

La charge virale a stoppé d’autres processus de mineur de cryptomonnaie (le cas échéant) pour éliminer la concurrence potentielle et obtenir ainsi un monopole sur les ressources du système infecté, en utilisant la commande pkill référençant des mineurs de crytomonnaie communs tels que xmrig, minerd, etc.

norm_id=Unix "process"=audit event_type=PROCTITLE command="pkill*" command IN ["*xmrig*", "*minerd*", "*stratum*"]

Event 4742 in Microsoft security audit

Déploiement du mineur

Le mineur et le fichier de configuration (config.json) dans le dossier temporaire ont été téléchargés via curl. Après le téléchargement, il a été exécuté en silence à l’aide de la commande nohup en arrière-plan.

Les attaquants ont nommé leur mineur kworkerds pour le faire passer pour un processus thread de travail au niveau du noyau légitime.

norm_id=Unix "process"=audit event_type=PROCTITLE command IN ["*chmod +x*, "*curl*ssl*", "*nohup*/tmp/*"]

Event 4742 in Microsoft security audit
Event 4742 in Microsoft security audit
Event 4742 in Microsoft security audit

Évasion de la défense

Les attaquants ne se sont pas contentés de déployer le mineur. Ils ont utilisé une version modifiée d’un projet libprocesshider open source compilé en tant qu’objet partagé.

Les attaquants ont modifié le fichier de configuration /etc/ld.preload.so afin d’empêcher des processus comme l’utilitaire ps d’observer les statistiques de kworkerds. La configuration ld.so.preload est un fichier important et a été surveillé par auditd à la recherche d’éventuelles tentatives d’altération.

norm_id=Unix "process"=audit event_type=SYSCALL command=bash key="systemwide_preloads"

Event 4742 in Microsoft security audit

Mouvement latéral

La charge virale est classée en fonction de la présence d’une éventuelle configuration de clé publique SSH et d’une liste d’hôtes locaux connus sur le serveur Web pour se déplacer latéralement. Lors de la détection, il tente de se connecter aux hôtes locaux découverts et de reproduire le processus d’infection.

norm_id=Unix "process"=audit event_type=PROCTITLE command="*ssh*curl*"

Event 4742 in Microsoft security audit

Il est intéressant de noter que ces appels SSH s’accompagnent d’indicateurs étranges tels que StrictHostKeyChecking et BatchMode qui permettent à SSH d’être complètement scriptable. Ainsi, ce type d’appels SSH suspects peut s’avérer être une alerte de haute-fidélité.

norm_id=Unix "process"=audit event_type=PROCTITLE command="*ssh*-oStrictHostKeyChecking*-oBatchMode*"

Comme le montre le paysage actuel des menaces, les cryptomineurs continueront d’être une menace. Par conséquent, les administrateurs système doivent rapidement corriger leurs applications pour empêcher les acteurs malveillants utilisant les mineurs de cryptomonnaie de les cibler massivement. Enfin, nous vous recommandons de configurer auditd dans un système Unix ou Linux afin de détecter toute activité malveillante.