Finding Tizen security bugs through whole-system static analysis
This work addresses security risks for Tizen developers and users by providing tools to verify app properties and prevent vulnerabilities, though it is incremental as it builds on existing LLVM analysis techniques.
The researchers tackled the problem of identifying security vulnerabilities in the Tizen platform by developing a static analysis engine for whole-system analysis, resulting in the discovery of unexpected behaviors such as paths lacking security checks in system libraries.
Tizen is a new Linux-based open source platform for consumer devices including smartphones, televisions, vehicles, and wearables. While Tizen provides kernel-level mandatory policy enforcement, it has a large collection of libraries, implemented in a mix of C and C++, which make their own security checks. In this research, we describe the design and engineering of a static analysis engine which drives a full information flow analysis for apps and a control flow analysis for the full library stack. We implemented these static analyses as extensions to LLVM, requiring us to improve LLVM's native analysis features to get greater precision and scalability, including knotty issues like the coexistence of C++ inheritance with C function pointer use. With our tools, we found several unexpected behaviors in the Tizen system, including paths through the system libraries that did not have inline security checks. We show how our tools can help the Tizen app store to verify important app properties as well as helping the Tizen development process avoid the accidental introduction of subtle vulnerabilities.