European Commission logo
français français
CORDIS - Résultats de la recherche de l’UE
CORDIS

Efficient Formally Secure Compilers to a Tagged Architecture

Description du projet

Des compilateurs sécurisés pour des langages de programmation réalistes

Les chaînes de compilation actuelles ne sont pas sécurisées, ce qui entraîne de nombreuses et graves vulnérabilités dans les systèmes informatiques. Or, il est difficile de réaliser une compilation sécurisée en utilisant les mécanismes de protection à gros grain fournis par les architectures matérielles courantes. Financé par le Conseil européen de la recherche, le projet SECOMP entend tirer parti des architectures de mémoire principale marquée («tagged architectures» en anglais) émergentes pour concevoir les premières chaînes de compilation sécurisées efficaces avec des langages de programmation réalistes, tels que C et F*. Afin d’atteindre un niveau de sécurité sans précédent et d’inspirer une grande confiance, le projet définira mathématiquement ce que signifie la compilation sécurisée d’applications compartimentées. En outre, il vérifiera que les chaînes de compilation développées satisfont à cette définition formelle de la sécurité à l’aide d’une combinaison de preuves vérifiées par machine et de tests reposant sur les propriétés.

Objectif

Severe low-level vulnerabilities abound in today’s computer systems, allowing cyber-attackers to remotely gain
full control. This happens in big part because our programming languages, compilers, and architectures were
designed in an era of scarce hardware resources and too often trade off security for efficiency. The semantics of
mainstream low-level languages like C is inherently insecure, and even for safer languages, establishing security
with respect to a high-level semantics does not guarantee the absence of low-level attacks. Secure compilation
using the coarse-grained protection mechanisms provided by mainstream hardware architectures would be too
inefficient for most practical scenarios. This project is aimed at leveraging emerging hardware capabilities
for fine-grained protection to build the first, efficient secure compilers for realistic programming languages,
both low-level (the C language) and high-level (ML and a dependently-typed variant). These compilers will
provide a secure semantics for all programs and will ensure that high-level abstractions cannot be violated
even when interacting with untrusted low-level code. To achieve this level of security without sacrificing
efficiency, our secure compilers will target a tagged architecture, which associates a metadata tag to each word
and efficiently propagates and checks tags according to software-defined rules. We will experimentally evaluate
and carefully optimize the efficiency of our secure compilers on realistic workloads and standard benchmark
suites. We will use property-based testing and formal verification to provide high confidence that our compilers
are indeed secure. Formally, we will construct machine-checked proofs of full abstraction with respect to
a secure high-level semantics. This strong property complements compiler correctness and ensures that no
machine-code attacker can do more harm to securely compiled components than a component in the secure
source language already could.

Régime de financement

ERC-STG - Starting Grant

Institution d’accueil

MAX-PLANCK-GESELLSCHAFT ZUR FORDERUNG DER WISSENSCHAFTEN EV
Contribution nette de l'UE
€ 368 220,25
Adresse
HOFGARTENSTRASSE 8
80539 Munchen
Allemagne

Voir sur la carte

Région
Bayern Oberbayern München, Kreisfreie Stadt
Type d’activité
Research Organisations
Liens
Coût total
€ 368 220,25

Bénéficiaires (2)