Return Oriented Programming



Documents pareils
HERVÉ SCHAUER CONSULTANTS Cabinet de Consultants en Sécurité Informatique depuis 1989 Spécialisé sur Unix, Windows, TCP/IP et Internet.

Initiation à la sécurité

Compte-rendu Black Hat et Defcon

Analyse des protections et mécanismes de chiffrement fournis par BitLocker

SSTIC Désobfuscation automatique de binaires. Alexandre Gazet. Yoann Guillot. Et autres idyles bucoliques...

GlobalScape Secure FTP Server Buffer Overflow

Sécurité des applications Retour d'expérience

Menaces et sécurité préventive

HERVÉ SCHAUER CONSULTANTS Cabinet de Consultants en Sécurité Informatique depuis 1989 Spécialisé sur Unix, Windows, TCP/IP et Internet JSSI INSA

Extraction de données authentifiantes de la mémoire Windows

SANS SEC 504 : Techniques de hacking, exploitation de failles et gestion des incidents

Table des matières. Avant-propos... Préface... XIII. Remerciements...

Virtualisation et Sécurité

Introduction sur les risques avec l'informatique «industrielle»

Les clauses sécurité dans un contrat de cloud

Mobilité et sécurité

Nouveaux outils de consolidation de la défense périmétrique

Les risques HERVE SCHAUER HSC

Sécurité du cloud computing

Sécurité de la Voix sur IP

Les attaques par corruption de mémoire Synopsis Mickael Deloison 22/10/2008

Consulter notre site : Network Telecom Security Solutions. en partenariat technique avec

ISO 27001:2013 Béatrice Joucreau Julien Levrard

VoIP ( H323,SIP) et sécurits. curité. Kamel HJAIEJ SUP COM

Retour sur investissement en sécurité

Playing with ptrace() for fun and profit

Menaces et vulnérabilités sur les réseaux et les postes de travail

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

Logiciel de base. Première année ENSIMAG

Sécurité des Postes Clients

Architecture des ordinateurs

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Les clauses «sécurité» d'un contrat SaaS

Programmation assembleur : aperçu

La conformité et sa dérive par rapport à la gestion des risques

Introduction aux buffer overflow, CS335

Atelier Pivoting KHOULOUD GATTOUSSI (RT3) ASMA LAHBIB (RT3) KHAOULA BLEL (RT3) KARIMA MAALAOUI (RT3)

ISEC. Codes malveillants

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

Retour d expérience sur Prelude

Programmation C. Apprendre à développer des programmes simples dans le langage C

TEST D INTRUISION. Document Technique

Systèmes d exploitation

Catalogue de formation LEXSI 2013

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

LICENCE PROFESSIONNELLE SYSTEMES INFORMATIQUES & LOGICIELS

La sécurité applicative

Les failles Format String

Attaques applicatives

Sécurité des bases de données Nicolas Jombart Alain Thivillon

Chapitre 2 : Abstraction et Virtualisation

Architecture des ordinateurs

VoIP et sécurité. Retour d'expérience d'audits de sécurité. 6 avril Hervé Schauer CISSP, ProCSSI, ISO Lead Auditor <Herve.Schauer@hsc.

VoIP : révolution ou dévolution?

L ASSURANCE QUALITÉ ET SÉCURITÉ DE VOTRE SYSTÈME D INFORMATION

EA D S INNOVA TION W ORKS. Mobilité et sécurité. Nicolas RUFF nicolas.ruff [à] eads.net

S Catalogue des Formations Sécurité. Présentation. Menu. Présentation P.2 Nos formations P.3 Modalités P.9 Bulletin d inscription P.

CATALOGUE DES FORMATIONS SECURITE INFORMATIQUE

Spécifications Techniques Générales. Techno Pole Internet. Lycée Djignabo / Ziguinchor

Sage 100 CRM Les compatibilités Version Mise à jour : 2015 version 8

Sécurité Informatique : Metasploit

Gestion des identités

Désobfuscation automatique de binaire - The Barbarian Sublimation

