APP下载

面向智能家居平台的信息物理融合系统安全

2019-11-15李少锋张亦弛朱浩瑾张新鹏

计算机研究与发展 2019年11期
关键词:攻击者智能家居语音

孟 岩 李少锋 张亦弛 朱浩瑾 张新鹏

1(上海交通大学计算机科学与工程系 上海 200240) 2(上海先进通信与数据科学研究院 上海 200444) 3(上海大学通信与信息工程学院 上海 200444)

伴随着大数据、人工智能技术的快速发展与5G通信技术的普及,人类对物理信息世界的海量数据获取与处理能力日益增强,并逐步迈入物联网时代.智能家居作为由物联网技术衍生出的新概念,能够将家庭中的各种设备(如家用电器、照明系统、温控系统与安防系统)连接到一起,可以使用户实现家电自动控制、远程控制以及可编程控制等功能,从而享受便捷的家居生活.随着物联网技术的发展,智能家居正快速进入千家万户.根据HIS Markit发布的报告,智能家居设备的全球市场规模在2017年底超过了33亿美元,并预期在2021年达到94亿美元[1].与此同时,中国的智能家居市场也在快速发展.根据艾瑞咨询发布的《2018年中国智能家居行业研究报告》,2017年中国智能家居市场规模为3 254.7亿元,并预期在2020年达到5 819.3亿元[2].

智能家居行业正处于快速发展的阶段,大量的供应商生产制造了成千上万种智能家居设备,比如智能灯、智能开关、智能插座以及智能音箱.为了使不同厂商的设备能够兼容工作,并便于开发者开发更多的智能应用,当前市场上主要的厂商陆续推出了智能家居平台.智能家居平台中的亮点在于将智能设备抽象化,这一特点一方面使得不同的智能设备得以协同工作,另一方面也便于开发者针对跨厂商的智能设备开发智能应用.作为一种典型的信息物理融合系统,智能家居平台使用语音助手、智能摄像头等方式感知外界物理环境信息,同时依靠部署在云端后台的智能应用对这些信息进行处理并生成相应的指令,并利用执行器通过执行指令来改变物理环境的状态.当前国际上主流的智能家居平台包括三星SmartThings、亚马逊Alexa、谷歌的Google Home,在国内,天猫精灵、小米小爱以及华为HiLink等平台被推出并占领了越来越多的市场份额.

然而,智能家居平台面临着与日俱增的安全问题,严重影响了公众对其信赖程度.本文首先回顾了智能家居的各个组成部分,及其面临的传统攻击方式.当前,随着人工智能技术的快速发展,在面向物理世界接口方面,智能家居平台面临着严重的对抗样本攻击,如针对语音接口的对抗语音样本攻击与针对图像接口的数据隐写问题.在信息处理层面,由于智能应用在访问控制、安全规则等存在缺陷,存在大量隐私泄露、安全侵犯等问题.本文将重点回顾这2个新型的安全隐患,并分析现有的防御措施及其不足之处.

对于智能家居平台中存在的恶意应用,本文介绍一种独立于平台的第三方的恶意软件检测系统.该系统不需要对现有平台或应用做出任何改造,通过对无线网络中的流量进行侧信道分析以及对应用程序的执行逻辑分析,推测智能设备与应用的工作状态,并对活跃应用可能存在的异常行为进行检测.本文介绍了该系统的具体设计,并在三星Smart-Things平台上进行测试,结果表明该系统能够有效地挖掘智能家居应用的运行逻辑,并在恶意应用检测上具有很高的准确率.

本文的主要贡献有4个方面:

1) 回顾了智能家居平台的主要架构,并介绍了传统的安全问题在智能家居平台上的表现形式.

2) 针对智能家居平台物理接口与信息处理这2个层面,介绍了新近提出的安全威胁,并回顾了相关的防御方案.

3) 提出了一种第三方的检测系统HODETECT,能够凭借智能家居环境中的无线流量实现对恶意应用的检测.

4) 指出针对智能家居平台安全研究面临的挑战与机遇,并指出未来热点研究方向.

Fig. 1 Architecture and attack interfaces of smart home platform图1 智能家居平台的架构与攻击接口

1 智能家居平台

1.1 平台介绍

智能家居平台是一种新型的信息物理融合系统,本节将介绍其典型的体系结构.如图1所示,智能家居平台包含4个组成模块:智能设备、集线器(Hub)、云端服务器与用户接口.

1) 智能设备是智能家居系统的基石,其具有感知、改变物理环境的功能,并支持具备短距离、低功耗特性的进场无线通信协议(例如蓝牙、WiFi、ZigBee、Z-Wave、NB-IoT协议等).智能设备根据功能可分为传感器与执行器2类.传感器(如运动传感器)可以通过物理元件感知环境变化,并将信息通过无线通信发送至其他单元.执行器(如温度调节器)通常与具备计算能力的后端连接,并根据后端发送的指令执行相关操作,以改变周围环境的状态.

2) Hub在平台中担任了家庭智能设备与云端进行无线通信的枢纽.Hub支持众多的无线通信协议以便兼容更多种类的智能设备,并充当了云端后台的本地网关.在智能家居环境中,Hub被放置在智能设备附近,接收传感器测量的各种信息,并将云端产生的指令无线分发给执行器.Hub与智能设备所通信的无线通信协议,由于部分智能设备具有资源受限的特性,大多具有低功耗、低速率的特点,并支持数据加密技术保护通信安全.例如ZigBee协议工作在2.4 GHz频段,传输率为250 kbps,并支持128 bit AES-CCM*加密模式.而Z-Wave作为另一种流行的通信协议,在900 MHz频段附近工作,具有40 kbps与100 kbps两种传输速率,并通过为每个设备赋予唯一的PINQR码标识其身份保护数据安全.

