Mémoire non exécutable : vers le Return Oriented Programming (ROP)

Magazine
Marque
MISC
Numéro
51
|
Mois de parution
septembre 2010
|
Domaines


Résumé
Depuis quelques années, l'exploitation des failles applicatives, en particulier des débordements de tampons, est rendue de plus en plus difficile par les protections mises en place dans les divers systèmes d'exploitation. En particulier, il est de plus en plus rare de pouvoir exécuter des données sur la pile. Dans la première partie de l'article, nous rappelons les techniques de retour dans la libc, permettant de contourner ces protections, en particulier lorsque les arguments des fonctions, ainsi que leur adresse (ASCII Armor), contiennent des octets nuls. Nous voyons dans un second temps comment automatiser la création de shellcodes dans une pile non exécutable, à l'aide d'une preuve de concept en Python qui interface des outils déjà existants, tels que objdump ou ldd. Enfin, nous présentons les évolutions de ces techniques et les progrès actuels dans le domaine du « Return Oriented Programming », dont l'objectif est d'aller plus loin qu'un simple chaînage de fonctions, en proposant par exemple des boucles ou des branchements.

La suite est réservée aux abonnés. Déjà abonné ? Se connecter

Sur le même sujet

Gestion de projets Python avec Pyenv et Pipenv : effet de mode ou solution efficace ?

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
106
|
Mois de parution
janvier 2020
|
Domaines
Résumé

Dans le cadre de développements Python, il y a deux éléments cruciaux : la gestion des environnements virtuels et la gestion des dépendances. Pour cela, il existe deux outils très efficaces : Pyenv et Pip. De plus en plus de développeurs substituent Pipenv à Pip et, en le couplant à Pyenv, présentent cela comme LA solution ultime ! Mais est-ce réellement le cas ?

Rançongiciels 101

Magazine
Marque
MISC
Numéro
107
|
Mois de parution
janvier 2020
|
Domaines
Résumé

Qu’ont en commun votre voisin, un fermier du Wisconsin, un centre hospitalier normand, les villes de Baltimore, de Johannesburg ou la Louisiane, la société Prosegur ? Tous ont été les victimes de ce qui en moins de dix ans est devenue une des principales menaces cyber : les rançongiciels.

Exodus Privacy – Vos applications n’auront plus de secrets pour vous

Magazine
Marque
Linux Pratique
Numéro
117
|
Mois de parution
janvier 2020
|
Domaines
Résumé

Si vous êtes soucieux de votre vie privée, Exodus Privacy pourra sans doute vous plaire. Cette application va en effet vous lister les permissions accordées aux applications installées sur votre appareil, mais aussi vous indiquer si celles-ci utilisent des pisteurs qui collecteront des données vous concernant.

C++ Moderne : C++17 (partie 2)

Magazine
Marque
GNU/Linux Magazine
Numéro
233
|
Mois de parution
janvier 2020
|
Domaines
Résumé

Dans le précédent article sur C++ 17, nous avons abordé les évolutions du langage et les évolutions de la STL orientées sur les types de bases. Continuons aujourd'hui notre découverte de C++ 17 !

Par le même auteur

Python Simple Smartcard Interpreter

Magazine
Marque
MISC
Numéro
52
|
Mois de parution
novembre 2010
|
Domaines
Résumé
Alors que les cartes à puce sont de plus en plus présentes dans notre environnement, et que les lecteurs, avec ou sans contact, sont de moins en moins chers, peu d'outils permettent aux usagers d'examiner le contenu de leurs cartes. Dans cet article, nous présentons tout d'abord la philosophie et l’objectif de notre outil libre, PSSI (Python Simple Smartcard Interpreter). Nous rappelons ensuite les bases concernant la communication avec une carte à puce, afin de comprendre ce dont l’outil permet de s’abstraire. Enfin, nous présentons un cas concret d’utilisation du logiciel pour lire une carte SIM.

Mémoire non exécutable : vers le Return Oriented Programming (ROP)

Magazine
Marque
MISC
Numéro
51
|
Mois de parution
septembre 2010
|
Domaines
Résumé
Depuis quelques années, l'exploitation des failles applicatives, en particulier des débordements de tampons, est rendue de plus en plus difficile par les protections mises en place dans les divers systèmes d'exploitation. En particulier, il est de plus en plus rare de pouvoir exécuter des données sur la pile. Dans la première partie de l'article, nous rappelons les techniques de retour dans la libc, permettant de contourner ces protections, en particulier lorsque les arguments des fonctions, ainsi que leur adresse (ASCII Armor), contiennent des octets nuls. Nous voyons dans un second temps comment automatiser la création de shellcodes dans une pile non exécutable, à l'aide d'une preuve de concept en Python qui interface des outils déjà existants, tels que objdump ou ldd. Enfin, nous présentons les évolutions de ces techniques et les progrès actuels dans le domaine du « Return Oriented Programming », dont l'objectif est d'aller plus loin qu'un simple chaînage de fonctions, en proposant par exemple des boucles ou des branchements.