Yann BECHET 32 ans 8 ans d expérience yann@bechet.org

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

Rapport de certification ANSSI-CSPN-2010/07. KeePass Version 2.10 Portable

Compromission d'un environnement VOIP Cisco Exploitation du Call Manager SSTIC Francisco. Juin 2013 LEXFO 1

Alexandre Buge Epitech 5 Promo Soutenance de stage du 01/03/2004 au 31/08/2004

Expérience d un hébergeur public dans la sécurisation des sites Web, CCK. Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet

laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

ERESI : une plate-forme d'analyse binaire au niveau noyau. The ERESI team

Outils libres d'audit et d'intrusion pour les réseaux Wi-Fi

Actuellement, de nombreux outils techniques et technologiques sont disponibles pour assurer la sécurité d un système d information.

The Mozilla Art Of War. David Teller. 20 septembre Laboratoire d Informatique Fondamentale d Orléans. La sécurité des extensions.

L'infonuagique, les opportunités et les risques v.1

Systèmes informatiques d entreprise

Sécurité des Applications Web Comment Minimiser les Risques d Attaques les plus Courants

VoIP et sécurité. Retour d'expérience d'audits de sécurité. 7 juillet 2006

Structure d un programme

LA PROTECTION DES DONNÉES

Compromettre son réseau en l auditant?

Calendrier crim.ca/formation

Club toulousain

Exemples d'intrusion sur les réseaux VoIP

Certification en sécurité

Rappels réseaux TCP/IP

FORMATIONS EN SECURITE INFORMATIQUE

HERVÉ SCHAUER CONSULTANTS Cabinet de Consultants en Sécurité Informatique depuis 1989 Spécialisé sur Unix, Windows, TCP/IP et Internet ISO 27001:2013

Découverte de réseaux IPv6

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

Les vulnérabilités du noyau. LECORNET Olivier LEGROS Bruno VIGIER Nicolas Promo 2005

Vector Security Consulting S.A

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

Fiche Technique. Cisco Security Agent

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

SRS Day. Vue d ensemble. Avérous Julien-Pierre

Christophe Pagezy Directeur Général Mob:

Transcription:

HERVÉ SCHAUER CONSULTANTS Cabinet de Consultants en Sécurité Informatique depuis 1989 Spécialisé sur Unix, Windows, TCP/IP et Internet GS Days 2010 Return Oriented Programming Jean-Baptiste Aviat <Jean-Baptiste.Aviat@hsc.fr>

Hervé Schauer Consultants Société de conseil en sécurité informatique depuis 1989 Prestations intellectuelles d'expertise en toute indépendance Pas de distribution, ni intégration, ni infogérance, ni investisseurs, ni délégation de personnel Prestations : conseil, études, audits, tests d'intrusion, formations Domaines d'expertise Sécurité Windows / Unix et Linux / embarqué Sécurité des applications Sécurité des réseaux TCP/IP, téléphonie, réseaux opérateurs, réseaux avionique, VoIP, etc. Organisation de la sécurité Certifications CISSP, ISO 20000-1 Lead Auditor, ISO 27001 Lead Auditor, ISO 27001 Lead Implementor, ISO 27005 Risk Manager, ITIL, ProCSSI, GIAC GCFA -2- Copyright Hervé Schauer Consultants 2009 - Reproduction Interdite

