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

Introduction au dossier : Zero Trust : avenir de la sécurité ou chimère marketing ?

Magazine
Marque
MISC
Numéro
110
|
Mois de parution
juillet 2020
|
Domaines
Résumé

Derrière ce titre modéré, il aurait été trop facile d’être provocateur, se cache une référence que nos lecteurs historiques auront relevée. Il y a plus de dix ans maintenant, au SSTIC 2008, Cédric Blancher donnait une conférence dont le titre était : « Dépérimétrisation : Futur de la sécurité ou pis aller passager ? ». Les constats de l’époque, qui ne doivent pas être loin pour de nombreuses entreprises encore aujourd’hui, sont que les paradigmes de sécurité des réseaux informatiques ont des limites importantes : difficulté à mettre en place du contrôle d’accès ainsi qu’une segmentation et un filtrage réseau efficace.

Sécurité de l'implémentation standard de VXLAN

Magazine
Marque
MISC
Numéro
110
|
Mois de parution
juillet 2020
|
Domaines
Résumé

Cet article de sensibilisation met en avant une faiblesse de la RFC 7348 permettant de réaliser une attaque du type « homme du milieu ». Il décrit d'abord le fonctionnement de VXLAN, explique ensuite le mécanisme exploité et les dangers associés, puis propose des recommandations ainsi qu'une alternative.

Machine Learning sur des objets connectés avec TensorFlow Lite pour l’agriculture verticale

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

Tout au long de cet article, nous verrons comment déployer des algorithmes de Deep Learning sur des objets connectés grâce à TensorFlow Lite. Nous verrons comment l’utiliser pour concevoir une « ferme verticale » capable de prédire et optimiser la production de légumes, aussi bien chez soi que dans des pays en voie de développement où la connexion internet est intermittente.

À la découverte de Godot

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
109
|
Mois de parution
juillet 2020
|
Domaines
Résumé
  • Godot ? D'habitude on l'attend, on ne le découvre pas, comme dans la pièce de théâtre de Samuel Beckett...
  • Je parle du moteur 3D.
  • Un moteur 3D ? Non, je connais Unity, Unreal Engine, mais pas celui-là.
  • Alors, découvrons dans cet article Godot, « The game engine you waited for ».

Les enjeux de sécurité autour d’Ethernet

Magazine
Marque
MISC
HS n°
Numéro
21
|
Mois de parution
juillet 2020
|
Domaines
Résumé

Quand nous parlons attaque, cela nous évoque souvent exploit, faille logicielle, ou même déni de service distribué. Nous allons revenir à des fondamentaux réseaux assez bas niveau, juste après le monde physique, pour se rendre compte qu’il existe bel et bien des vulnérabilités facilement exploitables par un attaquant. Nous verrons également qu’il existe des solutions pour s’en protéger.

Émulation d’un circuit comportant un processeur Atmel avec simavr

Magazine
Marque
Hackable
Numéro
34
|
Mois de parution
juillet 2020
|
Domaines
Résumé

Il existe de nombreux cas où le matériel n’est pas disponible pour développer un système embarqué, que ce soit parce que la carte commandée n’a pas encore été livrée, parce que le collègue chargé de la conception du circuit imprimé a fait une erreur ou est en retard, ou parce qu’un virus interdit l’accès aux salles de travaux pratiques de l’Université (Fig. 1). Pour toutes ces raisons, nous désirons appréhender le développement d’un système embarqué sur un émulateur, c’est-à-dire un logiciel capable de fournir une représentation fidèle du comportement du dispositif réel, incluant ses latences et temporisations.

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.