3) 云端服务器针对各种智能设备进行信息处理与指令分发,承担了平台大部分的运算任务,从而减轻本地设备的运算压力及降低设备能耗.在SmartThings,IFTTT等大多数智能家居平台中,用户可以在云端部署智能应用以实现设备自动化.这些应用可以根据代码自身逻辑,通过本地Hub来操纵多个智能设备(例如在运动传感器监测到用户进入房屋时自动开启照明设备).应用开发者也可以出于各种需求开发相应应用,使得设备的运行更加智能与人性化.

4) 用户接口通常为手持设备(如智能手机),其充当了用户与智能设备之间的交互桥梁.一般地,用户会在智能手机上安装由平台提供方开发的一个移动应用来掌握目前家中设备的状态信息,以实现设备自动化.此外,近年来智能音箱的流行使得用户接口变得丰富多样,用户只需通过语音,就可以与家中的智能设备进行交互.语音系统允许用户远程操纵智能设备,因此对于老人、残疾人等由于身体原因无法直接操纵设备的人士十分友好,具有广阔的应用前景.

1.2 智能家居攻击接口分析

如图1所示,对攻击者而言,智能家居平台存在不同种类的安全隐患,针对智能家居的攻击可以大致总结为5种:

1) 物理层阻塞攻击.在智能家居平台中,各个智能设备通过无线网络进行通信,因此通信的物理信道安全就至关重要.物理层主要的攻击方式为阻塞攻击,即攻击者干扰智能设备与Hub之间的无线通信.攻击者可以在智能家居平台的工作频率上,利用无线设备发送大功率无线信号实现信道阻塞[3].在最极端的情况下,阻塞攻击能够使整个家庭环境中的无线通信瘫痪.更严重的是,对于功率受限的智能设备,当其遭受阻塞攻击时,会重传大量数据包,导致其电量的大幅衰减与工作寿命的降低.

2) 网络层流量分析.在智能家居中,所有的智能设备均通过Hub与云端通信.在家居环境下,攻击者可以部署无线嗅探器,监听无线信道中的通信流量(如WiFi,ZigBee,Z-Wave流量),并分析流量语义、对通信协议进行逆向工程、甚至进行欺骗(spoofing)攻击.韩国先进科学研究院Choi等人在2016年对基于IEEE 802.15.4标准的定制化协议进行了逆向工程,成功获取该协议中各个字段的含义,并能实现欺骗攻击[4].由于该协议被部署在温控传感器、屏蔽门等敏感设备上,因此该欺骗攻击具有巨大的破坏性.另一方面,由于智能家居中设备的状态变化与人的行为密切相关,因此攻击者若成功分析通信流量所代表的用户活动信息,就能够对用户在家庭中的隐私行为进行推测,从而给用户造成严重的隐私风险[5-7].

3) 智能设备设计缺陷.在理想情况下,智能设备应具有牢固可靠的访问控制系统,仅允许合法用户访问设备.然而,在当前的智能家居平台中,许多智能设备的安全机制均存在缺陷,因此攻击者可以恶意连接到设备中并获取敏感权限.例如,许多ZigBee设备在加入网络时使用了默认的连接密钥,从而使得攻击者能够对这些设备进行劫持[8].另外,一些蓝牙设备的认证机制也存在缺陷,能够给攻击者攻击用户可穿戴设备的机会[9].在设备的应用层面,许多设备的认证机制同样缺乏合适的设计,从而为攻击者从互联网上攻击智能设备打开了大门.维基解密的报告指出,数十种智能设备,例如三星智能电视,可以被远程攻击者打开,并调整为监听模式,从而监听用户在家庭的谈话信息[10].智能设备的缺陷可能会造成大规模的安全威胁.例如2017年图灵奖获得者Shamir指出:飞利浦智能灯存在设计缺陷,攻击者可以获取其ZigBee通信的AES-CCM*密钥,并利用无线通信对周围灯泡进行蠕虫感染,实现城市级别的DDoS攻击[11].2018年普林斯顿大学Poor指出:攻击者可以通过入侵智能家居中的电气,操纵电网的电能需求,引发电网级联故障[12].

4) 用户接口存在的安全威胁.智能家居设备为用户提供了多种多样的接口,如图像识别、语音接口等.例如语音接口就是一种主流的用户接口,其可以使用户无需与实际的设备进行交互,即可控制设备.然而,这些接口也会受到各种攻击.以语音接口为例,其设备的硬件缺陷为攻击者打开了实现欺骗攻击的大门[13-14].徐文渊于CCS 2017中指出一种海豚音攻击[13].该攻击通过发射一段人耳无法感知的超声波信号,诱导语音接口将其识别为特定的指令,并触发相应的操作.在攻击时,攻击者将低频的语音指令通过高频的超声波调制后发送.语音接口解调信号时,由于麦克风设备的非线性特性,可以将低频指令恢复出来.该攻击由于无法被人耳识别,具有很强的危害性[13].

5) 云端应用的恶意行为.智能家居平台中,云端应用起到管理智能设备工作逻辑的作用.因而对应用不恰当的权限授予可能会导致安全威胁.例如,根据Fernades于2016年的研究,三星SmartThings平台中55%以上的应用都存在过度授权的现象,即智能应用可以访问的权限要多于用户对其授予的权限,其原因在于该平台的设备功能模型授权粒度过粗[15].这种情况下,恶意应用可能会获取额外的设备控制权限,甚至窃听设备工作状态、或在云端伪造相关的智能设备的运行事件.例如Wang等人的研究指出:恶意应用可以通过利用加速度传感器、陀螺仪等数据来推测用户的行为以及输入的密码等信息[16].

1.3 现有防御方案与新型安全威胁

