研究背景

在今年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。