Amossys - Conseil et expertise en sécurité des technologies de l'information

English Version


Toutes les publications

C&ESAR 2018

Le 23/11/2018

Intelligent Thresholding

Intrusion Detection Systems (IDS) have made a great progressfor decades but even with the increasing power of AI, we struggle to de-sign a general machine able to detect all kinds of cyber-attacks, especiallythose still unknown a.k.a. zero-day. Indeed, one reason why previous ap-proaches failed can be the complexity of the cyber-security field. How-ever, some research works on anomaly detection have made significativeprogress on aspects related to real-world issues. In particular, the cali-bration of the algorithms does not draw as much attention as their per-formance while all the intelligence can vanish through fine-tuning steps.Here, we tackle issues around the final decision threshold and show howit can be cleverly set.

Les documents

KDD 2018

Le 28/08/2018

Are your data gathered?

Understanding data distributions is one of the most fundamentalresearch topic in data analysis. The literature provides a great dealof powerful statistical learning algorithms to gain knowledge onthe underlying distribution given multivariate observations. We arelikely to find out a dependence between features, the appearanceof clusters or the presence of outliers. Before such deep investi-gations, we propose the folding test of unimodality. As a simplestatistical description, it allows to detect whether data are gatheredor not (unimodal or multimodal). To the best of our knowledge,this is the firstmultivariate and purely statisticalunimodality test.It makes no distribution assumption and relies only on a straight-forwardp−value. Through real world data experiments, we showits relevance and how it could be useful for clustering.

Les documents

KDD 2017

Le 21/08/2017

Anomaly Detection in Streams with Extreme Value Theory

Anomaly detection in time series has attracted considerable attention due to its importance in many real-world applications including intrusion detection, energy management and finance. Most approaches for detecting outliers rely on either manually set thresholds or assumptions on the distribution of data.
Here, we propose a new approach to detect outliers in streaming univariate time series based on Extreme Value Theory that does not require to hand-set thresholds and makes no assumption on the distribution: the main parameter is only the risk, controlling the number of false positives. Our approach can be used for outlier detection, but more generally for automatically setting thresholds, making it useful in wide number of situations. We also experiment our algorithms on various real-world datasets which confirm its soundness and efficiency.

Les documents

RESSI 2017

Le 22/05/2017

Confusion de Type en C++: État de l'Art et Difficultés de Détection

Le langage C++ s'est imposé comme une référence dans les domaines où la modularité du développement ne doit pas empiéter sur les performances du logiciel final. Les principaux navigateurs, les interpréteurs et même certaines parties du système d'exploitation de Microsoft utilisent le langage C++.
L'étude des bases de données de vulnérabilités montre que ces logiciels sont sujets à une catégorie de vulnérabilités particulières, les confusions de type, qui sont tout aussi exploitables que les vulnérabilités plus connues.

Cet article présente les mécanismes à l'origine des confusions de type et dresse un état de l'art des méthodes servant à les détecter dans du code source ou du binaire seul. Il met aussi en avant les principales difficultés que rencontrent les analyses de binaire, et propose les grandes lignes d'une nouvelle approche pour détecter des confusions de type dans du binaire.

Les documents

ACNS 2016

Le 05/07/2016

Assisted Identification of Mode of Operation in Binary Code with Dynamic Data Flow Slicing

Verification of software security properties, when conducted at the binary code level, is a difficult and cumbersome task. This paper is focused on the reverse engineering task that needs to be performed prior to any thorough analysis. A previous line of work has been dedicated to the identification of cryptographic primitives.
Relying on the techniques that have been proposed, we devise a semi-automated solution to identify modes of operation. Our solution produces a concise representation of the data transfers occurring within a cryptographic scheme. Inspired by program slicing techniques, we extract from a dynamic data flow a slice defined as the smallest subgraph that is distance preserving for the set of cryptographic parameters. We apply our solution to several modes of operation including CBC, CTR, HMAC and OCB. For each of them, we successfully obtain a complete and readable representation. Moreover, we show with an example that our solution can be applied on non standard schemes to quickly discover security flaw.

SSTIC 2016

Le 20/06/2016

Confusion de type en C++

Depuis le début du premier semestre 2016, six CVE permettant l'exécution de code arbitraire ont été déposées. Ces CVE ont toutes en commun l'exploitation d'une vulnérabilité encore peu considérée la confusion de type. Elle peut, pourtant, à elle seule outrepasser les sécurités actuelles et mener à l'exploitation. Cette vulnérabilité correspond à la manipulation d'objets C++ d'une façon incompatible avec leur type réel. Son origine réside dans la mauvaise utilisation des opérateurs de conversions. Or, ces opérations sont courantes dans les logiciels où la programmation orientée objet et le polymorphisme ont une place importante. Cet article, rédigé par notre collaborateur Florent SAUDEL à l'occasion du SSTIC 2016, présente plus en détail l'origine de cette vulnérabilité et les mécanismes bas niveaux à l'origine de son exploitabilité.


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 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.

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 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.

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.

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.

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.

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 ».

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.

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.

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.