Many solutions have been proposed to curb unexpected behavior of automation apps installed on programmable IoT platforms by enforcing safety policies at runtime. However, all prior work addresses a weaker version of the actual problem due to a simpler, unrealistic threat model. These solutions are not general enough as they are heavily dependent on the installed apps and catered to specific IoT platforms. Here, we address a stronger version of the problem via a realistic threat model, where (i) undesired cyber actions can come from not only automation platform backends (e.g., SmartThings) but also close-sourced third-party services (e.g., IFTTT), and (ii) physical actions (e.g., user interactions) on devices can move the IoT system to an undesirable state. We propose a runtime mechanism, dubbed Maverick, which employs an app-independent, platform-agnostic mediator to enforce policies against all undesired cyber actions and applies corrective-actions to bring the IoT system back to a safe state from an unsafe state transition. Maverick is equipped with a policy language capable of expressing rich temporal invariants and an automated toolchain that includes a policy synthesizer and a policy analyzer for user assistance. We implemented Maverick in a prototype and showed its efficacy in both physical and virtual testbeds, incurring minimal overhead.
翻译:已经提出了许多解决方案来限制可编程IoT平台上安装的自动化应用程序的意外行为,这是通过在运行时执行安全策略来实现的。然而,所有先前的工作都解决了较弱版本的实际问题,因为威胁模型更简单,不现实。这些解决方案不够通用,因为它们严重依赖于安装的应用程序并针对特定的IoT平台。在这里,我们通过一个现实的威胁模型解决了更强的问题,其中(i)不期望的网络行为不仅可以来自自动化平台后端(例如SmartThings),还可以来自闭源的第三方服务(例如IFTTT),(ii)设备上的物理行为(例如用户交互)可能会将IoT系统移动到不理想的状态。我们提出了一个运行时机制,称为Maverick,它采用独立于应用程序和平台的中介来执行策略,以防止所有不需要的网络行为,并采取纠正行动来将IoT系统从不安全状态转换回安全状态。Maverick配备了能够表达丰富的时间不变量的策略语言,以及一个自动工具链,包括策略合成器和策略分析器,以供用户协助。我们在原型中实现了Maverick,并在物理和虚拟测试平台上展示了它的功效,产生了最小的开销。