Pour moi, crypter un fichier revient à gérer une très longue chaîne, à l'introduire dans la fonction de hachage ou de cryptage pour obtenir une autre longue chaîne cryptée (ou un hachage dans le cas du hachage).
Ce processus prend un certain temps. Je le sais car j'utilise HashTab pour vérifier l'intégrité des fichiers que je télécharge sur Internet.
Comment un ransomware comme CTB-Locker ou Crypt0l0cker peut-il chiffrer instantanément les fichiers de ses victimes?
Récemment, un de mes amis a été victime d'un de ces ransomwares et il n'a PAS pu ouvrir ses fichiers/photos d'Ubuntu sur sa machine à double OS même lorsque l'infection s'est produite avec MSWindows. Cela suggère que le cryptage ne se produit pas à la volée lorsque vous ouvrez un fichier.
J'étais à une conférence OWASP où le conférencier a décompilé et analysé un exécutable de ransomware (pour Windows) devant nous. Il existe de nombreuses versions de ransomware, donc je ne peux pas parler du ransomware en général, mais je peux certainement parler de celui que j'ai vu. L'idée générale est que l'exécutable du ransomware contient la clé publique de chiffrement nécessaire pour chiffrer les fichiers à l'aide d'un algorithme asymétrique, par exemple RSA. La clé privée/de déchiffrement correspondante reste avec les pirates afin qu'aucune quantité de rétro-ingénierie de l'exécutable ne puisse vous donner la clé de déchiffrement.
Pour chiffrer réellement un fichier, il fait quelque chose de similaire à:
Ignorez les 512 premiers octets du fichier afin que l'en-tête du fichier reste intact.
Chiffrez les 1 Mo suivants à l'aide de la clé de chiffrement intégrée.
Si le fichier est plus long que cela, laissez le reste non chiffré.
Il ne s'agit pas de masquer ou de protéger complètement les données, il suffit de les rendre non analysables.
En ce qui concerne le temps, faire 1 Mo de RSA est toujours lent et prendra encore plusieurs heures pour explorer votre disque dur.
Je soupçonne que ce spécimen que j'ai vu n'était qu'une imitation paresseuse du rançongiciel RSA-AES complet dont Steffen Ullrich a parlé dans sa réponse - qui est celui dont vous devriez vraiment vous inquiéter.
Le premier cryptage symétrique est assez rapide. AES dans certains modes est facilement de 200 Mo/s. Votre affirmation selon laquelle le hachage est lent est un hareng rouge. Le hachage est incroyablement rapide. Il est si rapide sur les processeurs modernes qui affaiblit la sécurité effective des hachages de mot de passe. Cela a conduit au développement de fonctions de dérivation de clés à plusieurs tours pour "ralentir" le hachage.
La vitesse "lente" que vous voyez est principalement l'effet de votre disque dur lent. Le hachage en mémoire est quelque chose de l'ordre de 500 Mo/s à 2 Go/s +.
Pourtant, le malware n'a pas besoin d'être "instantané". Le système de l'utilisateur est infecté en silence. Des copies des fichiers peuvent être cryptées sans alerter l'utilisateur, puis une fois prêts, les originaux supprimés et l'utilisateur averti "instantanément". L'ensemble du processus, de l'infection à ce point, peut avoir pris beaucoup de temps, même s'il semble se produire instantanément.
Le hachage (comme SHA-1, etc.) et le chiffrement symétrique (comme AES) sont relativement bon marché, le chiffrement asymétrique (comme RSA) est beaucoup plus cher. C'est pourquoi on n'utilise généralement pas RSA pour crypter un fichier volumineux, mais utilise à la place une cryptographie symétrique avec une clé aléatoire et ne crypte cette clé courte qu'avec RSA.
Je le sais car j'utilise HashTab pour vérifier l'intégrité des fichiers que je télécharge sur Internet.
Cela ressemble à une méthode très scientifique pour moi. Sauf si vous avez un processeur ancien et lent, la vitesse de hachage (et donc la vérification des données) est généralement plus rapide que vous ne pouvez lire les données à partir du disque (au cas où cela ne serait pas évident: bien sûr, vous devez toujours lire les données pour les hacher). , mais cela passera plus de temps à attendre les données du disque qu'à calculer le hachage).
Comment un ransomware comme CTB-Locker ou Crypt0l0cker peut-il chiffrer instantanément les fichiers de ses victimes?
Les systèmes d'exploitation modernes prennent en charge les systèmes de fichiers cryptés et avec les processeurs d'aujourd'hui (qui incluent souvent l'accélération matérielle pour AES), vous ne remarquerez pas beaucoup de différence de vitesse si vous utilisez un système de fichiers crypté ou non, car le goulot d'étranglement n'est pas le cryptage mais la vitesse de le disque (dans les benchmarks, vous voir une baisse de performance mais ceux-ci ne reflètent pas l'utilisation du monde réel pour la plupart des gens). Ainsi, ce n'est pas une raison pour laquelle le ransomware ne pouvait pas chiffrer les données trop rapidement. Bien sûr, ils peuvent le rendre plus rapide en se connectant au système afin que les fichiers que vous souhaitez ouvrir soient cryptés en premier et le reste en arrière-plan.
L'erreur que vous faites est de penser qu'elle est instantanée. Au contraire, le malware se trouve là, chiffrant en arrière-plan et déchiffrant tout ce que l'utilisateur demande. Il est silencieux pendant cette phase, il ne demande la rançon qu'après que tout a été crypté.
Selon wikipedia:
Lors de sa première exécution, la charge utile s'installe dans le dossier de profil utilisateur et ajoute une clé au registre qui la fait fonctionner au démarrage. Il tente ensuite de contacter l'un des serveurs de commande et de contrôle désignés; une fois connecté, le serveur génère une paire de clés RSA de 2048 bits et renvoie la clé publique à l'ordinateur infecté.
Ce n'est pas lent comme vous le pensez, si votre ordinateur est rapide et ne fait pas une utilisation intensive du processeur au moment de l'infection, vous pourriez perdre des gigaoctets de données en moins de 15 minutes. Les PC modernes peuvent calculer le hachage et effectuer des opérations de chiffrement plus rapidement que les disques durs/SSD ne peuvent fonctionner. Je dirais donc que la limite moderne de vitesse pour la vitesse de hachage/chiffrement est davantage basée sur le disque lui-même. Je peux générer un hachage SHA-512 pour un fichier de 2,5 Go en 2 minutes.
Et le malware peut simplement attendre qu'il crypte tout ce qu'il veut avant d'afficher un message à l'utilisateur.
Le processus de base consiste à lire le contenu de votre fichier et à le réécrire sur le disque en utilisant une forme de cryptage asymétrique pour vous assurer que vous devez payer pour récupérer vos données. Certains ne crypteront que de petites sections des données pour améliorer la vitesse, d'autres réécriront l'intégralité de votre disque dur s'ils le peuvent. Comme le notent certaines des autres réponses, certains logiciels malveillants crypteront simplement une partie de votre fichier sur place pour accélérer le processus, car pour de nombreux formats de fichier, même un léger changement dans le fichier rend le fichier entier inutilisable.
Comment un ransomware comme CTB-Locker ou Crypt0l0cker peut-il chiffrer instantanément les fichiers de ses victimes?
Ils ne peuvent pas. Au lieu de cela, ils dissimulent leur activité en faisant apparaître les fichiers jusqu'à ce que le processus soit terminé. En interceptant les appels du système de fichiers, vous pouvez modifier la vue de l'utilisateur sur ce qui est réellement présent sur le disque, en faisant apparaître que tout est toujours OK jusqu'à ce que vous ayez terminé, puis lorsque vous supprimez les interceptions, l'utilisateur peut voir le véritable état du lecteur . Le danger en faisant cela est que vous devez avoir les deux parties de votre paire de clés asymétriques afin de décrypter les fichiers à la volée lorsque l'utilisateur en ouvre un, ce qui signifie en principe que quelque chose pourrait trouver la clé privée que vous souhaitez vendre l'utilisateur plus tard.
D'autres logiciels malveillants comme CryptoWall (avec lesquels j'ai eu plus d'expérience récemment que je ne m'en souviens) ne prennent pas la peine de se cacher, ils se contentent de crypter tout aussi rapidement que possible ... et c'est à peu près limité par le IO vitesse du lecteur sur lequel il crypte.
En regardant quelques points de référence pour AES - qui est l'algorithme de chiffrement que CryptoWall prétend utiliser - un processeur moderne modeste peut chiffrer les données à des débits bien supérieurs à 100 Mo/s, ce qui signifie que l'opération est susceptible d'être liée aux E/S sur quoi que ce soit. autre qu'un SSD. Ajoutez plusieurs threads s'exécutant sur des cœurs de processeur distincts ciblant différents dossiers et/ou lecteurs et le processus peut se terminer assez rapidement.
J'ai récemment dû nettoyer un serveur de fichiers qui avait été traité par CryptoWall fonctionnant sur l'un des PC des utilisateurs. Au moment où les utilisateurs avaient remarqué que quelque chose n'allait pas, le malware fonctionnait depuis environ 1,75 heures. Nous avons retiré la chose du réseau à un peu moins de 2 heures et pendant le nettoyage, j'ai trouvé environ 230 Go de fichiers cryptés. Cela représente une moyenne de chiffrement d'environ 30 Mo/s, ce qui est certainement réalisable dans l'environnement. Il a fallu environ 3 fois plus de temps pour restaurer les fichiers de la sauvegarde précédente. Bien que j'aie quelques idées sur la façon d'accélérer cela la prochaine fois, la plupart des clients ont leurs sauvegardes sur des NAS à bas prix ou sur des lecteurs USB (shudder).
Malheureusement, nous ne verrons probablement pas la fin de ces choses de si tôt. Une solution de sauvegarde compétente et correctement configurée est votre meilleur ami lorsque l'une de ces choses se produit. Cela ne fait pas de mal d'avoir un programmeur à portée de main pour écrire la restauration.
Du point de vue de l'ingénierie sociale, l'auteur du logiciel malveillant aurait pu écrire un programme qui a remplacé le contenu des données par des bits aléatoires. La victime n'aurait aucun moyen de vérifier si le contenu était crypté ou simplement mis à la poubelle. S'ils décident de payer la rançon et que la "clé" ne fonctionne pas, ils ne peuvent pas faire grand-chose, les gars sont des criminels après tout.
Certaines rançons, telles que TorrentLocker, ne chiffrent que le premier Mo (et ajoutent une fin). Cela suffit pour que la plupart des formats ne soient pas reconnus, mais en même temps, il est beaucoup plus rapide de chiffrer un grand nombre de fichiers (rappelez-vous également que seuls certains types de fichiers sont chiffrés, comme les documents, les photos…).
Cela a été rapporté par Nixu dans blog SANS , et aussi sur ( livre blanc ESET ), bien qu'ils aient signalé 2 Mo.
Et, comme Loren l'a mentionné, le ransomware ne montre la grande bannière demandant la rançon qu'après que tout a été crypté (ce n'est pas bon que vous vous rendiez compte que seuls quelques fichiers ont été "conservés"), bien que certains ransomwares se placent pendant qu'ils utilisent un ransomware fichier exigeant sur chaque dossier/pour chaque fichier crypté.