Return Oriented Programming

Magazine
Marque
GNU/Linux Magazine
Numéro
203
Mois de parution
avril 2017
Domaines


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, PowerPC,...

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...

Principes de l’orienté objet en C++ : la généricité

Magazine
Marque
GNU/Linux Magazine
Numéro
248
Mois de parution
mai 2021
Domaines
Résumé

La programmation orientée objet obéit à des principes. Les 4 principaux sont l’encapsulation, l’héritage, le polymorphisme et la généricité. Dans un premier article, nous avons évoqué l’encapsulation, puis l’héritage et le polymorphisme dans un deuxième. Ce troisième et dernier article traite de la généricité.

Flutter : applications mobiles, web et desktop

Magazine
Marque
GNU/Linux Magazine
Numéro
248
Mois de parution
mai 2021
Domaines
Résumé

Flutter est un framework permettant de développer des applications natives pour Linux, Windows, macOS, Android, iOS et le Web à partir du même code source. Un moteur graphique OpenGL ultra performant et la compilation native en ARM, x86-64 ainsi que WebAssembly, associés à un cycle de développement agile et hyper intuitif, en font la solution ultime pour les créateurs d’applications. L’essayer, c’est l’adopter !

Un bot qui surveille le Web et envoie des alertes

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
114
Mois de parution
mai 2021
Domaines
Résumé

De nos jours, lorsque l’on recherche une information, on se tourne immédiatement vers le Web. Ainsi, de très nombreuses informations sont mises à jour quotidiennement et il faut donc penser à visiter les sites les produisant, de manière à être au courant des dernières modifications. Et si nous codions un bot qui ferait cela pour nous ?

Les différents frameworks de web scraping

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
114
Mois de parution
mai 2021
Domaines
Résumé

Il ne viendrait à l’idée à personne de nos jours de se lancer dans la récupération de données sur le Web sans s’appuyer sur un framework simplifiant la tâche et évitant de réinventer la roue (carrée). Voyons donc quelques outils indispensables permettant de mener à bien cette tâche.