,
Guillaume Hiet
,
Simon Rokicki
,
Frederic Tronel
,
Isabelle Puaut
Creative Commons Attribution 4.0 International license
The emergence of Real-Time Systems with increased connections to their environment has led to a greater demand in security for these systems. Memory corruption attacks, which modify the memory to trigger unexpected executions, are a significant threat against applications written in low-level languages. Data-Flow Integrity (DFI) is a protection that verifies that only a trusted source has written any loaded data. The overhead of such a security mechanism remains a major issue that limits its adoption. This article presents RT-DFI, a new approach that optimizes Data-Flow Integrity to reduce its overhead on the Worst-Case Execution Time. We model the number and order of the checks and use an Integer Linear Programming solver to optimize the protection on the Worst-Case Execution Path. Our approach protects the program against many memory-corruption attacks, including Return-Oriented Programming and Data-Only attacks. Moreover, our experimental results show that our optimization reduces the overhead by 7% on average compared to a state-of-the-art implementation.
@InProceedings{bellec_et_al:LIPIcs.ECRTS.2022.18,
author = {Bellec, Nicolas and Hiet, Guillaume and Rokicki, Simon and Tronel, Frederic and Puaut, Isabelle},
title = {{RT-DFI: Optimizing Data-Flow Integrity for Real-Time Systems}},
booktitle = {34th Euromicro Conference on Real-Time Systems (ECRTS 2022)},
pages = {18:1--18:24},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
ISBN = {978-3-95977-239-6},
ISSN = {1868-8969},
year = {2022},
volume = {231},
editor = {Maggio, Martina},
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECRTS.2022.18},
URN = {urn:nbn:de:0030-drops-163351},
doi = {10.4230/LIPIcs.ECRTS.2022.18},
annote = {Keywords: Real-time system, Software security, Data-flow integrity, Worst-case execution time}
}