Return Oriented Programming

Magazine
Marque
GNU/Linux Magazine
Numéro
203
Mois de parution
avril 2017
Spécialités


Résumé

Les techniques d'exploitation de failles applicatives ont énormément évolué avec l'avènement de moyens de protection toujours plus sophistiqués. Le Return Oriented Programming ou ROP ne permet pas d'injecter du code, mais bien d'exploiter l'existant pour détourner le comportement nominal d'un logiciel via une classe de failles bien particulière.


Le Return Oriented Programming, ou ROP, est une technique d'exploitation sophistiquée, reposant sur l'exploitation d'un fonctionnement légitime, d'un « défaut » dit de conception, de la plupart des processeurs, ce qui la rend pérenne. C'est une technique qui met en jeu des notions de bas niveau qu'il faut appréhender pour pouvoir la comprendre et pouvoir ainsi s'en protéger de manière efficace. Nous verrons au travers de cet article que le ROP développe un formalisme avancé, un écosystème riche ainsi que de nombreux outils plus ou moins évolués. Enfin, nous étudierons les contres-mesures efficaces.

1. Assembleur

L'exploitation via le ROP est très adhérente au processeur, et donc au jeu d'instructions sur lequel le logiciel ciblé est exécuté. Pour des raisons de tests, nous nous concentrerons sur des programmes s’exécutant sur la famille des processeurs x86, mais sachez que tout ce qui sera dit dans cet article reste valable pour des binaires ARM,...

Cet article est réservé aux abonnés. Il vous reste 92% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

Stocker ses secrets dans Git, une mauvaise pratique pouvant avoir de lourdes conséquences

Magazine
Marque
MISC
Numéro
114
Mois de parution
mars 2021
Spécialités
Résumé

Dans un rapport datant d’avril 2020, GitLab indique que 18 % des dépôts analysés sur gitlab.com comportaient des problèmes de gestion des secrets. Quelles peuvent être les conséquences liées à ces erreurs ? Quelle stratégie adopter pour gérer au mieux ses secrets ?

Zéro SQLi malgré les développeurs

Magazine
Marque
MISC
Numéro
111
Mois de parution
septembre 2020
Spécialités
Résumé

Nous proposons une méthode pour effectuer des requêtes SQL qui garantit l'invulnérabilité aux injections SQL, y compris lorsqu'elle est utilisée par un développeur pressé ou incompétent, contrairement aux requêtes paramétrées. Basée sur l'utilisation d'arbres de syntaxe abstraite, elle permet facilement de construire des requêtes dynamiques et est plus facile à mettre en œuvre qu'un ORM. Nous proposons une bibliothèque Java implémentant nos idées, mais la méthode peut s'appliquer à d'autres langages de programmation et d'autres types de requêtes.