Le hachage est un concept fondamental en cryptographie et en sécurité de l'information. Notre guide explore les principes du hachage, explique le fonctionnement des fonctions de hachage cryptographiques et leur importance dans la protection des données sensibles.
Découvrez les différents types de fonctions de hachage, leurs propriétés et leurs applications courantes telles que le stockage des mots de passe, la vérification de l'intégrité des données et les signatures numériques. Découvrez comment choisir la fonction de hachage adaptée à votre cas d'utilisation spécifique et mettre en œuvre des pratiques de hachage sécurisées dans votre organisation.
Qu'est-ce qu'un algorithme de hachage ?
Les hachages sont le résultat d'un algorithme de hachage tel que MD5 (Message Digest 5) ou SHA (Secure Hash Algorithm). Ces algorithmes visent essentiellement à produire une chaîne unique de longueur fixe, appelée valeur de hachage ou " condensé de message " – pour toute donnée ou " message " donné. Comme chaque fichier sur un ordinateur n'est, en fin de compte, qu'une donnée pouvant être représentée sous forme binaire, un algorithme de hachage peut prendre cette donnée, effectuer un calcul complexe et produire une chaîne de longueur fixe comme résultat du calcul. Le résultat est la valeur de hachage ou le résumé du message du fichier.
Pour calculer le hachage d'un fichier sous Windows 10, utilisez la cmdlet intégrée à PowerShell Get-FileHash et indiquez-lui le chemin d'accès au fichier dont vous souhaitez obtenir la valeur de hachage. Par défaut, l'algorithme SHA-2 256 sera utilisé :
Vous pouvez passer à un autre algorithme en le spécifiant après le chemin d'accès au fichier à l'aide du commutateur -Algorithm. Le fait de transmettre le résultat à Format-List permet également d'obtenir un résultat plus lisible :
Pour les utilisateurs Mac et Linux, les outils de ligne de commande shasum et md5 remplissent la même fonction. Comme nous le verrons dans un instant, que vous utilisiez Windows, Mac ou Linux, la valeur de hachage sera identique pour un fichier et un algorithme de hachage donnés.
Comment les hachages établissent l'identité
Les hachages ne peuvent pas être inversés, donc le simple fait de connaître le résultat du hachage d'un fichierà partir d'un algorithme de hachage ne vous permet pas de reconstruire le contenu du fichier. Cependant, cela vous permet de déterminer si deux fichiers sont identiques ou non sans rien savoir de leur contenu.
C'est pourquoi l'idée que le résultat est unique est fondamentale pour l'ensemble du concept des hachages. Si deux fichiers différents pouvaient produire le même condensé, nous aurions une " collision " et nous ne pourrions pas utiliser le hachage comme identifiant fiable pour ce fichier.
La possibilité de produire une collision est faible, mais pas inexistante, et c'est la raison pour laquelle des algorithmes plus sécurisés comme SHA-2 ont remplacé SHA-1 et MD5. Par exemple, le contenu des deux fichiers suivants, ship.jpg et plane.jpg sont clairement différents, comme le montre un simple examen visuel, et devraient donc produire des résumés de messages différents.
Cependant, lorsque nous calculons la valeur avec MD5, nous obtenons une collision, indiquant à tort que les fichiers sont identiques. Ici, la sortie provient de la ligne de commande sur macOS à l'aide de Terminal.app, mais vous pouvez voir que la valeur de hachage ship.jpg est la même que celle obtenue précédemment avec PowerShell :
Calculons la valeur de hachage avec SHA-2 256. Nous obtenons désormais un résultat plus précis indiquant que les fichiers sont bien différents, comme prévu :
À quoi sert le hachage ?
Une fois qu'un identifiant unique a été attribué à un fichier, nous pouvons utiliser cette information de différentes manières. Certaines solutions antivirus traditionnelles s'appuient entièrement sur les valeurs de hachage pour déterminer si un fichier est malveillant ou non, sans examiner son contenu ou son comportement. Pour ce faire, elles conservent une base de données interne database des valeurs de hachage appartenant à des logiciels malveillants connus. Lors de l'analyse d'un système, le moteur antivirus calcule une valeur de hachage pour chaque fichier exécutable sur la machine de l'utilisateur et vérifie s'il existe une correspondance dans sa base de données.
Cela devait sembler une solution élégante aux débuts de la cybersécurité, mais avec le recul, il n'est pas difficile de voir les failles de cette approche qui repose sur les valeurs de hachage.
Tout d'abord, avec l'explosion du nombre d'échantillons de logiciels malveillants, la mise à jour d'une base de données de signatures est devenue une tâche tout simplement impossible à réaliser. On estime que plus de 500 000 échantillons de logiciels malveillants uniques apparaissent chaque jour. Cela s'explique très probablement en grande partie par le fait que les auteurs de logiciels malveillants ont compris qu'ils pouvaient facilement tromper les moteurs antivirus qui s'appuient sur des hachages pour reconnaître un échantillon. Il suffit à l'attaquant d'ajouter un octet supplémentaire à la fin d'un fichier pour obtenir un hachage différent.
Ce processus est si simple que les auteurs de logiciels malveillants peuvent l'automatiser de sorte que la même URL délivre le même logiciel malveillant aux victimes avec un hachage différent toutes les quelques secondes.
Deuxièmement, la faille des antivirus traditionnels a toujours été que la détection nécessite une connaissance préalable de la menace. Ainsi, une solution anti-malware qui s'appuie sur une base de données de valeurs de hachage connues est toujours en retard d'un pas sur la prochaine attaque.
La réponse à cela est bien sûr une solution de sécurité qui exploite l'IA comportementale et qui adopte une approche de défense en profondeur.
Cependant, cela ne signifie pas que les valeurs de hachage n'ont aucune valeur ! Au contraire, la possibilité d'identifier un fichier de manière unique présente encore des avantages importants. Vous verrez des valeurs de hachage fournies dans les signatures numériques et les certificats dans de nombreux contextes, tels que la signature de code et le SSL, afin d'aider à établir l'authenticité d'un fichier, d'un site web ou d'un téléchargement.
Les valeurs de hachage sont également d'une grande aide pour les chercheurs en sécurité, les équipes SOC, les chasseurs de logiciels malveillants et les ingénieurs en rétro-ingénierie. L'une des utilisations les plus courantes des hachages que vous verrez dans de nombreux rapports techniques ici sur SentinelOne et ailleurs est de partager des Indicateurs de compromission. À l'aide de valeurs de hachage, les chercheurs peuvent référencer des échantillons de logiciels malveillants et les partager avec d'autres via des référentiels de logiciels malveillants tels que VirusTotal, VirusBay, Malpedia et MalShare.
Avantages des hachages dans la recherche de menaces
La recherche de menaces est également facilitée grâce aux valeurs de hachage. Voyons un exemple illustrant comment un administrateur informatique peut rechercher des menaces sur l'ensemble de son parc à l'aide des valeurs de hachage dans la console de gestion SentinelOne.
Les hachages sont très utiles lorsque vous identifiez une menace sur une machine et que vous souhaitez rechercher ce fichier sur l'ensemble de votre réseau. Cliquez sur l'icône Visibilité dans la console de gestion SentinelOne et lancez une nouvelle requête. Dans ce cas, nous allons simplement utiliser le hachage SHA1 du fichier et rechercher son existence au cours des trois derniers mois.
Super, nous pouvons voir qu'il y a eu quelques cas, mais la magie ne s'arrête pas là. La recherche de hachage nous a menés au TrueContext ID, que nous pouvons utiliser comme point d'ancrage pour vraiment plonger dans le terrier du lapin et voir exactement ce que ce fichier a fait : quels processus il a créés, quels fichiers il a modifiés, quelles URL il a contactées, etc. En bref, nous pouvons reconstituer l'intégralité du scénario de l'attaque en quelques clics à partir du hachage du fichier.
Cybersécurité alimentée par l'IA
Améliorez votre posture de sécurité grâce à la détection en temps réel, à une réponse à la vitesse de la machine et à une visibilité totale de l'ensemble de votre environnement numérique.
Obtenir une démonstrationConclusion
Les hachages sont un outil fondamental dans la sécurité informatique, car ils peuvent nous indiquer de manière fiable si deux fichiers sont identiques, à condition d'utiliser des algorithmes de hachage sécurisés qui évitent les collisions. Néanmoins, comme nous l'avons vu plus haut, deux fichiers peuvent avoir le même comportement et les mêmes fonctionnalités sans nécessairement avoir le même hachage. Il est donc erroné de se fier à l'identité du hachage pour la détection antivirus.
Malgré cela, les hachages restent utiles pour les analystes en sécurité, notamment pour le partage d'indicateurs de compromission (IOC) et la recherche de menaces. Vous les rencontrerez sans aucun doute quotidiennement si vous travaillez dans le domaine de la sécurité informatique et réseau.
Vous aimez cet article ? Suivez-nous sur LinkedIn, Twitter, YouTube ou Facebook pour voir le contenu que nous publions.
En savoir plus sur la cybersécurité
- L'ennemi intérieur – Les 7 violations de données les plus inquiétantes de 2018
- 5 façons pour un RSSI de lutter dès maintenant contre la pénurie de compétences en cybersécurité
- Comment les logiciels malveillants peuvent facilement contourner la sécurité du macOS d'Apple
- Qu'est-ce que Windows PowerShell (et peut-il être malveillant) ?
FAQ sur le hachage
Le hachage est une technique de chiffrement à sens unique qui convertit les données en une chaîne de caractères de longueur fixe. Il est impossible d'inverser ce processus pour récupérer les données d'origine. Il fonctionne comme une empreinte digitale : une même entrée produit toujours le même hachage, mais des entrées différentes créent des sorties complètement différentes. Le hachage protège les mots de passe, vérifie l'intégrité des fichiers et garantit que les données n'ont pas été altérées. Il est essentiel pour la technologie blockchain et les signatures numériques.
Un exemple courant est le hachage SHA-256 du mot " hello " pour produire "2cf24dba4f21d4288094c30e2ede82c380cac19544bb5c4ab02f5b2db38500d3”. Si vous changez un seul caractère pour " Hello ", vous obtenez un hachage complètement différent. Les systèmes de mot de passe utilisent le hachage : lorsque vous créez un mot de passe, il est haché et stocké. Lorsque vous vous connectez, le mot de passe que vous saisissez est haché et comparé au hachage stocké. La vérification de l'intégrité des fichiers utilise également le hachage pour détecter les modifications.
Le hachage garantit l'intégrité des données en détectant toute modification non autorisée. Il protège les mots de passe en les rendant illisibles même en cas de violation des bases de données. Vous pouvez vérifier que les téléchargements de fichiers n'ont pas été corrompus ou infectés par des logiciels malveillants. Le hachage permet les signatures numériques et les protocoles de communication sécurisés. Il est fondamental pour la technologie blockchain et la sécurité des cryptomonnaies. Sans hachage, vous ne pourriez pas être sûr que les données restent inchangées pendant leur transmission ou leur stockage.
Les principales familles de hachage sont MD (Message Digest), SHA (Secure Hash Algorithm) et RIPEMD. MD5 produit des hachages de 128 bits, mais est désormais considéré comme non sécurisé. SHA-256 est actuellement le plus utilisé, produisant des hachages de 256 bits. SHA-3 est la norme la plus récente, conçue pour remplacer les anciens algorithmes. Chaque type varie en termes de niveau de sécurité, de longueur de hachage et d'exigences de calcul. Les systèmes modernes préfèrent SHA-256 ou SHA-3 pour les applications critiques en matière de sécurité.
Le hachage est un processus unidirectionnel et irréversible, tandis que le chiffrement est bidirectionnel et réversible. Le hachage produit toujours une sortie de longueur fixe, quelle que soit la taille de l'entrée. La longueur de la sortie du chiffrement varie en fonction des données d'entrée. Le hachage vérifie l'intégrité des données, tandis que le chiffrement protège leur confidentialité. Vous pouvez déchiffrer des données chiffrées à l'aide de la clé appropriée, mais vous ne pouvez pas déhacher des données. Les deux techniques ont des objectifs de sécurité différents et sont souvent utilisées conjointement.
Le hachage assure la sécurité des données en rendant impossible la rétro-ingénierie des informations d'origine. Même si des pirates volent des mots de passe hachés, ils ne peuvent pas facilement déterminer les mots de passe réels. Toute modification des données d'origine produit un hachage complètement différent, ce qui rend toute altération détectable. Le hachage ne nécessite pas de clés de chiffrement, il n'y a donc aucune clé à compromettre. Il permet de vérifier l'intégrité des données sans exposer leur contenu réel. Cela le rend idéal pour le stockage des mots de passe et la vérification des fichiers.
Le hachage permet une récupération et une vérification rapides des données. Il garantit l'intégrité des données sans exposer le contenu original. La sécurité des mots de passe est considérablement améliorée lorsque des techniques de hachage appropriées sont utilisées. La vérification de l'intégrité des fichiers devient simple et fiable. Le hachage permet la technologie blockchain et sécurise les transactions. Il est efficace sur le plan informatique et ne nécessite pas de gestion des clés. Les signatures numériques et les systèmes d'authentification dépendent du hachage pour leur sécurité. La déduplication des données et la gestion efficace du stockage bénéficient également du hachage.

