GenDbg : un débogueur générique. Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion



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

Linux embarqué: une alternative à Windows CE?

Chapitre 2 : Abstraction et Virtualisation

CORBA. (Common Request Broker Architecture)

Environnements de développement (intégrés)

Évaluation et implémentation des langages

Point sur les solutions de développement d apps pour les périphériques mobiles

RTDS G3. Emmanuel Gaudin

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

Intervenants. Thomas d'erceville Project Manager. Christian NGUYEN Practice Manager IT Quality

Tivoli Endpoint Manager Introduction IBM Corporation

La technologie Java Card TM

Vulgarisation Java EE Java EE, c est quoi?

Le marché des périphérique mobiles

Administration de systèmes

Notice d Installation et d utilisation d une liaison Bluetooth avec un PDA ipaq.

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

La carte à puce. Jean-Philippe Babau

Diagrammes de Package, de déploiement et de composants UML

Traduction des Langages : Le Compilateur Micro Java

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

Iphone vs. Android. Mardi 17 Novembre 2009 Paris, la Défense. Xavier PARADON, Directeur Technique Valtech Training

DEVELOPPEMENT MOBILE - ETAT DE L ART DES SOLUTIONS

Vérifier la qualité de vos applications logicielle de manière continue

Plan de cette matinée

Rootkit pour Windows Mobile 6

AVIS DE VACANCE DE POSTE No. AfCHPR/06/2011 SPECIALISTE DES TECHNOLOGIES DE L INFORMATION ET DE LA COMMUNICATION (P2)

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

Armand PY-PATINEC 2010

Offre Référentiel d échange

Chapitre I Notions de base et outils de travail

Concept de machine virtuelle

Tsoft et Groupe Eyrolles, 2005, ISBN :

DotNet. Plan. Les outils de développement

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

LES SOLUTIONS DE CONNECTIVITÉ 4D

Les avantages de la virtualisation sont multiples. On peut citer:

Exigences système Commercial & Digital Printing

PHP et le Cloud. All rights reserved. Zend Technologies, Inc.

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES

Introduction à OPC. OPC est une spécification récente mais qui a rapidement évolué car elle est bâtie sur la spécification COM/DCOM.

MISE EN ŒUVRE MOVEIT DMZ V1.8

Qualité du logiciel: Méthodes de test

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

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

Sécurisation d un site nucléaire

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

Technicien Supérieur de Support en Informatique

Introduction aux Bases de Données Relationnelles Conclusion - 1

Programmation de services en téléphonie sur IP

CAHIER DES CHARGES D IMPLANTATION

Christian Soutou UML 2. pour les. bases de données. Avec 20 exercices corrigés. Groupe Eyrolles, 2007, ISBN :

Plate formes mobiles. Utilisation. Contexte 9/29/2010 IFC 2. Deux utilisations assez distinctes :

ALERT NOTICE D UTILISATION DU DRIVER PC-TEXTE

Livre Blanc XAMARIN. Le développement mobile multiplateforme

SPT Description du cours NORAMSOFT SPT2013. SharePoint 2013 pour développeurs

Présentation d HyperV

Mise en œuvre d une solution de virtualisation

ArcGIS 10.1 for Server

VMware ESX/ESXi. 1. Les composants d ESX. VMware ESX4 est le cœur de l infrastructure vsphere 4.

EXTENSION de Microsoft Dynamics CRM Réf FR 80452

Administration système à partir d un navigateur Web

Chapitre 1 Retour en arrière

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

Projet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn

µrv : Realité Virtuelle

Gestion et sécurisation des échanges XcMon, PMPI 03.31/2004 PDB. Global Data Exchange System

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

White Paper - Livre Blanc

GCOS 7 sur microprocesseur standard Diane Daniel POIRSON 14 octobre 2004 Matériels 64 / DPS 7 / DPS 7000 Architecture & Evolution - Daniel POIRSON 1

Accélérez votre émulateur Android

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Chapitre 1 Windows Server

