一种针对网页的恶意攻击进行防护的方法、装置和浏览器制造方法及图纸

技术编号:8105929 阅读:189 留言:0更新日期:2012-12-21 04:58
本申请提供了一种针对网页的恶意攻击进行防护的方法、装置和浏览器,以解决攻击者使用ROP技术绕过DEP进行网页木马攻击的问题。本申请在进程调用改变内存页保护属性的API时,对恶意代码要修改的内存地址的内存页保护属性进行预检测,通过规则对该内存地址的原有内存页保护属性和修改后的内存页保护属性进行判别,一旦发现恶意的修改行为即阻止和警告,从而保护数据页内存地址不被修改成可执行权限,并被非法执行恶意代码。

【技术实现步骤摘要】

本申请涉及浏览器技术,特别是涉及一种针对网页的恶意攻击进行防护的方法、装置和浏览器
技术介绍
网页木马攻击是当前最流行的网络攻击之一,目前网页木马大量使用浏览器的缓冲区溢出漏洞,通过溢出漏洞改变和控制程序的执行流程,最终控制系统下载运行木马。网页木马攻击的过程一般是攻击者通过javascript操作浏览器的堆内存,将恶意代码shellcode写入浏览器的堆内存地址,通过缓冲区溢出漏洞改变程序的执行流程,使得浏览器堆内存中的shellcode得以执行。随着基于浏览器的恶意攻击越来越普遍,各种浏览器也加强了浏览器的安全功 能,其中一项重要安全功能是数据执行保护(Data Execution Prevention, DEP)。在溢出攻击中恶意代码shellcode是被存放在堆内存中的,但无论是堆还是栈在进程空间里都属于数据页面,数据不能当成代码执行,因此在数据页面上的数据一般是不应该被执行的,DEP(数据执行保护)即禁止应用程序和服务在非可执行权限的数据页内存中执行代码指令。但是,另一方面,攻击者也开始使用大量绕过和对抗DEP(数据执行保护)的技术进行网页木马攻击。目前,攻击者主要使用返回导向编程技术(Return OrientedProgramming, R0P)进行恶意攻击。ROP技术是攻击者不通过写入shellcode到漏洞程序的进程空间,而是利用已经在内存空间中存在的动态链接库或可执行代码来执行任意操作,最后达到绕过DEP (数据执行保护)的一种恶意攻击技术。因此,目前需要解决的技术问题是如何对使用ROP技术的恶意攻击进行防护,以提高网页浏览的安全性
技术实现思路
本申请提供了一种针对网页的恶意攻击进行防护的方法、装置和浏览器,以解决攻击者使用ROP技术绕过DEP进行网页木马攻击的问题。为了解决上述问题,本申请公开了一种针对网页的恶意攻击进行防护的方法,包括当进程调用改变内存页保护属性的应用程序编程接口时,对要修改的内存地址的内存页保护属性进行检测,所述检测包括获取所述内存地址的原有内存页保护属性,并检查所述原有内存页保护属性是否设置为可执行权限;获取所述内存地址的修改后的内存页保护属性,并检查所述修改后的内存页保护属性是否设置可执行权限;当所述内存地址的原有内存页保护属性不具有可执行权限,并且所述修改后的内存页保护属性具有可执行权限时,警告并阻止对所述内存地址的内存页保护属性的修改行为。优选地,通过监控VirtualProtect函数来对要修改的内存地址的内存页保护属性进行检测,其中,所述VirtualProtect函数的作用是改变内存页保护属性。优选地,所述获取所述内存地址的原有内存页保护属性,包括获取所述VirtualProtect函数的IpAddress参数,所述IpAddress参数表示要修改的内存地址的起始地址;通过查询函数获取所述起始地址对应的原有内存页保护属性。优选地,所述获取所述内存地址的修改后的内存页保护属性,包括获取所述VirtualProtect函数的fINewProtect参数,所述fINewProtect参数表不修改后的内存页保护属性。优选地,所述内存页保护属性包括以下8种不可读权限,只读权限,可读可写权限,可执行权限,可读可执行权限,可读可写可执行权限,可写可拷贝权限,可写可拷贝可执 行权限。优选地,所述内存地址的原有内存页保护属性不具有可执行权限,包括所述原有内存页保护属性为不可读权限,或只读权限,或可读可写权限,或可写可拷贝权限;所述修改后的内存页保护属性具有可执行权限,包括所述修改后的内存页保护属性为可执行权限,或可读可执行权限,或可读可写可执行权限,或可写可拷贝可执行权限。优选地,所述要修改的内存地址为恶意代码所在的内存地址。本申请还提供了一种针对网页的恶意攻击进行防护的装置,包括检测模块,用于当进程调用改变内存页保护属性的应用程序编程接口时,对要修改的内存地址的内存页保护属性进行检测,所述检测模块包括第一获取单元,用于获取所述内存地址的原有内存页保护属性;第一检查单元,用于检查所述原有内存页保护属性是否设置为可执行权限;第二获取单元,用于获取所述内存地址的修改后的内存页保护属性;第二检查单元,用于检查所述修改后的内存页保护属性是否设置可执行权限;防护单元,用于当所述内存地址的原有内存页保护属性不具有可执行权限,并且所述修改后的内存页保护属性具有可执行权限时,警告并阻止对所述内存地址的内存页保护属性的修改行为。优选地,所述检测模块通过监控VirtualProtect函数来对要修改的内存地址的内存页保护属性进行检测,其中,所述VirtualPiOtect函数的作用是改变内存页保护属性。优选地,所述第一获取单元包括参数获取子单元,用于获取所述VirtualProtect函数的IpAddress参数,所述IpAddress参数表示要修改的内存地址的起始地址;查询子单元,用于通过查询函数获取所述起始地址对应的原有内存页保护属性。优选地,所述第二获取单元获取所述VirtualProtect函数的f INewProtect参数,所述f INewProtect参数表示修改后的内存页保护属性。优选地,所述内存页保护属性包括以下8种不可读权限,只读权限,可读可写权限,可执行权限,可读可执行权限,可读可写可执行权限,可写可拷贝权限,可写可拷贝可执行权限。优选地,所述内存地址的原有内存页保护属性不具有可执行权限,包括所述原有内存页保护属性为不可读权限,或只读权限,或可读可写权限,或可写可拷贝权限;所述修改后的内存页保护属性具有可执行权限,包括所述修改后的内存页保护属性为可执行权限,或可读可执行权限,或可读可写可执行权限,或可写可拷贝可执行权限。优选地,所述要修改的内存地址为恶意代码所在的内存地址。本申请还提供了一种浏览器,包括如上所述的针对网页的恶意攻击进行防护的装置。与现有技术相比,本申请包括以下优点本申请在进程调用改变内存页保护属性的API (Application Programming Interface,应用程序编程接口 )时,对恶意代码要修改的内存地址的内存页保护属性进行预检测,通过规则对该内存地址的原有内存页保护属性和修改后的内存页保护属性进行判另IJ,一旦发现恶意的修改行为即阻止和警告,从而保护数据页内存地址不被修改成可执行权限,并被非法执行恶意代码。附图说明图I是本申请实施例所述一种针对网页的恶意攻击进行防护的方法的流程图;图2是本申请另一实施例所述一种针对网页的恶意攻击进行防护的方法的流程图;图3是本申请实施例所述一种针对网页的恶意攻击进行防护的装置结构图。具体实施例方式为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。为了解决攻击者使用ROP技术(返回导向编程技术)绕过DEP (数据执行保护)进行网页木马攻击的问题,本申请首先分析使用ROP技术进行恶意攻击的过程,具体如下。如现有技术所述,DEP(数据执行保护)并不能完全有效的保护系统安全,新的攻击方式仍然层出不穷,攻击者通过ROP技术(返回导向编程技术)可以修改恶意代码shellcode所在内存地址的内存页保护属性,使得数据内存页可以被执行代本文档来自技高网
...

【技术保护点】
一种针对网页的恶意攻击进行防护的方法,其特征在于,包括:当进程调用改变内存页保护属性的应用程序编程接口时,对要修改的内存地址的内存页保护属性进行检测,所述检测包括:获取所述内存地址的原有内存页保护属性,并检查所述原有内存页保护属性是否设置为可执行权限;获取所述内存地址的修改后的内存页保护属性,并检查所述修改后的内存页保护属性是否设置可执行权限;当所述内存地址的原有内存页保护属性不具有可执行权限,并且所述修改后的内存页保护属性具有可执行权限时,警告并阻止对所述内存地址的内存页保护属性的修改行为。

【技术特征摘要】

【专利技术属性】
技术研发人员:宋申雷刘起张聪
申请(专利权)人:北京奇虎科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1