Buffer overlow : le principe Il s agit d une erreur de programmation! Touche les langages bas niveau......ou les bibliothèque des langages haut niveau! (ou leur coeur..., par exemple PHP : http://www.suspekt.org/) Une mémoire de capacité n octets est réservée On écrit y plus de n octets On empiète sur la mémoire voisine! Des données alentour sont écrasées. 3/37

Une menace réelle Code Red (2001), IIS 5.0 Slammer (2003), MSSQL 2000 Twilight Hack (2008), Nintendo Wii iphone Jailbreak (2010), jailbreakme.com Et de nombreuses vulnérabilités dans la nature... 4/37

Exécution légitime 5/37

Exécution légitime 6/37

Exécution légitime 7/37

Exécution légitime 8/37

Exécution légitime 9/37

Exécution légitime 10/37

Exécution légitime 11/37

Si le fichier contient plus de 50 octets... Que se passe-t-il? 12/37

On écrase l adresse de retour! Le programme plante... 13/37

De l écrasement à l exécution Insertion du code exécutable (compilé) dans le fichier La sauvegarde d EIP est écrasé par l adresse de ce code c est à dire le début du tableau b Au retour de la fonction... EIP reçoit l adresse de b Et notre code est exécuté! 14/37

15/37

16/37

17/37

Contres-mesures aux buffers overflows Ajouter des «canaris» Valeurs aléatoires présentes sur la pile Vérifiées avant le retour de la fonction, Le programme s arrête si elles ont été écrasées Rendre la pile non exécutable! Le processeur refusera d exécuter du code situé dans une zone mémoire correspondant à une pile 18/37

Contournement Appeler des fonctions du binaire : System() WinExec() Possibilité d exécuter des commandes! En n écrivant que les arguments sur la pile Et l adresse de la fonction à appeler «return into libc» 19/37

return into libc 20/37

return into libc 21/37

return into libc 22/37

Contres-mesures au ret-into-libc Compiler les librairies sans les fonctions dangereuses Complexe, pas toujours possible Inclure des 0x00 dans les adresses des fonctions dangereuses Ne protège pas dans tous les cas Meilleure solution : Rendre aléatoire l adresse des fonctions! Pour ce faire, les librairies sont chargées avec une adresse aléatoire L attaquant ne connaît plus l adresse de la fonction 23/37

Utilité de l ASLR 24/37

Contournement : ROP Return Oriented Programming! (enfin) Principe : Utiliser des bouts de code en mémoire Nommés «gadgets» Terminés par des : RET POP EIP Nécessite : au moins une librairie sans ASLR suffisamment grande 25/37

ROP : Exemple de fonctionnement Copie du shellcode en zone non exécutable Simplement l overfow Transformation d une zone NX en zone X Avec VirtualAlloc() Copie du shellcode dans cette zone Exécution du shellcode! VirtualAlloc(0, 0x200, MEM_COMMIT, PAGE_EXECUTE_READWRITE) ; 26/37

ROP : Exemple de fonctionnement 27/37

ROP : Exemple de fonctionnement 28/37

ROP : Exemple de fonctionnement 29/37

ROP : Exemple de fonctionnement 30/37

ROP : caractéristiques Permet d introduire des conditions ou des boucles Dans le code injecté Preuve qu il est inutile de minimiser les bibliothèques Autorise l exécution avec : NX (OS «récents») zones mémoires signées (iphone) Nécessite : De la place sur la pile Une construction plus ou moins complexe 31/37

Recherche des gadgets Besoin de lister les instructions RET = 0xC3 Puis les instructions précédentes Puis les ordonner afin de pouvoir les choisir 32/37

Combien de gadgets? Pour une instruction RET entrypoint_0: or al, ch ; @0 08e8 imul eax, [esi], 0 ; @2 6b0600 add al, ch ; @5 00e8 cli ; @7 fa push es ; @8 06 add [eax], al ; @9 0000 call 0f775h ; @0bh e865f70000 x:0f775h dec eax ; @10h 48 add esp, 8 ; @11h 83c408 ret ; @14h c3 x:unknown? 33/37

Combien de gadgets? Pas 1 ;) 34/37

Recherche des gadgets Outil interne HSC Ruby Basé sur Metasm (https://github.com/jjyg/metasm/) Multi-architectures Comme Metasm : ELF, PE, MachO... Profondeur de recherche arbitraire Autres outils RopeME, www.vnsecurity.net/2010/08/ropeme-rop-exploit-made-easy Linux uniquement Immunity Debugger plugins, http://seanhn.wordpress.com/ non public Metasploit? 35/37

Choix des gadgets Méthode Zynamics : Une thèse! Et un compilateur de gadgets Méthode «standard» : À la main! Grep et petits scripts 36/37

Merci! Des questions? 37/37