-1 - Postes de travail graphiques

Virtual Box Mettez un PC dans votre... PC

Vérification formelle de la plate-forme Java Card

Nouveautés Ignition v7.7

Yann Struillou. Domaines de compétence. Développeur Web & Logiciels. 37 ans, en couple, 2 enfants. 19 hameau de Kerguillec Tréméoc

Recommandations techniques

WEA Un Gérant d'objets Persistants pour des environnements distribués

Burckel Thomas. Formation. Compétences

«Le malware en 2005 Unix, Linux et autres plates-formes»

FORMATION Offre de Formation - Packaging. Les bonnes pratiques du packaging avec Installshield et AdminStudio. Contact et inscriptions

Projet de développement

ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab

Un serveur web léger et ouvert

Modelio by Modeliosoft

INDUSTRIALISATION ET RATIONALISATION

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

Virtualisation CITRIX, MICROSOFT, VMWARE OLIVIER D.

Groupe Eyrolles, 2004 ISBN :

LES FONCTIONS DE SURVEILLANCE DES FICHIERS

Patrons de Conception (Design Patterns)

Fonctions. Solution professionnelle pour le stockage de données, la synchronisation multi- plateformes et la collaboration

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

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova

MailStore Server 7 Caractéristiques techniques

Qu est ce qu un un serveur?

Transcription:

GenDbg : un débogueur générique Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion 2008

Qui sommes nous? Centre d électronique de l Armement (CELAR) Maîtrise et protection de l information Division Sécurité des Systèmes d Information Département Analyse Menace Informatique

Que faisons nous? Analyses de sécurité informatique sur des systèmes de défense Systèmes d armes Systèmes d informations Logiciels industriels & commerciaux (COTS) Approche «boîte noire» Pas de codes sources disponibles Pas de spécifications détaillées Brochures commerciales ;-) Caractérisation des vulnérabilités et de leurs conditions d exploitation Connaissance de la menace («les méchants»)

Débogueur? Logiciel permettant l analyse dynamique de code machine État des registres & de la mémoire Exécution pas à pas des instructions Utilisé principalement Lors de la phase de mise au point des programmes et des exploits Lors de l analyse d un système fermé

Générique? C est-à-dire non lié à Une Plateforme PC, Mac, SmartPhone, PocketPC Une Architecture IA-32, IA-32e, IA-64, ARM, PowerPC Un Système d exploitation Windows NT, Linux, IOS, WinCE, Symbian

Motivations De plus en plus d informatique embarquée & communicante Architectures hétérogènes Technologies civiles intégrées dans des systèmes militaires (hard et soft) Continuer à évaluer ces systèmes avec les méthodes «AMI» Outillage

Motivations Chaque environnement de développement propose son propre débogueur IHMs, APIs, Syntaxes, mises en œuvre différentes à chaque fois Solutions non pérennes Ex: Softice Solutions essentiellement PC/Windows/Intel OllyDbg (Win32), WinDbg Solutions «génériques» mais pas trop Gdb, Rasta Ring0 (Intel)

GenDbg : nos besoins Besoins liés à l outil Maîtrise APIs, code (ce sont NOS bugs!) Maintien du niveau d expertise Modularité Extensibilité, développement collaboratif Généricité Plateforme, architecture, OS

Fonctionnalités et choix IHM mode texte «à la softice» Efficacité Moteur de script «maison» Réutilisation, cohérence avec d autres outils Architecture client/serveur ouverte Modularité Travail sur machine distante Notion de «stubs» empruntée à Gdb Protocole de communication simple

Abstractions logicielles Programmation C/ASM mais approche objet pour la conception Les modules manipulent des types abstraits (structures de données) via des méthodes (fonctions) fournies par le framework et/ou d autres modules Ex de données structurées: Adresses mémoire, Contexte d exécution, Datas Ex de méthode: AddressToTxt( ) Adresse virtuelle «0008:40200000»

