智能家居信息安全风险与防御

2021-03-12 07:53康剑萍卞志华
自动化仪表 2021年2期
关键词:攻击者智能家居客户端

康剑萍,卞志华,何 曙

(1.上海市质量监督检验技术研究院,上海 201114; 2.上海工业自动化仪表研究院有限公司,上海 200233)

0 引言

依托于物联网的智能家居,综合运用计算机技术、网络通信技术、智能控制技术和传感技术等,将传统家居通过专用的网络连接在一起,可实现家居产品的互联互通、智能控制、远程控制等功能,为用户提供更方便、更智慧的家庭生活环境。但是,随着智能家居的快速发展,其安全问题日益增多。以互联网为基础的网络环境,各种信息安全风险频发,给消费者带来很多困扰。

通过分析智能家居在网络环境中存在的信息安全风险,提出相应的防御措施。这些措施能有效降低智能家居的安全风险,从而保护消费者的人身和财产安全。

1 智能家居概述

1.1 智能家居安全现状

随着物联网和5G技术的普及应用,万物互联时代正式开启。据预计,到2020年,全球智能家居规模将从100亿美元增长到500亿美元,中国将成为亚洲较大的智能家居市场。目前,国内智能家居市场一般有三类企业:一是原来的互联网企业,有自主的软件开发能力,安全性较高;二是原来的家居产品生产企业,缺少软件开发和设计经验,安全性次之;三是一些贴牌生产企业,没有任何信息系统经验,信息安全问题严重。一些著名的互联网企业,如国外的苹果、亚马逊和国内的小米、百度等,都参与到智能家居平台和产品的研发中。

智能家居在带来便捷的同时,也隐藏着不少安全隐患。从隐私数据被窃取到入侵智能设备,从云平台权限失效到智能设备被黑客控制,形成僵尸网络[1]后发动大规模拒绝服务攻击(distributed denial of service,DDoS)攻击,消耗大量网络资源,使系统无法正常运行。

从实际应用来看:智能门锁可能被重放开启、智能摄像头可能导致隐私被窃取;智能音响可能成了窃听器,智能空调会被随意调节温度,智能洗衣机遭受连续的高速运转[2]等。这些都给实际生活带来了巨大的风险。

总体而言,智能家居系统的安全问题日益增多,风险不容小觑。

1.2 智能家居系统架构

智能家居具备联网能力、感知和数据采集能力、多点交互能力及多样化的控制能力[3]。从架构上分析,智能家居系统主要由设备终端、智能网关、云平台和客户端组成。智能家居系统架构如图1所示。

图1 智能家居系统架构 Fig.1 Smart home system architecture

智能终端是智能家居的核心部件。它是实现智能家居功能的硬件系统,可采集信息、进行输入和输出,并可实现远程唤醒、联动控制等功能。其一般由智能家电、智能监控、智能灯光、智能安防等组成。智能终端可以通过多协议网关(ZigBee、蓝牙、WiFi)与云平台通信[4],也可以通过自带的WiFi模块直接连接云平台。

智能网关可以实现现实网络中不同协议设备的互联互通,并通过WiFi或以太网接入,是一个把智能家居整合起来的入口。它同时具备设备管理功能,并可实现远程控制。根据协议不同,智能网点可以分为WiFi、Zigbee、蓝牙、Z-Wave等。

云平台以各类操作系统、应用系统、数据库为基础,提供数据存储、分析与下载、用户身份鉴别、权限管理、安全审计等服务。云平台可以提供用户登陆、客户端管理和配置功能,并返回各类消息和警告。

客户端指各类移动应用程序(application,APP),与云平台交互完成注册、登陆、升级及查看相关返回信息,与智能终端交互完成远程控制。

2 智能家居安全风险

基于智能家居的系统框架,安全风险主要存在于智能终端、移动客户端、云平台以及数据通信。数据通信包括移动客户端和云平台、移动客户端和智能终端、智能终端和云平台的安全问题。智能家居信息安全风险汇总如图2所示。

图2 智能家居信息安全风险汇总 Fig.2 Smart home information security risk summary

2.1 智能终端安全风险

智能终端设备通常包括智能摄像头、智能门锁、智能音响、智能家电产品、智能照明设备等。终端设备的安全性通常从固件安全、入侵防范和远程更新进行分析。

①固件安全。

固件是一种嵌入在硬件中的软件,提供了硬件设备的功能和性能,通常保存在快闪存储器中。有些固件代码中会保存硬编码密码,攻击者可以提取固件进行反编译,分析出其中的密码,从而获取设备的操作权限,使设备感染病毒,或利用物联网设备发起对互联网的DDoS攻击。固件中也可能含有隐藏的后门。这往往是程序员为便于调试和修改故意留下的,但在发布前忘记删除,造成了安全隐患。物联网设备常使用第三方开源组件。这些组件如果存在未知的安全风险,固件就很容易成为攻击的对象。因此,只有及时更新至最新版本才能解决安全风险。

