Internet of Things (IoT) consists of a large number of devices connected through a network, which exchange a high volume of data, 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 check for security vulnerabilities that arise from concurrent implementations of cyrptographic protocols, which include data race, thread leak, arithmetic overflow, and memory safety. 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 against three benchmarks. First, we use the concurrency benchmark from SV-COMP and show that it outperforms other state-of-the-art tools such as ESBMC, AFL, Lazy-CSeq, and TSAN with respect to bug finding. Second, we evaluate an open-source implementation called WolfMQTT. It is an MQTT client implementation that uses the WolfSSL library. We show that \tool detects a data race bug, which other approaches are unable to find. Third, to show the effectiveness of EBF, we replicate some known vulnerabilities in OpenSSL and CyaSSL (lately WolfSSL) libraries. EBF can detect the bugs in minimum time.
翻译:互联网(IoT)由大量设备组成,它们通过网络连接,交换大量数据,从而带来新的安全、隐私和信任问题。解决这些问题的一种方法是,使用轻量级加密算法为IoT协议确保数据保密。然而,这类协议的设计和实施是一个容易出错的任务;执行中的缺陷可能导致破坏性的安全脆弱性。在这里,我们提出了一个新的核查方法,名为加密-BMC和模糊(EBF),它结合了经损坏的SSS模型测试(BMC)和模糊技术,以检查同时执行回声学协议所产生的安全脆弱性,其中包括数据竞赛、线漏、计算溢出和记忆安全。但是,这种协议的设计和执行是使用POSIX线作为客户和服务器,从而模拟两个实体的通信。我们用静态和动态的核查方法来覆盖系统的状态空间。我们用三个基准来评估EBFFF。 首先,我们使用SV-COMP的公开货币测试方法, 并显示它超越了其他州-TF IM 工具,例如,我们SB-TF AS AS AS IM IM 的运行。