Introduction
Les Ransomware, ces malwares parfois très sophistiqués qui font le tour de votre système à la recherche de fichiers à chiffrer (encrypter n’existe pas, voila c’est sorti…) et vous extorquer ensuite de l’argent (souvent en Bitcoin) en vous promettant de vous fournir la clé de déchiffrement ne cessent de croître et d’attaquer de plus en plus de systèmes.
Ne vous fiez pas aux apparences, il ne s’attaquent pas qu’aux photos de papy Francis ou des grosses entreprise sous Windows comme le montre les media avec le grand méchant WannaCry, Linux n’est pas à l’abri non plus avec des ransomware comme Lilu. Dans ce sens quoi de plus logique que de cibler des systèmes qui hébergent un grand nombre de fichiers utilisateur comme Nextcloud.
Quel que soit le montant demandé je déconseille de payer la rançon, déjà car si vous payer ça conforte le créateur dans le fait que ça fonctionne, que c’est lucratif et donc qu’il devrait continuer cette pratique. Mais aussi parce que paiement de la rançon ne donne généralement pas de résultats positifs et qu’au bout d’un moment des outils de décryptage sont publiés gratuitement par les éditeurs antivirus.
NextCry
Tout ça pour dire qu’un nouveau ransomware a été découvert, baptisé NextCry en raison de l’extension ajoutée aux fichiers qu’il chiffre et qu’il n’est actuellement pas détecté par les moteurs antivirus, un check sur VirusTotal ne servant donc à rien.
BleepingComputer a d’ailleurs découvert que NextCry était un script Python compilé dans un binaire ELF Linux à l’aide de pyInstaller.
Attaque Ciblée
Les Nextcloud touchés se retrouvent avec un fichier « READ_FOR_DECRYPT » indiquant que leurs données sont chiffrées en AES-256 (avec une clé publique RSA-2048).
Une fois exécuté, le ransomware va chercher à lire config.php à la recherche des répertoires file share et sync data de l’utilisateur Nextcloud. Il supprimera ensuite tout ce qui est utile pour une potentielle restauration comme le folder trashbin, puis chiffrera tous les fichiers.
Conclusion
Le staff NextCloud a déclaré à BleepingComputer qu’après avoir mené une enquête, il est convaincu que l’attaquant exploite une vulnérabilité PHP-FPM pour laquelle il avait émis un avis documenté dans la CVE-2019-11043.
Il est donc vivement conseiller de mettre à jour sont serveur Nextcloud vers PHP 7.3.11, 7.2.24 ou 7.1.33 et de modifier la configuration de Nginx pour corriger cette vulnérabilité.
Il y a deux modifications à faire dans le fichier de configuration de votre Nginx avant de reloader via service nginx reload.
[rule style= »rule-dotted » ]
[notification type= »alert-warning » close= »false » ]Suppression de $request_uri[/notification]
[rule style= »rule-dotted » ]
Avant
location / { rewrite ^ /index.php$request_uri; }
Après
location / { rewrite ^ /index.php; }
[rule style= »rule-dotted » ]
[notification type= »alert-warning » close= »false » ]Ajout de $try_files $fastcgi_script_name =404;[/notification]
[rule style= »rule-dotted » ]
Avant
location ~ ^\/(?:index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+)\.php(?:$|\/) { fastcgi_split_path_info ^(.+?\.php)(\/.*|)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $path_info; fastcgi_param HTTPS on; # Avoid sending the security headers twice fastcgi_param modHeadersAvailable true; # Enable pretty urls fastcgi_param front_controller_active true; fastcgi_pass php-handler; fastcgi_intercept_errors on; fastcgi_request_buffering off; }
Après
location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) { include fastcgi_params; fastcgi_split_path_info ^(.+\.php)(/.*)$; try_files $fastcgi_script_name =404; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param HTTPS on; #Avoid sending the security headers twice fastcgi_param modHeadersAvailable true; fastcgi_param front_controller_active true; fastcgi_pass php-handler; fastcgi_intercept_errors on; fastcgi_request_buffering off; }
[rule style= »rule-dotted » ]