Detecção de ataques por controle de fluxo de execução em sistemas embarcados : uma abordagem em hardware - Porcher, Bruno Casagrande (2017)
The use of computer systems is present in the most diverse environments in which we live and this rapid expansion exposes the population to the most diverse types of vulnerabilities. Errors in critical systems may result in financial loss, data theft, environmental damage or may even endanger human life. This work was developed to make it more difficult for malicious users to take control of computer systems. A hardware-based approach to detect attacks that cause changes to the program’s execution flow, but with no necessity for change or even the previous knowledge of the source code, is proposed. Thus, the purpose of this work is to ensure reliability by guaranteeing that the software running on the processor is equal to the one developed by the programmer. To do so, checkpoints in the program verify the integrity of the system during its execution. The proposed technique is implemented by software, which is responsible for the prior identification of the basic blocks using the critical system’s executable file. A dedicated hardware, denominated Watchdog is instantiated with the processor of the critical system and validated by functional simulations. The technique’s evaluation was carried out by executing in the soft-core version of a LEON3 processor for code sections, which are capable of exposing the database’s, denominated Common Vulnerabilities and Exposures (CVE, 2017). The experimental results demonstrate th proposed technique’s efficiency in terms of corruption detection in code snippets and in the execution of snippets of code not belonging to the original program. Finally, an analysis of the main overheads is performed.