Ludovic Frank - Développeur freelance

Comment se protéger des ransomwares ?

ionicons-v5-k Ludovic Frank 23 nov. 2020
Logo vague
1399 lectures Niveau :

L'idée de cet article m'est venue en regardant la page d'accueil de Zataz, en effet, les attaques par ransomware, en ces temps de crise, ne semble plus s'arrêter.
Cet article a pour but de vulgariser ce qu'est un ransomware, comment ils fonctionnent ? Et comment s’en protéger ?
Je ne vais pas tout couvrir, car des ransomware il y en a des plus ou moins complexes.
Par exemple, le ransomware "Ryuk" est du genre très violent...

Le chiffrement asymétrique

Avant de parler du ransomware en lui-même il est nécessaire de parler de la base de son fonctionnement, en informatique il y a ce que l'on appelle le chiffrement asymétrique (il y a d'ailleurs un lien en anglais qui en parle dans la section "veille technologique"), pour faire simple le chiffrement asymétrique repose sur deux clefs (des fichiers contenant du texte étant une clef numérique), il y a la clef publique et la clef privée, une clef publique est liée à sa clef privée et inversement.
la liaison entre les deux est un peu comme une serrure physique et une clef physique, une clef fonctionne dans une serrure et une serrure n'accepte qu'une clef (de base, bien sûr il y a des serrures physiques et clefs physiques plus complexes)

La clef privée

Comme son nom l'indique, cette clef est "privée", cela veut dire qu'en temps normal elle ne doit pas être divulguée. Celle-ci permet de déchiffrer les données qui ont été chiffrées par la clef publique correspondante, sans cette clef privée, impossibles de récupérer des données chiffrées par une clef publique correspondante.
La clef privée permet d'autres choses, par exemple, signer des données ou générer la clef publique correspondante (si celle-ci est perdue par exemple), mais dans le cas d'un ransomware, cette partie nous intéresse moins.

La clef publique

Celle-là peut être divulguée, elle permet de chiffrer des données qui seront donc déchiffrables uniquement par le possesseur de la clef privée, elle permet également de vérifier que des données ont été signées par sa clef privée correspondante... comme pour la clef privée cette partie nous intéresse moins dans le cas d'un ransomware.

Le chiffrement asymétrique a-t-il été créé pour les ransomwares ?

Heureusement, non. Le chiffrement asymétrique est utilisé partout, même en venant sur cette page vous l'avez utilisé sans vous en rendre compte, regardez la barre d'adresse, vous voyez le petit cadenas ? Ce cadenas veut dire que mon site fonctionne en HTTPS, vous êtes connecté de manière sécurisée à mon serveur. Quand votre navigateur se connecte a mon serveur pour récupérer la page, mon serveur lui envoie sa clef publique (mon certificat SSL contenant le nom de domaine developpeur-freelance.io), une fois que votre navigateur dispose de ma clef publique il peut commencer le "handshake" (« serrage de main »), votre navigateur et mon serveur discutent quelques millisecondes avec le chiffrement asymétrique pour décider d'une clef cette fois symétrique a utilisé pour le reste de la communication (le chiffrement asymétrique est plus lent que le symétrique). 
Une fois qu'ils sont d'accord, ils utilisent une clef qu'ils connaissent tous les deux pour continuer la communication pendant un temps défini (ce paramètre c'est moi qui le choisis dans la configuration de mon serveur).

C'est un exemple d'utilisation du chiffrement asymétrique, mais il est vraiment partout, quand on se connecte par exemple en "SSH" à un serveur à distance, dans Windows (et d'autres systèmes d'exploitation) quand vous lancez un logiciel il est signé avec une clef privée et Windows utilise la clef publique pour vérifier la signature et l'intégrité des données (pour éviter les malwares) ... etc. partout ! :p

Le vif du ransomware

Maintenant que vous avez compris brièvement ce qu'est le chiffrement asymétrique, vous devriez comprendre aisément le fonctionnement de base d'un ransomware.

Le ransomware va donc demander (à un serveur distant par exemple), la génération d'un jeu de clef privée et publique, le serveur distant ne va lui communiquer que la clef publique pour qu'il commence à chiffrer le contenu auquel il (le ransomware) a accès, bien sûr le serveur distant ne va PAS lui donner accès à la clef privée associée... et c'est tout le principe du logiciel malveillant. Une fois qu'il a chiffré tout ce qu'il a pu (que ce soit une machine locale ou tout le réseau de l'entreprise), il va afficher un message demandant de payer de très grosses sommes pour récupérer les données. Le temps de chiffrement est plus ou moins rapide, les ransomware les plus sophistiqués sont capables de chiffrer une machine en ... 5 minutes, oui, c'est totalement bluffant.

Du coup, avez-vous compris l'idée ? Quand une victime paie pour récupérer ses données et bien en fait ... elle paie tout simplement pour récupérer, la clef privée associée à la clef publique utilisée lors du chiffrement qui permet de déchiffrer les données.

Comment attrape-t-on un ransomware ?

Ici, je vais uniquement couvrir les cas classiques, car, comme expliqué plus haut, il y a des méthodes bien plus sophistiquées et il y en a de nouvelles tous les jours... par exemple en exploitant des failles de sécurités des systèmes d'exploitation même si Microsoft fait un excellent travail sur ce sujet (il faut dire ce qui est), certains systèmes d'information ne sont pas à jour, donc vulnérable a certaines failles qui sont exploitées par des logiciels sophistiqués.

