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

L’intégration du « Privacy by Design » et de la SSI dans la gestion de projets en mode V ou Agile

Magazine
Marque
MISC
Numéro
106
|
Mois de parution
novembre 2019
|
Domaines
Résumé

L’analyse de l’actualité ne cesse de nous alerter sur la très faible prise en compte de la sécurité native dans un grand nombre de projets et plus particulièrement sur la sous-estimation de l’intégration des exigences de protection de la vie privée.Les articles 25 du RGPD « Protection des données dès la conception et protection des données par défaut » et 32 « Sécurité du traitement », formalisent l’obligation pour le responsable du traitement de prendre en compte les exigences juridiques et techniques pendant toutes les phases des projets de la conception jusqu’à la fin de vie du système cible.Nous nous attacherons à identifier les principaux acteurs concernés et leurs modes de concertation dans les gestions de projets en V ou Agile.Nous chercherons à souligner les points d’attention et d’amélioration dans les deux méthodes.

Pytype versus Mypy : quel outil pour vérifier les types en Python ?

Magazine
Marque
GNU/Linux Magazine
Numéro
231
|
Mois de parution
novembre 2019
|
Domaines
Résumé

Il y a quelque temps, j'avais écrit un petit article sur le typage en Python [1]. Dans cet article je présentais deux outils de vérification : Mypy et Pyre, mais il existe un autre outil, Pytype qui, lui, est donné pour capable d'inférer automatiquement le type des variables. Bonne nouvelle ?

Élévation de privilèges sur macOS avec CVE-2018-4193

Magazine
Marque
MISC
Numéro
106
|
Mois de parution
novembre 2019
|
Domaines
Résumé

Cet article explique comment exploiter la CVE-2018-4193, une élévation de privilèges affectant les versions de macOS inférieures à 10.13.5, en moins de 10 secondes. Les différents prérequis nécessaires à la compréhension de l’exploit seront détaillés de sorte qu’aucune connaissance préalable de macOS ne soit nécessaire, ce qui permet d’aborder l’exploitation de vulnérabilités dans les démons macOS en général.

Créez des templates pour vos projets Python avec Cookiecutter

Magazine
Marque
GNU/Linux Magazine
Numéro
231
|
Mois de parution
novembre 2019
|
Domaines
Résumé

Il peut être rébarbatif de taper toujours les mêmes lignes, lorsque l'on démarre des projets dans un même domaine. Les risques d'erreurs sont grands et le copier-coller n'est pas non plus exempt de risques d'erreurs, sans parler de l'impossibilité de personnaliser le contenu. Les modèles - ou templates - constituent La solution...

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.