Windows应用程序敏感数据保护探究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Windows应用程序敏感数据保护探究

Windows应用程序敏感数据保护探究摘要:通过对Windows操作系统数据管理机制的研究,结合硬件辅助虚拟化技术,提出了一个应用程序敏感数据保护系统。本系统通过预处理加密技术和物理页帧加密技术阻止对静态存储数据的攻击,通过双影子页表技术和数据执行保护技术隐藏应用程序受保护内存区域内的明文内容,通过监控页表访问控制阻止进程受保护区域被其它进程恶意修改。 关键词:硬件辅助虚拟化;双影子页表;物理页帧加密;数据执行保护 中图分类号:TP309.2文献标识码:A文章编号:16727800(2012)008017504 作者简介:陶照平(1990-),男,南京大学计算机科学与技术系硕士研究生,研究方向为操作系统和主机信息安全;黄皓(1957-) ,男,南京大学计算机科学与技术系教授、博士生导师,研究方向为计算机信息安全。 0引言 随着信息技术的发展,应用程序处理的敏感信息越来越多,而针对这些信息的病毒、木马等恶意程序也随之增加。而不幸的是在敏感信息的处理过程中,现有的一些保护机制不能有效地抵制恶意程序的攻击,敏感数据仍面临着威胁。 为此,本文在分析了Windows的敏感数据在内存和外存中存在的安全威胁后,详细介绍了数据保护的相关研究,并分析了其优缺点。在此基础上提出了一种基于Hypervisor的应用程序敏感数据保护系统,利用硬件提供的虚拟化支持实现了一个Hypervisor架构,运行时Hypervisor位于Windows操作系统之下,通过Hypervisor来保护应用程序数据。 本系统通过加密敏感数据来保护外存数据的安全,通过保护应用程序的敏感数据和代码所在的内存来保护内存数据的安全。数据保护系统以驱动的方式正常运行后,受保护应用程序和经过验证的组件可以访问敏感数据的明文,而用户态或内核态的恶意程序只能访问加密后的信息。 1Windows数据管理及其安全威胁 Windows系统中应用程序处理敏感数据时面临的安全威胁点有两个,一个在内存,一个在外存。 根据攻击时敏感数据所处的状态可以分为静态数据分析和实时数据攻击。静态数据分析是指应用程序的敏感数据被攻击者静态分析所得到。实时数据攻击主要是指目标应用程序在处理受保护的数据时,恶意代码非法访问该部分数据的行为。 1.1静态数据分析 实现静态数据分析的主要方式分为物理内存分析和磁盘文件分析。 (1) 物理内存数据分析。Windows提供了一个代表物理内存的PhysicalMemory区域对象。攻击者可通过ZwOpenSection函数打开该区域对象,然后通过ZwMapViewOfSection函数将物理内存映射到当前进程的地址空间中,此时即可操纵物理内存。攻击者通过对物理内存的分析,可以重构目标进程的虚拟地址空间,进而得到应用程序的敏感信息。 (2) 磁盘卷数据分析。应用程序存储到磁盘中的敏感信息会以数据文件、页面交换文件等形式存在。Windows使用HarddiskVolume表示系统中的磁盘卷。攻击者通过CreateFile函数打开HarddiskVolume对象,然后便可通过文件操作函数对该磁盘卷进行直接操作。 1.2实时数据攻击 按照恶意代码执行时处于的特权模式,实时数据攻击可分为用户态攻击和内核态攻击。 在目标进程用户态下改变程序执行流程典型方式如下: (1) IAT hook。Rootkits通过修改IAT(Import Address Table, 导入地址表)中指定函数的地址,将本应执行的原始函数变为钩子函数,从而实现信息过滤。 (2) inline hook。Rootkits定位到指定函数的地址后,保存原始函数的前5个字节,然后在此位置插入一个立即跳转指令,使该跳转通向Rootkits钩子,即可实现信息的拦截。 (3) 缓冲区溢出。Rootkits针对应用程序的缺陷,使用缓存溢出的方式,即向程序输入缓冲区,并写入使之溢出的内容,从而使自己的shellcode得到执行。 典型的内核态Rootkits攻击包含以下方式: (1)IDT HOOK。当系统发出中断请求时,处理器会根据IDT (Interrupt Descriptor Table, 中断描述符表) 首地址和中断号查找存储到IDT中的中断服务例程。Rootkits通过修改IDT表中0X2E号中断的地址,将该中断的服务例程地址改为钩子函数地址,从而可以拦截所有的系统服务调用。 (2)SSDT HOOK。Windows对所有子系统都提供本地支持,这些本地系统服务的地址在内核结构中称为SSDT(System Service Dispatch Table,系统服务调度表)中列出。该表基于系统调用号进行索引以定位函数地址。Root

文档评论(0)

linsspace + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档