Architecture Minimale Trois composants logiciels nécessaires et suffisants : Framework + Stub + module ASM

Le Framework Implémenté sous la forme d un binaire Win32. Gère l IHM «softice like» Les communications inter-modules Callbacks Helpers functions La communication avec les Stubs Protocole GenDbg Liaison série, PIPE Moteur de script

Stubs «Têtes de pont» Le seul code devant s éxecuter sur la machine cible Fortement liés à l OS et/ou à l Architecture Gestion d interruptions/exceptions Les stubs implémentent des primitives: Lecture/écriture de registres Lecture/écriture de la mémoire Fonctions privées Le stub identifie la cible Plateforme, Architecture, OS Communication série

Modules ASM Désassembleurs/Assembleurs Liés à une architecture Ex: IA-32 En charge de la représentation Des Registres Du Code (Mnémoniques) Données Adresses mémoire

Modules complémentaires A cette architecture «minimale» peuvent s ajouter des modules optionnels : Modules de Commandes Modules OS Helpers Modules de Symboles Modules de BreakPoints Optionnels mais néanmoins bien utiles! PROC, MOD, DRIVER, DEVICE

Modules CMD Modules de commandes additionnelles Enrichissent le jeu de commandes de base inclu dans le framework Ex: les commandes IDT, GDT, TSS sont implémentées dans un module de commande lié à l architecture IA-32

Modules OS Helpers Offrent des services et des fonctionnalités propres à l OS cible Signalisation d évènements Chargement/déchargement de module Création/destruction de processus/thread GetModuleBase( ) GetAddressInfo( ) Teste l appartenance d une adresse à un module

Modules SYM Ces modules permettent l association d adresses et de symboles. Ok?

Modules BP Breakpoint Extenders Ces modules ajoutent des fonctionnalités pour positionner des points d arrêts dans le flot d exécution. S appuient sur les spécificités de l architecture cible Ex: prise en charge des BPM sur Intel

Architecture Complète

Tuyauterie

MultiStub GenDbg peut utiliser plusieurs stubs pour déboguer une même application. Utile pour les machines virtuelles (java) ou les langages interprétés Permet d avoir plusieurs niveaux de «visibilité» Ex: un stub trace le code interprété tandis qu un autre peut tracer le code natif de l OS ou de la machine virtuelle

Architecture complète multistub

GenDbg : initialisation

GenDbg aujourd hui Un framework Win32 Gendbg.c = 480ko = 12000 lignes de C 12 Stubs Win32 (Debug API)/Intel, Linux/Intel Ring0, WinNT/Intel Ring0, Java,.NET, VB (sous stub), WinCE/ARM, Wrapper Gdb, BIOS (Intel mode réel), Linux/Intel Ring 3 (Ptrace API) 50 Modules 6 Modules ASM PPC, ARM, Java,.NET, PCODE VB, x86 32 bits 5 Modules OS Helpers WinNT, Win32, Java, BIOS, WinCE 11 Modules de Commandes Generic IA-32, WinNT, Generic ARM 3 Modules de Symboles PE, PDB, BIOS 2 Modules Breakpoint Extenders Gestion BPM Intel 5 développeurs

C est disponible? Les spécifications du framework sont documentées SDK Gendbg.h & co Définitions des interfaces de programmation Définitions des types de données L implémentation du framework peut être distribuée sous forme binaire Stub Win32 + Jeu de modules de base Tests & évaluations

TO DO List OS Helpers Travail important pour les OS «fermés» Connaissance approfondies des mécanismes internes de l OS NT support multi cœurs Support architecture IA-64 et IA-32e Stubs Modules de commandes Scripts

Questions? Contact : jean-marie.fraygefond@dga.defense.gouv.fr

Démo multistub Application Visual Basic PCode Stub Win32 + sous-stub VB L interpréteur VB (MSVBM60.DLL) est vu comme un microprocesseur virtuel par le sous-stub VB simulation d exceptions Framework Attention ça pique un peu les yeux