Finding Tizen security bugs through whole-system static analysis
Song, Daniel Wonjoon
Master of Science
Tizen is a new Linux-based open source platform for consumer devices including smartphones, televisions, vehicles, wearables, and eventually other IoT devices. 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, raising concerns if any checks are missing or incomplete. In this research, we describe the design and engineering of a static analysis engine which drives a control flow analysis for the full library stack. We implemented the static analysis as an extension to LLVM, requiring us to improve LLVM’s native analysis features with respect to precision and scalability. Our extended static analysis handles 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, demonstrating the importance of automated checking. We believe that our approach will be applicable to future platforms for the emerging Internet of Things (IoT) which native code is a necessity for many consumer devices.
Security; Static Analysis