Richard Bonichon

dblp:75/3724 · DBLP profile ↗
← Back
13ranked-venue papers
3as first author
5since 2021 · last 2024
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Security and privacy · 6 · 1 first-author · 3 since 2021Software engineering, systems software and programming languages · 4 · 1 since 2021Theory of computation · 4 · 2 first-author · 1 since 2021Artificial intelligence and machine learning · 3 · 2 first-author · 1 since 2021
YearPublicationVenuePosition
2024 A Generic Deskolemization Strategy
abstract
In this paper, we present a general strategy that enables the translation of tableau proofs using different Skolemization rules into machine-checkable proofs. It is part of a framework that enables (i) instantiation of the strategy into algorithms for different sets of tableau rules (e.g., different logics) and (ii) easy soundness proof which relies on the local extensibility of user-defined rules. Furthermore, we propose an instantiation of this strategy for first-order tableaux that handles notably pre-inner Skolemization rules, which is, as far as the authors know, the first one in the literature. This deskolemization strategy has been implemented in the Goéland [17] automated theorem prover, enabling an export of its proofs to Coq [8] and Lambdapi [2]. Finally, we have evaluated the algorithm performances for inner and pre-inner Skolemization rules through the certification of proofs from some categories of the TPTP [39] library.
Johann Rosain, Richard Bonichon, Julie Cailler, Olivier Hermant
LPAR2
2021 Search-Based Local Black-Box Deobfuscation: Understand, Improve and Mitigate (Poster)
abstract
This presentation is based on the paper "Search-based Local Blackbox Deobfuscation: Understand Improve and Mitigate'' from the same authors, which has been accepted for publication at ACM CCS 2021.
Grégoire Menguy, Sébastien Bardin, Richard Bonichon, Cauim de Souza Lima
CCS3
2021 Search-Based Local Black-Box Deobfuscation: Understand, Improve and Mitigate
abstract
Code obfuscation aims at protecting Intellectual Property and other secrets embedded into software from being retrieved. Recent works leverage advances in artificial intelligence (AI) with the hope of getting blackbox deobfuscators completely immune to standard (whitebox) protection mechanisms. While promising, this new field of AI-based, and more specifically search-based blackbox deobfuscation, is still in its infancy. In this article we deepen the state of search-based blackbox deobfuscation in three key directions: understand the current state-of-the-art, improve over it and design dedicated protection mechanisms. In particular, we define a novel generic framework for search-based blackbox deobfuscation encompassing prior work and highlighting key components; we are the first to point out that the search space underlying code deobfuscation is too unstable for simulation-based methods (e.g., Monte Carlo Tree Search used in prior work) and advocate the use of robust methods such as S-metaheuristics; we propose the new optimized search-based blackbox deobfuscator Xyntia which significantly outperforms prior work in terms of success rate (especially with small time budget) while being completely immune to the most recent anti-analysis code obfuscation methods; and finally we propose two novel protections against search-based blackbox deobfuscation, allowing to counter Xyntia powerful attacks.
Grégoire Menguy, Sébastien Bardin, Richard Bonichon, Cauim de Souza Lima
CCS3
2021 Interface Compliance of Inline Assembly: Automatically Check, Patch and Refine
abstract
Inline assembly is still a common practice in low-level C programming, typically for efficiency reasons or for accessing specific hardware resources. Such embedded assembly codes in the GNU syntax (supported by major compilers such as GCC, Clang and ICC) have an interface specifying how the assembly codes interact with the C environment. For simplicity reasons, the compiler treats GNU inline assembly codes as blackboxes and relies only on their interface to correctly glue them into the compiled C code. Therefore, the adequacy between the assembly chunk and its interface (named compliance) is of primary importance, as such compliance issues can lead to subtle and hard-to-find bugs. We propose RUSTInA, the first automated technique for formally checking inline assembly compliance, with the extra ability to propose (proven) patches and (optimization) refinements in certain cases. RUSTInA is based on an original formalization of the inline assembly compliance problem together with novel dedicated algorithms. Our prototype has been evaluated on 202 Debian packages with inline assembly (2656 chunks), finding 2183 issues in 85 packages - 986 significant issues in 54 packages (including major projects such as ffmpeg or ALSA), and proposing patches for 92% of them. Currently, 38 patches have already been accepted (solving 156 significant issues), with positive feedback from development teams.
Frédéric Recoules, Sébastien Bardin, Richard Bonichon, Matthieu Lemerre, Laurent Mounier, Marie-Laure Potet
ICSE3
2021 Program Protection through Software-based Hardware Abstraction
abstract
International audience
Jeffrey Todd McDonald, Ramya Manikyam, Sébastien Bardin, Richard Bonichon, Todd R. Andel
SECRYPT4
2020 Binary-level Directed Fuzzing for Use-After-Free Vulnerabilities
Manh-Dung Nguyen, Sébastien Bardin, Richard Bonichon, Roland Groz, Matthieu Lemerre
RAID3
2019 How to kill symbolic deobfuscation for free (or: unleashing the potential of path-oriented protections)
abstract
Code obfuscation is a major tool for protecting software intellectual property from attacks such as reverse engineering or code tampering. Yet, recently proposed (automated) attacks based on Dynamic Symbolic Execution (DSE) shows very promising results, hence threatening software integrity. Current defenses are not fully satisfactory, being either not efficient against symbolic reasoning, or affecting runtime performance too much, or being too easy to spot. We present and study a new class of anti-DSE protections coined as path-oriented protections targeting the weakest spot of DSE, namely path exploration. We propose a lightweight, efficient, resistant and analytically proved class of obfuscation algorithms designed to hinder DSE-based attacks. Extensive evaluation demonstrates that these approaches critically counter symbolic deobfuscation while yielding only a very slight overhead.
Mathilde Ollivier, Sébastien Bardin, Richard Bonichon, Jean-Yves Marion
ACSAC3
2019 Get Rid of Inline Assembly through Verification-Oriented Lifting
abstract
Formal methods for software development have made great strides in the last two decades, to the point that their application in safety-critical embedded software is an undeniable success. Their extension to non-critical software is one of the notable forthcoming challenges. For example, C programmers regularly use inline assembly for low-level optimizations and system primitives. This usually results in rendering state-of-the-art formal analyzers developed for C ineffective. We thus propose TINA, the first automated, generic, verification-friendly and trustworthy lifting technique turning inline assembly into semantically equivalent C code amenable to verification, in order to take advantage of existing C analyzers. Extensive experiments on real-world code (including GMP and ffmpeg) show the feasibility and benefits of TINA.
Frédéric Recoules, Sébastien Bardin, Richard Bonichon, Laurent Mounier, Marie-Laure Potet
ASE3
2018 Model Generation for Quantified Formulas: A Taint-Based Approach
abstract
We focus in this paper on generating models of quantified first-order formulas over built-in theories, which is paramount in software verification and bug finding. While standard methods are either geared toward proving the absence of a solution or targeted to specific theories, we propose a generic and radically new approach based on a reduction to the quantifier-free case. Our technique thus allows to reuse all the efficient machinery developed for that context. Experiments show a substantial improvement over state-of-the-art methods.
Benjamin Farinier, Sébastien Bardin, Richard Bonichon, Marie-Laure Potet
CAV (2)3
2011 Rigorous Evidence of Freedom from Concurrency Faults in Industrial Control Software
Richard Bonichon, Géraud Canet, Loïc Correnson, Eric Goubault, Emmanuel Haucourt, Michel Hirschowitz, Sébastien Labbé 0002, Samuel Mimram
SAFECOMP1
2009 Experience report: OCaml for an industrial-strength static analysis framework
abstract
This experience report describes the choice of OCaml as the implementation language for Frama-C, a framework for the static analysis of C programs. OCaml became the implementation language for Frama-C because it is expressive. Most of the reasons listed in the remaining of this article are secondary reasons, features which are not specific to OCaml (modularity, availability of a C parser, control over the use of resources...) but could have prevented the use of OCaml for this project if they had been missing.
Pascal Cuoq, Julien Signoles, Patrick Baudin, Richard Bonichon, Géraud Canet, Loïc Correnson, Benjamin Monate, Virgile Prevosto, Armand Puccetti
ICFP4
2007 Zenon : An Extensible Automated Theorem Prover Producing Checkable Proofs
Richard Bonichon, David Delahaye, Damien Doligez
LPAR1
2006 A Semantic Completeness Proof for TaMeD
Richard Bonichon, Olivier Hermant
LPAR1