对于1.2节5种安全接口,目前均有相应的防御方法.对于物理层阻塞攻击,当阻塞设备游离于智能家居网络之外时,通过修改网络的通信频率及自动调频技术,可以避免阻塞攻击的影响.当阻塞设备为受到感染的智能设备时,朱浩瑾等人[17]提出了阻塞攻击检测方案,该方案观察阻塞事件的发生规律,对网络中智能设备为阻塞设备的可能性进行计算,并将阻塞设备排除出通信网络.对于网络层的流量分析,通过对流量进行加密,可以抵御用户对协议的分析.对于针对网络元数据、基于机器学习方法的流量分析技术,可以通过流量混淆技术,使机器学习模型无效化[7].对于设备的威胁,可以利用模糊测试技术,实现对设备漏洞的发现.Chen等人提出了IoTFuzzer系统,能够通过对应用的模糊测试,寻找出设备内存中的内存碰撞漏洞[18].

对于由硬件缺陷导致的用户接口威胁,直接的解决方案是修复接口缺陷.例如针对[13]中的海豚音攻击,可以通过更换高质量麦克风避免此一问题,然而这种方法代价高昂,同时无法解决重放攻击等问题.为此,研究人员提出了双因素认证系统[19-22].以语音系统为例,双因素认证利用传感器搜集到的用户皮肤震动[19]、麦克风周围的电磁波[20]、用户嘴部运动产生的多普勒效应[21]或无线信道状态信息的变化[22],与麦克风搜集的语音信号进行一致性检测,建立可靠的认证机制.然而,近期的研究指出,用户接口使用的机器学习算法中存在缺陷,可以被攻击者利用对抗样本所攻破.本文第2节将详细回顾智能家居平台中存在的对抗样本攻击,并介绍现有的一些防御方案.

对于云端应用的恶意行为,第1阶段防御方案是引用对敏感数据的信息流控制机制.Fernandes等人提出了FlowFence系统,该系统对数据流进行拦截,当用户请求敏感数据时,必须作出合法声明[23].第2阶段方案基于上下文的权限控制,Jia等人提出ContextIoT系统可以支持对智能应用的敏感行为进行细粒度的识别,用户可以在运行时收到该敏感行为包含详细上下文信息的提示,从而进一步实现对应用敏感行为的有效访问控制[24].最后,通过设计新型的智能家居平台与通信协议也可以增强其安全性.胡向东等人在[25]中建立了基于SM4密码算法的智能家居安全系统,并提供了较为完善的入侵检测机制.庞泳等人[26]对智能家居中的MAC协议提出了改进方案,并与ZigBee数据帧结合以提高系统安全性.然而这些方法仅对平台进行操作,并没有考虑到对智能应用本身进行安全检测.与传统上对安卓、IOS应用的安全分析不同[27-28],智能家居的应用涉及智能设备与物理世界的交互,需要设计新型的分析方法.本文第3节将回顾智能家居平台下对智能应用的安全检测方案.

2 对抗样本攻击下的智能家居接口安全

智能家居系统与周围环境的交互以对图像、声音和文本的感知处理为起点.随着深度学习技术的迅速发展,原本实用性不足的语音识别、语音合成、图像分类、图像检测、图像语义分割、文本语义理解、文本生成等技术得以大幅提高,并被部署到智能家居平台中,使得智能家居和周围环境的交互更加准确与高效.然而,在深度学习技术将智能家居系统实用化的过程中,由于深度神经网络存在难以解释、对轻微扰动的敏感性等特性,为智能家居接口带来了巨大的安全与隐私风险,例如对抗样本攻击[29]、数据集污染攻击[30]、模型窃取[31]、数据集隐私推测[32]、后门攻击[33]等.此外攻击者利用神经网络生成模型,通过学习目标系统中已有的数据,可以生成足以乱真的虚假数据,对目标系统进行欺骗攻击.由于智能家居平台的语音、图像等接口广泛采用了深度神经网络技术,因此无可避免地面临这些安全威胁.本节将分别介绍针对智能家居图像接口的相关攻击,与针对语音接口的欺骗攻击,并回顾相关的防御策略.

2.1 智能家居图像接口面临的对抗样本攻击

在智能家居平台中,智能摄像头能够利用最新的模式识别、目标检测和图像语义等技术为安防监控系统提供支持,可以做到诸如监控门廊是否有宠物或者快递存在,辨识家人和入侵者之间的区别,并具有较高的准确率.通过目标检测技术,智能摄像头可以为用户提供定制化的视频查询服务,可以减少用户在查阅监控视频时花费的时间.在智能车库中,应用智能摄像头可以识别出汽车的进入和离开,从而自动化开关车库门等功能.此外,智能家居中的智能门锁利用用户的生物特征,例如指纹、人脸和虹膜等,通过图像处理和模式识别技术来完成对用户身份的认证.

智能摄像头作为智能家居平台的“眼睛”,其采用的图像处理与计算机视觉算法被指出存在安全隐患.攻击者可以据此部署对抗样本攻击,此类攻击表示:

(1)

其中,xadv表示对抗样本攻击,x表示原始的输入图片,f函数表示神经网络分类器,ytarget表示目标输出,m表示输入的维度.对图像来说,m为所有像素点的数量乘以图像的通道数量,表示为m=w×h×c,其中w表示图像的宽度,h表示图像的高度,c表示图像的通道数.在式(1)中,攻击者的目标是构造与原始图片x差别最小的图片xadv,并使其被分类器f识别为目标类别ytarget.关于图像分类任务的对抗样本攻击和防御,深度学习领域已有较多研究[34-35].

