论文摘要
从第一个蠕虫病毒问世以来,恶意软件对计算机安全的影响越来越大,操作系统、反病毒软件与恶意软件之间的对抗从未停止过。操作系统是计算机不可缺少的软件平台,在安全中的重要性不言而喻。Windows操作系统采用自主访问控制,通过用户、用户组的身份实现访问控制,这种方式会使得应用程序运行时获得了比其需要的更多的权限,这违反了安全中的最小特权原则。在系统管理员Administrator账户下运行的软件一旦有缺陷被利用或者软件本身带有恶意行为,对用户安全来讲是灾难性的。传统杀毒软件使用静态分析的方法识别阻止恶意软件的运行,然而大量的恶意软件使用代码混淆、加密变形等技术,静态分析已经不能满足当前非可信软件检测的需要,因此创建一个受限制的安全环境,对程序进行动态的权限控制是一种有效的针对恶意软件的解决方案。使用虚拟机构建一个安全环境的方法使用起来效率较低,利用SSDT Hook及重定向技术实现的沙箱,由于对每一次系统调用都进行检查也存在类似问题。本文试图在Windows7上实现一个有效、高效的应用程序运行的安全系统,该系统在Windows访问控制的基础上,利用访问令牌、作业等安全对象对进程进行权限控制,由于用户态进程利用句柄访问内核对象,我们通过监控对象句柄的创建和复制并修改其访问权限实现对内核对象的监控,通过进程权限控制和内核对象监控相结合的方式实现一个应用程序权限监控系统。本文的主要贡献如下:1.分析了当前Windows7操作系统访问控制技术方面的实现机制和不足,系统总结Windows平台下应用程序权限控制及系统调用拦截技术,并归纳系统调用拦截技术的特点和适用范围。2.通过修改扩展Windows7对象管理器机制,实现了对14种内核对象的访问监控,通过修改对象句柄的访问权限实现访问控制,在监控中设置策略实现对系统资源的保护,由于进程获得内核对象的访问句柄后,对该对象的访问通过句柄,该方法减少了系统调用监控的次数,提高了监控效率。3.设计了一种进程权限限制和内核对象监控相结合的系统实现对进程的行为控制。该系统能有效防止用户态下攻击者利用有缺陷的软件加载恶意程序,并能保护用户私有敏感数据达到了强制访问控制的要求。