The PACSS team develops code analysis techniques
and tools for software security. We address both source-level and
low-level codes, and we study effective combinations of static and
dynamic analysis techniques (abstract interpretation, concolic
execution and fuzzing). We currently focus on the following research
areas:
The complete list of publications related to these topics
is available here.
Current Members
|
Past Members
|
Related
projects
MSTIC CODEC (2019-2021) : HW/SW
co-design of processor countermeasures
IRT Pulse - CLAPS (2017-2020) :
Software robustness analysis against fault injections
IRT Pulse - NanoTrust (2017-2020)
: Design and certification of a secure processor
FUI SecurIoT (2017-2020) : Development of Secure Micro-Controller for the IoT. Web Site
ASTRID Sacade (2017-2020) : Model-based attack scenario generation for Industrial Control Systems
PEPS SISC ASSI (2016) : Security
Analysis of Industrial Control Systems
ASTRID Sertif (2014-2017) : Simulation based robustness evaluation of embedded applications against fault injection. Web Site
PIA Sécurité Numérique ARAMIS (2014-2018) : Secure architecture for Industrial Control Systems
ANR BINSEC (2013-2017) : BINary code analysis for SECurity. Web Site
We develop static analysis for binary level code dedicated to :
taint analysis
Use-After-Free vulnerability detection
Buffer overflow pattern recognition
Trace generalization for exploitability
Our approach combines a Value Set Analysis in order to determine
address and memory transfer, complex pattern recognition and
concolic execution to produce concrete attacks. Challenges are the
following ones : taking into account dynamic allocation, combining
static and dynamic analysis for scalability, and using
memory model both suitable to symbolic execution and
exploitability analysis.
We developed a set of prototypes (LIsTT, Gueb, etc.) based on
the REIL intermediate format (using BinNavi and Ida
Pro). We are also implied in the development of the BINSEC platform in which
we propose a dynamic-symbolic execution engine.
Some related publications:
Security of embedded systems like smart-cards, secured dongles and
IoTs relies on the robustness of devices against physical
fault attacks (such as laser or electromagnetic attacks).
Current certification schemes (e.g., Common Criteria) require
protection mechanisms against multi-fault injection attacks. For a
given system, such kind of attacks leads to an exponential number
of unintended behaviors. In order to help both developers and
auditors to master this complexity, an important challenge is to
propose faithful fault models and automated code analysis
taking into account the impact of physical attacks.
We develop the Lazart
tool (Laser Attack and Robustness) allowing to
evaluate the code robustness against multi-fault injections
with respect to some behavioral properties. Lazart operates at the
LLVM level and relies on Klee, a dynamic-symbolic
execution tool. We currently investigate the use of Lazart
for counter-measure analysis.
In addition, within the ANR Sertif project, we built FISCC,
the first benchmark dedicated to fault injection robustness
evaluation.
Some related publications:
Constant-time programming is a countermeasure to
prevent side-channel attacks. This policy can be
safely relaxed if one can prove that the program does not leak
more information than the intended public output. In this
framework, we proposed a static analysis based on a new
information flow property, called output sensitive
noninterference. The novelty of this approach is that we track the
dependence of leakage variables with respect not only to the
initial values of input variables (as in classical approaches for
noninterference), but taking also into account the final values of
output variables.
We adapted this approach to LLVM IR
and we developed a prototype to verify LLVM implementations.
We are currently extending our prototype towards a tool able to
deal with cryptographic libraries.
Some related publications:
Security of Industrial Control Systems
Industrial Control
Systems (e.g. SCADA and PLC) are mostly based on proprietary
infrastructures and legacy software. Because of this
specificity, despite the fact that their security is
critical, these systems have been less studied in the literature.
Within the FUI Aramis project, we proposed an
end-to-end approach to take into account applicative filtering
rules for industrial protocols, dealing both with safety and
security concerns.
Our model based approach allows to take into account both the
industrial process, the weakness of protocols and an attacker
model.
In the framework of the PEPS ASSI (2016-2017), we developed security proofs for the industrial standard OPC-UA focusing on integrity (generally not addressed by cryptographic verification tools).
Currently, in collaboration within the Cyber@Alps
Institute, we investigate the use of code
reverse-engineering techniques for vulnerability detection in
PLCs.
Some related publications:
2019 :
Frédéric Recoules, Sébastien Bardin, Richard Bonichon, Laurent
Mounier, Marie-Laure Potet.
Get rid of inline assembly through trustable
verification-oriented lifting. International
Conference on Automated Software Engineering (ASE 2019)
Cristian Ene, Laurent Mounier, Marie-Laure Potet.
Output-Sensitive Information Flow Analysis
FORTE 2019 - 39th International Conference on Formal
Techniques for Distributed Objects, Components, and Systems, LNCS
11535, June 2019
Mohamad Kaouk,Jean-Marie Flaus, Marie-Laure Potet, Roland Groz
A Review of Intrusion Detection Systems for Industrial Control
Systems. CoDIT
2019: 1699-1704
Benjamin Farinier, Sébastien Bardin, Richard Bonichon, Laurent
mounier and Marie-Laure Potet
En finir avec les faux positifs avec l’exécution symbolique
robuste
Journées Francophones des Langages Applicatifs
Février 19
2018 :
Jannik Dreier, Maxime Puys, Marie-Laure Potet, Pascal Lafourcade,
Jean-Louis Roch
Formally and practically verifying flow properties in
industrial systems.
Computers & Security
https://www.sciencedirect.com/science/article/pii/S016740481831441X?via%3Dihub#aep-article-footnote-id
Benjamin Farinier, Sébastien Bardin, Richard Bonichon
and Marie-Laure Potet.
Model Generation for Quantified Formulas: A Taint-Based
Approach.
30th International Conference on Computer Aided Verification}
CAV 18
Jonathan Salwan, Sebastien Bardin and Marie-Laure Potet
Binary Deobfuscation and Dynamic Symbolic Execution
DIMVA'18, 15th Conference on Detection of Intrusions and Malware
& Vulnerability Assessment
2017 :
Jannik Dreier and Maxime Puys and Marie-Laure Potet and Pascal
Lafourcade and Jean-Louis Roch.
Formally Verifying Flow Properties in Industrial Systems.
SECRYPT 2017, Madrid, Spain, July 24-26, 2017.
Maxime Puys and Marie-Laure Potet and Abdelaziz Khaled.
Generation of Applicative Attacks Scenarios Against Industrial
Systems.
Foundations and Practice of Security - 10th International
Symposium,
FPS 2017, Nancy, France, October 23-25, 2017.
Jonathan Salwan and Sébastien Bardin and Marie-Laure Potet.
Deobfuscation of VM based software protection.
Symposium sur la s{\'{e}}curit{\'{e}} des technologies de
l'information et des communications, SSTIC, France, Rennes, June
7-9 2017.
2016-2012 :
Louis Dureuil, Guillaume Petiot, Marie-Laure Potet, Thanh-Ha Le,
Aude Crohen,
Philippe De Choudens. FISSC: a Fault Injection and Simulation
Secure Collection.
SAFECOMP 2016.
Maxime Puys, Marie-Laure Potet, Pascal Lafourcade. Formal
Analysis of Security Properties on the OPC-UA SCADA Protocol.
SAFECOMP 2016.
R. David, S. Bardin, J. Feist, L. Mounier, M-L Potet, T. Ta, J-Y
Marion. Specification of Concretization and
Symbolization Policies in Symbolic Execution. ISSTA 2016.
Robin David and Sébastien Bardin and Josselin Feist and Jean-Yves
Marion and Marie-Laure Potet and Thanh Dinh Ta. BINSEC/SE: A
Dynamic Symbolic Execution Toolkit for Binary-level Analysis.
Proceedings of SANER 2016. Osaka, Japan. March 2016
Gustavo Grieco, Guillermo Luis Grinblat, Lucas Uzal, Sanjay Rawat,
Josselin Feist and Laurent Mounier. Toward large-scale
vulnerability discovery using Machine Learning. Proceedings
of CODASPY 2016, ACM, New Orleans, USA, March 2016
Franck de Goer and Roland Groz and Laurent Mounier. Lightweight
Heuristics to Retrieve Parameter Associations from Binaries.
Proceedings of PPREW 2015, Los Angeles, USA, best paper award.
Josselin Feist and Laurent Mounier and Marie-Laure Potet. GUEB
: Static Detection of Use-After-Free on Binary. Toorcon San Diego 2015
Louis Dureuil and Marie-Laure Potet and Philippe de Choudens and
Cécile Dumas and Jessy Clédière. From
Code Review to Fault Injection Attacks: Filling the Gap
using Fault Model Inference. Cardis 2015.
Pascal Lafourcade and Maxime Puys. Performance Evaluations of
Cryptographic Protocols Verication Tools Dealing with
Algebraic Properties. FPS 2015.
Lionel Rivière and Marie-Laure Potet and Thanh-Ha Le and Julien
Bringer and Hervè Chabanne and Thanh-Ha Le and
Maxime Puys. Combining High-Level and Low-Level Approaches to
Evaluate Software Implementations Robustness Against Multiple
Fault Injection Attacks. International Symposium on
Foundations and Practice of Security, FPS 2014,
Lecture Notes in Computer Science.
Rawat, Sanjay and Mounier, Laurent and Potet, Marie-Laure. LiSTT
: An Investigation into Unsound-incomplete Yet Practical Result
Yielding Static Taintflow Analysis. Proceedings of SAW 2014
(ARES Workshop)},Fribourg (Switzerland), IEEE, September 2014.
Potet, Marie-Laure and Feist, Josselin and Mounier, Laurent.
Analyse
de Code et Recherche de Vulnérabilités. Revue MISC,
Hors-série juin 2014, Editions Diamond.
Marie-Laure Potet, Laurent Mounier, Maxime Puys and Louis
Dureuil.
Lazart: a symbolic approach to evaluate the impact of fault
injections by test inverting.
ICST 2014, International Conference on Software Testing.
Josselin Feist and Laurent Mounier and Marie-Laure Potet.
Statically Detecting Use After Free on Binary Code.
Journal of Computer Virology and Hacking Techniques, january 14
Gregor Gössler, Daniel Le Métayer, Eduardo Mazza, Marie-Laure
Potet and Lacramioara Astefanoaei.
Apport des méthodes formelles pour l'exploitation des logs
informatiques dans un contexte contractuel.
Technique et Science Informatiques, vol 33, no 1-2, 2014.
Gustavo Grieco, Laurent Mounier and Marie-Laure Potet.
A stack model for symbolic buffer overflow
exloitability analysis (Extended abstract).
CSTVA 2013, Luxembourg, 22 March 2013
Josselin Feist and Laurent Mounier and Marie-Laure Potet.
Statically Detecting Use After Free on Binary Code.
Grehack 2013
Dumitru Ceara and Laurent Mounier and M-L PotetTaint
Dependency Sequences: a characterization of insecure execution
paths based on input-sensitive cause sequences.
MDV'10, Modeling and Detecting Vulnerabilities workshop,
associated to ICST 2010, IEEE digital Library
P-A. Masson and M-L Potet and J. Julliand and all. An Access
Control Model Based Testing Approach for Smart Card
Applications: Results of the POSE project.
Journal of Information Assurance and Security, n 5, 2010 (335-351)
Sofia Bekrar, Chaouki Bekrar, Roland Groz, Laurent Mounier. A
Taint Based Approach for Smart Fuzzing. In Proceedings of SecTest,
Giuliano Antoniol, Antonia Bertolino, Yvan Labiche (eds.), Pages
818-825, 2012.
Sanjay Rawat, Laurent Mounier. Finding Buffer Overflow
Inducing Loops in Binary Executables. In Proceedings of
Sixth International Conference on Software Security and
Reliability (SERE), Pages 177-186, Gaithersburg, Maryland, USA,
2012