当前位置:首页 > 心得体会 > Windows应用程序 [Windows应用程序敏感数据保护研究]
 

Windows应用程序 [Windows应用程序敏感数据保护研究]

发布时间:2019-07-06 03:53:58 影响了:

  摘要:通过对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,系统服务调度表)中列出。该表基于系统调用号进行索引以定位函数地址。Rootkits通过替换SSDT中指定函数的地址指针即钩子函数地址以实现信息的拦截。
  (3)文件系统过滤驱动。Windows驱动程序是分层设计的,攻击者可以将自己驱动产生的设备对象连接到现有的设备栈中,从而拦截针对指定设备的操作。Rootkits通过函数IoGetDeviceObjectPointer得到文件系统设备栈中的第一个设备指针,然后将自己生成的设备对象通过IoAttachDevice函数添加到文件系统设备栈中,即可实现文件访问控制和文件信息的过滤。
  (4)DKOM。直接内核对象操作 (Direct Kernel Object Manipulation, DKOM)是指直接操纵内核对象,以实现隐藏、破坏或保护对象的功能。Rootkits通过DKOM修改进程对象或文件对象的访问令牌,从而可以获得指定操作的权限。
  综上分析,攻击者可通过改变进程的正常执行流程以窃取内存中数据或直接操纵静态的私密数据文件以窃取数据,本文将从保护敏感数据的安全性方面以对敏感数据进行保护。

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3