Flash Player新安全特性:绕过策略与内存管理剖析

需积分: 5 0 下载量 76 浏览量 更新于2024-06-21 收藏 2.34MB PDF 举报
本文档深入探讨了Adobe Flash Player在Pwn2Own2016年大会上的最新安全特性及其可能的绕过策略。由腾讯电脑管家网络攻防小组撰写的这篇技术文章,主要关注了以下几个关键点: 1. **早期Flash特性与攻击思路**:Flash早期版本存在不安全的设计,包括不安全的内存管理,如GCHeap,它将所有对象和数据存储在一个单一的空间,使得堆喷涌(Heap Spraying)攻击易于实施。同时,对象的内存分配器允许相近大小的对象连续排列,降低了攻击者利用内存布局的难度。此外,对象的某些关键数据,如Vector、Array和ByteArray等,由于缺乏校验和异地备份,容易受到修改。 2. **早期攻击流程**:早期的攻击通常涉及对这些脆弱性进行利用,比如通过篡改关键数据来触发漏洞,然后利用这些漏洞达到控制程序流程的目的。 3. **新安全特性**: - **隔离堆**:Adobe引入了堆的数量和分配器数量的增加,使得内存分配更加分散,堆地址随机化使得不同堆之间的内存块不再连续,增加了攻击者预测和定位目标对象的难度。 - **SecurityCookie**:用来加密对象中的关键数据,特别是对有长度的对象,这增加了对内存敏感攻击的防护。SecurityCookie在GCHeap初始化时生成并存储在flash.ocx的.data区。 - 对于ByteArray和Vector,Adobe进行了加固,例如在Vector对象中添加了长度字段,其值经过异或处理,进一步增强了内存保护。 4. **Control Flow Guard (CFG)**:文档还提及了新的CFG机制,这是一种旨在限制恶意代码执行流的高级安全特性,通过限制函数调用和返回,减少了恶意代码的可执行范围。 5. **新的利用思路**:面对这些新安全特性,攻击者可能需要寻找新的绕过方法,如利用内存不连续的问题或者寻找CFG的漏洞,以便继续进行有效攻击。 总结来说,本文详细解析了Flash Player的安全改进,同时也揭示了攻击者可能面临的挑战和如何适应这些变化。对于开发人员和安全研究人员来说,理解这些特性及其潜在漏洞是保持系统安全的关键。