高复杂性下的蓝牙安全危机
蓝牙就像胶水一样和我们的智能设备紧密的粘在一起,这意味着一旦出现BUG,可能会引发严重的后果。
最近,位于美国加州圣克拉拉市的安全公司McAfee(迈克菲,是一家致力于创建最佳计算机安全解决方案的公司,该公司提供的杀毒软件是全世界最畅销的杀毒软件之一)的研究人员报告了一种名叫BoxLock(一款自带扫码功能的挂锁,可以支持蓝牙、扫码开锁)的智能挂锁存在蓝牙低能耗(BLE,全称Bluetooth Low Energy,它是蓝牙协议的一个浓缩版本)误配置的问题,它使得设备可以在没有任何密码或加密保护的情况下自由配对,研究人员可以随意连接到任何一把锁上,通过分析可以辨别出是哪个设备发出了解锁命令,此外BoxLock将该命令配置为读写模式,一旦攻击者知道目标是谁,就能启用解锁命令。
除以上事件之外,其实类似漏洞早在2017年就被曝光了,当时影响着包括电脑、手机、物联网在内的近50亿终端设备,虽然很多缺陷已被修复,但目前仍有10多亿设备受到影响,而这类通过利用一系列蓝牙漏洞攻击的媒介统称为BlueBorne。
BlueBorne有什么危害
因为蓝牙进程在操作系统中具有很高的权限,导致BlueBorne这种只需要无线信号就能攻击的方式极具感染力,它能像感冒病毒一样通过空气从一台设备传播到另一台设备,瞄准网络防御最薄弱的地方以达到完全控制整个系统的目的。
为什么有这么大危害
那么导致出现问题的原因是什么呢?也许很多人会直接怀疑蓝牙本身的问题,其实不全是如此,当初蓝牙协议为了使用户能够灵活配置,提供了庞大的可选项和标准文档供生产厂家使用,蓝牙协议标准多达2822页,而Wi-Fi协议(802.11)标准才450页,这庞大臃肿的标准使得生产厂家无法准确的使用最合适的配置,从而导致发布的产品可能含有致命的漏洞。
下面就列出一些由物联网安全公司Armis Labs发布的最具代表性的几个蓝牙相关漏洞(包含了蓝牙协议本身及生产厂家)。
CVE-2017-1000251,这是Linux内核的远程控制执行漏洞,攻击者可以利用此漏洞向蓝牙协议的L2CAP(蓝牙系统中的核心协议,负责适配基带中的上层协议)层发送畸形数据包,对目标设备进行恶意配置,为下一步攻击做准备。
CVE-2017-1000250,Linux的蓝牙协议栈信息泄露漏洞,因为蓝牙设计规范程度不够,导致部分Linux和安卓系统会被攻击者完全控制,从而执行进一步的攻击。
CVE-2017-0785,安卓信息泄露漏洞,类似于上述的蓝牙协议栈信息泄露漏洞,攻击者可以利用漏洞在安卓设备上反复传输指令,达到绕过验证和保护机制的效果。
CVE-2017-0781,安卓系统的远程控制执行漏洞,因为安卓在消息处理的代码逻辑部分存在一处逻辑错误,导致堆溢出被触发后,后续的缓存区大小填写不受限制。
CVE-2017-0782,也是安卓远程控制执行漏洞,这个是因为安卓在控制帧数据包的一段代码逻辑有问题,后续代码又没做检验,导致利用漏洞可以突破最大传输单元的大小限制。
CVE-2017-0783,安卓信息泄露安全漏洞和Windows信息泄露安全漏洞,攻击者可以自己组建网络,并设置自己为网络访问点,然后修改动态主机配置协议服务器构造恶意中继。
CVE-2017-14315,苹果远程控制执行漏洞,因为基于蓝牙低功耗的语音控制命令传输在消息来源验证方面存在逻辑漏洞,对传入的指令大小验证不严格导致溢出,从而使得远程代码可以在iOS蓝牙协议栈上被执行。
在物联网爆发的时代,越来越多的智能设备加入,随着蓝牙功能不断介入我们的生活,安全问题该怎么办呢?对此,研究人员称蓝牙协议正在不断进行完善,未来会有增强安全性的工具或组件出现,但是呢,平时有可用的安全补丁一定要打,不常用蓝牙时最好还是给关了。对此,你怎么看?
如果你愿意,让我来帮你关注那些可能不知道又想知道却想不到的知识,公众号【关爱程序员社区】。