Vous utilisez un navigateur obsolète !

L'affichage de la page peut être incorrect.

  • Ajouter aux favoris
    Ajouter aux favoris

Toute vérité n’est pas bonne à dire

Lu par: 30449 Commentaires: 3 Cote de popularité: 9

mardi 25 juillet 2017

Comme nous avons déjà pu l’expliquer dans de précédents articles, les données compromises par un ransomware à chiffrement peuvent parfois être restaurées grâce aux erreurs commises par les créateurs du virus. Pour des raisons évidentes, nous ne rentrerons pas dans les détails puisqu’une description précise de ces erreurs constituerait un formidable cadeau à faire aux pirates et les aiderait sans doute à créer une version plus avancée de leurs malwares.

Hélas, certains n’adhèrent pas à cette approche et de précieuses remarques pullulent sur le web. Ainsi:

Il est apparu que les auteurs de NotPetya (a.k.a. Petya, Petya.A, ExPetr) ont commis une erreur dans leur implémentation de la routine Salsa20, en conséquence de quoi la moitié des octets des clés de chiffrement n’ont pas été utilisés. Malheureusement, la réduction de la longueur de la clé de 256 à 128 octets ne nous donne pas beaucoup d’espoir de pouvoir la craquer dans un futur proche.

Cependant, certaines fonctionnalités spécifiques à Salsa20 permettent de restaurer les données même sans connaître la clé actuelle.

https://habrahabr.ru/company/pt/blog/332618/

Ce post est très intéressant. Le texte contient une quantité de termes compliqués, donc nous ne le citerons pas de manière exhaustive. Prenons en considération quelques points seulement.

Ici, l’auteur examine la façon dont les auteurs du malware utilisent un type de données qui semble insuffisant pour créer une longueur d’index appropriée:

Examinons le prototype de la fonction s20_crypt32(). Cette fonction est utilisée pour chiffrer les données.
enum s20_status_t s20_crypt32(uint8_t *key,
                            uint8_t nonce[static 8],
                            uint32_t si,
                            uint8_t *buf,
                            uint32_t buflen)

L’argument SI (apparemment, Stream Index) est utilisé pour définir le décalage d’octets du flux. Nous voyons que ce type d’argument autorise seulement le 32-bits plutôt que le 64. Cette valeur est passée dans le keystream après avoir été divisée par 64 ; donc, il ne reste pas plus de 26 bits.


// Set the second-to-highest 4 bytes of n to the block number
    s20_rev_littleendian(n+8, si / 64);

Les erreurs dans l’implémentation de la routine permettent de chiffrer différents morceaux de données en utilisant les mêmes paramètres:

Seuls 16 bits sur les 26 dans le numéro de bloc (cf. block number) (avec le décalage 0x20-0x21) affectera le keystream. Par conséquent, la période gamma maximum sera de 2^16=65536 blocs de 64 octets ou 4 mégaoctets.

C’est une erreur logique banale.

Lorsque la fonction s20_crypt32() est appelée, le nombre d’un secteur 512-octets est transmis au lieu du décalage d’octets. Voici comment les paramètres de chiffrement peuvent être restaurés:

Le ransomware chiffre les deux premiers secteurs contenant les données de chaque fichier dont la taille dépasse 1024 octets. En règle générale, un cluster occupe plus de deux secteurs (par ex., 8). Dans ce cas, nous pouvons retrouver le début d’un fichier qui a été compromis, passer les 1024 octets et obtenir les 3 kilooctets ultérieurs qui n’ont pas été chiffrés. Et, si nous obtenons un fichier qui possède les mêmes 3 kilooctets au décalage d’octets 1024, il est presque sûr que le début du fichier correspondra également. Et nous obtiendrons 1024 octets gamma supplémentaires.

Malheureusement, les erreurs ont été commises dans le module de chiffrement utilisé si le ransomware pouvait obtenir les privilèges administrateur et chiffrer la totalité du disque dur en utilisant la routine Salsa20. Si le malware échouait à obtenir ces permissions, il utilisait le chiffrement AES pour chiffrer uniquement les données utilisateur. Et pour restaurer les données compromises en utilisant cette routine, il fallait alors une clé RSA privée.

Le projet Lumières sur la sécurité recommande

  1. Parfois, mettre en lumière les erreurs des attaquants les sert. Bien évidemment, donner des recommandations gratuitement n’est pas passible de prison, mais parfois cela sert le dessein des criminels et peut faire de l’auteur de ces remarques leur complice.
  2. Si des données sont chiffrées, cela ne signifie pas toujours que l’on est “game over”.
  3. Si vos fichiers ont été compromise et qu’il n’existe pas encore d’utilitaire de déchiffrement, ne les supprimez pas. Une routine de déchiffrement peut être trouvée un jour.

[Twitter]

Nous apprécions vos commentaires

Pour laisser un commentaire, vous devez accéder au site via votre compte sur le site de Doctor Web. Si vous n'avez pas de compte, vous pouvez le créer.

Commentaires des utilisateurs