IOTGUARD: Dynamic Enforcement of Security and Safety Policy in Commodity IoT
1 摘要
- 提出并实现了一个基于策略的动态安全加固系统。IotGuard为app的源代码添加了额外的逻辑,以在动态模型中收集其信息,并在单应用程序和多应用程序环境中实施安全策略
- 在20个有缺陷的app(15个SmartThings和5个IFTTT应用程序)上验证IotGuard,并识别应用程序和交互应用程序中的安全违规行为。评估了在自己搭建的模拟仿真智能家居系统中执行的65个市场审核过的应用程序(35个智能件和30个IFTTT应用程序),并阐明了安全违规行为是如何被禁止的
- 评估了IotGuard在SmartThings和IFTTT应用程序上的性能,结果表明,单个应用程序和五个交互应用程序的平均运行时开销分别为17.3%和19.8%
2 问题
- 物联网设备之间的交互,多应用联动场景下的安全问题(不同app,在线服务等)
- 当前动态方法不足以识别并最终强制执行多应用程序环境中的违规行为
- 静态方法准确度不够,且只能执行有限策略集合
3 方法概述
IotGuard是一个动态的、基于策略的安全加固IOT系统,它通过监视IoT应用程序的行为来保护用户不受不安全的设备状态的影响。
IotGuard充当物联网应用程序和设备之间的管道,可以通过多种方式实现,例如在hub中、作为云中的软件服务或在本地server中实现。我们在本地server上实现了原型。与基于hub的实现相比,我们的原型不需要修改hub,而hub通常是封闭源代码的。与基于云的实现相比,本地server实现消除了信任云提供商的需要,同时仍然提供应用程序行为的完整中介。
先用code instrument在iot app源码中插入一些用来获取iot app运行时的event、action和运行时的谓词信息的代码;用户安装处理后的iot app并配置一些iot app设置;当iot app接收到event并尝试调用action时,IotGuard会根据一组安全策略检查app的event和action来决定是否通过这个action去执行。
例如,当用户不在家时,策略“用户不在家-设备关闭且锁门”要求锁门,并且设备关闭。如果所有策略都通过,则应用程序被授权执行设备action。
4 具体细节
IotGuard系统包括三个组件:
- a code instrumentor
- a data collector
- a security service
code instrumentor
code instrumentor在iot app源码中插入代码以获取app运行时的信息包括:
- device 和 event
- 被触发的action
- 运行时保护action的谓词
- device的数值属性
先对app的生命周期建模,以获取入口点、event处理方法和调用图,然后插入必要的检测代码,先识别action,然后基于路径静态分析,以收集其他后步骤需要的信息,最后把这些信息传给data collector。
data collector
data collector将收到的信息导入一个动态模型,维护一个可变有向图,用于存储带有可添加属性的动态模型。
event和action是图的节点;转化关系object连接两个节点,object属性包括设备id、转换条件、时间戳、block/allow bit(安全sevice的结果)、app信息(appid、app定义)
data collector收到app信息后检索当前图,如果模型里没有对应的event就新建一个,并将其转换关系和相应的action添加进去;如果模型里有就直接添加转换关系和相应的action。
动态模型支持平行边、自循环和循环,以便安全策略的制定。
security servie
当data collector收到app信息时,安全服务负责判断一个app是否违反了安全策略。
策略识别
R 对于特定应用场景的安全策略
根据具体有什么设备而定
S trigger-action平台特定策略
针对trigger-action平台和物联网平台的完整性和保密性安全问题,提出了2个策略。
我们首先为trigger-action应用程序的每个event和action贴上可信和不可信的标签,用于完整性策略,并为机密性策略使用public和private标签。
- 当不受信任的event更改受信任的属性时,会发生完整性策略冲突
- 当事件更改使private信息变成public时,会发生违反机密性策略的情况
我们将物联网平台的事件和行动标记为可信,从物联网系统获得的信息是可信的。我们根据触发器操作平台的属性来标记事件和操作。例如,如果某个规则在用户发送电子邮件时打开smart switch,则在用户发送电子邮件时,发送电子邮件事件将被标记为可信。
G 普适性安全策略
- 属性冲突
- 重复属性
- 循环
- event资源竞争
策略实施
安全服务对特定应用程序(R.1-R.30)和一般策略(G.1-G.4)进行可达性分析,并根据完整性和机密性标签检查触发器操作平台策略(S.1-S.2)。
不足
- 在某个state倍锁住的时候,无法执行正确的操作
- 识别ifttt平台的applets耗费大量人力
- 高复杂场景下,用户定义的rules可能会很容易产生问题,例如a和all