English Version


Toutes les publications


Le 07/05/2015

Automated Identification of Cryptographic Primitives in Binary Code with Data Flow Graph Isomorphism

Softwares use cryptographic algorithms to secure their communications and to protect their internal data. However the algorithm choice, its implementation design and the generation methods of its input parameters may have dramatic consequences on the security of the data it was initially supposed to protect. Therefore to assess the security of a binary program involving cryptography, analysts need to check that none of these points will cause a system vulnerability. It implies, as a first step, to precisely identify and locate the cryptographic code in the binary program. Since binary analysis is a difficult and cumbersome task, it is interesting to devise a method to automatically retrieve cryptographic primitives and their parameters.

In this paper, we present a novel approach to automatically identify symmetric cryptographic algorithms and their parameters inside binary code. Our approach is static and based on DFG (Data Flow Graph) isomorphism. To cope with binary codes produced from different source codes and by different compilers and options, the DFGs is normalized using code rewrite mechanisms. Our approach differs from previous works, that either use statistical criteria leading to imprecise results, or rely on heavy dynamic instrumentation. To validate our approach, we present experimental results on a set of synthetic samples including several cryptographic algorithms, binary code of well-known cryptographic libraries and reference source implementation compiled using different compilers and options.


Du 03/06/2014 au 05/06/2014

Towards automated protocol reverse engineering using semantic information

Network security products, such as NIDS or application firewalls, tend to focus on application level communication flows. However, adding support for new proprietary and often undocumented protocols, implies the reverse engineering of these protocols. Currently, this task is performed manually. Considering the difficulty and time needed for manual reverse engineering of protocols, one can easily understand the importance of automating this task. This is even given more significance in today's cybersecurity context where reaction time and automated adaptation become a priority. Several studies were carried out to infer protocol's specifications from traces. As shown in this article, they do not provide accurate results on complex protocols and are often not applicable in an operational context to provide parsers or traffic generators, some key indicators of the quality of obtained specifications. In addition, too few previous works have resulted in the publication of tools that would allow the scientific community to experimentally validate and compare the different approaches. In this paper, we infer the specifications out of complex protocols by means of an automated approach and novel techniques. Based on communication traces, we reverse the vocabulary of a protocol by considering embedded contextual information. We also use this information to improve message clustering and to enhance the identification of fields boundaries. We then show the viability of our approach through a comparative study including our reimplementation of three other state-of-the-art approaches (ASAP, Discoverer and ScriptGen).

Les documents

SSTIC 2014

Du 04/06/2014 au 06/06/2014

How to play Hooker

Android est aujourd'hui le système d'exploitation sur mobiles le plus répandu du marché, ce qui en a fait une cible de choix pour les applications malveillantes. Afin de parer celles-ci, l'OS de Google se base principalement sur un système de permissions: un utilisateur doit valider les permissions demandées par une application avant son installation. Ce modèle présente cependant une faiblesse particulièrement gênante : le besoin de l'utilisateur. En effet, il est difficile de refuser l'installation d'une application à partir du moment où l'utilisateur en a besoin, même si celle-ci demande des droits injustifiés. Il existe donc a priori le besoin d'une base de connaissances publique permettant de comprendre si l'application que l'on souhaite installer pose un problème de sécurité. Dans cet article, nous proposons une solution d'analyse automatisée de markets Android : Hooker. Celle-ci permet d'identifier les événements sensibles intervenants sur un système Android et de les centraliser au sein d’une base de données dédiée. Le traitement de ces informations et la présentation des résultats effectuée de manière intelligente permet, au final, de réaliser des analyses tant microscopiques que macroscopiques. La première se concentre sur le fonctionnement d'une application en particulier; la seconde sur la recherche de comportements similaires à un ensemble d’applications et donc potentiellement à un market entier.

Les documents

SSTIC 2013

Du 05/06/2013 au 07/06/2013

Attestation distante d’intégrité sous Android

En informatique de confiance, le mécanisme d'attestation distante permet à un logiciel de prouver son intégrité à une entité
tierce. Cette entité est alors particulièrement sensible car elle contient les données de référence qui permettent de valider ou
d’inférer l’intégrité du logiciel mesuré. Le principe de ses travaux est donc d’offrir à l’utilisateur la possibilité de baser sa confiance sur une entité qui ne quitte que rarement la poche de son propriétaire : son smartphone. Contrairement aux solutions classiques d’attestation d’intégrité, l’architecture proposée est dépendante d’aucune infrastructure de confiance sur le réseau et repose sur le simple branchement par USB de son téléphone à un poste utilisateur. Pour cela, nous avons utilisé un téléphone Android afin d'attester de l'intégrité d'une plateforme Debian disposant d'une puce TPM1. La preuve de concept développée consiste à se baser sur le mécanisme de tethering USB proposé par Android, ainsi que sur la solution de sources libres OpenPTS.