除了上述针对图像分类任务的攻击,还有针对目标检测任务的攻击.目标检测任务是智能家居中最常用的图像任务之一.研究者[36]实现了多种对目前最常用的目标检测模型之一YOLO-V3的攻击,在该攻击中,通过对识别目标(例如停车标志牌)做一些微小的改变,YOLO-V3便无法识别出指定目标来.腾讯科恩实验室的研究指出,通过在路面部署特定的干扰信息,可导致车辆摄像头对车道线做出错误判断,致使车辆驶入反向车道[37].这些针对智能摄像头的攻击可以很容易地迁移到智能家居系统中,应当引起智能家居研究者的关注.智能摄像头引入的另一类安全问题是隐私泄露问题,攻击者可以通过插入虚假的图片诱导家居系统进行相应操作,并据此推测智能家居中的安全配置.Yu等人针对智能摄像头存在泄露用户隐私的风险,提出了一种既能保护用户隐私又能提供监控视频数据完整性的隐私保护方法[38].

2.2 智能家居语音接口面临的对抗样本攻击

智能家居语音接口的安全研究是当前火热的研究话题,近2年来研究者们在该领域有较多的研究成果.如图2所示,以CMU Sphinx语音识别模型为例,智能家居中的语音识别模块可以分为3个步骤[39]:1)预处理阶段,该阶段通过滤波器滤除人类听觉范围以外的频率,并对环境噪声进行降噪;2)特征提取阶段,该阶段将上一阶段的音频信号分割成帧,提取每一帧的音频特征,例如梅尔倒谱系数MFCC等;3)使用基于隐Markov模型等解码算法来解析语音帧所对应的音素,并利用后续机器学习算法将这些音素序列识别成单个单词,最终将音频信号识别为文本文字.

Fig. 2 Architecture of speech recognition system图2 语音识别系统结构

Fig. 3 The adversarial example attack on voice interface图3 针对语音接口的对抗样本攻击

对语音接口的攻击相比对图像接口的攻击,具有更大的难度.在图像攻击中,修改像素值对图像的整体面貌不会造成太大的变化;而对语音特征进行修改,很可能导致音频信号变为噪声.如图3所示,实现对语音接口的攻击的关键在于确定合适的扰动.Carlini等人对语音识别系统的3个步骤均进行逆向工程,即从单词先逆向生成音素,再由音素逆向生成MFCC参数,最后由MFCC参数逆向生成攻击音频[40].此后,Schönherr等人利用人耳听觉特性改进了上述针对语音接口的攻击,使得从MFCC参数生成的含对抗样本的声音对于人耳是不可感知的[41].其具体方法是在生成过程中加入人耳听觉范围的约束条件,使得生成攻击样本的过程不为人耳所听见.上述攻击[40-41]均针对语音识别中第3阶段语音识别部分的攻击,而文献[42]则针对语音识别中第1阶段的特征提取过程进行攻击,通过制作人耳无法理解的噪声,使得语音系统识别出恶意的MFCC参数,并导致系统输出恶意的语音指令.

此外随着生成对抗网络(generative adversarial network, GAN)在图像识别和文本处理领域取得巨大成功,GAN的应用也为音频领域带来了巨大的挑战.研究者指出利用GAN生成和原始声音信号特征一致的声音信号攻击语音系统的可行性[43-44].

上述攻击均针对语音识别系统本身进行攻击,此外还有一类攻击则利用智能音箱的设计和应用管理漏洞来窃取用户隐私,例如田园等人[45]审查了亚马逊Alexa智能家居应用程序的管理与激活机制的漏洞,提出了2类攻击:1)语音擅用(squatting)攻击.在该攻击中,攻击者利用用户输入语音命令(skill)的多样性(例如口音、礼貌用语等)使得智能音箱触发恶意的语音命令,而非用户真正想要触发的应用程序.例如“Alexa,open Capital One please”这条语音指令中,用户真正想要激活的是“Capital One”这个命令,而恶意攻击者把自己的恶意语音命令命名为“Capital One please”,因此当用户说出这条指令时,恶意应用将被激活.2)语音伪装(mas-querading)攻击.在这类攻击中,攻击者将其恶意应用的激活口令设置为“stop”之类的常用口令,然后在用户同智能音箱交互的过程中说出此类命令时,触发恶意应用.例如当用户正在听音乐的时候说出“stop”指令以关闭音乐时,由于指令管理的不安全性,名为“stop”的恶意命令被激活,该命令播放空白音频,使得用户误以为智能音箱已经关闭,然而该命令将在后台运行录音功能以收集用户隐私.

在智能家居平台中,语音接口除了帮助用户实现家居自动化服务,还会应用在与用户的语音对话中,成为用户重要的知识获取窗口.然而,目前的研究已经证明语音对话系统中应用的人工智能技术存在着众多安全隐患[46-47].例如在2016年3月25日,微软在推特网站上发布了其开发的聊天机器人Toy,结果不到一天时间,该机器人的聊天算法就被攻击者利用恶意样本所污染,并散布具有种族歧视等不当言论.这一攻击导致微软不得不下线该产品并发布安全补丁[46].随着强化学习[48]等技术应用于对话系统中,智能家居将会更好地为用户提供服务,与此同时,开发者应该慎重考虑其安全保护措施,并及时解决其潜在的安全隐患.

2.3 关于对抗样本攻击的防御方案

针对对抗样本攻击的防御,当前主流的防御方式是采用对抗训练技术.对抗训练的过程本质上是增强数据集的过程,即在训练的过程中,为每个输入样本添加人类难以察觉的有界扰动,然后将新生成的样本加入训练集中进行训练.其形式化定义:

(2)

其中,α是一个权重因子,用来控制自然损失函数l(Fθ,z)和鲁棒损失函数lR(Fθ,z,Bε)之间所占的比重;Fθ代表分类器的输出,z表示一对训练样本,Bε控制了扰动的范围在单位球面内.

