CN105740697A - 一种xp中地址空间布局随机化方法及装置 - Google Patents
一种xp中地址空间布局随机化方法及装置 Download PDFInfo
- Publication number
- CN105740697A CN105740697A CN201610052239.2A CN201610052239A CN105740697A CN 105740697 A CN105740697 A CN 105740697A CN 201610052239 A CN201610052239 A CN 201610052239A CN 105740697 A CN105740697 A CN 105740697A
- Authority
- CN
- China
- Prior art keywords
- file
- address
- module
- judgment
- function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
一种XP中地址空间布局随机化方法及装置,属于计算机安全技术领域。启动主机,利用驱动安装模块,安装驱动文件,启动服务,进行系统监测;启动HOOK系统的API:NtMapViewOfSection(系统API,作用是映射程序模块到物理空间);监测步骤,如发现系统调用NtMapViewOfSection(系统API,作用是映射程序模块到物理空间)函数,加载文件至内存;根据加载的信息进行文件判断;尝试将文件加载到新生成的随机地址中,如失败,判断失败次数是否小于规定循环次数;返回,提示成功加载文件;将步骤S3加载的内存空间进行释放,确保系统中有且仅有一个地址是正确的文件加载地址,返回,提示文件加载成功;卸载服务。
Description
技术领域
本发明涉及一种XP中地址空间布局随机化方法及装置,属于计算机安全技术领域。
背景技术
随着时代的发展,计算机已经成为人们日常生活中必不可少的电子产品。但是近年来针对计算机漏洞的攻击和机密信息的窃取事件频频发生,人们不得不格外的关注和考虑计算机的安全问题。在诸多的计算机安全问题中,缓冲区溢出无疑是危害最大,被利用最广泛的问题之一。利用缓冲区溢出攻击,可以导致程序运行失败、系统宕机、重新启动等后果。更为严重的是,可以利用它执行非授权指令,甚至可以取得系统特权,进而进行各种非法操作。
缓冲区溢出攻击的原理是通过向程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,造成程序崩溃或使程序转而执行其它指令,以达到攻击的目的。针对缓冲区溢出漏洞,目前使用最多且有效的方法就是DEP(数据执行保护)方法与ASLR(地址空间布局随机化)方法的结合使用,使得缓冲区数据不可写,并且使DLL加载的地址随机化,让攻击者无法找到具体的执行地址,从而无法利用漏洞。目前此种方法已经被微软实现在了vista及其以上的版本的操作系统中。但是对于在中国用户量最大的WindowXP操作系统,微软只提供了DEP保护功能,而并未实现ASLR的保护机制。
在2014年4月8日24时之后,微软正式停止了WindowsXP系统的技术支持。广大企业用户虽然可以继续使用,但是其XP电脑将面临更多安全风险。数据显示,国内XP电脑市场份额接近70%,来自CNNIC的调查显示,57%的中国XP用户抱着“能拖就拖”的心态,会继续使用XP系统。另据统计,在这2亿用户中,有大量的企业和政府客户,电脑的安全,将直接影响到企业业务的正常运转,以及部分政府部门的工作流程。同时这意味着,WindowsXP系统下的ASLR保护机制,将永远无法由微软自己实现。
现在国内市场并无公开的XP环境下ASLR实现方法和商业化软件,但是对于XP的缓冲区溢出攻击却是频频发生,所以XP环境下实现ASLR保护机制,就显得尤为重要。
发明内容
为了克服现有技术的不足,本发明提供一种XP中地址空间布局随机化方法及装置,具体涉及通过Hook系统API的方式对载入系统的动态链接库进行基址修改,实现基址随机化的方法和装置,通过利用HOOK技术对系统驱动层内存映射函数的处理,达到DLL模块加载的基地址随机化的目的,可以实现XP系统下的缓冲区溢出攻击的防御,保护WindowsXP用户的利益。
一种XP中地址空间布局随机化方法,在不破坏系统的内存映射机制的前提下,将动态链接库加载到随机的并且合法的地址中,使得动态链接库加载的基地址不被攻击者提前得到,因此能很好防御缓冲区溢出攻击。
含有以下步骤:
步骤S1:启动主机,利用驱动安装模块,安装驱动文件,启动服务,进行系统监测。
步骤S2:HOOK系统的API:NtMapViewOfSection(系统API,作用是映射程序模块到物理空间)(系统API,作用是映射程序模块到物理空间)。
步骤S3:监测系统,如发现系统调用NtMapViewOfSection(系统API,作用是映射程序模块到物理空间)函数,加载文件至内存。
步骤S4:根据加载的信息进行文件判断,如果文件符合判断条件,则进入步骤S5,如果不符合判断,则返回,并提示成功加载文件。
步骤S5:文件符合判断条件,首先生成随机地址,并判断地址是否可用,如不可用,则重新生成地址再判断。如可用,进入步骤S6。
步骤S6:尝试将文件加载到新生成的随机地址中,如失败,判断失败次数是否小于规定循环次数,如果小于,则返回步骤S5。如果大于规定循环次数进入步骤S7。如果加载成功,进入步骤S8。
步骤S7:返回,提示成功加载文件。
步骤S8:将步骤S3加载的内存空间进行释放,确保系统中有且仅有一个地址是正确的文件加载地址,返回,提示文件加载成功。
一种XP中地址空间布局随机化装置,包括驱动生成模块,安装模块,卸载模块;
驱动生成模块用于生成和更新不同版本的基础驱动文件;
安装模块用于将生成的驱动文件进行安装以及注册和开启驱动相应的服务;
卸载模块用于将驱动文件进行卸载和停止相应服务。
本发明同现有技术相比,其有益效果表现在:
1.本发明实现地址空间布局随机化,配合XP自带的DEP保护机制,能够比传统XP系统的防御机制的防御等级更高,防御更有效。
2.本发明在驱动层开发,在拥有高权限的前提下,能确保系统监测的极高准确性和完整性。
3.本发明有完备的程序保护机制,能够在进行地址空间随机化得同时,保证文件载入的成功性。
4.本发明有完整的低耦合的安装卸载机制,能方便用户使用以及进行相关的测试工作。
附图说明
当结合附图考虑时,通过参照下面的详细描述,能够更完整更好地理解本发明以及容易得知其中许多伴随的优点,但此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定,如图其中:
图1为本发明的工作流程图;
图2为本发明的可行性判断所包含内容示意图;
图3为本发明的卸载模块流程图;
图4为本发明的模块及功能框图。
下面结合附图和实施例对本发明进一步说明。
具体实施方式
显然,本领域技术人员基于本发明的宗旨所做的许多修改和变化属于本发明的保护范围。
实施例1:如图1、图2、图3所示,一种XP中地址空间布局随机化方法,含有以下步骤:
步骤S1、文件安装:在目标机器中利用安装模块安装驱动生成模块生成的驱动文件。
步骤S2、HOOK:在操作系统中HOOK底层驱动的原有API。
步骤S3、初始化:找到系统SSDT,进行拷贝复制,并在其中找到NtMapViewOfSection(系统API,作用是映射程序模块到物理空间)(系统API,作用是映射程序模块到物理空间)地址,用新函数地址覆盖。
步骤S4、监测:监测系统是否对NtMapViewOfSection(系统API,作用是映射程序模块到物理空间)函数进行调用,如果未监测到,则继续监测。
步骤S5、加载文件到内存:在Hook到系统的NtMapViewOfSection(系统API,作用是映射程序模块到物理空间)函数后,先用系统原函数将文件加载到内存,得到加载的信息,进行下一步判断。
步骤S6、可行性判断:根据得到的信息,进行可行性判断,其中判断内容见图2,如果判断可行,则进入到随机地址生成步骤,如果不可行,则使用原有的函数对文件进行加载。
步骤S7、地址生成步骤:该步骤生成随机地址,并判断该地址是否被占用,如果被占用就生成新的地址,再判断,如果为被占用,就进入下一步骤。
步骤S8、随机地址加载:利用上一步骤生成的地址,将动态链接库加载到该地址,如果加载成功,直接返回,如果加载不成功,再判断加载次数,如果小于十次,则继续加载,如果大于10次,则使用系统默认的加载方式,保证本方法不会因为修改地址失败而造成DLL(DynamicLinkLibrary的缩写,意为动态链接库)加载不成功造成的系统不稳定问题。
步骤S9、卸载:如图3,利用本发明的卸载模块,对驱动进行卸载。其内容包括:关闭内存写保护;从SSDT(SystemServicesDescriptorTable,系统服务描述符表)拷贝中恢复注册前的SSDT,打开内存写保护。卸载完成后,系统将不再有此服务。
实施例2:本发明还提供了一种XP中地址空间布局随机化装置,包括:驱动生成模块,安装模块,卸载模块;模块框图见图4。
驱动生成模块用于生成和更新不同版本的基础驱动文件;
安装模块用于将生成的驱动文件进行安装以及注册和开启驱动相应的服务;
卸载模块用于将驱动文件进行卸载和停止相应服务。
实施例3:一种XP中地址空间布局随机化方法,含有以下步骤:
步骤S1:启动主机,利用驱动安装模块,安装驱动文件,启动服务,进行系统监测。
步骤S2:启动HOOK系统的API:NtMapViewOfSection(系统API,作用是映射程序模块到物理空间)(系统API,作用是映射程序模块到物理空间),进行初始化步骤。
步骤S3:启动监测系统,如发现系统调用NtMapViewOfSection(系统API,作用是映射程序模块到物理空间)函数,加载文件至内存。
步骤S4:进行可行性判断;根据加载的信息进行文件判断,如果文件符合判断条件,则进入步骤S5,如果不符合判断,则返回,并提示成功加载文件。
步骤S5:文件符合判断条件,首先生成随机地址,并判断地址是否可用,如不可用,则重新生成地址再判断。如可用,进入步骤S6。
步骤S6:尝试将文件加载到新生成的随机地址中,如失败,判断失败次数是否小于规定循环次数,如果小于,则返回步骤S5。如果大于规定循环次数进入步骤S7。如果加载成功,进入步骤S8。
步骤S7:返回,提示成功加载文件。
步骤S8:将步骤S3加载的内存空间进行释放,确保系统中有且仅有一个地址是正确的文件加载地址,返回,提示文件加载成功。
步骤S9:卸载服务。
其中:
步骤S3的监测系统,是将SSDT中的NtMapViewOfSection(系统API,作用是映射程序模块到物理空间)地址修改为本发明中的MyNtMapViewOfSection(本专利实现的函数,作用是映射程序模块到物理空间)地址,从而完成对驱动函数的监测。
步骤S4中的文件判断条件,包括1.文件是否可执行。2.文件是否是动态链接库文件。3.文件是否能具有重定向表。4.文件是否是系统中的特定DLL,包括user32.dll,kernel32.dll以及ntdll.dll。5.函数是否是被本进程调用。
步骤S6中的规定循环次数,经过反复测试和验证,得到一个较为合理的值,本发明将其设定为10次。
步骤S9的卸载服务,主要内容为将步骤S2中备份的SSDT表进行恢复。
本发明的实施不能认为是对本发明的一种限制,但是只要实质上没有脱离本发明的发明点及效果可以有很多的变形,本领域的技术人员在本发明的基础上所做的非实质性的改进,如:对各个模块步骤的拆分组合,将该方法直接用于恶意程序检测等,这样的变形例都应该落入本发明权利要求书的保护范围。
Claims (6)
1.一种XP中地址空间布局随机化方法,其特征在于在不破坏系统的内存映射机制的前提下,将动态链接库加载到随机的并且合法的地址中,动态链接库加载的基地址不被攻击者提前得到,防御缓冲区溢出攻击。
2.根据权利要求1所述的一种XP中地址空间布局随机化方法,其特征在于包含以下步骤:
步骤S1:启动主机,利用驱动安装模块,安装驱动文件,启动服务,进行系统监测;
步骤S2:启动HOOK(钩子程序:用一个处理消息的程序段监视特定的程序消息,每当特定的消息发出,在没有到达前,钩子程序就先捕获该消息,获取消息控制权)系统的API(ApplicationProgrammingInterface,应用程序编程接口):NtMapViewOfSection(系统API,作用是映射程序模块到物理空间);
步骤S3:监测步骤,如发现系统调用NtMapViewOfSection(系统API,作用是映射程序模块到物理空间)函数,加载文件至内存;
步骤S4:根据加载的信息进行文件判断,如果文件符合判断条件,则进入步骤S5,如果不符合判断,则返回,并提示成功加载文件;
步骤S5:文件符合判断条件,首先生成随机地址,并判断地址是否可用,如不可用,则重新生成地址再判断;如可用,进入步骤S6;
步骤S6:尝试将文件加载到新生成的随机地址中,如失败,判断失败次数是否小于规定循环次数,如果小于,则返回步骤S5;如果大于规定循环次数进入步骤S7;如果加载成功,进入步骤S8;
步骤S7:返回,提示成功加载文件;
步骤S8:将步骤S3加载的内存空间进行释放,确保系统中有且仅有一个地址是正确的文件加载地址,返回,提示文件加载成功;
步骤S9:卸载服务。
3.根据权利要求2所述的一种XP中地址空间布局随机化方法,其特征在于步骤S3的监测步骤,是将SSDT中的NtMapViewOfSection(系统API,作用是映射程序模块到物理空间)函数地址修改为MyNtMapViewOfSection(本专利实现的函数,作用是映射程序模块到物理空间)函数的地址,从而完成对驱动函数的监测;
步骤S4中的文件判断条件,包括文件判断条件1.文件是否可执行;
文件判断条件2.文件是否是动态链接库文件;
文件判断条件3.文件是否能具有重定向表;
文件判断条件4.文件是否是系统中的特定DLL(DynamicLinkLibrary的缩写,意为动态链接库),包括user32.dll,kernel32.dll以及ntdll.dll;
文件判断条件5.函数是否是被本进程调用。
4.根据权利要求2所述的一种XP中地址空间布局随机化方法,其特征在于步骤S6中的规定循环次数,经过反复测试和验证,得到一个较为合理的值为10次。
5.根据权利要求2所述的一种XP中地址空间布局随机化方法,其特征在于步骤S9的卸载服务,主要内容为将步骤S2中备份的SSDT(SystemServicesDescriptorTable,系统服务描述符表)表进行恢复。
6.一种XP中地址空间布局随机化装置,其特征在于包括:驱动生成模块,安装模块,卸载模块;
驱动生成模块用于生成和更新不同版本的基础驱动文件;
安装模块用于将生成的驱动文件进行安装以及注册和开启驱动相应的服务;
卸载模块用于将驱动文件进行卸载和停止相应服务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610052239.2A CN105740697B (zh) | 2016-01-26 | 2016-01-26 | 一种xp中地址空间布局随机化方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610052239.2A CN105740697B (zh) | 2016-01-26 | 2016-01-26 | 一种xp中地址空间布局随机化方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105740697A true CN105740697A (zh) | 2016-07-06 |
CN105740697B CN105740697B (zh) | 2018-08-31 |
Family
ID=56247685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610052239.2A Active CN105740697B (zh) | 2016-01-26 | 2016-01-26 | 一种xp中地址空间布局随机化方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105740697B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106326747A (zh) * | 2016-08-26 | 2017-01-11 | 华中科技大学 | 一种针对rop攻击的检测方法 |
US11681794B2 (en) | 2021-04-07 | 2023-06-20 | Oracle International Corporation | ASLR bypass |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286191A (zh) * | 2008-05-21 | 2008-10-15 | 华为技术有限公司 | 一种缓冲区溢出攻击的防护方法、装置及系统 |
CN101304320A (zh) * | 2008-06-16 | 2008-11-12 | 华为技术有限公司 | 一种地址处理方法和装置 |
US7546430B1 (en) * | 2005-08-15 | 2009-06-09 | Wehnus, Llc | Method of address space layout randomization for windows operating systems |
CN104217157A (zh) * | 2014-07-31 | 2014-12-17 | 珠海市君天电子科技有限公司 | 一种漏洞防利用方法及系统 |
CN104268471A (zh) * | 2014-09-10 | 2015-01-07 | 珠海市君天电子科技有限公司 | 一种检测面向返程的编程攻击的方法及装置 |
-
2016
- 2016-01-26 CN CN201610052239.2A patent/CN105740697B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7546430B1 (en) * | 2005-08-15 | 2009-06-09 | Wehnus, Llc | Method of address space layout randomization for windows operating systems |
CN101286191A (zh) * | 2008-05-21 | 2008-10-15 | 华为技术有限公司 | 一种缓冲区溢出攻击的防护方法、装置及系统 |
CN101304320A (zh) * | 2008-06-16 | 2008-11-12 | 华为技术有限公司 | 一种地址处理方法和装置 |
CN104217157A (zh) * | 2014-07-31 | 2014-12-17 | 珠海市君天电子科技有限公司 | 一种漏洞防利用方法及系统 |
CN104268471A (zh) * | 2014-09-10 | 2015-01-07 | 珠海市君天电子科技有限公司 | 一种检测面向返程的编程攻击的方法及装置 |
Non-Patent Citations (1)
Title |
---|
韩万军等: "Windows平台下地址空间分布随机化技术研究及实现", 《计算机应用与软件》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106326747A (zh) * | 2016-08-26 | 2017-01-11 | 华中科技大学 | 一种针对rop攻击的检测方法 |
CN106326747B (zh) * | 2016-08-26 | 2018-11-27 | 华中科技大学 | 一种针对rop攻击的检测方法 |
US11681794B2 (en) | 2021-04-07 | 2023-06-20 | Oracle International Corporation | ASLR bypass |
Also Published As
Publication number | Publication date |
---|---|
CN105740697B (zh) | 2018-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6370747B2 (ja) | バーチャルマシーンモニタベースのアンチマルウェアセキュリティのためのシステム及び方法 | |
CN100533385C (zh) | 用于提供系统完整性和遗留环境模拟的方法及装置 | |
EP3123311B1 (en) | Malicious code protection for computer systems based on process modification | |
US11409884B2 (en) | Security profiling of system firmware and applications from an OOB appliance at a differentiated trust boundary | |
EP3036623B1 (en) | Method and apparatus for modifying a computer program in a trusted manner | |
US8813227B2 (en) | System and method for below-operating system regulation and control of self-modifying code | |
CN105122260B (zh) | 到安全操作系统环境的基于上下文的切换 | |
EP2831787B1 (en) | Method and system for preventing and detecting security threats | |
CN103119601A (zh) | 用于在独立于操作系统(os)的防病毒(av)扫描器上执行强制性安全策略的方法和装置 | |
CN102737188A (zh) | 检测恶意网页的方法及装置 | |
JP6370098B2 (ja) | 情報処理装置、情報処理監視方法、プログラム、及び記録媒体 | |
US20130276128A1 (en) | Secure option rom firmware updates | |
US10783041B2 (en) | Backup and recovery of data files using hard links | |
JP2010182196A (ja) | 情報処理装置およびファイル検証システム | |
CN104715209A (zh) | 一种外发文档加密保护方法 | |
US11188321B2 (en) | Processing device and software execution control method | |
van de Ven | New security enhancements in red hat enterprise linux v. 3, update 3 | |
EP3079057B1 (en) | Method and device for realizing virtual machine introspection | |
US10372472B2 (en) | System, method, and computer program product for conditionally preventing use of hardware virtualization | |
US8250263B2 (en) | Apparatus and method for securing data of USB devices | |
CN105740697A (zh) | 一种xp中地址空间布局随机化方法及装置 | |
KR20200041639A (ko) | 차량용 소프트웨어 업데이트 장치 및 그 제어 방법 | |
CN111062061B (zh) | 一种用于ios系统的安全防护方法和系统 | |
US20200244461A1 (en) | Data Processing Method and Apparatus | |
WO2015052829A1 (ja) | 情報処理装置、方法およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |