智能家居设备,现在已经不是什么「新鲜事物」。在市场上,我们能够看到各种各样的智能家居设备,例如扫地机器人、空气净化器、监控摄像头、智能插座、智能音箱......
当家中的联网设备越来越多,你是否会想过,这些设备可能会给家庭网络带来安全风险?
那么,为什么智能家居设备会给家庭网络带来安全风险?这些设备会带来哪些安全方面的问题?
另外,在软件开发过程中,开发者可能会因为编码疏忽、方便调试等原因,或者引用的第三方SDK有问题,有意或者无意地为设备引入后门或漏洞。尤其是软件开发流程不规范的小团队,更有可能给设备带来漏洞。
设备上的漏洞还可能会被黑客利用,用来做为跳板,扫描、攻击内网设备,或者用于对外发起DDoS攻击:
还有黑客会利用设备上的漏洞,进行「挖矿」等活动,或者将设备作为PCDN节点,占用设备的CPU、存储、带宽等资源,降低设备寿命:
对于监控摄像头(包括带摄像头的电视机)、智能音箱等设备,如果存在漏洞,理论上黑客能够利用漏洞,「偷看」或者「偷听」家中的画面和声音,严重威胁我们的个人隐私:
对于带有存储功能的智能设备,例如摄像头、NVR、NAS,漏洞还可能导致数据泄漏或丢失:
另外,对于带有云服务的智能硬件,云服务也有可能存在漏洞,或者运维的过程中出现失误,导致隐私泄漏:
在我们选用智能硬件时,尽量选用大公司、或者重视安全的公司的产品。
下图是AppleProductSecurity邮件列表中的一封邮件,可以看出,在软件更新中,Apple解决了一系列第三方研究机构上报的安全问题:
接下来是一些小技巧,通过这些技巧,读者可以粗略判断出一家公司是否重视安全:
首先,可以观察一下厂商官网上,是否有漏洞反馈页面,或者安全奖励计划页面。虽然有这些页面并不完全代表厂商重视安全,但还是能一定程度上看出厂商对安全问题的态度:
此外,还可以查找厂商是否提供安全白皮书,并阅读白皮书中的内容。重视安全的公司,一般会将自己的产品如何保护用户的安全与隐私,详细在白皮书中描述:
还可以阅读厂商的软件更新日志,观察安全漏洞修复的及时程度。另外,部分厂商还专门提供有安全漏洞更新的邮件列表,或者安全预警邮件,及时通知用户如何解决安全漏洞:
但是,如果路由器设置有误,例如将智能家居设备设置为DMZ主机,或者错误设置了端口转发规则,仍会有可能让设备暴露在公网。
建议定期检查路由器中DMZ、端口转发等设置,并删除错误配置。
如果路由器设置正确,不将设备暴露在公网,智能家居设备就难以被外界攻击,安全性大大得到提升。
但是,智能家居设备仍然可以访问Internet,连接设备厂商的服务器。阻止智能家居设备访问Internet,能避免厂商通过智能家居设备收集家庭网络中的隐私数据,也能避免厂商服务器被攻击时,家中的智能家居设备被黑客控制。
路由器中的「防火墙」或「家长控制」功能,可用于阻止内网设备访问Internet:
也可以考虑使用HomeKit、HomeAssistant等工具,实现远程访问家庭设备,具体请参考下文中的介绍。
HomeKit是来自Apple的智能家居平台。与GoogleHome、米家等其他厂商的智能家居平台不同,HomeKit的实现方式比较「另类」,所以在此处单独进行介绍。
大部分智能家居厂商都提供了「云服务」。智能家居设备和手机App连接到厂商服务器,实现了出门在外时,也能通过手机App控制智能家居设备。
但这样的云服务大多没有实现「端到端加密」。也就是说,手机和智能家居设备之间传输的数据,在服务器上是以明文形式存在的。如果设备厂商的内部管理不严格,运维人员就能看到这些数据。
而HomeKit实现了端到端加密,手机App和HomeKit家庭中枢之间通信的数据全程保持加密,在服务器上也不会解密,安全性更高。
此外,HomeKit有如下两个功能,能够提升智能家居的安全性:
其中一个是HomeKitSecureVideo。
另一个是受HomeKit保护的路由器。
HomeKit通过一种相对安全的方式,实现了外网访问家中的智能家居设备。所以,使用HomeKit之后,就可以按照上文中的介绍,阻止智能家居设备访问Internet,进一步提升安全性,而不会牺牲太多便利性了。
如果有支持HomeKit的无线路由器,这一步的操作会更加便捷。HomeKit能自动设置路由器,阻止智能家居设备访问Internet,无需用户手动修改复杂的防火墙规则。同时,HomeKit路由器还支持PPSK认证,避免泄漏主Wi-Fi密码。
目前,支持HomeKit的智能家居设备数量较少,且价格偏贵。可考虑使用HomeBridge,让更多第三方设备接入HomeKit:
当然,HomeKit并不能保证绝对的安全。不少智能家居设备,除了支持HomeKit,也提供了自己的App。通常情况下,设备厂商自己的App会提供比HomeKit更加丰富的功能,但不一定能提供与HomeKit相同等级的安全性。
另外,HomeKit是闭源软件,HomeKit基础设施也由Apple控制,而不是由用户控制。理论上Apple可以私下改变HomeKit的实现方式,而不提前通知用户。至于是否应该信任Apple,就需要读者自行判断了。
对于不使用Apple设备、或者不信任Apple的用户,还有另外一种选择:HomeAssistant。
对于监控摄像头,也有不少厂商提供了云服务,可以将监控录像存储在云端,方便视频回放和远程访问。
但是,如果厂商的云服务没有采取正确的加密措施,或者存在安全漏洞,可能就会导致监控录像泄漏。如果担心这样的问题,最好的办法,就是将视频存放在本地。
很多NAS都拥有强大的摄像头监控录制软件,例如Synology和QNAP的SurveillanceStation。可以通过这些工具,将摄像头录像保存在NAS上:
如果想要将视频监控数据和NAS上的重要数据分离,还可以考虑使用NVR设备:
如下两个摄像头均支持ONVIF,且价格不贵,适合搭配SurveillanceStation或HomeAssistant使用:
家庭网络中的设备,一般位于同一个局域网,设备之间可以相互访问。设备间的相互访问,可能也会带来安全和隐私问题。
例如前文中提到的,智能家居设备可能会扫描家庭中的所有设备,泄漏设备型号、地理位置等信息。
再例如,即使在路由器上阻止了家中的摄像头访问Internet,但是,如果电脑感染恶意软件,电脑也有可能访问摄像头,获取摄像头录制的视频,并发送到恶意网站,导致隐私泄露。
VLAN是以太网的概念,通常只用于有线网络。对于Wi-Fi,可以创建多个SSID,让不同的VLAN绑定不同的SSID,使链接Wi-Fi的设备也能做到相互隔离:
创建多个VLAN和SSID看似复杂,但实际上,路由器上的「访客模式」功能,就是通过自动划分VLAN和SSID,实现访客网络的家庭网络的隔离的。希望后续家用无线路由器厂商能够进一步优化,提供一键创建IoT网络的功能。
不过,大部分智能家居设备,使用了mDNS和DNS-SD协议。这使得我们有办法实现跨VLAN控制智能家居设备。
mDNS/DNS-SD协议用于局域网内的服务发现。该协议最早由Apple发扬光大:Apple通过Bonjour软件实现了这两个协议,并在AirPlay、AirPrint、iTunes家庭共享、AirPort路由器等产品和服务中得到了广泛应用。
在智能家居时代,无论是Apple的HomeKit,还是小米米家,都选择使用mDNS来查找和发现局域网内的智能家居设备。
如果将内网设备直接暴露在公网,很有可能带来安全问题。
当然,我们可以选择使用HomeAssistant,将HomeAssistant暴露在公网,并添加HTTPS等安全措施。但是,这样做也会有几个缺点:
所以,可以考虑通过建立安全的隧道,让外部设备与家庭设备形成一个虚拟的局域网,实现在外部访问内网设备。这种方式在本文中不再详细介绍,感兴趣的读者可以自行上网搜索。
注意:本方法只适合有经验的读者。如果操作不当,可能会带来危险,包括但不限于导致身体受伤、中毒、触电,或引发火灾。
对于具有嵌入式开发能力的读者,还可以选择DIY智能家居。自己制作的智能家居设备,软硬件相对可控,而且与成品设备相比,能够自由组合不同的传感器和各种器件,实现成品设备无法实现的功能。
ESPHome项目可以让用户使用ESP8266/ESP32,连接各种传感器和电子模块,制作自己的智能家居设备,并接入HomeAssistant。ESPHome提供的软件框架,可通过配置文件方便地添加功能,无需编程:
虽然可以使用开源软硬件来制作自己的智能家居设备,但是在制作时,还是要尽量自己对代码进行阅读和审计,确认代码是否安全。
对于已有的智能家居设备,是否有办法看到设备正在做什么?有没有在「做坏事」?在下文中,笔者将介绍几种方法。
部分智能家居设备,会通过UPnP/NAT-PMP,将端口映射到公网。这样做能方便外网访问,但也会带来安全风险。
建议定期检查路由器中的UPnP表项,观察是否有设备偷偷开放了不必要的端口。
另外,还有一部分路由器,能够统计出通过UPnP端口映射转发了多少流量。如果流量过大,则有可能是设备受到了攻击,或者被厂商偷偷用做PCDN节点。
与Pi-hole等基于DNS的工具相比,DPI能监控智能家居设备所产生的所有网络流量,实现更全面的分析。
IDS全称为「入侵检测系统」,IPS全称为「入侵防御系统」。这两者在DPI的基础上,增加了安全策略,从而可以实现对恶意行为的检测和拦截。常见的IDS/IPS包括SNORT和Suricata:
部分路由器自带蜜罐功能,例如笔者正在使用的UniFiDreamMachine,就带有一个简单的蜜罐。从截图中可以看到,有内网设备访问了蜜罐上的21、23、80端口,可以根据这些信息,确认内网设备是否有恶意行为。
也可以自行在路由器、RaspberryPi等设备上安装蜜罐。开源的蜜罐有很多种,可以参考如下链接了解:
除了上文中介绍的方法,还有一种适合专业的用户的方法:抓包。
抓包指的是用工具记录下网络中经过的所有报文,以便于后续进行人工分析。常用的抓包工具是Wireshark,能够通过图形化的界面来捕获和分析报文:
tcpdump则是一款基于命令行界面的抓包工具。一部分基于Linux操作系统的路由器,已经内置了tcpdump工具:
抓包的结果,需要进行人工分析,才能知道智能家居设备的行为。所以,这种方式只适合专业用户使用。如下链接的博客节目中,有通过抓包方式观察到光猫异常行为的案例,可供大家参考:
上文中介绍了一系列提高智能家居设备安全性的方法。一部分方法操作较为繁琐,甚至会限制智能家居的部分功能......
使用智能家居本来是为了方便。使用了这些方法,是不是过于复杂,得不偿失了?
隐私与便利是一门平衡的艺术,世上并不存在绝对的隐私。
其实,对于智能家居设备的安全与隐私问题,也是同样的道理。本文列举了提高智能家居安全性的一系列方式,读者可以根据自身情况,选择出最适合自己的方式,来取得安全与便利的平衡。
当然,也不是说采用了本文中的所有措施,就一定能保护好安全和隐私了。最重要的是,做为用户,我们需要逐步提高安全意识。相反,如果安全意识不足,部分采用本文中的方法,可能还会引入新的安全问题:例如使用HomeAssistant时,如果没有设置强密码、没有及时更新,且HomeAssistant暴露在公网,可能就会导致家庭网络被入侵。
另外,对于非常敏感的数据,最好还是尽量保持「离线」。例如摄像头尽量不要放在卧室、智能电视在不用的时候彻底断电、不需要智能功能的设备直接断开网络......