关于如何为特定样本找到最大的扰动,目前主要有2类方法:1)基于经验的对抗训练,其包括基于投影梯度下降(projected gradient descent)的对抗训练[49]、基于优化的对抗训练[50]以及基于输出分布距离的对抗训练[51].2)基于可验证界的对抗训练,这类方法包括基于对偶(duality-based)的验证[52],基于抽象解释(abstract interpretation-based)的验证[53]等.

此外,利用模型蒸馏(distillation)[54]将训练过程中的梯度传播变得平滑,不仅可以抵抗对抗样本攻击,而且蒸馏之后得到的模型具有可以部署到移动端的优势.基于训练数据的隐私保护,一般采用差分隐私(differential privacy, DP)的技术来进行防御.已有研究[55-56]表明:差分隐私技术利用数据聚合可以保护单个用户隐私的特性,将模型的训练由确定性的输出转换为概率性的输出.

尽管目前关于对抗样本攻击的防御有了一定程度的研究,但是由于新型的攻击手段层出不穷,因此仍需要研究者在设计智能家居平台的接口时审视其安全隐患.

3 基于终端用户开发平台的云端应用分析

本节我们详细介绍智能家居环境下,利用终端用户开发(end-user development)平台的架构:以三星SmartThings为参照,分析可能对其产生的威胁以及应对方案.

3.1 终端用户开发平台

现有的智能家居平台普遍采取终端用户开发模式为智能家居用户提供个性化的服务.终端用户开发模式允许终端用户对计算资源进行部署、调度、控制甚至编程.在智能家居环境下,这种模式面向广泛的非专业用户群体,为个性化定制智能家居服务提供了便利.

但是,运行由用户提交的指令时,无法保证所执行命令的安全性,因此多数主流智能家居平台采取从云端后台外部访问智能设备的方式,将用户自定义的指令传入云端的沙盒执行.其中,三星Smart-Things平台是最受用户欢迎的平台,并且其用户处于连续增长的趋势,大量的研究也将其作为研究对象进行分析,因此我们将以三星SmartThings平台为例,分析相关的安全与隐私威胁以及防御措施.

3.2 三星SmartThings平台

三星SmartThings平台[57]属于本文1.1节中提到的典型的智能家居平台,它由智能设备、Hub、云端后台和用户接口组成.本文1.1节中已经介绍了前3个组成部分,本文将重点介绍智能家居应用在SmartThings平台上的表现形式.

为了保障智能家居应用执行的安全性,三星SmartThings平台使用Kohsuke沙盒[15]开发基于Groovy编程语言的智能家居应用,因此当用户开发个性化的智能家居应用时,用户将无法使用所有的Groovy方法.例如用户无法使用自己定义的类,只能调用平台建立的抽象对象.

在智能家居应用的开发方面[58],三星Smart-Things平台的权限系统把每一个智能设备抽象成基于功能(capabilities)的对象,从而实现智能设备的分类,方便用户的开发.每个智能设备的功能包括设备的动作(action),如开关以及设备的事件(events),如设备当前的状态.智能设备的功能限定了该设备的动作,功能不同的设备拥有不同的方法.同时,一个设备可能具有多个功能,代表该设备拥有多个功能.虽然使用“功能”可以对智能设备的类别做到很好的划分,但是后文将会分析可能产生的安全隐患.

在智能家居应用的安装方面,用户可以通过官方的市场下载并安装应用[59],或是从私人的云端后台安装第三方开发的智能家居应用[60].在智能家居应用的发布方面,用户需要将应用的源码发送至官方审核.如果审核通过,用户开发的智能家居应用将会发布在三星SmartThings官方的市场上.如果用户开发的应用仅仅用于自身,便可以省去官方审核的环节.很多用户开发的应用未经过官方审核便在SmartThings社区论坛共享,这些智能家居应用很有可能不具备运行时的安全性及隐私性的保障,对用户造成伤害.除去本文1.2节中智能应用的安全威胁之外,3.3节将重点介绍三星SmartThings平台可能面对的安全与隐私方面的威胁与解决方案.

3.3 智能应用安全问题及应对方案

智能家居应用对于终端用户是一个黑盒模型.在智能家居平台的应用运行时,用户通常不能准确地了解该应用具体的操作流程,完全信任应用并且赋予应用所要求的所有控制权限使用户位于容易遭到攻击的处境.表1总结了相关的应对方案.例如田园在[61]中提出,应用“Alfred Workflow”执行时并不需要控制门锁,但在安装界面要求用户分配控制锁的权限,导致用户可能面临门锁被恶意应用控制的威胁.同时,智能家居应用有用大量用户个人隐私信息和公共接口,用户并不能确定自己的隐私是否被发送给第三方.面对诸如此类的问题,用户迫切需要能够针对智能家居应用代码的检测系统.

Table 1 Comparison of Existing Security and Privacy Related Methods表1 现有安全与隐私相关方案对比分析

静态检测常常被用来检测安卓应用或者iOS应用的安全及隐私问题.对于安卓与iOS平台,研究者们已经公开了大量成熟的框架可以使用,如FlowDroid[62].然而,对于以三星SmartThings为代表的智能家居平台,由于其应用具有高度信息物理融合的特点,因此需要新型的静态分析工具.近年来,研究者们大都采用了基于抽象语法树的静态检测方法,有效地解决了这项挑战.通过遍历智能家居应用代码的抽象语法树,我们可以得到应用的控制流图以及函数调用图,从而将其作为静态检测算法的输入.智能家居应用的系统安全性问题的检测以及用户隐私泄露问题的检测均依赖于代码的抽象语法树.