MISC HS 7 2013

Du 15/04/2013 au 15/04/2013

Vivisection de protocoles avec Netzob

Dans cet article, nous présentons une méthodologie pour disséquer sur le vif, un protocole de communication. Promis, pas de copie d’écrans d’IDA ni d’OllyDbg, et à l’inverse pas de formule mathématique. Pour être précis, ici on dissèque des protocoles inconnus en Python avec « son Netzob et son couteau ».

29C3 2012

Du 27/12/2012 au 27/12/2012

The future of protocol reversing and simulation applied on ZeroAccess botnet

We will present Netzob, an Open Source tool, and show how it helps to semi-automatically reverse undocumented communication protocols (USB, Network, IPC, ...). It leverages bio-informatic, automata theory and data dependencies algorithms to infer both the message format and the state machine of a protocol. Most of these algorithms were re-implemented from scratch which allowed us to customize their specifications regarding our needs. These algorithms will be pedagogically explained and their uses for RE purposes will be detailed.

We will also expose the methodology to generate contextualized communications based on the obtained specifications. Hence, the provided simulation module allows the creation of realists servers and clients in a controllable manner.

SSTIC 2012

Du 06/06/2012 au 08/06/2012

Netzob, un outil pour la rétro-conception de protocoles de communication

Dans cet article, nous présentons Netzob, un outil libre de rétro-conception semi-automatisée de protocoles de communication. Netzob est destiné à répondre à différents cas d'applications (analyse de sécurité, génération de trafic réaliste, interopérabilité, etc.) où la compréhension d'un protocole propriétaire ou non documenté est primordiale.

Netzob s'appuie principalement sur des algorithmes issus des domaines de la bio-informatique et de la théorie des automates. Il propose également un module de simulation de trafic, permettant ainsi la génération de flux de communication réalistes issus de l'inférence de protocoles dont la spécification est inconnue.

Black Hat 2012

Du 05/12/2012 au 05/12/2012

Reverse and Simulate your Enemy Botnet C&C

Have you ever been staring for nights at binary or hexadecimal data flows extracted from an USB channel ? Don't you remember yourself searching for some patterns and similarities in this mess of zeros and ones grabbed from a binary configuration file ? How long did it take you to find an 16bits decimal size field last time you reversed an IPC communication protocol ?

Did you know you were not alone and that among them, Rob Savoye (@ FOSDEM-08) and Drew Fisher (@ 28C3) have already reported the main difficulties of the RE operations. Both of them called for the creation of a tool which would help experts in their work.

After 2 years of intensive researches, we are pleased to present our results. A tool that facilitates the analysis of binary flows, finds relations between segments of data, deduces data types and formats, infers the state machine and other few little things, including fuzzing and simulating implementations of undocumented protocols.

Released under GPLv3, Netzob is (to our knowledge) the most advanced available tool that helps reversers and security evaluators/auditors in their work on undocumented protocols.

SSTIC 2010

Le 10/06/2010

Sécurité de la plate-forme d'exécution Java, limites et propositions d'améliorations

Le choix de Java est souvent guidé par la sécurité qu'il est censé apporter. La plate-forme d'exécution Java assure en effet des propriétés de sécurité permettant notamment de se prémunir contre l'exploitation de la mémoire. Toutefois, de nombreuses vulnérabilités publiques concernent Java, notamment sa bibliothèque standard.
 - Qu'en est-il donc de l'apport de Java en termes de sécurité ?
 - Quelles sont ses faiblesses ?
 - Quelles améliorations sont envisageables ?

Cet article tente de répondre à ces questions. Il décrit tout d'abord les différents composants de la plateforme d'exécution Java en détaillant les mécanismes de sécurité offerts et les propriétés garanties. Il analyse ensuite les différentes faiblesses de ces composants et propose enfin des pistes pour l'amélioration de la sécurité de la plate-forme.

SAR-SSI 2011

Du 18/05/2011 au 20/05/2011

Sécurité des architectures réseaux et des systèmes d’information

