Finding Memory Vulnerabilities in Protocol Stack Implementations using Hybrid Program Analysis
Farhaan Fowze, Tuba Yavuz · 2021
As the number of Internet of Things (IoT) devices proliferate, an in-depth understanding of the IoT attack surface has become quintessential for dealing with the security and reliability risks. IoT devices and components execute implementations of various communication protocols. Vulnerabilities in the protocol stack implementations form an important part of the IoT attack surface. Therefore, finding memory errors in such implementations is essential for improving the IoT security and reliability. This paper presents a protocol knowledge guided hybrid program analysis for detecting memory errors in protocol stack implementations. Our approach utilizes the program structure, the precise memory model of symbolic execution, and the high coverage of static analysis for scalable bug finding. We have implemented our approach in a tool called SEESAW and applied it to the USB and Bluetooth modules within the Linux kernel. SEESAW can reproduce known memory vulnerabilities and reach protocol relevant targets in a more scalable way (up to 99% speedup) compared to baseline symbolic execution.