• Aucun résultat trouvé

Etude d’unicit´ ´ e des gadgets

2.3 M´ etriques de protection

2.3.4 Etude d’unicit´ ´ e des gadgets

Que ce soit dans un mˆeme binaire, ou dans des binaires diff´erents, on cherche ici `a d´eterminer s’il est possible de trouver deux gadgets distincts qui ont la mˆeme forme normale. C’est-`a-dire, deux gadgets diff´erents qui `a partir du mˆeme ´etat du processeur et de la m´emoire arrivent dans exactement le mˆeme ´etat. L’id´ee est de pouvoir mieux caract´eriser l’unicit´e des gadgets autrement qu’en ne qualifiant que leur syntaxe.

Le premier r´esultat observ´e sur cet ensemble d’analyse est que la notion d’unicit´e des gadgets dans un binaire ne change pas en passant de l’´ecriture syntaxique de chaque gadget `a leur forme minimale respective. Dans un mˆeme binaire, il y a une association unique entre un gadget syntaxique et sa forme minimale. On peut donc facilement conclure qu’un compilateur, avec des options de compilation fixes, produit toujours le mˆeme gadget pour effectuer une action pr´ecise. Ce r´esultat, bien qu’int´eressant peut venir de notre ´echantillon. Bien que le corpus soit assez large, tous les compilateurs et langages ne sont pas analys´es. Le langage ADA, par exemple, ne repr´esente qu’une dizaine de binaires, ce qui n’est pas significatif statistiquement parlant. Et bien que que la recherche de gadgets inclut les gadgets d´ecal´es dans un binaire, il est int´eressant de voir que mˆeme ainsi, on ne trouve pas deux gadgets syntaxiquement diff´erents ayant la mˆeme forme minimale.

Dans un second temps, sur un sous-ensemble de binaires plus proches, les diff´erentes versions de tar notamment, j’ai regard´e si deux gadgets distincts pr´esents dans deux binaires diff´erents avaient la mˆeme forme minimale. Par exemple, il est int´eressant de savoir si gcc et clang peuvent produire deux gadgets diff´erents pour un comportement similaire. Sur cet ensemble de binaires, il n’existe aucun couple de gadgets distincts ayant la mˆeme forme minimale. Cet ensemble regroupe 183 494 gadgets en forme minimale, pr´esents dans au moins deux binaires diff´erents. Le nombre total de formes minimales, incluant celles pr´esentes dans un seul binaire,

2.4. CONCLUSION 69

est de 311 016.

D’un point de vue d’un attaquant, ce r´esultat est cependant assez int´eressant. Pour construire une chaˆıne, un attaquant va ˆetre sˆur qu’il ne trouvera pas deux gadgets distincts ayant la mˆeme forme minimale. Il peut donc simplifier la recherche de gadget dans un binaire car tous les gadgets faisant la mˆeme op´eration ont la mˆeme s´equence d’instructions.

2.4 Conclusion

La sensibilit´e d’un logiciel vis-`a-vis des attaques par d´etournement de flot d’ex´ecution peut ˆetre mesur´ee. Le chapitre a pr´esent´e le corpus de binaires utilis´es pour la mise en place d’une ´etude extensive de la sensibilit´e au d´etournement de flot d’ex´ecution de logiciels. Ce chapitre justifie les diff´erents param`etres pris en compte lors de la s´election des syst`emes ´etudi´es, comprenant l’architecture mat´erielle, le type de distribution des binaires et l’objectif m´etier du syst`eme.

Ce chapitre a ensuite propos´e plusieurs m´etriques pour ´etudier la sensibilit´e d’un binaire face au d´etournement de flot d’ex´ecution. La premi`ere m´etrique est le d´enombrement des gadgets comme ce qui est fait dans la litt´erature dans un premier temps [QPY18 ; Zha+13 ; Ona+10]. Cette m´etrique est ensuite rapport´ee `a la taille de section ex´ecutable dans le binaire pour d´efinir la densit´e de gadget. Dans la continuation des m´etriques quantitatives, une notion d’entropie a ´et´e introduite pour mettre en place les fondements d’une mesure de diversit´e des gadgets dans un binaire. Pour am´eliorer ces m´etriques quantitatives, une notion de qualit´e des gadgets a ´et´e utilis´ee, en se basant sur les travaux de Follner et al. [FBB16]. Enfin, afin de valider l’approche d’analyse syntaxique des gadgets, le chapitre a fini sur l’´etude de la r´eduction des gadgets dans une forme minimale.

Ce chapitre ´etablit un ensemble de m´etriques pour mesurer la sensibilit´e de binaires face au d´etournement de flot d’ex´ecution. Les r´esultats pr´esent´es dans ce chapitre ne permettent pas de d´eterminer la provenance des gadgets int´eressant un attaquant, et comment am´eliorer la transformation des sources d’un logiciel en binaire plus difficilement attaquable. Le chapitre 3 utilise les m´etriques introduites ici pour ´etudier l’influence des moyens de production de binaires. Le chapitre 4 quant `a lui utilise ces m´etriques pour mettre en place des m´ethodes de conception permettant d’influer sur la sensibilit´e des binaires associ´es aux logiciels `a prot´eger.

Chapitre

3

Sensibilit´e d’un logiciel

Lors de la conception d’un logiciel, un d´eveloppeur peut faire des choix vari´es `

a diff´erents niveaux de la conception. Ces choix sont motiv´es par les objectifs `a remplir par ce logiciel et les contraintes impos´ees. Ces contraintes peuvent ˆetre relatives aux performances ou `a la s´ecurit´e, par exemple. Parfois, ces choix peuvent ˆ

etre dus `a la comp´etence de l’´equipe de d´eveloppement dans une technologie qui sera choisie.

La question de la protection vis-`a-vis des attaques par d´etournement de flot d’ex´ecution arrive tardivement dans les ´etapes de conception et certains choix ont d´ej`a ´et´e effectu´es. Un langage, un compilateur ou une plateforme mat´erielle sont s´electionn´es, et ensuite une protection peut-ˆetre utilis´ee si elle est compatible avec ces choix.

Le chapitre pr´ec´edent a d´efini un ensemble de m´etriques permettant de caract´eriser la sensibilit´e d’un binaire vis-`a-vis des attaques par d´etournement de flot d’ex´ecution. Dans ce chapitre, les m´etriques d´efinies sont utilis´ees pour d´eterminer l’influence que le processus de cr´eation d’un logiciel peut avoir sur cette sensibilit´e. Le chapitre est compos´e de trois parties in´egales en termes de contenu. La premi`ere concerne l’´etude de compilateurs et des options qui leur sont associ´ees. C’est l’´etude la plus compl`ete du chapitre. Le chapitre continue ensuite sur une ´

etude, plus succincte, de l’influence du langage sur la sensibilit´e d’un binaire face au d´etournement du flot d’ex´ecution. Enfin, ce chapitre termine par une ´etude assez limit´ee sur l’influence de l’architecture mat´erielle.