Windows应用程序内存防护研究

Windows应用程序内存防护研究

论文摘要

为了防止信息泄露,机密信息都是加密后存放在外部介质中的,然而在将机密信息读取到内存之后,应用程序会将机密信息解密出来,在处理这些信息期间,应用程序的运行时内存内容有可能被其他恶意程序窃取。因此,研究应用程序的运行时内存的安全具有重要的意义。本文通过对Windows操作系统内存管理机制的研究,结合目前硬件提供虚拟化辅助技术,提出一个应用程序内存防护系统,从而可以保护应用程序的内存安全。本文的主要贡献和创新如下:1.分析了Windows的内存管理机制,并提出了应用程序运行时内存安全的核心威胁:即来自进程外部的攻击和进程内部的攻击两类。来自进程外部的攻击又分为修改CR3寄存器,和修改页表两类。而来自进程内部的攻击又包括内核Rootkits和用户模式代码注入两类。2.分析了目前存在的一些解决方案,包括游戏保护中使用的内存保护机制,NICKLE在防护内核Rootkits的研究,以及SP3系统在应用程序内存保护的研究,在介绍了这些解决方案的机制后并给出了优缺点分析。3.提出了一个基于Hypervisor的应用程序内存防护系统,通过对CR3和页表的访问增加访问控制有效地防护了来自进程外的攻击,通过物理页帧加密技术有效地防止内核Rootkits的攻击,最后利用数据不可执行功能有效地防止了用户模式恶意代码注入的攻击。4.应用程序内存防护的难点在于来自进程内部的攻击,即内核Rootkits的攻击和用户模式代码注入的攻击。本文通过拦截受保护进程的模式切换,从而实现了内核模式和用户模式不同的地址映射,即让内核模式Rootkits只能访问到受保护内存的加密拷贝。同时利用可执行内存加密和数据执行保护技术有效地防范了用户模式的代码注入攻击。