②入侵防范。

在将终端设备连接到家庭局域网或映射到公网时,会受到攻击者的端口扫描或模糊测试。当发现系统的安全漏洞后,可能造成恶意代码的入侵,或者使硬件存在调试接口[5]。如果这些接口没有很好的安全防护措施,攻击者很容易读写存储器上的内容。

③远程更新。

智能设备出现漏洞是不可避免的,但需要有更新升级的机制来保护。目前,有些智能设备没有固件升级功能;有些智能设备有升级功能而没有任何提示和确认信息却自动更新;有些智能设备没有对升级包进行校验,使攻击者可以替换升级包,在程序中插入有害的代码来获取权限、攻击网络或系统。

2.2 移动客户端安全风险

移动客户端是物联网的重要组成部分,主要承担登录、控制、配置、绑定等功能。一些硬件厂商没有软件开发的能力和经验,会委托第三方开发商完成开发任务,导致很多APP具有相似的安全缺陷和漏洞。其主要安全问题是未对APP进行加固和混淆,使其容易被反编译、二次打包,远程更新缺乏验证机制,本地数据明文显示或未加密。

①反编译。

大量的智能终端移动客户端APP并未对代码进行混淆和加固,攻击者很容易通过反编译逆向出源代码,并且推导出程序的逻辑设计流程、结构、算法等处理过程。一些APP在开发过程中将密码或加密密钥硬编码在APP程序中。通过反编译,可以直接拿到这些密码或密钥,进而解密整个系统,入侵终端设备。

②二次打包。

二次打包是指反编译智能终端APP,破解后改变源程序的部分内容,通过植入广告、恶意代码,然后重新打包成完全一样的APP,发放到市场中欺骗消费者的行为。被二次打包的APP运行后,存在泄露个人隐私、恶意扣费、广告骚扰和流量损失等问题,对开发者是侵权,对消费者是侵害。

③远程更新。

APP在增加新功能或修复漏洞时,需要进行远程更新。有些APP没有升级计划或更新周期很长,很难保证APP的安全性。升级过程中可能存在的风险包括APP的更新包被篡改、植入恶意程序,可能发生在服务器端、传输过程和客户端的安装包保存位置。

④本地数据安全。

APP在运行过程中的各类数据(包括登录密码、ID号以及个人敏感信息)都会保存到Android系统内嵌的数据库中。这类数据如果是明文或仅有简单加密,就很容易被黑客通过root后的手机获取,从而控制智能设备。

2.3 云平台安全风险

随着企业上云率的逐年上升,云平台承受了互联网上超过一半的恶意攻击。由于业务数据量越来越多和防护意识的薄弱,云平台已成为网络攻击的重灾区。特别是基于物联网的云平台,它的安全威胁主要来自身份鉴别、访问控制、数据保护和网站安全。

①身份鉴别。

身份鉴别是验证访问者的身份,防止未授权的用户对云端和设备的访问。攻击者可以利用登录过程中的漏洞进行攻击。比如:未限制非法登录次数,未规定密码的复杂度要求,通过弱口令暴力破解轻松获取密码[6];设备绑定未进行人机校验,账号没有经过验证直接与终端设备绑定,不限数量,不作验证;挖掘密码修改过程或验证码的漏洞,绕过验证进行登录。

②访问控制。

访问控制是防止未授权用户对已授权资源的访问。云平台未对需要授权的被访问资源进行验证,导致越权操作后重要的数据被未授权访问或修改。比如:一般用户可以获取管理员权限进行垂直越权,可以增加、删除、更改和查看数据库的内容;攻击者可以根据设备标识规律预测出其他的设备标志,从而水平越权获得这些设备的控制权限。

③数据保护。

云平台存储了大量的用户数据。如果这些数据没有加密或仅简单加密,一旦攻击者获取了系统权限,就很容易泄露。用户隐私数据可能因为越权被获取、下载,用户的文件可能通过更改有规则的文件名被下载。

④Web安全。

支持Web服务的云平台,可能会出现常见的漏洞,比如结构化查询语言(structured query language,SQL)注入、跨站脚本攻击(cross site script,XSS)、跨站请求伪造(cross-site request forgery,CSRF)等。攻击者可以通过SQL注入获取数据库的内容[7],从而获取用户权限来操控智能家居。

2.4 数据通信安全风险

物联网中,通信安全是指智能终端、移动客户端和云平台两两之间的数据传输是否加密,能否抵御信息在传输过程中被窃取、被篡改、被泄露的风险,从而保证信息的完整性、保密性和不可抵赖性。

