IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Un chercheur revient sur le binary diffing qui consiste à comparer les exécutables vulnérables
Avec leurs versions corrigées pour trouver une faille

Le , par Stéphane le calme

266PARTAGES

7  0 
Dans un billet de blog, Mateusz Jurczyk, qui fait partie de l’équipe de chercheurs en sécurité de Google Project Zero, a donné des détails sur le binary diffing, une technique que son équipe a déjà utilisée pour trouver des failles sur Windows.

Il a commencé en rappelant ce que c’est que le patch diffing : « Le Patch diffing est une technique commune de comparaison de deux compilations binaires du même code : l’un comportant une vulnérabilité connue et l’autre un correctif de sécurité. Il est souvent utilisé pour déterminer les détails techniques derrière des bulletins aux termes ambigus et pour établir les causes profondes, les vecteurs d'attaque et les variantes potentielles des vulnérabilités en question. »

Si cette approche est parfois utilisée par les white hat pour faire de meilleures analyses, les black hat s’en servent pour leur part afin de repérer exactement où se situent les failles et ainsi attaquer les utilisateurs qui n’ont pas encore déployé de correctif de sécurité sur leur système.

De plus, Mateusz explique que « Dans le même ordre d'idées, le binary diffing peut être utilisé pour découvrir des divergences entre deux ou plusieurs versions d'un seul produit, s’ils partagent le même code de base et coexistent sur le marché, mais sont traités indépendamment par le fournisseur. Un exemple de ce logiciel est le système d'exploitation Windows, qui présente actuellement trois versions dont le support est actif - Windows 7, 8 et 10. Bien que Windows 7 ait encore près de 50 % de parts sur le marché des ordinateurs au moment de la rédaction de ce document, Microsoft est connue pour avoir introduit un certain nombre d'améliorations structurelles de sécurité et parfois même des corrections de bogues ordinaires uniquement sur la plateforme Windows la plus récente. Cela crée un faux sentiment de sécurité pour les utilisateurs des systèmes anciens et les rend vulnérables aux défauts logiciels qui peuvent être détectés simplement en repérant des modifications subtiles dans le code correspondant aux différentes versions de Windows. »

Tout au long de son billet, il s’est évertué à montrer comment une forme très simple de binary diffing a été utilisée efficacement pour trouver des bogues qui peuvent s’avérer très utiles pour lancer une élévation de privilèges (par exemple, pour contourner l'ASLR du noyau), ou tout simplement exposer des données sensibles stockées dans l'espace d'adresse du noyau.

En clair, cette technique a permis aux chercheurs de Project Zero de repérer une faille corrigée dans Windows 10, mais encore présente et exploitable dans les versions 7 et 8.1 du système d’exploitation.

La technique qu’il a présentée dans son billet n’est pas complexe et ne requiert pas un niveau technique particulièrement avancé ou une connaissance approfondie des fonctionnements du système. Elle aurait très bien pu être utilisée par un black hat pour identifier les failles et les exploiter.

Ces failles ont depuis été corrigées par Microsoft dans son patch de septembre. Mais celles-ci ont été découvertes grâce aux patchs de Microsoft sur la version de Windows 10.

Aussi, le chercheur a conclu en disant que « L'objectif de ce billet était d'illustrer que les différences pertinentes relatives à la sécurité dans les branches supportées d'un seul produit peuvent être utilisées par des acteurs malveillants pour identifier des faiblesses importantes ou simplement des bogues réguliers dans les versions les plus anciennes dudit logiciel. Non seulement cela laisse certains clients exposés aux attaques, mais aussi révèle visiblement quels sont les vecteurs d'attaque qui peuvent marcher directement contre la sécurité de l'utilisateur. Ceci est particulièrement vrai pour les classes de bogues avec des corrections évidentes, telles que la divulgation de la mémoire du noyau et les appels memset ajoutés. Le processus "binary diffing" abordé dans cette publication était en fait une différence au niveau du pseudo-code qui ne nécessitait pas beaucoup d'expertise ou de connaissances bas niveau sur les composants internes du système d'exploitation. Il aurait pu être facilement utilisé par des attaquants non avancés pour identifier les trois vulnérabilités mentionnées (CVE-2017-8680, CVE-2017-8684, CVE-2017-8685) avec très peu d'effort. Nous espérons que ce sont quelques-uns des très rares cas où ces “fruits qui pendent bas” sont accessibles aux chercheurs via le diffing et nous encourageons les fournisseurs de logiciels à s’en assurer en appliquant régulièrement des améliorations de sécurité sur toutes les versions prises en charge de leur logiciel. »

Source : blog Google

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de AndMax
Membre éprouvé https://www.developpez.com
Le 09/10/2017 à 12:55
"Microsoft est connue pour avoir introduit un certain nombre d'améliorations structurelles de sécurité et parfois même des corrections de bogues ordinaires uniquement sur la plateforme Windows la plus récente"
"En clair, cette technique a permis aux chercheurs de Project Zero de repérer une faille corrigée dans Windows 10, mais encore présente et exploitable dans les versions 7 et 8.1 du système d’exploitation."

Peut-on en conclure que le support encore "actif" sur 7 et 8.1, c'est du pipeau ?
1  0