对于智能家居系统安全性的问题,目前的研究主要面对智能家具应用的工作流上.田园的研究工作[61]提取每个智能家居应用的工作流,并且与其文本描述做对比,分析可能存在的不符合描述的案例.Celik等人于2018年发表在USENIX ATC的论文[63]中为智能家居设备提出了名为SOTERIA的状态模型检测方法.SOTERIA首先根据智能家居的安全性质(比如当用户离开家时房门应该上锁),对应用代码进行静态分析以提取设备的状态模型,最后通过自动化生成逻辑公式与设备的状态模型相匹配以检测设备是否处于安全状态.对于智能家居的安全性质,SOTERIA采取前人的使用案例与不当使用案例作为判断依据,总结了5条基本性质和30条针对单一应用的安全性质.在静态检测方面,SOTERIA克服了由Groovy“语法糖”性质产生的模糊问题,将设备的离散与连续状态值抽象成统一标准,通过分析可能的组合从而提取设备的状态模型.在方法评估方面,SOTERIA利用了三星Smart-Things官方市场及MalIoT[64]上的智能家居应用进行标杆分析.在官方市场的测试集中,SOTERIA分析了65个智能家居应用,其中有17个应用违反了11条安全性质;在MalIoT的测试集中,SOTERIA在20个恶意应用中正确地检测出了17个应用违反安全性质.丁文博等人[65]基于SOTERIA方法的状态模型思想,分析了由智能设备的物理功能产生的新式攻击.

3.4 智能家居应用的隐私风险及对策

对于用户的隐私泄露问题,Celik等人在2018年发表在USENIX Security的论文[66]中提出一种基于静态检测的污点分析方法SAINT.SAINT能够系统分析在三星SmartThings平台中的污点数据的流向以及程序入口的自动化识别,并实现反向的污点分析.SAINT总结了污点的源头(source)大致由设备状态、设备信息、地理位置、用户输入以及状态变量组成;而污点的终点(sink)主要分为互联网入口以及信息服务.由于智能家居应用由事件驱动的性质,因此单个应用可以从多个入口开始执行.SAINT自动化识别了应用的入口,并且绘制了以每个入口为起点的控制流图以作为污点分析算法的输入.在反向的污点分析过程中,SAINT考虑了三星SmartThings平台中Groovy的动态特性,如位于外部存储的设备状态信息、函数的动态调用以及Groovy独有的语法糖.同时,SAINT在反向的污点分析过程中应用了路径敏感分析、上下文敏感分析以及隐式流分析的方法.SAINT分析了230个真实的智能家居应用,并且发现其中有138个可能导致用户隐私泄露的问题.其中有92个应用通过互联网泄露用户隐私,46个应用通过信息服务泄露用户隐私.

在三星SmartThings平台上,针对安全与隐私威胁的检测系统已经相对完备,但是现有的检测系统无法对恶意应用的执行过程实施干预.一个运行时的干预系统可以及时保障用户的安全.Celik等人于2019年提出了一种能够实时获取智能家居应用安全性质并且对智能家居应用的行为进行实时监控并且干预的系统IoTGuard[67].IoTGuard利用Groovy的抽象语法树转换为智能家居应用静态地添加逻辑代码,利用路径敏感的静态检测方法为每个函数添加执行权限控制,以网络服务的形式向不违反安全性质的函数发送执行许可,阻止违反安全规则的函数的执行.IoTGuard不仅在35个三星SmartThings智能家具应用上进行评估,还在30个IFTTT平台的应用上进行了评估.其中,IotGuard有效地阻止了15个三星智能家居应用以及5个IFTTT智能家居应用的违反安全性质的行为.

4 基于无线流量分析的恶意应用检测方案

针对云端应用的研究中,3.3节和3.4节的防御方案侧重于对应用程序的静态分析,其或者需要对应用程序进行代码分析,或者需要在代码中植入监视代码.然而,对于普通的用户而言,在程序运行中植入代码具有技术上的困难,此外这一行为破坏了平台的完整性,也给攻击者打开了攻击接口.因此,一个独立于平台的第三方恶意软件检测系统十分必要.

本文提出一种新型的恶意软件实时检测系统HODETECT,能够在智能应用运行的过程中,通过分析无线流量,判断其是否在运行中偏离了其正常的运行规范,从而检测出家居环境中的恶意软件.

4.1 系统基本思想

HODETECT的目的是在对智能家居平台不加以任何干预的情况下,对异常的应用进行检测.为了实现这一目标,HODETECT利用了无线侧信道技术.使用该技术基于2个观察:1)智能家居的无线协议大多具有低功耗、低速率、低数据冗余度的特征,因此表现为明显的特征、容易进行侧信道分析;2)Hub与智能设备之间的无线流量具有独特且稳定的特征,能够反映智能设备所发生的事件.

本文通过以智能家居中的一个典型应用为例,形象地阐述这2个观察.如图4(a)所示,应用“Brighten My Path”包括了3个智能设备:Hub、运动传感器与智能灯泡.其工作逻辑为:当运动传感器检测到周围物理运动时,将信息传递给Hub,之后Hub通过无线通信打开灯泡开关.图4(b)表现了智能设备与Hub之间的通信数据包,其中X轴为数据包的时间戳,Y轴为数据包的字节长度.从图4(b)中可见该应用被执行2次,其中“motion.active”代表传感器向Hub报告周围环境的变化,“outlet.on”代表灯泡收到打开启动的命令.前者对应的数据包序列为(54↑,47↓),后者对应的序列为(50↓,47↓,47↓,52↓),其中↑意味着数据流向为“智能设备到Hub”,↓意味着数据流向为“Hub到智能设备”.图4(b)清晰地反映了通信数据流量与应用运行状态之间的对应关系.因此, HODETECT通过对无线加密流量的侧信道分析实现对智能应用的监控具有可行性.