①通信保密性。

在数据的传输过程中,主要有三种情况涉及信息的保密传输:移动应用和云平台间采用了超文本传输协议(hyper text transfer protocol,HTTP)协议[8],且重要的密码信息未经加密处理;移动应用和智能终端之间根据不同的设备使用不同的未加密的协议和数据流,导致信息被泄露;智能终端和云平台之间采用未加密的协议进行通信。智能摄像设备如果不加保护地传输音视频信息时,容易被窃听或截获私密信息[9]。

②重放攻击。

重放攻击是一种攻击类型,是指攻击者发送一个服务器已接收过的包。这个包不用解密,所以加密虽然能防止信息被窃取,但并不能抵御重放攻击。重放攻击可以由发起者或拦截方发起,它在任何网络通信中都可以发生。在智能家居中重放攻击可使智能终端重复执行未授权的动作,比如智能门锁开门、智能音箱放音乐、智能洗衣机连续高速运转等风险事件。

③中间人攻击。

中间人攻击是指攻击者分别与通信的两端发生联系,拦截并修改通信双方的数据,然后再交换数据。客户端和服务器端都以为是和对方在私密通信,其实整个传输都被攻击者完全控制。中间人攻击能窃取和篡改通信过程中加密或不加密的信息,直接导致用户敏感信息的泄露,同时也使公众对通信安全产生怀疑。

3 智能家居防御方案

智能家居在实现互联互通的同时,也带来了巨大的安全隐患。这些安全隐患需要设计者和管理者在设计产品的初期就对信息安全予以充分的重视。这样设计出的产品才能满足功能和安全的双重要求。智能家居的防御主要从终端安全、移动客户端安全、云端安全和通信安全四个方面来分析。

3.1 智能终端防御方案

对于智能终端的安全,可以从以下几个方面进行改进和防护。

①设计安全的鉴权机制。

②设计安全的访问控制机制。

③固件代码采取必要的混淆和加固;代码中避免硬编码敏感信息;可以对密码进行模糊化处理,并存储在外部文件中管理。

④避免留下硬件调试接口和软件调试接口,调试后应删除,防止攻击者入侵。

⑤安全的远程更新机制,包括固件及使用的第三方组件,并对升级包进行校验,确保升级更新的完整性和有效性。

3.2 移动客户端防御方案

移动客户端一般指安装在手机端的APP,可以从以下几个方面进行改进和防护。

①采用混淆和加固技术进行反编译保护,可以增加反编译的成本、防止恶意注入和二次打包等攻击行为;同时,源代码中避免硬编码敏感信息,保障程序的安全性和稳定性。

②安全的远程更新机制,防止APP升级包被篡改。首先,请求升级接口时采用https协议,防止恶意返回篡改后的地址;其次,下载时也使用加密的https协议,并对文件进行Hash值校验,防止文件被篡改;最后,在安装时对安卓安装包(Android package,APK)文件进行包名和签名的验证,防止被植入不相关的内容或被替换。

③本地数据(包括用户的敏感信息如账号密码、联系人信息等)应加密存储或不作存储,不能以明文形式存储到数据库、日志、配置文件或缓存中。否则,攻击者可使用root手机查看相关目录下的信息。

3.3 云平台防御方案

智能家居的云端需要实现管理控制功能,存放用户的敏感信息和应用数据,可以从以下几个方面进行改进和防护。

①设计安全的鉴权机制。该机制对密码进行长度、强度、时效性的检查,在修改或找回密码时,进行身份验证。身份验证可采用双因素认证(除了用户名、密码外可加入短信验证码)。验证码需要在服务器端验证。简单的客户端验证容易被攻击者绕过,从而暴力破解登陆接口。

②设计安全的访问控制机制。该机制可有效避免非授权用户对智能家居设备的非法访问和控制[9]。应限制同一账号在多台终端设备上登陆,设计访问功能时要避免水平越权和垂直越权,防止未经身份鉴别横向访问其他用户设备或纵向获取系统管理员权限。使用Token是服务器端身份认证的一种常用方式,可以通过如图3所示的Token认证流程实现安全的认证。

图3 Token认证流程 Fig.3 Token authentication process

APP客户端登录时,会将加密的用户名和密码发送到服务端。服务端校验功后生成字符串作为Token,并将Token返回给客户端。客户端再次请求时,凡是需要验证之处都需要带上此Token。服务器验证成功后,返回响应信息。对Token进行签名是为了防止Token被篡改;加随机数验证,是为了防止Token被重放攻击。Token可以设置有效期。每次APP请求时会同时验证Token和有效期。一般Token由用户标志(uid)、时间戳、签名等组成。

