ERESI : une plate-forme d'analyse binaire au niveau noyau. The ERESI team http://www.eresi-project.org



Documents pareils
ERESI : une plate-forme d analyse binaire au niveau noyau

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

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

Annexe : La Programmation Informatique

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

Chapitre 2 : Abstraction et Virtualisation

Conditions : stage indemnisé, aide au logement possible, transport CEA en Ile-de-France gratuit.

Un serveur web léger et ouvert

Utilisation de matériels industriels avec des outils de virtualisation open source. Open Source dans le monde industriel

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

La technologie Java Card TM

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

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

Chapitre I Notions de base et outils de travail

Vulgarisation Java EE Java EE, c est quoi?

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

Conservation des documents numériques

Introduction aux Systèmes et aux Réseaux, Master 2 CCI

Initiation à la sécurité

SRS Day. Attaque BitLocker par analyse de dump mémoire

Plan global Outils de développement et compilation. Plan. Objectifs des outils présentés. IDE, GCC/Clang, ASAN, perf, valgrind, GDB.

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Plan du cours. Historique du langage Nouveautés de Java 7

FusionInventory. Guillaume Rousse Journées francophones de Perl 2011

CAHIER DES CHARGES D IMPLANTATION

Virtualisation open source État de l'art

les techniques d'extraction, les formulaires et intégration dans un site WEB

DenyAll Detect. Documentation technique 27/07/2015

A propos de la sécurité des environnements virtuels

FICHE PRODUIT COREYE CACHE Architecture technique En bref Plateforme Clients Web Coreye Cache applicative Références Principe de fonctionnement

L informatique en BCPST

Playing with ptrace() for fun and profit

Exonet : sauvegarde automatisée d une base de données

Compilation (INF 564)

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

Virtualisation sous Linux L'age de raison. Daniel Veillard

Acquisition des données

Plan de la conférence. Virtualization. Définition. Historique. Technique. Abstraction matérielle

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

DÉVELOPPER DES APPLICATIONS WEB SÉCURISÉES

Datalift. + + Architecture Modularité Déploiements. d j = 09/04/2015 Laurent BIHANIC

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

Présentation d HyperV

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

OWASP Open Web Application Security Project. Jean-Marc Robert Génie logiciel et des TI

EVOLUTION ACTIVE DIRECTORY Windows 2012R2

Visualization sur Ubuntu: Quels Choix? Nicolas Barcet

Sybase PowerAMC 16. Guide des nouvelles fonctionnalités générales. DOCUMENTATION

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

Chapitre 1 Windows Server

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Le concept de virtualisation regroupe

EA D S INNOVA TION W ORKS. Pass The Hash. Nicolas RUFF EADS-IW SE/CS nicolas.ruff (à) eads.net

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

White Paper - Livre Blanc

Une approche de virtualisation assistée par le matériel pour protéger l espace noyau d actions malveillantes

Table des matières Hakim Benameurlaine 1

Hyper-V Virtualisation de serveurs avec Windows Server 2008 R2 - Préparation à l'examen MCTS

Mettre en place une infrastructure Web nouvelle génération avec Drupal et Acquia

CORBA. (Common Request Broker Architecture)

Session 8: Android File System

FOG : Free Open-Source Ghost. Solution libre de clonage et de déploiement de systèmes d'exploitation.

Module : Virtualisation à l aide du rôle Hyper-V

Thème 3 Conception et vérification d architectures de systèmes sur puce

Linux embarqué: une alternative à Windows CE?

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

Développement de projets logiciels à l'aide de Python

Services RDS de Windows Server 2012 R2 Remote Desktop Services : Installation et administration

Table des matières. Chapitre 1 Les architectures TSE en entreprise

INDUSTRIALISATION ET RATIONALISATION

Création d un «Web Worm»

Veeam Backup & Replication

Enseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing

MANUEL D INSTALLATION DE WATCHDOC 2011 (EVALUATION)

Automatiser la création de comptes utilisateurs Active Directory

Tivoli Endpoint Manager Introduction IBM Corporation

