1. 背景
近日,字节跳动无恒实验室在无线安全领域的研究成果获得认可,其《Assessing Certificate Validation User Interfaces of WPA Supplicants》论文入选计算机网络领域国际顶会 MobiCom2022。
MobiCom 是 ACM SIGMobile 开办的无线和移动通信领域的顶级会议,自 1995 年开始,每年举办一次,距今已有 28 年的历史。作为 CCF A 类会议,MobiCom 论文一贯具有较高录取标准,录用率保持在 15% 左右的水平。据悉,本次入选的论文由无恒实验室联合昆士兰大学、新加坡国立大学合作完成。
10 月 20 日,论文项目组成员 A/Prof Guangdong Bai、Dr Kailong Wang 现场参加 MobiCom2022 并发表演讲,详细地向参会观众介绍整个研究过程。论文项目组研究发现,企业 Wi-Fi 中存在大量的风险 Wi-Fi 终端设备,由于漏洞或配置错误,这些终端设备可以在用户无感知情况下被攻击者劫持,并获取到明文企业 Wi-Fi 密码,从而使攻击者直接接入企业内网。

2. 如何无感知劫持设备并接入企业内网
2.1 终端设备是如何被劫持到黑客伪造的企业 Wi-Fi ?
搭建同名企业 Wi-Fi 是完成 WPA-Enterprise 攻击的前提,基本流程如下:假设某公司员工通过连接名为 Foo Inc 的 WPA-Enterprise 网络接入公司内网。黑客在员工经常出没的场所,例如楼下的咖啡厅精心构造一个同样名称为 Foo Inc 的企业 Wi-Fi,由于存储在员工手机和电脑上的配置只记录了企业 Wi-Fi 名称为 “Foo Inc”,当员工经过黑客搭建的 “Foo Inc” 附近时,员工的手机和电脑便会主动尝试连接该 Wi-Fi。
目前 EAP 认证框架中的 PEAP、TLS、TTLS、FAST 认证协议均依赖 TLS 隧道保护其安全性。这些协议首先会在 Wi-Fi 网络和设备之间建立一个 TLS 隧道,这个 TLS 隧道和 HTTPS 中的 TLS 隧道类似。Wi-Fi 网络侧会下发 Authenticator 服务端证书,只有终端设备验证其真实性后才进行凭据交换。理论上攻击者无法伪造服务端证书, 终端设备 也就不会和黑客 伪造的 Wi-Fi 建立连接。然而在实际情况中,存在着错误配置和安全漏洞的问题,导致 终端设备 与 伪造的 Wi-Fi 建立起 TLS 连 接。比如:
1.错误配置1.一种情况是有一些 Android 设备配置 PEAP 企业无线网络时,默认不对服务端证书进行校验,例如 CVE-2020-1836。另一种情况是,大量企业在构建 Wi-Fi 时,引入了零信任思想并搭建私有 CA,以便增强安全性,而员工要配置企业 Wi-Fi,首先要将 CA 根证书导入设备,再进行配置。这些操作较为复杂,员工通常图省事,选择不校验。这些情况都会导致用户的手机能够信任伪造的证书直接连接到黑客伪造的 Wi-Fi。2.在一些 Linux 系统的 IoT 设备中,配置校验服务端证书的方式复杂,需要上传一份根证书,并编写配置文件。大部分用户也会选择直接连接而不校验服务端证书。
2.系统安全漏洞1.如 CVE-2020-0119:Android 设备在使用 addOrUpdateNetworkInternal 函数添加企业无线网配置时,会出现证书写入失败的情况。这导致 Android 设备无法校验服务端证书。在这种漏洞影响下导致一些设备在即使配置正确的情况下也能够连接黑客伪造的 Wi-Fi。
2.2 攻击 PEAP-MSCHAPV2/EAP-TTLS 协议
上面的漏洞建立“安全”隧道后,攻击者会实施后续的各类攻击方式。下面介绍下攻击者常用的攻击方式,这些攻击方式都依赖于上面的默认不验证证书漏洞:
- 针对 PEAP 认证方式的哈希窃取攻击
在2012年的Defcon 20上,议题 “Defeating PPTP VPNs and WPA2 Enterprise with MS-CHAPv2” 提出了针对 MSCHAPV2 协议的攻击。在对配置 PEAP-MSCHAPV2 协议的设备进行钓鱼攻击后,能够获得用户密码的哈希。传统方法破解哈希所用的时间很长,而该议题提出的方法可以在一天内完成对密码哈希的破解。
- 针对 PEAP 认证方式的 GTC 降级攻击
在 2013 年的 Defcon 21上,安全研究人员在议题 “BYO-Disaster and why corporate security still sucks” 上就提出了 GTC 降级攻击。直到 2020 年,无恒实验室仍然在 Android 和 wpa_supplicant 上发现了导致 GTC 降级攻击的新漏洞,漏洞编号:CVE-2020-0201,该漏洞的根因是有漏洞的终端设备默认不配置阶段二的协议。
如果在“安全”隧道建立之后,黑客伪造的 Wi-Fi 在阶段二的协议协商阶段选择 GTC 协议而不是 MSCHAPV2 协议。错误配置的终端会将 MSCHAPV2 的密码当成 GTC 协议的 TOKEN 上传。这样黑客就获取到了 MSCHAPV2 的明文密码,这种攻击方式简单高效,效果致命。更危险的是,有一些企业将 Wi-Fi 认证与 SSO 单点登录打通,Wi-Fi 密码就是 SSO 密码,这样就拿到了企业员工的所有权限。
2.3 攻击 EAP-TLS 协议
EAP-TLS 采用双向证书认证, 如果终端设备没有配置 CA 对 Authenticator (服务端)进行认证,同样可以被劫持,因为是否验证用户证书取决于服务端,而服务端此时是黑客掌控的。后续的攻击就与连接到咖啡馆的钓鱼 Wi-Fi 类似了,在这里也可以伪造企业 SSO 认证页面,骗取密码。综上,这些攻击的后果是直接导致用户密码、用户哈希等敏感信息泄露,最终导致企业内网被黑客入侵。
想观看本次演讲完整论文的朋友,欢迎点击自取:baigd.github.io/files/MobiC…
3. 小结
随着移动互联网的高速发展和移动终端的广泛普及,人们对无线网络的需求越来越强烈,同时对于企业移动办公来说,无线网络安全更为重要。如何保障企业 Wi-Fi 网络的安全,更好的提前发现安全风险,避免攻击发生,这对所有企业网络安全从业者提出了更高的挑战。如上研究所说,对抗这些攻击对于保障 WPA-Enterprise 的安全性起着重要的作用,2020 年无恒实验室将上述漏洞报给相关终端企业,目前已经修复,但是如果企业员工使用的设备从来没有升级过固件,或者是员工存在错误配置的情况,还是会存在被攻击的风险。
无恒实验室在研究针对 WPA-Enterprise 的攻击后发现,整个攻击能够实施的根本原因在于 终端设备 由于各种原因错误信任了 黑客伪造 的证书。 针对这一问题,无恒实验室目前在企业内部开发了一个检测系统,该系统能够实时检测出将要接入企业 Wi-Fi 网络中风险终端,提前发现风险并提醒员工解决问题甚至阻断连接。目前该系统在内部测试中,后续希望通过开源的方式与行业一道分享我们的治理经验。
4. 关于无恒实验室
无恒实验室(security.bytedance.com/security-la…) 是由字节跳动资深安全研究人员组成的专业攻防研究实验室,致力于为字节跳动旗下产品与业务保驾护航。通过实战演练、漏洞挖掘、黑产打击、应急响应等手段,不断提升公司基础安全、业务安全水位,极力降低安全事件对业务和公司的影响程度。无恒实验室希望持续与业界持续共享研究成果,协助企业避免遭受安全风险,亦望能与业内同行共同合作,为网络安全行业的发展做出贡献。接下来我将给各位同学划分一张学习计划表!
学习计划
那么问题又来了,作为萌新小白,我应该先学什么,再学什么?
既然你都问的这么直白了,我就告诉你,零基础应该从什么开始学起:
阶段一:初级网络安全工程师
接下来我将给大家安排一个为期1个月的网络安全初级计划,当你学完后,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web渗透、安全服务、安全分析等岗位;其中,如果你等保模块学的好,还可以从事等保工程师。
综合薪资区间6k~15k
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(1周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(1周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(1周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
那么,到此为止,已经耗时1个月左右。你已经成功成为了一名“脚本小子”。那么你还想接着往下探索吗?
阶段二:中级or高级网络安全工程师(看自己能力)
综合薪资区间15k~30k
7、脚本编程学习(4周)
在网络安全领域。是否具备编程能力是“脚本小子”和真正网络安全工程师的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力。
零基础入门的同学,我建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习
搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime;
Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,没必要看完
用Python编写漏洞的exp,然后写一个简单的网络爬虫
PHP基本语法学习并书写一个简单的博客系统
熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选)
了解Bootstrap的布局或者CSS。
阶段三:顶级网络安全工程师
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
学习资料分享
当然,只给予计划不给予学习资料的行为无异于耍流氓,这里给大家整理了一份【282G】的网络安全工程师从入门到精通的学习资料包,可点击下方二维码链接领取哦。
