International Conference on Dependable Systems and Networks (DSN'06)
Static Analysis to Enforce Safe Value Flow in Embedded Control Systems
Philadelphia, Pennsylvania
June 25-June 28
ISBN: 0-7695-2607-1
Embedded control systems consist of multiple components with different criticality levels interacting with each other. For example, in a passenger jet, the navigation system interacts with the passenger entertainment system in providing passengers the distance-to-destination information. It is imperative that failures in the non-critical subsystem should not compromise critical functionality. This architectural principle for robustness can, however, be easily compromised by implementation-level errors. We describe Safe- Flow, which statically analyzes core components in the system to ensure that they use non-core values communicated through shared memory only if they are run-time monitored for safety or recoverability. Using simple, local annotations and semantic restrictions on shared memory usage in the core component, SafeFlow precisely identifies accesses to unmonitored non-core values. With a few false positives, it identifies erroneous dependencies of critical data on noncore values that can arise due to programming errors, inadvertent accesses, or wrong assumptions regarding the absence of difficult-to-detect implementation errors such as data races and synchronization. We demonstrate the utility of SafeFlow by applying it to discover critical value flow dependencies in three prototype systems.
Citation:
Sumant Kowshik, Grigore Rosu, Lui Sha, "Static Analysis to Enforce Safe Value Flow in Embedded Control Systems," dsn, pp.23-34, International Conference on Dependable Systems and Networks (DSN'06), 2006