因此,本文的基本思路是:在应用运行前,通过借助代码分析技术与自然语言处理技术,提取智能应用的工作逻辑,并利用确定性有限状态自动机对其进行建模.在应用运行时,通过对监听无线加密流量的元数据,来推测当前活跃的应用与其运行状态.若应用的运行偏离了其应有的工作逻辑,则HODETECT将该应用判定为恶意应用,并向用户发出警报.

4.2 系统架构

本文的目的在于通过无线流量实时检测异常的智能应用.在本文中,我们认为行为良好、正常的智能应用可以从官方市场或可信第三方获取,以便提取正常应用的运行状态.关于本身即具有恶意功能的应用,则不在HODETECT系统的研究范围之内.对于构建HODETECT系统,存在的3个挑战分别是:

1) 如何自动提取智能家居平台中应用(特别是闭源应用),提取其运行逻辑?

2) 如何在智能家居环境中采集其无线通信流量(例如ZigBee与Z-Wave流量),并建立流量对智能应用状态之间的映射关系.

3) 如何在实际的智能家居环境中实现系统的原型,并评估系统的性能与有效性.

图5为HODETECT系统的工作流程图.为了解决以上3个挑战,HODETECT包含了2个主要模块:1)应用分析模块(详见4.3节)——针对开源与闭源的智能应用,分别从源代码和交互界面描述文本中提取状态逻辑;2)无线流量分析模块(详见4.4节)——通过对捕获的无限流量进行侧信道分析,并于应用的预期行为进行比对,从而推测是否存在异常行为.本文的4.5节与4.6节分别介绍了HODETECT的性能与隐私保护机制.

Fig. 5 System design of HODETECT图5 HODETECT系统的组成成分

4.3 智能应用状态分析与提取

HODETECT的应用分析模块能够从智能应用的代码或相关描述信息中提取应用的功能逻辑.在智能家居平台中,智能应用的功能逻辑在开发前就已确立,运行时其行为严格地从一个状态转移至另一个状态.因此,本文采用有限状态自动机(deterministic finite automation, DFA)对应用的状态进行建模.DFA利用一个五元组对状态进行刻画:

M=(Q,Σ,δ,q0,F),

(3)

其中,Q是该状态机包含的有限状态集合;Σ是智能设备所具有的功能与命令的集合;δ是状态机的状态转移函数Q×Σ→Q,这里Q×Σ是二元组(q,a)集合,其中q∈Q,a∈Σ;q0是状态机初始状态;F是状态机的接受状态集合.本文的目的即通过对应用的分析,建立其对应的状态机M.

对于开源的智能应用,由于其代码是公开的,因此HODETECT可以利用静态分析技术构建其状态机.对于闭源智能应用,由于无法获得其源代码,唯一能够利用的信息是应用交互界面的文本信息.例如图6是一个智能应用的交互界面,从中构建状态机需要经过3个步骤:1)文本信息提取.本文利用uiautomator工具将交互界面的信息转译为XML文件,并且从中提取全部的字符串内容.2)状态机符号推测.该步骤采用自然语言处理技术从上一步字符串内容中去推测其可能包含的状态,本文使用NLTK(natural language toolkit)提取句子中的名词与动词短语,并与应用官方文档进行比对,恢复其对应的智能设备事件Σ.3)状态机构建.根据交互界面的文本逻辑关系,将第2步获取的对应符号进行链接,从而得到有限状态机.如图6所示,一般采取UI事件排列顺序确定逻辑关系,当排列顺序不足以判断逻辑关系时,根据田园的方法[61]分析,最后确定F,Q与q0.通过以上方法,HODETECT在智能应用运行之前,即可获取其状态逻辑,为后续的无线流量分析做基础.

Fig. 6 DFA building for closed-source app图6 闭源应用的有限状态自动机构建

4.4 基于无线流量分析的应用检测

在无线流量分析进行之前,HODETECT首先要对智能设备事件建立对应的无线指纹,之后将采集的无线流量与指纹进行匹配,推测应用的执行状态并检测其是否为恶意软件.具体包括无线流量的采集、无线指纹的建立与应用恶意检测.

1) 无线流量采集.针对智能家居平台中的不同无线协议下的数据包,均有相应的采集方式.例如对于SmartThings下广泛采用的ZigBee协议,HODETECT采用商用的嗅探设备TI CC2531 USB Dongle与开源软件工具802.15.4 Monitor进行采集;针对Z-Wave流量,HODETECT使用通用软件无线电外设USRP与基于Scapy-Radio的定制化软件进行采集.在收集数据包后,HODETECT需要对原始数据中的噪声进行预处理.在本文中,用于使智能设备与协调器维持连接的信标帧、应对数据传输失败情况的重传帧、以及来自网络系统中的无关流量均被删除,以保证后续处理的准确性.

2) 无线指纹建立.针对智能设备的事件E,HODETECT对其运行时产生的数据包Fi={p1,p2,…,pn}提取特征Fp.HODETECT首先触发事件E共计n次,在n组流量F={F1,F2,…,Fn}中,求出最具有相似性的序列作为无线特征.因为编辑距离(Levenshtein距离)可以描述2组序列之间的相似程度,因此本文工作计算最小编辑距离得到样本中可以作为事件指纹的序列,计算过程:

(4)

其中,dist(Fi,Fj)为编辑距离,计算样本Fi与Fj之间的编辑距离,根据式(4)得到对应的特征Fp.例如图4中,针对智能灯泡开启时产生的一系列数据包序列样本Fi={p1,p2,…,pn},在过滤其无关的数据包(如Beacon,ACK数据)后,通过计算得到其特征指纹为Fp={50↓,47↓,47↓,52↓},该序列即可以作为“开启智能灯泡”这个物理设备事件的指纹供下面推测使用.

