浏览器攻防战:你的PC控制权之争
作者:Rob Hensing(微软SWI团队)
作为专注于漏洞缓解措施的研究人员,我长期研究SDL流程中构建的安全防护技术,包括/GS缓冲区溢出保护、DEP数据执行预防和ASLR地址空间随机化。浏览器作为普通用户的主要攻击入口,始终是安全攻防的前沿阵地。
CanSecWest大赛的启示
在今年的CanSecWest大会上,Shane Macaulay和Alexander Sotirov通过Adobe Flash的0day漏洞成功攻破Vista系统。令人惊讶的是,这个本应几分钟完成的攻击持续了近一天时间。原因在于:
- 传统堆喷射技术(Heap Spray)依赖JavaScript准备内存空间
- 研究者可能改用Java虚拟机分配PAGEEXECUTE_READWRITE内存页,绕过DEP保护
- Vista SP1当时并未默认启用IE的DEP保护
DEP与ASLR的技术博弈
当前浏览器安全面临两大挑战:
DEP绕过技术:
- 通过Java VM等可执行内存分配机制
- 利用即时编译技术(如Flash ActionScript虚拟机)
- Mark Dowd演示的4字节任意内存写入漏洞
ASLR缺失问题:
- Adobe Flash等第三方控件未启用ASLR
- 导致攻击者可以预测内存地址布局
- 文章提供了使用Visual Studio linker手动启用ASLR的详细命令:
|
|
未来防御趋势
- IE8将默认启用DEP(通过Vista SP1新API)
- 苹果QuickTime等第三方开始支持DEP/ASLR
- 必须同时改进代码质量和使用系统防护机制
- 研究者正在开发新型绕过技术,防御不可松懈
浏览器安全战场正在从简单的堆喷射攻击,演变为DEP/ASLR等底层防护机制与新型绕过技术之间的复杂博弈。这场关乎每个互联网用户数据安全的攻防战,需要开发者、安全研究者和终端用户的共同参与。