总结
关于演讲者
王宇,安全研究员,连续创业者,现任领先数据安全公司CEO/CTO。拥有工程背景,持续为行业和学术界贡献世界级的研究成果。
核心观点
演讲者以自身经历,从系统架构师、软件工程师、质量保证专家和软件开发生命周期参与者以及安全研究员等多个角度,探讨了如何不断挑战自我极限,并在实践中发现和解决内核漏洞。
系统架构师
- IOMobileFrameBuffer漏洞历史:该组件历史上存在16个内核漏洞,其中4个被APT组织利用,2个用于iOS越狱工具,1个用于赢得安全挑战赛。
- 案例分析:
- CVE-2024-44199:源于无符号整数和有符号整数比较错误导致的越界漏洞。
- CVE-2020-3905和CVE-2020-9928:蓝牙内核对象竞态条件漏洞,传统模糊测试方法难以发现,且安全更新可被绕过。
- 结论:传统方法难以发现隐藏的漏洞,需要更深入的理解和更创新的测试方法。
软件工程师
- 案例分析:
- CVE-2020-10013:边界检查错误导致的任意内存写漏洞,影响数百个AppleBCMWLANCoreDbg处理程序。
- CVE-2020-9833:内核信息泄露漏洞,通过逆向工程和二进制审计发现,可绕过KASLR。
- CVE-2022-26762:用户输入未清理导致的任意内存写漏洞,这类漏洞非常常见,需要内核开发者仔细检查所有输入参数。
- 结论:简单的内核漏洞也可能非常强大,需要开发者对代码进行仔细审查。
质量保证专家
- 案例分析:
- OE089712553931:AppleBCMWLANCore::handleCardSpecific中的数据修改漏洞,导致内核数组越界读写。
- CVE-2025-24257:IOGPUResource::newResourceGroup中的越界读写漏洞,且存在补丁绕过。
- 结论:数据修改漏洞也可能导致严重的安全问题,需要仔细测试和验证。
软件开发生命周期参与者
- 案例分析:
- CVE-2024-44199:新的IOMFB内核漏洞,表明2024年仍然可以发现新的内核漏洞。
- CVE-2024-44197:IOGPUDeviceUserClient中的通知队列越界访问漏洞,补丁简单,但安全公告存在误导。
- 结论:软件开发生命周期中的每个阶段都需要关注安全问题,并及时修复漏洞。
安全研究员
- 案例分享:
- 演讲者自身案例:分享了多个漏洞挖掘案例,包括字体漏洞和Win32K内核漏洞。
- Mateusz Jurczyk案例:BLEND漏洞利用字体漏洞导致多个系统漏洞。
- Udi Yavo案例:TrueType指令和内核解释器漏洞。
- SEEMOO案例:Win32K字体标量引擎基础数据结构漏洞。
- 结论:漏洞挖掘需要深入理解系统和代码,并善于利用各种技巧和工具。
总结
演讲者通过自身经历,强调了不断挑战自我极限的重要性,并分享了多个漏洞挖掘案例,为安全研究人员和开发者提供了宝贵的经验和启示。未来仍然充满挑战,但只要保持对技术的热情,就能不断进步,发现和解决更多安全问题。