Le Framework.Net. Introduction. Pourquoi.Net?

Chapitre 01 Généralités

Stratégie de sécurité grâce au logiciel libre. Frédéric Raynal Cédric Blancher

LA GOUVERNANCE, OU COMMENT RAPPROCHER LES ÉQUIPES DE DÉVELOPPEMENT ET D INFRASTRUCTURE

Hands on Openstack : Introduction

LA PROTECTION DES DONNÉES

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Dix raisons de passer à WINDOWS SERVEUR 2008

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

La gestion du poste de travail en 2011 : Panorama des technologies

Hyper-V v2 : une évolution majeure des services de virtualisation

Systèmes en réseau : Linux 1ère partie : Introduction

Virtualisation & Sécurité

Partie 7 : Gestion de la mémoire

SQL Parser XML Xquery : Approche de détection des injections SQL

ASP.NET MVC 4 Développement d'applications Web en C# - Concepts et bonnes pratiques

Perspectives pour l entreprise. Desktop Cloud. JC Devos IBM IT Architect jdevos@fr.ibm.com IBM Corporation

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

But de cette présentation

Windows Server Chapitre 1: Découvrir Windows Server 2008

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion

MRTG & RRD Tool. Multi Router Traffic Grapher

Transcription:

ERESI : une plate-forme d'analyse binaire au niveau noyau The ERESI team http://www.eresi-project.org

ERESI: quelques rappels 7 années de développement Plusieurs contributeurs 5 logiciels, 14 bibliothèques GPL : Intégré dans différentes distributions

Le reverse engineering: Différents besoins Audit de vulnérabilités Compatibilité Propriété intellectuelle

Analyse de programmes: Statique: Structure du binaire Symboles, sections, point d'entrée... Représentation logique Graphe d'exécution, dépendances... Dynamique: Debug, Traces Analyse des données E/S.

La Plateforme Eresi: Un ensemble d'outils: Logiciels scriptables. Bibliothèques et API. Plusieurs architectures: Ia32, Sparc, Mips Plusieurs plateformes : Linux, Bsd, Solaris

Évolution du projet Eresi. Les premiers composants : le projet Elfsh Libelfsh : extraction ELF Libasm : Désassemblage et typage multiarchitecture Libmjollnir : Graphe d'exécution, empreintes de fonctions

Évolution du projet Eresi Vers une interface de scripting. Librevm : interpreteur de commandes, types (annotation), session Libaspect : vecteurs (modularité, portabilité), configuration Libstderesi : abstraction et accès au framework Eresi

Évolution du projet Eresi. De l'analyse statique à l'analyse dynamique Libedfmt : extraction des informations de debug Liballocproxy : allocation mémoire autonome Libetrace/Libe2dbg : abstraction de ptrace

Le scripting haut niveau Plusieurs logiciels scriptables. Langage riche. Accès aux structures internes.

Un exemple de scripting set $num 1.sht.num foreach $elem of 0 until $num print 1.sht[$elem].size forend De nombreux exemples sur le site Eresi ;)

Les outils du framework Eresi Elfsh : Un logiciel de manipulation de binaires Elf Etrace/E2dbg : Des outils d'analyse dynamique. Pas d'utilisation de ptrace. Des performances accrues : pas de changement de contexte.

Eresi et le noyau : De nouveaux composants: Libkernsh Libke2dbg Kernsh Ke2dbg

Analyse noyau, Préambule :

Analyse noyau, Préambule :

Analyse noyau, Préambule :

Analyse noyau : Le saint Graal! Plaguez (Weakening The Linux Kernel) On the fly : sd et devik (Linux on th fly kernel patching without LKM) Silvio Cesare (Runtime Kernel Patching) Exploiting : sgrakkyu and twiz (Attacking the Core : Kernel Exploiting Notes) Duverger (Exploitation Noyau)

ERESI : deux nouveaux projets : Analyse dynamique : Kernsh Debug du kernel : Ke2dbg Uniquement sous des OS libres

