Technical Paper
Applying Concolic Testing to the Automotive Domain
2024-04-09
2024-01-2802
Symbolic code execution is a powerful cybersecurity testing approach that facilitates the systematic exploration of all paths within a program to uncover previously unknown cybersecurity vulnerabilities. This is achieved through a Satisfiability Modulo Theory (SMT) solver, which operates on symbolic values for program inputs instead of using their concrete counterparts. However, in complex code bases, this approach faces significant limitations, such as program path explosions or unavailable dependencies, which can result in conditions that the SMT solver cannot reason about. Consequently, SMT solvers are often considered as too costly to implement for automotive testing use cases and are rarely employed within this domain. In contrast, fuzz testing has recently gained traction in the automotive industry as an invaluable testing technique for identifying previously unknown vulnerabilities. Its initial setup is straightforward and typically yields useful findings.