3) 应用状态推测与检测.在得到各类设备事件指纹的基础上,针对目标智能家居平台,攻击者采集智能应用运行时的流量信息,并将其切分为一系列的数据包序列段.对于每一个流量序列P,计算设备事件指纹集合中每一个特征Fp与该序列P的编辑距离,根据最小编辑距离为最相似的原则,可以将流量映射到对应的事件Ep.

在从加密流量中得到一组事件序列E={E1,E2,…,En}和针对目标应用构建的状态机M=(Q,Σ,δ,q0,F)后,HODETECT将判断该应用是否执行了恶意行为.HODETECT将枚举事件序列中出现的每一个事件Ei,并在满足条件Ei∈Σ∩δ(Si,Ei)=Si+1∈Q的情况下,将状态机从状态Si转移到Si+1.算法初始状态为S0=q0.如果该事件序列最终能够将状态机转移到接收状态,即Sn∈F,则可以认为该应用的行为是可以接收的(正常的),否则可判定检测到了行为异常的应用.

4.5 系统性能评估

为了验证HODETECT系统的有效性,本文基于当前最流行的SmartThings智能家居系统,搭建了一个智能家居实验平台.该平台包含了7个ZigBee设备与4个Z-Wave设备,分别支持20个与10个官方应用.由于当前没有公开的恶意应用数据集,因此本文对30个官方应用进行了修改.对于每一个合法应用,本文设计了一种具有越权行为的恶意版本与一种伪造事件的恶意版本.以图4的应用为例,应用只应该获取开关的switch功能的on()命令权限.越权行为包括:1)非法获取其他命令,如off();2)非法获取设备其他功能的权限,即使应用只被授予了switch功能的访问权限.伪造事件则是指应用在云端伪造事件,以激活其他应用工作.对于30个正常应用与60个恶意应用,每一个应用均被触发了20次,同时HODETECT收集流量并做检验.

表2展示了HODETECT的检测结果,其中真阳性率(true positive rate,TPR)表示异常应用被正确检测出的比率,真阴性率(true negative rate,TNR)表示被正常应用被正确标识的比率.表2可以看出,对于ZigBee设备相关的应用,检测越权行为的TPR平均值为0.98,标准差为0.03;TNR平均值为0.95,标准差为0.07.对于Z-Wave设备相关的应用,检测结果的TPR和TNR与ZigBee相关的应用相近,分别为0.98与0.92.

Table 2 The Performance on Detecting Misbehaving app表2 HODETECT在检测恶意应用上的结果

检测结果表明:HODETECT能够以较高的准确率实现对恶意应用的检测.对于检测失败的情况,其原因包括数据包丢失、设备产生的少量异常流量、以及信号延迟.

4.6 针对HODETECT的隐私保护机制

评估结果表明:HODETECT能够利用侧信道信息对智能家居中设备的行为进行检测.然而,HODETECT的这一能力也可以被攻击者窃取智能家居环境中用户的隐私信息.例如当攻击者利用HODETECT监测到家庭中门窗开关信息时,就可以推测用户是否处于住所中,这些隐私攻击为用户的安全带来了巨大的危险[68-69].

本文提出了一种基于诱饵设备(decoy)机制保证智能家居中侧信道信息不造成用户的隐私泄露,同时维持HODETECT的恶意应用检测能力.该机制的基本思路为:通过智能设备向无线网络中注入冗余的容量从而混淆设备与Hub之间的流量特征.同时由于该冗余流量由用户的设备产生,因此HODETECT可以将其轻易过滤,从而使其功能不受影响.

Fig. 7 Illustration of privacy protection via decoys图7 基于诱饵设备的隐私保护方法

图7展示基于诱饵设备的隐私保护机制的工作思路.图7(a)为一个拥有1台Hub与4台智能设备的智能家居系统.为了保护其隐私,如图7(b)每一个设备(包括Hub)设备均生成一个诱饵设备,该诱饵设备的无线通信特征与真实设备完全相同,仅MAC地址存在差异.诱饵设备可以利用一台无线节点(如USRP),通过注入含有其MAC地址等标识符的无线流量加以实现.在HODETECT看来,由于其事先已知真实设备与诱饵设备的标识符等信息,因此可以轻易过滤诱饵设备的流量.而在攻击者看来,智能家居系统中的设备数目增加了一倍,并且无法根据无线流量特征对设备进行区分.因此攻击者无法判断根据无线流量推测的设备事件的真伪性,也就无法有效地对用户的隐私信息加以推测.

5 结束语

本文中我们回顾了当前智能家居平台的发展,介绍了其组成架构与其存在的相关安全风险,回顾了由于智能家居的图像、语音等接口所使用的深度神经网络缺陷导致的各种安全问题,并介绍了相关的防御方案.针对智能家居应用所具有的高度信息物理融合特点,本文介绍了针对智能应用的安全污点分析与静态检测方案.针对目前检测智能应用的系统需要更改平台配置、实时性不强等缺陷,介绍了一种全新的独立于智能家居平台的恶意应用检测系统HODETECT.本文介绍了HODETECT的基本架构,并在SmartThings平台上验证了其有效性,证明了其能够以较高的准确性实现对恶意应用的实时检测.

猜你喜欢

攻击者智能家居语音
基于贝叶斯博弈的防御资源调配模型研究
智能家居在室内设计中的应用研究
智能家居数据采集及应用研究
魔力语音
基于MATLAB的语音信号处理
基于MQ3与MP3的价廉物美的酒驾语音提醒器
对方正在输入……
正面迎接批判
正面迎接批判
基于Zigbee的智能家居系统的研究