Securely Implementing Network Protocols: Detecting and Preventing Logical Flaws by Cody Mercer
Securely Implementing Network Protocols: Detecting and Preventing Logical Flaws by Mathy Vanhoef
Properly implementing network protocols is essential in securing any network-accessible device. Although there has been a substantial amount of work on detecting and preventing common programming mistakes such as buffer overflows and use-after-free's, less attention has been given to the detection of logical bugs. Unfortunately, the last few years it has been made clear that logical implementation bugs are more common than previously thought. Moreover, they can void any security that the protocol is supposed to provide.
One example is the Early CCS attack against OpenSSL, which an adversary can abuse to decrypt and/or modify transmitted data. Implementations of other protocols such as SSH and Wi-Fi can be affected by similar flaws. In this webcast, we explore how model-based testing can semi-automatically detect such flaws.
First, we illustrate how model-based testing was used to detect logical bugs in SSL/TLS implementations. Then, we demonstrate how a variant of their technique can be applied to detect logical flaws in Wi-Fi implementations, and discuss vulnerabilities we discovered in Windows, OpenBSD, Broadcom, and MediaTek.
Finally, we conclude with advice on how logical bugs can be avoided when implementing a protocol.