KERNSH : Shell Userland Kernelland Premier développement en 2001 : Samuel Dralet, Nicolas Brito et Kstat (et tous les contributeurs anonymes!!)(merci) Linux 2.4.X, pas modulaire, mais bien fun! 2007 : Renaissance du projet (comme le phoenix!) Intégration dans ERESI Design pour les rootkits?!?

KERNSH : Shell Userland Bibliothèque de communication Kernelland : Périphérique mémoire : /dev/(k)mem /proc/kcore (lecture seule) LKM (appel système, /proc) Kernel static (binaire elf) Réutilisation du framework ERESI (librevm, libelfsh, libasm, libaspect)

Kernsh :

KERNSH : Lecture/Écriture dans la mémoire kernel ou kernel static En langage ERESI Basculement mode static <-> dynamic Ne pas réinventer la roue : get_raw Surchage des fonctions existantes pour utiliser libkernsh elfsh_get_raw revm_get_raw

[KERNSH] Allocation, Libération mémoire : Mémoire kernel contiguë/non contiguë kmalloc/vmalloc Utilisation d'un syscall libre

[KERNSH] Allocation, Libération mémoire : Mémoire kernel contigüe/non contigüe kmalloc/vmalloc Utilisation d'un syscall libre

[KERNSH] Allocation, Libération mémoire : Mémoire kernel contigüe/non contigüe kmalloc/vmalloc Utilisation d'un syscall libre Utlisation d'un syscall existant sys_sethostname sys_setdomainname sys_reboot old_*

[KERNSH] Allocation, Libération mémoire :

[KERNSH] Injection de code : D'objets ET_REL :.o.ko! Repose sur libelfsh : Modification de la fonction de relocation : Allocation de mémoire kernel Lecture/Écriture dans la mémoire kernel Utilisation de libkernsh

[KERNSH] Injection de code :

[KERNSH] Injection de code :

[KERNSH] Redirection de fonction : Redirection de fonction en mémoire kernel rediriger la fonction X vers la fonction Y Technique CFLOW (jump jump jump!) X : jmp vers la fonction Y Y : jmp vers la fonction X Repose sur libelfsh

[KERNSH] Redirection de fonction :

[KERNSH] Redirection de fonction :

[KERNSH] Redirection de fonction :

[KERNSH] Structures Kernel : Définition de nos propres types via librevm : créer nos propres structures dynamiquement Recréer les structures existantes du kernel! Correspondance d'une structure vers une adresse (mémoire ou dans le binaire) Tous les accès à la mémoire noyau peuvent être en script ERESI!!

[KERNSH] Structures Kernel :

[KERNSH] Structures Kernel :

[KERNSH] Structures Kernel :

[KERNSH] Structures Kernel :

[KERNSH] Processus : Lecture/Écriture dans la mémoire virtuelle des processus LKM effectuant la liaison Récupération du bloc dans une page pour une adresse virtuelle X et une taille Y Dump automatique des VMA d'un processus (intéressant pour le forensic!)

[KERNSH] Processus :

[KERNSH] Processus :

[KERNSH] Autres : Affichage de la sys_call_table, idt, gdt, symbols Hash de fonctions (ou portions) Désassemblage de la mémoire kernel (fonctions, etc) Redirection d'init des LKM...

[KERNSH] Exemple redirection :

[KERNSH] Exemple redirection :

[KERNSH] Exemple redirection :

[KERNSH] Exemple redirection :

[KERNSH] Exemple redirection :

[KERNSH] Exemple Intégrité :

[KERNSH] Inconvénients : Changement de contexte Problèmes de performance Fiabilité des informations récupérées Bug en SMP

KE2DBG : Kernel Debugger Basé sur rr0d Chargement en LKM Intégration de tout le framework Code userland à migrer en kernelland

Prochaines étapes : Élargir le spectre des architectures ARM, PPC, AMD64 Enrichir les fonctionnalités du debugger Libmjollnir/Liballocproxy pour le kernel Vos contributions!!!

team@eresi-project.org The ERESI team vous souhaite un bon : HAPPY HACKING! Questions?