研究背景
在今年2月份的RSA大会上,ESET的研究人员公开披露Wi-Fi芯片存在严重安全漏洞CVE-2019-15126,并将其命名为“Kr00k”。攻击者可以利用“Kr00k”解密无线网络流量,获取传输过程中的敏感数据。
Kr00k漏洞影响部分安装Broadcom和Cypress Wi-Fi芯片的设备,这两家芯片产品被广泛应用于手机、平板电脑及IOT设备中。保守估计,全球总计超过10亿的设备受该漏洞的影响。
漏洞分析
2.1 漏洞原理
在介绍Kr00k漏洞之前,先简单了解下WPA2协议。目前基于AES-CCMP的WPA2协议是Wi-Fi网络中最普遍的标准。下图是客户端(Station, STA)连接接入点(Access Point, AP)的消息交互过程。
STA和AP在四次握手中,协商会话密钥PTK(Pairwise Transient Key),PTK是由PMK和PKE计算生成,而PMK由ANonce、SNonce和双方MAC地址等计算生成。PTK分为KCK、KEK和TK三部分,其中,KCK用于MIC校验,KEK用于加密GTK,TK为数据加密密钥。四次握手完成后,传输数据使用TK进行加密。
在WPA2协议中,解除关联操作可以由未经身份验证和未加密的管理帧触发,Kr00k漏洞与解除关联操作密切相关。在下图所示中,当站点的连接会话解除关联后,保存在Wi-Fi芯片中的会话密钥(TK)被置零,如果使用已置零的TK密钥对芯片缓存中的数据进行加密并传输,将导致漏洞产生。
攻击者利用无线网卡即可完成入侵,通过不断触发解除关联、重新关联,然后使用全零TK对捕获的数据帧进行解密,从而获取敏感信息。
2.2 固件分析
本文选取Nexus5中的BCM4339芯片固件进行分析。首先,定位固件中计算ptk的位置,如下图所示。
然后,对其上层函数wlc_wpa_sup_eapol进行分析。
wlc_wpa_sup_eapol调用wpa_pmk_to_ptk时,传入的参数分别为mac1、mac2、Nonce1、Nonce2、pmk、pmk_len、ptk、ptk_len。ptk计算结果被保存在wpa_ptk结构体偏移0x8c位置中。
wlc_sup_attach函数用于处理STA的初始化连接,该函数对wpa_ptk结构体进行内存分配和初始化,wpa_ptk结构体大小为0x13C。
当初始化失败、连接超时或解除连接的时候,则会调用wlc_sup_detach函数对wpa_ptk结构体进行置零操作。
漏洞验证
3.1 测试环境
设备名称 | 数量 | |
受影响的设备 | Nexus5 | 1 |
iphone6s手机 | 1 | |
Attacker | NETGEAR网卡 | 2 |
3.2 测试步骤
(1)对wireshark解密数据包的相关功能进行patch,使其能够成功解密全零TK加密的数据。
(2)使用patch后的wireshark监听目标设备和AP通信的数据包。
(3)使用目标设备连接AP并任意访问网页。
(4)对AP和测试目标发送Disassocation包。
(5)重复执行步骤(3)和(4),观察wireshark中数据包是否解密。
3.3 测试结果
Nexus 5:
iphone 6s:
可以看出,Nexus 5和iphone 6s部分数据被成功解密。
影响范围
目前已知受影响的设备有:
Amazon Echo 2nd gen
Amazon Kindle 8th gen
Apple iPad mini 2
Apple iPhone 6, 6S, 8, XR
Apple MacBook Air Retina 13-inch 2018
Google Nexus 5
Google Nexus 6
Google Nexus 6P
Raspberry Pi 3
Samsung Galaxy S4 GT-I9505
Samsung Galaxy S8
Xiaomi Redmi 3S
Asus RT-N12
Huawei B612S-25d
Huawei EchoLife HG8245H
Huawei E5577Cs-321
安全建议
设备制造商已发布的安全建议如下:
•https://support.apple.com/en-us/HT210721
•https://support.apple.com/en-us/HT210722
•https://support.apple.com/en-us/HT210788
•https://www.arubanetworks.com/assets/alert/ARUBA-PSA-2020-003.txt
•https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20200226-wi-fi-info-disclosure
•https://www.huawei.com/en/psirt/security-notices/huawei-sn-20200228-01-kr00k-en
•https://www.microchip.com/design-centers/wireless-connectivity/embedded-wi-fi/kr00k-vulnerability
•https://www.mist.com/documentation/mist-security-advisory-kr00k-attack-faq/
•https://www.zebra.com/us/en/support-downloads/lifeguard-security/kr00k-vulnerability.html
声明:本文来自ADLab,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。