Comment vous sentez-vous au sujet d'une vulnérabilité vieille de dix ans dans une gamme de systèmes d'exploitation basés sur Unix, comme Linux, OpenBSD, NetBSF, FreeBSD et Solaris? Malheureusement, cette question est non théorique comme cette vulnérabilité (identifié comme CVE-2017-1000364) a été découvert, laissent les attaquants effectuent une escalade des attaques des privilèges dont l'accès racine est accordée et une prise de contrôle complète du système est en place.
CVE-2017-1000364 a été surnommé Slash Stack et a été découvert dans la mémoire de façon a été alloué sur la pile pour les binaires de l'espace utilisateur, comme expliqué par la des chercheurs qui l'a découvert.
CVE-2017-1000364 Stack Slash Flaw Reprendre technique
Comment le bug a expliqué? Il est très simple - programmes utilisent des zones de mémoire spéciales appelées piles, utilisé pour stocker des données à court terme. La pile peut se développer et se contracter sur une base automatique lors de l'exécution du programme, par rapport aux besoins du programme donné.
les chercheurs Qualys révèlent qu'un programme malveillant peut essayer d'utiliser plus d'espace mémoire que celle disponible sur la pile. Cela pourrait facilement conduire à un dépassement de mémoire, provoquant la pile se heurter à des régions de mémoire voisines et écraser le contenu.
En plus de ce qui précède, le défaut peut contourner la garde page de la pile. Ceci est une protection de la gestion de la mémoire de 2010 qui a été introduite après la faille a été exploitée au cours des années précédentes. Comme cela est décrit par les chercheurs Qualys dans leur conseil:
Malheureusement, un garde-page pile de quelques kilo-octets est insuffisant: si la pile pointeur « saute’ au cours de la garde-page-si elle se déplace de la pile dans une autre région de la mémoire sans accéder au garde-page-alors aucune exception la page de défaut est soulevé et la pile se prolonge dans l'autre zone de mémoire.
CVE-2017-1000364 nécessite également l'accès local au système vulnérable. Cependant, il pourrait aussi être exploitée à distance selon les applications concernées.
En réalité, CVE-2017-1000364 pourrait être exploitée en même temps que d'autres failles critiques telles que la vulnérabilité Sudo qui a été tout récemment patchés. La vulnérabilité Sudo, CVE-2017-1000367, est une vulnérabilité racine sévère Linux à nouveau découvert par des chercheurs Qualys. La faille a été trouvé à résider dans le « get_process_ttyname de Sudo()» Fonction pour Linux et pourrait permettre à un utilisateur avec des privilèges sudo pour exécuter des commandes en tant que root ou élever les privilèges root.
Malheureusement, les mauvaises nouvelles ne se termine pas ici 7 preuve de concept exploits ont été créés pour la vulnérabilité adaptée pour Linux, OpenBSD, NetBSD, FreeBSD, Solaris sur les deux 32- et les processeurs 64 bits. Les chercheurs ont d'abord été assez prévenant de ne pas pousser leur preuve de concepts permettant aux utilisateurs et aux administrateurs de résoudre la faille par patcher leurs systèmes vulnérables. Ceux-ci ont toutefois été rendues publiques après les mises à jour ont été publiées par Fedora et Slackware. FreeBSD et NetBSD ont également émis des correctifs.
La preuve de concepts comprennent quatre étapes - heurter la pile avec une autre zone de mémoire, courir le pointeur de la pile au début de la pile, sauter par-dessus le protège-page de pile, et enfin, brisant la pile ou d'autres régions de mémoire.
L'atténuation des CVE-2017-1000364
Sur la base de leurs recherches, les chercheurs recommandent Qualys que les systèmes d'exploitation affectés effectuer les tâches suivantes:
Augmenter la taille de la garde-page de la pile à au moins 1MB, et permettent aux administrateurs système de modifier facilement cette valeur (par exemple, grsecurity / PaX introduit / proc / sys / vm / heap_stack_gap dans 2010). cette première, solution à court terme est pas cher, mais il peut être vaincu par un
très grande mémoire tampon à base d'empilement.Recompiler l'ensemble du code userland (ld.so, bibliothèques, binaires) avec GCC “-fstack vérification” option, qui empêche la pile pointeur de se déplacer dans une autre région de la mémoire sans accéder au corps de garde page d'empilement (il écrit un mot à chaque page 4Ko allouée sur la pile). cette seconde, solution à long terme est cher, mais il ne peut pas être battu (même si la pile garde-page ne 4Ko, une page) — sauf si une vulnérabilité est découverte dans la mise en œuvre de la garde-page pile ou “-fstack vérification” option.
Autres systèmes d'exploitation (Fenêtres, Androïde, Mac) Aussi vulnérable à CVE-2017-1000364
Peut-être que les choses ne se terminera pas ici que les chercheurs croient également que d'autres systèmes d'exploitation tels que Windows et Mac OS et même Android pourraient aussi être vulnérables à cette faille. Cela doit cependant être confirmée plus.
Cependant, les parties concernées sont invités à mettre à jour le plus tôt possible.
Si aucun patch est encore disponible pour un système d'exploitation particulier, les utilisateurs et les administrateurs peuvent essayer de redémarrer leurs systèmes ou appliquer manuellement les limites de la pile aux applications des utilisateurs locaux pour éviter les exploits. Une autre astuce utile est de recompiler l'ensemble du code userland avec la fonction -fstack vérification, comme visible dans les conseils ci-dessus.