③对用户敏感信息进行加密存储,设计安全的加密方式。尽量不使用通过撞库就能得到明文密码的MD5哈希算法来存储密码。可以使用更安全、高效、强大的高级加密标准(advanced encryption standard,AES)算法,或者采用MD5加随机盐值的方式存储密码等敏感信息。

④Web安全采用通用的安全策略,安装杀毒软件、防火墙,定期进行渗透测试和漏洞扫描,防止SQL注入、XSS攻击、XSRF攻击、文件上传、暴力破解等漏洞的存在,降低被攻击的可能性。

3.4 数据通信防御方案

智能家居通信主要指在客户端和云端、客户端和智能终端、智能终端和云端之间的通信,主要协议包括https、蓝牙、ZigBee等。通信安全可以从以下几个方面进行改进和防护。

①采用加密的协议传输数据,主要包括采用https替代http,防止用户敏感信息泄露,实现数据传输的保密性、完整性和不可否认性。有些智能设备的音视频流和控制数据采用用户数据报协议(user datagram protocol,UDP)协议进行连接,比如智能摄像头使用未加密的实时流传输协议(real time streaming protocol,RTSP)进行视频传输,很容易被攻击者获取私密数据。对蓝牙链接进行加密,并保护传输的数据,防止数据被窃听。

②防止重放攻击,应确保未经身份认证的人员无法重放截取的数据包,以避免阻碍用户正常使用终端设备,而产生危及使用者人身和财产安全的事件。重放攻击的关键是截获一个请求包,然后用这个请求包进行重复发送。解决问题的关键是同样的请求只有一次有效,可以随请求携带一个唯一的字段(可以是时间戳或有失效时间的随机值),并使用客户端私钥进行签名。即使获取了数据包并更改其中的随机值,也无法用私钥进行签名,所以重放攻击不能成功。

③防止中间人攻击,应确保通信双方的数据包不被第三者窃取或篡改。正确使用https协议是防范中间人攻击的有效方法。有些APP虽然使用了https进行通信,但并没有对证书作校验,而是让客户端代码信任所有的证书。这会造成伪造的证书通过客户端的证书校验,从而抓取https明文数据包。对此,可以使用SSL Pinning来防止APP中间人攻击。具体方法是将证书绑定到客户端APP中,在通信过程中对比服务器端证书和内置客户端证书是否一致,如不一致则直接断开网络。

使用https协议后,传输过程中是加密处理的,但通过中间人攻击还是有可能拿到明文。对一些安全性要求高的应用,可以使用安全性更高的加盐哈希方式加密,然后再进行传输。

3.5 智能家居安全防御的意义

智能家居不仅带来方便、舒适的用户体验,更需要安全、有效的防御措施。具体而言,安全的智能家居终端可以避免固件中的信息被盗取,防止攻击者入侵。客户端APP如做好加固和混淆,就可以防止APP被反编译和二次打包,避免被植入恶意程序、广告推销、恶意扣费等风险,造成用户隐私及财产的损失。加强防护的服务器端可以防止未授权用户的访问和某些越权用户的访问,从而避免非法登录及数据信息被非法访问。Web服务更要防止因各类漏洞而产生的攻击,从而避免因数据库信息被盗取而产生控制智能家居的行为。在智能终端、客户端、云端的两两通信过程中采取加密的通信协议,可防止通信过程中的隐私信息被窃取、篡改或重放,从而保证信息的完整性、保密性和不可抵赖性,避免产生危及使用者人身和财产安全的事件。总体而言,这些措施能有效地降低智能家居的安全风险,在终端、客户端、云端及其两两通信过程中保护客户的隐私信息不被盗取或篡改,从而产生控制或破坏智能家居系统的风险。

4 结论

智能家居在我国的发展历程不长,现阶段才迎来融合演变期。而它的安全问题也变得日益突出,关系着广大用户的人身和财产安全。本文从终端安全、客户端安全、云端安全和通信安全四个方面对智能家居的安全进行评估,从中得出相应的防御措施。

基于此,对智能家居的安全检测变得尤为重要。这能提高相关企业对信息安全的重视,进而提升信息安全水平。智能家居的发展正从单品的智能化过渡到单品之间的联动,最后实现跨产品的互通互联。这不仅是数据的互通和共享,而是实现了这些数据的智慧化联动。因此,未来的智能家居不仅是智慧化生活,更是安全的智慧化生活。

猜你喜欢
攻击者智能家居客户端
机动能力受限的目标-攻击-防御定性微分对策
基于PLC的智能家居控制系统研究
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
正面迎接批判
基于Zigbee的无线通信技术在智能家居中的应用
关于智能家居真正需求的探讨
有限次重复博弈下的网络攻击行为研究
智能家居更贴心