les attaques dites « de force brute », ou en anglais « bruteforce », regroupent deux approches : celle par dictionnaire et celle « systématique ». Ces deux techniques poursuivent le même objectif, à savoir décoder rapidement un mot de passe, une information cryptée, ou encore accéder à un service protégé. NBS System nous présente les grandes lignes de ces techniques. Une fois de plus, les pirates se font aider par l´utilisateur, qui choisit des mots de passe trop simples, pour s´introduire de façon illicite dans un SI.
On pourra également se reporter sur ce sujet à la note d´information du CERTA de février 2005 : Les mots de passe
Trouver un mot de passe : une combinatoire redoutable
Les systèmes d´exploitation, que ce soit Windows ou lunix, stockent les mots de passe de façon cryptée. Lors de l´ouverture d´une session, le système d´exploitation crypte le mot de passe saisi par l´utilisateur et le compare à celui qui est stocké dans son fichier, également crypté. Si les codes sont les mêmes, le mot de passe est valide. Si un pirate réussi à trouver un mot de passe crypté, pour retrouver celui d´origine (non crypté), il va crypter des mots de passes et de les comparer à la chaîne cryptée qui a été récupérée. Une fois qu´il a trouvé un mot de passe qui une fois crypté soit le même que la version récupéré sur la machine compromise, il a le mot de passe décrypté.
Plusieurs techniques sont possibles pour « casser un mot de passe, dont trois sont très utilisées. La première méthode est systématique et elle consiste à encoder toutes les possibilités. La seconde méthode dite « par dictionnaire » consiste à crypter des mots de passes courants et leurs variantes afin d´accélérer le processus. La troisième consiste à rechercher dans une base de données pré calculée de mots de passes cryptés la version cryptée du mot de passe et ainsi avoir très rapidement la version décryptée. La troisième méthode implique d´avoir auparavant calculer tous les mots de passes possibles avec les différents algorithmes de cryptage utilisés.
Une fois que le pirate est parvenu à récupérer un mot de passe crypté, il va chercher à le décrypter. Ceci implique donc qu´il a déjà compromis d´une façon ou d´une autre une machine, ou qu´il a intercepté un mot de passe lors d´une conversation réseau entre deux machines. La cryptanalyse ou attaque en force brute n´intervient que dans un deuxième temps.
Le pirate, s´il utilise la première méthode, choisit un ensemble de caractères comprenant des minuscules (a-z) et/ou des majuscule (A-Z) et/ou des chiffres (0-9) et/ou les accents (é,à,â ...) et/ou les caractère alphanumériques (@,_, ...) et utilise un logiciel pour calculer toutes les combinaisons possibles avec l´ensemble de caractères retenu et les crypter pour les comparer au mot de passe original, lui-même crypté.
Cela peut être très long. Pour un mot de passe de 8 lettres en minuscule, le nombre de combinaisons est de plus de 200 milliards : 26 puissance 8, soit 208.827.064.576. Pour un mot de passe de 8 caractères alphanumérique, le nombre de combinaisons avoisine les neuf cents mille milliards : 74 puissance 8. Peut-on traiter un tel nombre de combinaison en un temps raisonnable ? Une durée d´un milliard de secondes est sans doute un concept abstrait. Cette durée, exprimée autrement, représente précisément 31 années (comprenant 8 années bissextiles) 251 jours 1 heures 46 minutes et 40 secondes. Tout le problème du décodage est dans ces chiffres ! Et cette combinatoire peut encore prendre des proportions plus importantes en utilisant des combinaisons de 102 caractères, voire de près de 180 en utilisant tous les codes spéciaux. Le nombre de combinaisons pour un mot de passe de 8 caractères dépasse quasiment l´entendement.
L´attaque par dictionnaire : simplifier le problème
L'attaque par dictionnaire permet de réduire le nombre de combinaisons. En effet, les utilisateurs ont tendance à utiliser pour mot de passe leur date de naissance, le prénom de l´un de leurs enfants, leur plaque d´immatriculation, ou d´autres choses aussi simples. Les pirates le savent. Un dictionnaire comprend quelques centaines de milliers de mots. Il est facile de tenter en premier lieu de crypter ces mots et leurs variantes, plutôt que des chaînes au hasard. Statistiquement, les résultats sont intéressants. Le problème du temps de test peut ainsi être résolu. La rapidité du processus dépend de la puissance de la machine utilisée. En moyenne, sur une machine récente, un dictionnaire de 100.000 mots sera testé en un jour avec toutes ses variantes, mutation ou transformations.
Il est possible d´utiliser des dictionnaires existants, d´y ajouter différents mots tels que le prénom de la personne que l´on cible, ceux de sa femme, de ses enfants, de ses animaux, la marque ou la plaque de sa voiture, ainsi que des éléments de la vie professionnelle comme le nom de la société ou des nom de professions.
90% des mots de passe ne résistent pas aux attaques par dictionnaire
Nous constatons lors de nos tests d´intrusions, qu´en moyenne, 65 % des mots de passe ne résistent pas à un dictionnaire contenant 1 Moctets de mots du langage français. Le principe est simple. Il suffit de crypter les mots du dictionnaire avec l´algorithme utilisé par le système d´exploitation et de les comparer au mot de passe récupéré. Si le mot de passe est « robert », un logiciel efficace et un bon dictionnaire, trouvera la solution en moins de 2 secondes... Le taux de réussite monte à 85 % avec un dictionnaire de 10 Moctets, et à près de 90 % avec un dictionnaire de 30 Moctets.
L´attaque systématique est possible mais parfois irréaliste
Si l´attaque par dictionnaire échoue après quelques dizaines d´heures de recherche, il est possible de passer à la méthode systématique. Le principe devient très consommateur de ressources. Les différentes possibilités de l´alphabet retenu sont toutes testées. Les chaînes sont toutes construites. Elles sont codées une à une selon le format du système visé et comparées au mot de passe de la victime. L´attaque aboutira à coup sûr, mais peut être dans un temps déraisonnable de plusieurs mois, voire de plusieurs milliers d´années.
Les performances, et donc les temps de calculs, varient énormément d´une machine à l´autre et en fonctions des algorithmes de cryptage, mais on peut estimer qu´une bonne machine calculera plusieurs centaines de milliers de combinaisons par secondes. Ainsi, un mot de passe numérique de 4 chiffres est cassé en une fraction de seconde. Le même mot de passe utilisant une combinaison de 4 caractères, mais avec un jeu 74 codes, sera cassé à coup sûr en quelques minutes. Si on impose un mot de passe de 8 caractères avec un alphabet de 200 caractères utilisables, la durée maximale de décodage peut approcher plusieurs dizaines d´années ! La longueur du mot de passe et le nombre de caractères utilisées sont les deux paramètres clés pour savoir un mot de passe est fort ou non. Attention toutefois, il ne s´agit que de mesures probabilistes. La probabilité que l´on trouve le bon mot de passe du premier coup devient de plus en plus faible, mais n´est jamais mathématiquement nulle.
Il est important à ce sujet de mettre en avant que la cryptanalyse est une science reposant très étroitement sur les mathématiques et les algorithmes. En effet certains algorithmes sont « nativement » faibles, comme le cryptage WEP des bornes WIFI et
les mathématiques permettent de casser les clefs de cryptages WEP en quelques heures. La cryptanalyse (et les attaques en force brute en générale) ne s´applique pas uniquement aux mots de passes mais à tout système utilisant un cryptage de données, même si cet article s´intéresse principalement aux mots de passes.
Dans la troisième méthode, certaines sociétés ou groupes de pirates tentent d´encoder systématiquement toutes les possibilités dans une base de données afin de pouvoir donner un mot de passe crypté et chercher son équivalent décrypté dans la base, ce qui raccourcit les délais de façon drastique, une fois le calcul initial de quelque mois effectué. Avec un alphabet relativement complexe, la taille de la base atteinte plusieurs centaines de gigaoctet, ce qui reste raisonnable. Au maximum une base très évoluée avec plusieurs alphabets et plusieurs algorithme de cryptage prendra une place se comptant en téraoctets ce qui n´est plus, de nos jours, un investissement énorme. Le temps de calcul lui sera énorme mais cet effort, une fois distribué sur plusieurs machines, est tout à fait réalisable.
Autres attaques : les communications cryptées et les services en réseaux
L´attaque d´un mot de passe n´est pas le seul cas à redouter. Un procédé similaire s´applique aux communications cryptées telles que celles des réseaux Wifi. Les implications mathématiques et algorithmiques en sont toutefois beaucoup plus complexes et nous ne les décrirons pas dans cet article bien que la similarité des processus soit importante.
Des attaques par force brute peuvent également être réalisées à l´encontre de services réseau. Par exemple, un serveur de courrier requiert un login et un mot de passe. Il peut être attaqué en force brute, mais de manière très lente. Un tel serveur n´acceptera en effet que quelques dizaines de tentatives par minute alors que des dizaines de milliers de combinaison peuvent être testés par seconde sur un ordinateur pour casser un mot de passe. L´attaque contre le serveur de courrier aura donc plutôt recours à un dictionnaire.
Ces attaques génèrent des lignes de log sur les serveurs, par centaines, milliers et parfois beaucoup plus. Elles ne sont donc pas très discrètes. Certains protocoles réseau « répondant » plus vite que d´autre, la nature de l´attaque par force brute va varier en fonction du service ciblé, du type de communications ou de mots de passe à cracker.
La défense réside (entre autre) dans la qualité des mots de passe
La meilleure défense reste d´avoir des mots de passe soit aléatoires, soit suffisamment complexes pour résister aux dictionnaires et imposer au pirate de passer plusieurs mois avant de les décrypter en force brute. Il est de même recommandé de limiter le nombre de tentatives de connexion aux services en réseau et utiliser des protocoles cryptanalytiquement solides. Pour un réseau Wifi, on préfèrera l´AES au WEP avec un changement de clef régulier (automatisé).
Les administrateurs système et réseau utilisent parfois les logiciels de décryptage de mot de passe afin de s´assurer que les mots de passe en service son suffisamment résistants.
Il reste ensuite à éduquer les utilisateurs pour choisir leur mot de passe. Il est certain que °\-Zi´é est un très bon de passe. Mais comment le retenir ? Il existe
des moyens mémo techniques :
1°) la méthode dite "haxor" : où bouteille devient B0ut3ll3 (mais elle est relativement connue)
2°) la méthode dite "graphique" : ou alpha devient /LP-/
3°) la passphrase (pour les systèmes prenant en compte réellement plus de 8 caractères): "un kilomètre a pied ça use" ou ukapçu pour ceux qui n´utilisent que 8 caractères au maximum.On pourra également se reporter sur ce sujet à la note d´information du CERTA de février 2005 : Les mots de passe
Trouver un mot de passe : une combinatoire redoutable
Les systèmes d´exploitation, que ce soit Windows ou lunix, stockent les mots de passe de façon cryptée. Lors de l´ouverture d´une session, le système d´exploitation crypte le mot de passe saisi par l´utilisateur et le compare à celui qui est stocké dans son fichier, également crypté. Si les codes sont les mêmes, le mot de passe est valide. Si un pirate réussi à trouver un mot de passe crypté, pour retrouver celui d´origine (non crypté), il va crypter des mots de passes et de les comparer à la chaîne cryptée qui a été récupérée. Une fois qu´il a trouvé un mot de passe qui une fois crypté soit le même que la version récupéré sur la machine compromise, il a le mot de passe décrypté.
Plusieurs techniques sont possibles pour « casser un mot de passe, dont trois sont très utilisées. La première méthode est systématique et elle consiste à encoder toutes les possibilités. La seconde méthode dite « par dictionnaire » consiste à crypter des mots de passes courants et leurs variantes afin d´accélérer le processus. La troisième consiste à rechercher dans une base de données pré calculée de mots de passes cryptés la version cryptée du mot de passe et ainsi avoir très rapidement la version décryptée. La troisième méthode implique d´avoir auparavant calculer tous les mots de passes possibles avec les différents algorithmes de cryptage utilisés.
Une fois que le pirate est parvenu à récupérer un mot de passe crypté, il va chercher à le décrypter. Ceci implique donc qu´il a déjà compromis d´une façon ou d´une autre une machine, ou qu´il a intercepté un mot de passe lors d´une conversation réseau entre deux machines. La cryptanalyse ou attaque en force brute n´intervient que dans un deuxième temps.
Le pirate, s´il utilise la première méthode, choisit un ensemble de caractères comprenant des minuscules (a-z) et/ou des majuscule (A-Z) et/ou des chiffres (0-9) et/ou les accents (é,à,â ...) et/ou les caractère alphanumériques (@,_, ...) et utilise un logiciel pour calculer toutes les combinaisons possibles avec l´ensemble de caractères retenu et les crypter pour les comparer au mot de passe original, lui-même crypté.
Cela peut être très long. Pour un mot de passe de 8 lettres en minuscule, le nombre de combinaisons est de plus de 200 milliards : 26 puissance 8, soit 208.827.064.576. Pour un mot de passe de 8 caractères alphanumérique, le nombre de combinaisons avoisine les neuf cents mille milliards : 74 puissance 8. Peut-on traiter un tel nombre de combinaison en un temps raisonnable ? Une durée d´un milliard de secondes est sans doute un concept abstrait. Cette durée, exprimée autrement, représente précisément 31 années (comprenant 8 années bissextiles) 251 jours 1 heures 46 minutes et 40 secondes. Tout le problème du décodage est dans ces chiffres ! Et cette combinatoire peut encore prendre des proportions plus importantes en utilisant des combinaisons de 102 caractères, voire de près de 180 en utilisant tous les codes spéciaux. Le nombre de combinaisons pour un mot de passe de 8 caractères dépasse quasiment l´entendement.
L´attaque par dictionnaire : simplifier le problème
L'attaque par dictionnaire permet de réduire le nombre de combinaisons. En effet, les utilisateurs ont tendance à utiliser pour mot de passe leur date de naissance, le prénom de l´un de leurs enfants, leur plaque d´immatriculation, ou d´autres choses aussi simples. Les pirates le savent. Un dictionnaire comprend quelques centaines de milliers de mots. Il est facile de tenter en premier lieu de crypter ces mots et leurs variantes, plutôt que des chaînes au hasard. Statistiquement, les résultats sont intéressants. Le problème du temps de test peut ainsi être résolu. La rapidité du processus dépend de la puissance de la machine utilisée. En moyenne, sur une machine récente, un dictionnaire de 100.000 mots sera testé en un jour avec toutes ses variantes, mutation ou transformations.
Il est possible d´utiliser des dictionnaires existants, d´y ajouter différents mots tels que le prénom de la personne que l´on cible, ceux de sa femme, de ses enfants, de ses animaux, la marque ou la plaque de sa voiture, ainsi que des éléments de la vie professionnelle comme le nom de la société ou des nom de professions.
90% des mots de passe ne résistent pas aux attaques par dictionnaire
Nous constatons lors de nos tests d´intrusions, qu´en moyenne, 65 % des mots de passe ne résistent pas à un dictionnaire contenant 1 Moctets de mots du langage français. Le principe est simple. Il suffit de crypter les mots du dictionnaire avec l´algorithme utilisé par le système d´exploitation et de les comparer au mot de passe récupéré. Si le mot de passe est « robert », un logiciel efficace et un bon dictionnaire, trouvera la solution en moins de 2 secondes... Le taux de réussite monte à 85 % avec un dictionnaire de 10 Moctets, et à près de 90 % avec un dictionnaire de 30 Moctets.
L´attaque systématique est possible mais parfois irréaliste
Si l´attaque par dictionnaire échoue après quelques dizaines d´heures de recherche, il est possible de passer à la méthode systématique. Le principe devient très consommateur de ressources. Les différentes possibilités de l´alphabet retenu sont toutes testées. Les chaînes sont toutes construites. Elles sont codées une à une selon le format du système visé et comparées au mot de passe de la victime. L´attaque aboutira à coup sûr, mais peut être dans un temps déraisonnable de plusieurs mois, voire de plusieurs milliers d´années.
Les performances, et donc les temps de calculs, varient énormément d´une machine à l´autre et en fonctions des algorithmes de cryptage, mais on peut estimer qu´une bonne machine calculera plusieurs centaines de milliers de combinaisons par secondes. Ainsi, un mot de passe numérique de 4 chiffres est cassé en une fraction de seconde. Le même mot de passe utilisant une combinaison de 4 caractères, mais avec un jeu 74 codes, sera cassé à coup sûr en quelques minutes. Si on impose un mot de passe de 8 caractères avec un alphabet de 200 caractères utilisables, la durée maximale de décodage peut approcher plusieurs dizaines d´années ! La longueur du mot de passe et le nombre de caractères utilisées sont les deux paramètres clés pour savoir un mot de passe est fort ou non. Attention toutefois, il ne s´agit que de mesures probabilistes. La probabilité que l´on trouve le bon mot de passe du premier coup devient de plus en plus faible, mais n´est jamais mathématiquement nulle.
Il est important à ce sujet de mettre en avant que la cryptanalyse est une science reposant très étroitement sur les mathématiques et les algorithmes. En effet certains algorithmes sont « nativement » faibles, comme le cryptage WEP des bornes WIFI et
les mathématiques permettent de casser les clefs de cryptages WEP en quelques heures. La cryptanalyse (et les attaques en force brute en générale) ne s´applique pas uniquement aux mots de passes mais à tout système utilisant un cryptage de données, même si cet article s´intéresse principalement aux mots de passes.
Dans la troisième méthode, certaines sociétés ou groupes de pirates tentent d´encoder systématiquement toutes les possibilités dans une base de données afin de pouvoir donner un mot de passe crypté et chercher son équivalent décrypté dans la base, ce qui raccourcit les délais de façon drastique, une fois le calcul initial de quelque mois effectué. Avec un alphabet relativement complexe, la taille de la base atteinte plusieurs centaines de gigaoctet, ce qui reste raisonnable. Au maximum une base très évoluée avec plusieurs alphabets et plusieurs algorithme de cryptage prendra une place se comptant en téraoctets ce qui n´est plus, de nos jours, un investissement énorme. Le temps de calcul lui sera énorme mais cet effort, une fois distribué sur plusieurs machines, est tout à fait réalisable.
Autres attaques : les communications cryptées et les services en réseaux
L´attaque d´un mot de passe n´est pas le seul cas à redouter. Un procédé similaire s´applique aux communications cryptées telles que celles des réseaux Wifi. Les implications mathématiques et algorithmiques en sont toutefois beaucoup plus complexes et nous ne les décrirons pas dans cet article bien que la similarité des processus soit importante.
Des attaques par force brute peuvent également être réalisées à l´encontre de services réseau. Par exemple, un serveur de courrier requiert un login et un mot de passe. Il peut être attaqué en force brute, mais de manière très lente. Un tel serveur n´acceptera en effet que quelques dizaines de tentatives par minute alors que des dizaines de milliers de combinaison peuvent être testés par seconde sur un ordinateur pour casser un mot de passe. L´attaque contre le serveur de courrier aura donc plutôt recours à un dictionnaire.
Ces attaques génèrent des lignes de log sur les serveurs, par centaines, milliers et parfois beaucoup plus. Elles ne sont donc pas très discrètes. Certains protocoles réseau « répondant » plus vite que d´autre, la nature de l´attaque par force brute va varier en fonction du service ciblé, du type de communications ou de mots de passe à cracker.
La défense réside (entre autre) dans la qualité des mots de passe
La meilleure défense reste d´avoir des mots de passe soit aléatoires, soit suffisamment complexes pour résister aux dictionnaires et imposer au pirate de passer plusieurs mois avant de les décrypter en force brute. Il est de même recommandé de limiter le nombre de tentatives de connexion aux services en réseau et utiliser des protocoles cryptanalytiquement solides. Pour un réseau Wifi, on préfèrera l´AES au WEP avec un changement de clef régulier (automatisé).
Les administrateurs système et réseau utilisent parfois les logiciels de décryptage de mot de passe afin de s´assurer que les mots de passe en service son suffisamment résistants.
Il reste ensuite à éduquer les utilisateurs pour choisir leur mot de passe. Il est certain que °\-Zi´é est un très bon de passe. Mais comment le retenir ? Il existe
des moyens mémo techniques :
1°) la méthode dite "haxor" : où bouteille devient B0ut3ll3 (mais elle est relativement connue)
2°) la méthode dite "graphique" : ou alpha devient /LP-/
On recommandera également un changement de mot de passe tous les 3 mois, à limiter le nombre de tentatives de login et ne plus utiliser de protocoles de communications en réseau qui reposent sur des communications en clairs ou à cryptage trop faibles.
Voici le tableau résumant la résistance en se basant sur une machine pouvant effectuer environ 500 000 tests par secondes :
- Numérique : chiffres de 0 à 9
- Alphabétique : lettres de a à z
- Alphanum : lettres de a à z + chiffres de 0 à 9 soit 36 caractères
- Alphanum maj/min : idem à alphanum avec la possibilité d´utiliser les majuscules ou minuscules soit 26+26+10=62 caractères
- Alphanum complèxe : alphanum + certaines caractères !@#$%^&()-_+=
- Alphanum très complexe : alphanum complèxe + \ :;´ »<>,. ?/
- Alphanum accentué : alphanum + éàçèù (ne fonctionne qu´en France, autres accents suivants les pays)
Conseil Mag Securs : pensez à utiliser les caractères accentués cela obligera les hackers à considérer une attaque de brute force avec la totalité de la table ASCII soit 255 caractères ! De plus ils n´y penseront pas au début -sauf si ce sont des Français- ce qui va réduire le risque des attaques étrangères. Par exemple, le Ë ou le ñ sont des pièges énormes pour des logiciels de décodages de mot de passe.
Conseil Mag Securs : n´utilisez pas de mots de passe qui font appel à des caractères majuscules et minuscules : les utilisateurs ne voyant pas ce qu´ils tapent vont commettre beaucoup d´erreurs de saisie, avec le risque de les voir s´énerver, de bloquer leur compte et de générer de nombreux appels au support. De plus, Windows stocke les mots de passe en LM Hash (voir image du cracker CAIN), ce qui implique un stockage en majuscules uniquement du mot de passe. Une fois trouvé le mot de passe en majuscules, c´est un jeu d´enfant de trouver les variations majuscules-minuscules ensuite.
Image du cracker CAIN : On voit ici que les hackers recherchent les mots de passe inférieurs à 8 caractères qui sont des « proies faciles ».
Les pirates vont donc trouver de la résistance en bruteforce avec vos mots de passe, mais sont-ils à bout d´arguments ? Quelles sont les autres méthodes pour percer un mot de passe ? Le sniffing - le phishing - la cryptanalyse, mais ce sera l´objet d´un autre article, à suivre ! N´oublions pas que si un pirate peut trouver une solution plus simple ou plus rapide à mettre en ?uvre, il n´hésitera pas une seconde. Ne leur simplifiez donc jamais la tâche !
mot clé : la bryte,brute forcers,attaque,attaquer,attaque par force brute mot de passe,logiciel d'attaque par force brute,la méthode d’attaque par force brute