论文部分内容阅读
受商业利益等因素的驱使,各类恶意软件技术针对操作系统进行了多种多样的攻击,导致其安全问题变得越来越严峻。其中,控制流劫持作为攻击操作系统的基本手段之一而被攻击者广泛采用。控制流劫持是指攻击者通过篡改具有控制属性的数据或引导控制流进行非法跳转,使控制流按照攻击意图流动。针对内核控制流,攻击者通常采用Rootkit技术篡改具有控制属性的内核数据,以实现控制流重定向;针对用户控制流,攻击者通常使用代码复用攻击技术实现控制流的非法跳转。攻击者使用被劫持的控制流能够实现其攻击目的,因此如何检测和防御控制流劫持是确保系统安全的关键问题。控制流被劫持的根本原因在于操作系统固有的权级部署结构和对执行实体采用的极小干预架构设计,导致其缺乏对执行实体资源访问的有效控制。在传统的操作系统部署结构中,操作系统占据最高的特权等级ring0,使得操作系统中所有的执行实体所能获取到的最高执行权限不高于操作系统本身的特权等级。同时,为提高执行效率,现有的操作系统结构设计仅对执行实体的控制流做了基本的行为规范。这些因素致使已有的安全工具难以建立有效的资源访问控制模型,进而限制了对控制流重定向和非法跳转的检测和防御能力。现有的基于虚拟化的方法虽然在一定程度上可以解决这些问题,但它们依赖于复杂的虚拟化平台,一方面导致操作系统的性能损耗较大,另一方面缺乏对资源访问细粒度的控制机制。针对上述问题,本文构建了基于虚拟化技术的操作系统资源访问控制模型,为控制流劫持劫持检测和防御提供资源访问控制机制,并基于该机制分别建立了内核控制流劫持检测与防御模型和用户控制流检测与防御模型。概括地讲,本文的研究内容主要包括三个方面:(1)针对现有方法无法在兼顾性能的基础上提供对操作系统资源访问有效控制的问题,利用硬件虚拟化技术构建资源访问控制模型VirtWall。(2)基于VirtWall建立内存访问控制机制和事件注入机制,构建针对内核控制流劫持的检测与防御模型SecProtector,并实现了对恶意内核对象的逆向追溯。(3)基于VirtWall建立页表重定向机制和代码差异化管理机制,构建针对用户控制流劫持的检测与防御模型ProShadow,实现了对用户控制流非法跳转的有效约束。