AMOSSYS a présenté ses travaux sur la modélisation et simulation du canal de communication d'un botnet pour l'évaluation des systèmes de détection d'intrusion réseau.

ICCC 2012

Du 17/09/2012 au 20/09/2012

Security Evaluation of Communication Protocols in Common Criteria

During CC evaluations, experts may face proprietary hardware or software interfaces. Understanding, validating and testing these interfaces require important time and resources. To limit associated costs, a dynamic analysis approach appears more suitable, but currently lacks of efficient tools.

We introduce Netzob, a tool that allows dynamic analysis of proprietary protocols. It first permits to avoid manual learning of a protocol thanks to a semi-automatized modelization approach. It leverages passive and active algorithms on observed communications to build a model. This model can afterward be used to measure the conformity of an implementation against its provided specification. For instance, Netzob allows to learn message formats and state machine of protocols, and thus to identify deviations with the documentation. Moreover, Netzob can combine any learned models with its traffic generator to apply targeted variations on message formats and sequences. In the context of AVA_VAN, Netzob therefore permits efficient robustness analysis of protocol implementations.

RMLL 2009

Le 09/07/2009

Rencontres Mondiales du Logiciel Libre

Après avoir rappelé l'historique du "Trusted Computing", cette conférence présente l'apport que peuvent avoir les technologies d'informatique de confiance dans le monde du logiciel libre.
Les dernières évolutions matérielles et logicielles sont détaillées (technologie TPM et Intel TXT / AMD SVM) et une analyse en terme d'usage est réalisée.

SAR-SSI 2011

Du 18/05/2011 au 20/05/2011

Sécurité des architectures réseaux et des systèmes d’information

AMOSSYS a présenté un état des lieux de l’informatique de confiance.

ICCC 2012

Du 17/09/2012 au 20/09/2012

French Scheme CSPN to CC Evaluation

L'article d'AMOSSYS présente la démarche CSPN. Pour rappel, ce type d'évaluation (promue par l'ANSSI, autorité de tutelle du CESTI AMOSSYS) consiste à évaluer et analyser une cible d'évaluation en temps contraint.

Après avoir introduit le schéma CSPN, l'auteur de l'article démontre que ce type d'évaluation est complémentaire à une démarche d'évaluation Critères Communs et peut être vue comme une étape préliminaire à cette dernière qui est plus coûteuse en temps et en investissement.

CRiSIS 2008

Du 28/07/2008 au 30/07/2008

Conference on Risks and Security of Internet and Systems

L’exposé présentait les résultats des travaux de thèse de doctorat de l’expert. Celui-ci a été amené à proposer une solution de détection d’intrusions paramétrée par la politique de sécurité et s’appuyant sur le contrôle des flux d’information du système à différents niveaux (au niveau OS et au sein des applicatifs Java).
L’article présente l’architecture proposée et les résultats obtenus à l’aide d’un prototype de système de détection d’intrusions réalisé par l’expert d’AMOSSYS. Ce prototype s’appuie sur une modification du noyau Linux et sur l’instrumentation à la volée des applications Java.

C&ESAR 2008

Du 03/12/2008 au 05/12/2008

« Informatique … de confiance ? »

AMOSSYS a été invité à présenter le résultat de ses travaux sur les TPM (Trusted Platform Module) :

« Composant cryptographique TPM : retours d’expérience et perspectives »

SSTIC 2010

Le 11/06/2010

Trusted Computing, limitations actuelles et perspectives

Cet article à vocation prospective dresse un panorama des atouts et limites de l'informatique de confiance pour la réalisation d'une architecture de sécurité sur une plateforme PC.
L'étude met en évidence deux problèmes de positionnement majeurs :
 - une adéquation imprécise vis-à-vis des besoins des différents marchés ;
 - le manque de clarté sur le positionnement du TPM relativement aux technologies concurrentes.

L'article montre que la couverture de nouveaux besoins liés à l'intégrité et la confidentialité d'exécution nécessiterait soit une adaptation du TPM (transformation vers un crypto-processeur, voire un processeur sécurisé), soit l'utilisation de technologies complémentaires telles que la virtualisation.

SAR-SSI 2011

Du 18/05/2011 au 20/05/2011

Sécurité des architectures réseaux et des systèmes d’information

AMOSSYS a présenté ses retours d'expériences sur l'évaluation/certification de produits de sécurité en temps contraint - le schéma d'évaluation technique CSPN de l'ANSSI.