Les classiques sont souvent les mêmes :

  • La pièce jointe dans un email bizarre : N'ouvrez aucune pièce jointe douteuse, même si vous connaissez l'émetteur il n’est pas impossible que celui-ci se soit fait pirater et donc vous envoie un fichier malveillant sans le vouloir.
  • La clef USB trouvée par terre, il ne faut jamais insérer une clef USB dont on ne connaît pas l'origine dans sa machine. Il existe des clefs USB qui émulent un clavier ce qui a pour but d'exécuter des commandes sur la machine très rapidement, il y en a même qui "grille" purement et simplement la machine dans laquelle elle est insérée.
  • Quand on navigue sur internet, il ne faut pas cliquer sur tout et n'importe quoi, ne pas télécharger n'importe quoi ... etc., rester vigilant.

Comment s'en protéger ?

Il n’y a pas de solution miracle, la seule chose est la prévention, une fois l'attaque en cours ça peut être très compliqué, c'est d'ailleurs pour ça que plus d'un quart des victimes paient la rançon.

Garder un système d’information à jour
Je ne parle pas des mises à niveau de fonctionnalité de Microsoft qu’il vaut mieux différer dans un milieu d'entreprise, mais je parle des correctifs de sécurité, le fameux "Patch Thuesday" par exemple. Bloquer les mises à jour de sécurité n'est jamais une bonne idée.

Former les collaborateurs
Il est important de former ses collaborateurs à la sécurité informatique, un collaborateur qui clique sans faire attention sur la mauvaise pièce jointe ou insère une clef USB le fera, car "il ne sait pas", puis, par la suite il sera dans une situation délicate, car il « s'en voudra » d'avoir fait ça. Oui, mais il ne savait pas. Ce n'est pas son métier et il n'a pas reçu la formation nécessaire.

Avoir une stratégie de sauvegarde efficace
Selon moi, c’est le point clef, la sauvegarde, souvent négligée, est un point extrêmement important, mais attention, il faut le faire correctement.
Je m'explique si par exemple votre sauvegarde se situe sur le même réseau en libre accès que vos fichiers d'origine. Eh bien, cette sauvegarde ne sert ABSOLUMENT à rien... En effet, un ransomware chiffrera ou supprimera cette sauvegarde... et donc on revient au point de départ.

Plusieurs idées pour une sauvegarde efficace : 

  • Les sauvegardes doivent être incrémentielles, il est nécessaire de pouvoir remonter dans l'historique (par exemple remonter un jour avant l'attaque ?), même si le système de sauvegarde sauvegarde bêtement les fichiers une fois chiffrés il sera possible de revenir dans le passé, avant que ceux-ci soient chiffrés.
  • Sauvegarde hors ligne : Sauvegarder ponctuellement les données et les stocker sur une machine (ou un disque dur), non connectée au réseau ou sur un réseau distinct.
  • "Pousser" les sauvegardes sur une machine distante tout en empêchant le "listing" ou la suppression des données distante et permettre d'uniquement envoyer les nouvelles données de sauvegarde sans lui permettre de supprimer les sauvegardes existantes.

Un exemple concret de sauvegarde efficace :
Allez, je vais vous expliquez comment un de mes systèmes de sauvegarde fonctionne.
Chaque nuit le contenu de mes serveurs est sauvegardé de manière chiffrée et incrémentielle sur des machines prévues à cet effet, chaque serveur a son compte pour limiter la casse en cas de problème. Du coup comme expliqué plus haut, le problème c'est que si un serveur est compromis, le logiciel malveillant pourra accéder aux sauvegardes distantes, alors comment on règle ça ?

Les machines prévues pour la sauvegarde ont un "système de fichiers" prévu pour ça, ce système de fichier c'est « BTRFS », avec « BTRFS » il est possible de faire des "snapshots » et d'historiser les données, du coup si jamais un serveur est compromis et que l'attaquant supprime les "sauvegardes distantes" il ne peut pas supprimer les "snapshots »… il pense avoir tout supprimé, mais en fait, NON.
Mais, ça ne suffit pas, si le serveur de sauvegarde est lui-même compromis, si l'attaquant est quelqu'un de très pointu il récupérera l'adresse IP (non diffusé publiquement) du serveur de sauvegarde et tentera de l'attaquer lui directement... Du coup, comment régler ça ?

Chaque jour, une autre machine qui n'est pas exposée sur internet se connecte aux machines de sauvegarde et fait une copie des données que les machines de sauvegarde contiennent et l'envoie sur un autre site (« dans le Cloud"). Cette machine n'a aucun port ouvert, aucune connexion entrante autorisée et vu que c'est elle qui se connecte aux machines de sauvegarde (et non les machines de sauvegarde qui se connectent à elle), si les serveurs de sauvegarde sont complètement compromis, l'attaquant ne pourra PAS accéder à cette machine, puisqu'à aucun moment les machines de sauvegarde ne s'y connectent (et donc aucune donnée d'authentification ne se trouvent les machines de sauvegarde). La technologie utilisée pour la sauvegarde sur un autre site me donne un historique de 90 jours sur chaque donnée sauvegardée (en plus de l'hystérisation précédente).

Enfin de temps en temps (une fois par mois), je copie les donnes sauvegardées sur un disque externe qui est toujours hors ligne.

Conclusion

Voilà, cet article touche à sa fin, j'ai essayé de vulgariser le plus possible un sujet plutôt pointu, certains sujets n'ont pas été abordés volontairement pour rester accessibles et compréhensibles par le plus grand nombre.