Internet of Things (IoT) consists of a large number of smart devices connected through a network, which creates a vast amount of data communication, thereby posing new security, privacy, and trust issues. One way to address these issues is ensuring data confidentiality using lightweight encryption algorithms for IoT protocols. However, the design and implementation of such protocols is an error-prone task; flaws in the implementation can lead to devastating security vulnerabilities. Here we propose a new verification approach named Encryption-BMC and Fuzzing (EBF), which combines Bounded Model Checking (BMC) and Fuzzing techniques to verify software and detect security vulnerabilities exploited by an attacker concerning users' privacy and integrity. EBF models IoT protocols as a client and server using POSIX threads, thereby simulating both entities' communication. It also employs static and dynamic verification to cover the system's state-space exhaustively. We evaluate EBF using the concurrency benchmarks from SV-COMP and show that it outperforms other state-of-the-art tools such as ESBMC, AFL, Lazy-CSeq, and TSAN w.r.t. bug finding. We also evaluate an open-source implementation called WolfMQTT. It is an MQTT client implementation that uses the WolfSSL library. We show that EBF detects a data race, which other approaches are unable to identify.
翻译:互联网中的东西(IoT)由大量智能装置组成,通过网络连接起来,产生大量数据通信,从而带来新的安全、隐私和信任问题。解决这些问题的一种方法是,利用IoT协议的轻量级加密算法确保数据保密。然而,这类协议的设计和实施是一项容易出错的任务;执行中的缺陷可能导致破坏性的安全脆弱性。我们在这里提出一个新的核查方法,名为加密-BMC和模糊(EBFF),该方法结合了破碎的模范检查(BMC)和模糊技术,以核查软件,并发现攻击者利用有关用户隐私和完整性的软件和安全弱点。EBFF模式协议是使用POSIX线作为客户和服务器的IoT协议,从而模拟两个实体的通信。它还采用静态和动态的核查,以涵盖系统的州空间。我们使用SV-COMP的货币基准来评价EBFF, 表明它比ESMC、AL、Lzy-CSeq 和WFTTQ等开放的州-TF-TF 工具。它也是一个无法检测的客户端口号的运行。