关于具有远程通信功能的智能家电网络安全风险研究与探讨
2023-03-03李岳洪周锋华
胡 姣 李岳洪 吴 根 周锋华
(威凯检测技术有限公司 广州 510663)
引言
全球家电行业正在向高端化、智能化、场景化方向快速发展,物联网场景引发新的发展机遇,助力品质生活服务规模扩大。
智能家电如果与公共数据网络连接,那么可能被不法分子或产品漏洞所利用。如果存在安全漏洞,那么其可能变身为“间谍”,成为不法分子控制偷窥的工具。围绕智能家电相关的网络安全问题不容忽视。
本文从智能家电的远程通信系统模型,系统设备端、控制软件、Web云服务端等可能存在的网络与信息安全隐患风险,以及对应风险测评方法和防护措施进行分析和探讨。
1 物联网智能家电系统风险识别
智能家电种类繁多,绝大部分智能家电远程通信系统模型的组成可以概括为三部分:设备端、控制软件端和web云服务,各组成之间由通信协议进行数据传输,系统模型如图1所示。
图1 智能家电远程通信系统模型
1.1 设备端风险
智能家电设备端通常由硬件电路和软件系统组成,存在的常见风险有:
1)暴露硬件调试接口,设备在制造设计时,为了测试方便,往往会在PCB板上开启如JTAG、UART等调试接口。
2)设备端开启远程服务调试端口,基于一些业务需求,设备端开启SSH、Telnet等远程登录服务,使用默认口令或者常用易破解的口令“admin” 等。
3)固件安全升级时,固件下载传输通道未采用https安全加密传输,升级包未进行数字签名验证,且未有固件升级失败防回退能力。
1.2 控制软件风险
为了使智能家电操作便捷,大部分智能家电都是通过APP移动应用来实现某些功能的控制和管理。移动应用存在的常见风险有:
1)逆向反编译,用户获取APK文件后,通过反编译工具对APK包开展逆向分析进而实现敏感信息数据篡改,同时对安装软件包未进行真实性校验。
2)安全传输,在与设备终端传输时,敏感数据使用明文传输未进行加密,导致被攻击者截获。
1.3 Web端风险
在IoT产品中传统的Web安全问题依然存在,大多都会造成大量用户、设备信息泄露等严重后果。而智能家电采用Web应用与Web服务实现对设备的远程访问并对设备进行管理。最常见的漏洞包括:跨站脚本(XSS)、会话劫持、敏感信息泄露、SQL注入漏洞、目录遍历漏洞、默认口令漏洞等。
2 物联网智能家电风险测评方法和防护措施
2.1 设备端测评
2.1.1 硬件接口测试
查看设备的硬件电路PCB并分析通信接口,通常PCB板的通信接口包括UART
JTAG、SPI和I2C等。UART是嵌入式设备中常用的通信协议之一,采用波特率表示数据的传输速率,通信过程中双方对波特率进行协商,以确保接受方能够以正确的格式接收数据。在UART接口包括数据传输Tx引脚、数据接收Rx引脚。通信中数据从发送UART的Tx引脚流到接收UART的Rx引脚。此外用到另外两个引脚,一个是接地(GND),一个用于供电(Vcc)。拆解设备,取出PCB并识别板子上的芯片。通过借助于显微镜查看芯片的标签信息,获取芯片的型号,运用网络搜索引擎搜索对应的芯片数据书册,查看芯片对应的引脚数据。
通过PCB板电路图分析和芯片引脚分析,借助于万用表工具来识别设备的UART接口引脚 Tx、Rx、GND和Vcc。
如果设备开启了UART调试接口,那么也就意味着提供了shell访问权限,用户就可以利用该接口获取Shell权限,最终获的Root Shell。对于硬件接口漏洞,如果存在调试接口,建议使用身份鉴别机制或者去除掉设备上的调试接口,防止设备被Root。
2.1.2 远程端口扫描
端口扫描,是一种网络扫描的测试,可以理解为是一种嗅探。其目的是为了发现目标设备服务器或工作站的IP地址,是否存在打开的端口,并利用分配的服务中的漏洞进行攻击,从而识别目标网络的脆弱性。端口号的范围从0到65535,常用的端口比如用于文件传输的21 端口,用于远程登录的23端口,用于简单邮件传输的25端口,用于浏览网页服务的80端口等等。
登录无线路由器后台查看设备的IP地址或通过移动应用APP查看设备连网的IP等途径获取设备的IP地址。使用Nmap对设备的IP进行端口扫描,查看是否存在开放的端口如图2所示。
图2 Nmap端口扫描
端口是设备与外界通信的接口,开启的端口越多,那么面临的威胁越大。针对设备商遵循最小安装的原则,关闭与业务无关的服务或端口。如应业务需要必须开启,应支持身份鉴别机制且设置口令为复杂度口令,禁止使用弱口令。
2.1.3 固件更新
固件是控制IoT设备的核心,基本所有的嵌入式IoT设备都包含固件。通俗地说,固件是嵌入在硬件中的软件。固件更新如同软件更新一样其目的可以是修复BUG、优化功能以及增加新的功能等。
固件更新的方式有很多种,如:在线的OTA、离线烧录等。不安全的固件升级,将会给用户带来很多安全隐患,如个人信息泄露、身份信息识别、毁瘫设备和网络欺诈攻击等。
通常制作商会将升级的固件包存储到远程 “服务器”的固定路径中,采用HTTP协议和私有分包协议两种传输方式,当设备连接网路后,依据当前固件更新判定标志对设备固件进行升级。设备通过手机应用APP使服务端与终端之间的互联互通,APP与设备配对连接后,一种方式APP将本地下载的固件包通过网络形式传输给终端设备;另一种方式将存储在本地的WIFI密码和账号以及升级IP及端口发送给终端设备,设备从远程服务端远程获取升级包,进行固件版本更新。
获取固件的方式有很多。如果制造商提供可下载的固件网站,可以依据对应设备的型号从官网下载。但是大部分制造商并不支持固件下载,我们就需要通过其他方式获取固件。当设备固件在升级流程时,使用Wireshark等流量转发工具对升级的流量包进行监测,从中提取固件的下载地址。比较容易捕获的升级固件的传输方式包括HTTP、UDP、FTP等,但是如果固件升级采用TLSV1.2加密的安全传输(如图3所示),那么我们很难获取到固件的下载地址。则需要尝试使用另一种方式即通过拆解设备并找到设备中闪存芯片,尝试通过UART或者JTAG等接口直接转存固件。
图3 TLSV1.2加密传输包
固件升级,除了需要增加安全的传输外,还需要对下载的固件包进行完整性校验和来源可靠性验证, 即固件签名验证,只有校验通过的固件包才允许升级。使用010 Editor工具打开固件包(如图4所示),搜索如域名或IP等常量字符串,在对应的hex值中任意修改一位并保存生成新固件,使用已经修改固件包代替原有更新的固件包进行升级,监控升级完成后,设备启动状态,如果设备启动成功说明未对固件包进行签名校验,反之则进行了签名验证。 当固件升级失败时,不损坏设备功能,且设备仍然可正常工作。
图4 010 Editor搜索IP
固件安全问题,固件应具备自身防护的能力,如固件代码混淆机制、安全加固防篡改。固件下载传输通道采用了https安全加密传输,防止中间人劫持或者嗅探;对升级包进行数字签名验证,且不允许固件升级到比当前版本更低的版本。
2.2 控制软件风险测评
2.2.1 APK包反编译
IoT设备通过移动应用来提高用户体验和实现某些操作功能,比如远程操控、设备管理、权限管理等。移动应用APP操作系统一般分为IOS和Android系统。我们通过应用商城下载IoT设备对应APP的APK包。对获取的Android系统的APK包,使用Apktools 工具对APK包进行反编译(如图5所示),修改APK包的后缀名改为.zip或者.rar并解压获取classes.dex等文件,使用dex2jar,将可运行文件classes.dex反编译为jar源码文件,借助JD-GUI工具,打开生成的jar文件查看java资源文件,再对java文件进行代码逆向分析,查看是否存在硬编码的敏感信息、不安全的数据存储与传输等安全漏洞,同时修改包的数据并进行二次编译后打包、安装,校验APP是否有签名校验保护。
除了人工的静态代码分析外,我们还可以采用移动开源测试工具MobSF进行自动化静态分析,只需要上传APK包到平台,测试包会自动执行扫描,它可以对源代码进行审计分析,其静态分析的工作原理同上述手动反编译方式一样,解析APK包中的文件AndroidManifest.xml得到应用程序的各类相关信息,然后对APK进行反编译得到java代码,而利用正则表达式对java源码进行匹配找出关键词来提取敏感数据信息包括:账号、URL以及使用到的方法等。
对于APK包防反编译可以通过对关键代码进行混淆,使用简短的字母替代原有的类名和属性名(如图6所示),使攻击者难以阅读和理解,增加对源代码理解难度,并且对于敏感信息不应存在硬编码,以防止攻击者通过提取反编译文件获取敏感信息,从而提高安全级别。同时要求在安装软件时,应对安装包进行真实性校验。
图6 使用简短的字母替代原有的类名进行代码混淆
2.2.2 APP通信安全防重放
用户通过移动应用APP来操作设备的业务功能,那么重要业务数据和重要个人信息数据在传输中是否安全呢?可以借助Fiddler 、Burp Suite等代理工具抓取查看通信是否采用SSL/TLS 安全协议、通信中关键信息数据是否加密处理以及对数据包是否具有防重复能力。
使用Burp Suite,开启proxy代理模式。拦截设备控制APP的数据信息并截获所有通信数据包分析报文。通过修改报文内容,进行数据包篡改和重放攻击测试,观察设备是否会做出响应。
通过在设备APP端、机器人端和云端对关键信息和指令数据包使用https加密传输且加时间戳、随机数等措施,可对指令重放具有一定的防御能力。
2.3 Web云服务端风险测评
Web应用测试,有很多可供选择的测试工具如:SQL注入工具SqlMap、Burp Suite渗透测试工具、TcpDump、XSSF等以及一些自动化扫描工具Nessus、IBM APPScan等。
命令注入漏洞可以选择一些配置页面如:FTP服务、邮件服务以及网络设置页面等,使用Burp Suite重放功能对抓取的数据报文进行更改,测试建议使用如“ping reboot”等之类的基本命令(如图7所示),来查看命令是否在目标设备中执行。
图7 Burp Suite进行篡改并进行重放
其他Web漏洞如XSS、文件上传漏洞、CSRF等通过一些自动化测试工具开展。其实Web漏洞,大部分都是在Web应用开发中,开发者没有对用户输入的参数进行检测或者检测不严格造成的。对用于输入的参数进行严格校验是web漏洞预防的重要关键。
3 结论
本文笔者研究了物联网框架下的智能家电各端可能存在的常见网络安全风险,并研究了一些测评方法和防护对策。目前智能家电行业的安全意识和有效解决方案好比较缺乏,智能家电网络与信息安全标准还不完善,后续还需要结合具体案例进行进一步研究和探讨。