论文目录

  • 摘要
  • Abstract
  • 图目录
  • 表目录
  • 1. 引言
  • 1.1 研究背景
  • 1.2 本文的研究内容
  • 1.3 本文的组织结构
  • 1.4 攻读硕士阶段的主要工作
  • 2. Windows的内存管理机制及其安全威胁
  • 2.1 虚拟地址空间
  • 2.1.1 虚拟地址空间划分
  • 2.1.2 进程地址空间初始化
  • 2.2 页表管理
  • 2.2.1 x86的地址转译过程
  • 2.2.2 Windows操作系统页表结构
  • 2.3 物理内存管理
  • 2.4 相关API函数
  • 2.5 安全威胁分析
  • 2.5.1 来自进程外部的攻击
  • 2.5.1.1 修改CR3寄存器
  • 2.5.1.2 直接操作页表
  • 2.5.2 来自进程内部的攻击
  • 2.5.2.1 用户态代码
  • 2.5.2.2 内核态代码
  • 3. 相关研究分析
  • 3.1 游戏保护
  • 3.1.1 游戏系统安全威胁
  • 3.1.2 游戏保护措施
  • 3.1.2.1 禁止非法读取和修改游戏进程内存数据
  • 3.1.2.2 禁止对游戏程序的调试
  • 3.1.2.3 禁止对游戏程序的代码注入
  • 3.1.3 游戏保护系统分析
  • 3.2 NICKLE
  • 3.2.1 NICKLE保护模型
  • 3.2.2 NICKLE分析
  • 3.3 基于虚拟化的物理页帧加密技术
  • 3.3.1 基于虚拟化的物理页帧加密技术模型
  • 3.3.2 模型分析
  • 4. Windows应用程序内存防护系统设计
  • 4.1 设计目标和假设
  • 4.2 系统架构设计
  • 4.2.1 Hypervisor架构
  • 4.2.2 影子页表
  • 4.2.3 页表访问控制
  • 4.2.3.1 其他进程的页表访问控制
  • 4.2.3.2 受保护进程的页表访问控制
  • 4.2.4 物理页帧加密
  • 4.2.5 数据不可执行
  • 4.3 安全分析
  • 4.3.1 进程外部攻击
  • 4.3.1.1 写CR3寄存器
  • 4.3.1.2 直接修改页表
  • 4.3.2 进程内部攻击
  • 4.3.2.1 内核态代码
  • 4.3.2.2 用户态代码
  • 5. Windows应用程序内存防护系统实现
  • 5.1 Intel VT技术
  • 5.2 VMM初始化
  • 5.3 预处理与加载
  • 5.4 进程页表管理
  • 5.4.1 硬件支持
  • 5.4.2 页表管理策略
  • 5.4.2.1 CR3访问控制
  • 5.4.2.2 其他进程页表的访问控制
  • 5.4.2.3 受保护进程的页表的管理
  • 5.5 模式切换
  • 5.5.1 用户模式切换到内核模式
  • 5.5.1.1 jmp和call指令
  • 5.5.1.2 int指令
  • 5.5.1.3 SYSENTER和SYSCALL指令
  • 5.5.2 内核模式切换到用户模式
  • 5.5.2.1 ret指令
  • 5.5.2.2 iret指令
  • 5.5.2.3 SYSEXIT和SYSRET指令
  • 5.6 延迟同步
  • 5.6.1 延迟加密
  • 5.6.2 延迟解密
  • 5.7 系统DLL保护
  • 6. 系统原型测试与分析
  • 6.1 测试环境
  • 6.2 功能测试
  • 6.3 性能测试
  • 7. 总结与展望
  • 参考文献
  • 致谢
  • 相关论文文献

    • [1].无纸化考试系统“Windows”部分设计与改进[J]. 工业控制计算机 2020(01)
    • [2].Windows域网络学习中的几个常见问题[J]. 网络安全技术与应用 2020(08)
    • [3].计算思维驱动的Windows程序设计课程教学案例[J]. 福建电脑 2017(05)
    • [4].Windows系统下动态磁盘卷的分析与研究[J]. 电脑知识与技术 2017(14)
    • [5].Windows映像劫持的分析与防范[J]. 电子测试 2017(17)
    • [6].活学活用Windows安全模式[J]. 电脑知识与技术(经验技巧) 2015(11)
    • [7].Windows下数据恢复的一点认识[J]. 科技传播 2016(03)
    • [8].基于Windows的个人防火墙设计分析[J]. 电子技术与软件工程 2016(12)
    • [9].用好Windows安全模式[J]. 电脑爱好者 2012(08)
    • [10].浅谈Windows操作系统[J]. 数码世界 2017(06)
    • [11].基于Windows系统下的远程桌面探究[J]. 职教与经济研究 2014(02)
    • [12].Windows安全模式有什么用[J]. 老同志之友 2013(23)
    • [13].Windows启动速度加快措施分析[J]. 数字化用户 2013(10)
    • [14].浅谈Windows安全模式的功能和作用[J]. 计算机与网络 2013(23)
    • [15].浅谈Windows系统网络端口的安全防范[J]. 计算机光盘软件与应用 2013(20)
    • [16].Windows安全模式能做什么?[J]. 计算机与网络 2013(Z1)
    • [17].使用IPv6访问YouTube[J]. 中国教育网络 2009(08)
    • [18].自动更新后,让Windows不要擅自重启[J]. 网友世界 2010(18)
    • [19].Windows内置“搜索”功能在期刊管理中的应用[J]. 云南师范大学学报(自然科学版) 2014(S1)
    • [20].基于Windows平台的卫星嵌入式软件移植方法[J]. 电子技术与软件工程 2020(11)
    • [21].基于Windows防火墙规则的计算机安全分析[J]. 网络安全技术与应用 2019(12)
    • [22].基于Windows系统的音乐播放器设计[J]. 电脑编程技巧与维护 2017(03)
    • [23].在Windows屏幕定位目标对象[J]. 信息与电脑(理论版) 2016(16)
    • [24].一种基于Windows操作系统的存储虚拟化在线扩展技术[J]. 计算机应用与软件 2017(05)
    • [25].Windows堆地址随机化原理剖析与改进[J]. 信息网络安全 2017(07)
    • [26].使用Windows服务实现文件夹同步的技术研究[J]. 软件工程 2016(07)
    • [27].使用IPv6访问google.com和Gmail[J]. 中国教育网络 2009(08)
    • [28].将安全模式请到Windows启动菜单[J]. 网友世界 2010(18)
    • [29].基于Windows系统碎片文件的数据恢复研究[J]. 数码世界 2020(12)
    • [30].Windows系统中文件级数据恢复方法分析研究[J]. 皖西学院学报 2014(02)

    标签:;  ;  ;  ;  ;  

    Windows应用程序内存防护研究
    下载Doc文档

    猜你喜欢