本发明涉及计算机网络安全技术领域,特别涉及一种恶意代码绕过主动防御的发现方法及系统。
背景技术:
主动防御是基于程序行为自主分析判断的实时防护技术,解决传统安全软件无法防御未知恶意代码的问题。如今,大多数杀毒软件均具备主动防御的功能。未知的恶意代码要在用户机器上运行,须绕过杀毒软件的主动防御。由于主动防御技术是根据已发现的恶意代码行为,来判断未知程序行为恶意与否。所以,新型的恶意代码可利用未被识别为恶意的程序行为,绕过主动防御,实现自己的恶意目的。
目前的检测方法存在一定弊端,现今,对于恶意代码绕过主动防御的行为,主要依靠人工逆向分析发现,这种方式产出效率低,发现不及时。
技术实现要素:
本发明提出了一种恶意代码绕过主动防御的发现方法及系统,可以通过对系统的监控及比较,自动化发现恶意代码绕过主动防御的行为。
一种恶意代码绕过主动防御的发现方法,包括:
开启主动防御,并同时扫描系统关键位置;
记录可疑代码运行前系统关键位置的内容及键值;
运行可疑代码,得到主动防御的监控结果;
再次扫描系统关键位置,记录可疑代码运行后系统关键位置的内容及键值;
对比可疑代码运行前与运行后系统关键位置的内容及键值变化情况,得到新增威胁;
比较主动防御的检测结果与新增威胁,判断两者是否相同,如果相同,则不存在新增的绕过主动防御的恶意代码,否则自动化发现新增的绕过主动防御的恶意代码。
所述的方法中,所述系统关键位置包括:重要系统文件夹路径及注册表。
所述的方法中,所述记录可疑代码运行前系统关键位置的内容及键值具体为:记录可疑代码运行前重要系统文件夹路径下的文件名称、文件大小、MD5值以及注册表键值。
一种恶意代码绕过主动防御的发现系统,包括:
检测模块,用于开启主动防御,并同时扫描系统关键位置;
第一扫描模块,用于记录可疑代码运行前系统关键位置的内容及键值;
执行模块,用于运行可疑代码,得到主动防御的监控结果;
第二扫描模块,用于再次扫描系统关键位置,记录可疑代码运行后系统关键位置的内容及键值;
新增威胁获取模块,用于对比可疑代码运行前与运行后系统关键位置的内容及键值变化情况,得到新增威胁;
结果判定模块,用于比较主动防御的检测结果与新增威胁,判断两者是否相同,如果相同,则不存在新增的绕过主动防御的恶意代码,否则自动化发现新增的绕过主动防御的恶意代码。
所述的系统中,所述系统关键位置包括:重要系统文件夹路径及注册表。
所述的系统中,所述记录可疑代码运行前系统关键位置的内容及键值具体为:记录可疑代码运行前重要系统文件夹路径下的文件名称、文件大小、MD5值以及注册表键值。
本发明的优势在于,结合主动防御技术,以及对系统关键位置的监控扫描,确定新增威胁,通过新增威胁与主动防御的监控结果,自动化的发现恶意代码绕过主动防御的行为。当主动防御未发现威胁,而对系统关键位置的监控扫描发现新增威胁,则可以判断可疑代码存在绕过主动防御的行为。
本发明提出一种恶意代码绕过主动防御的发现方法及系统,包括:开启主动防御,并同时扫描系统关键位置;记录可疑代码运行前系统关键位置的内容及键值;运行可疑代码,得到主动防御的监控结果;再次扫描系统关键位置,记录可疑代码运行后系统关键位置的内容及键值;对比可疑代码运行前与运行后系统关键位置的内容及键值变化情况,得到新增威胁;比较主动防御的检测结果与新增威胁,判断两者是否相同,如果相同,则不存在新增的绕过主动防御的恶意代码,否则自动化发现新增的绕过主动防御的恶意代码。通过本发明的方法实现了将人工才能够发现的绕过主动防御的情况自动化检测。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种恶意代码绕过主动防御的发现方法实施例流程图;
图2为本发明一种恶意代码绕过主动防御的发现系统实施例结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术方案作进一步详细的说明。
本发明提出了一种恶意代码绕过主动防御的发现方法及系统,可以通过对系统的监控及比较,自动化发现恶意代码绕过主动防御的行为。
常见具有主动防御功能的杀毒软件会内置一份白名单与一组判别恶意行为的规则。其判别规则是反病毒工程师分析了大量恶意代码的代码特征和行为特征总结出来的。这些规则分为三类,应用程序防御、注册表防御、文件防御;同时,也会被分为不同的危害等级,分别对应不同的处理方式。举例来说,当有未知程序想调用IE浏览器弹出恶意网页,写入注册表的自启动项,并将自身复制到系统盘的system32目录下。首先判断这个未知程序不在白名单里,则开启防御机制判别行为;应用程序防御认为调用IE浏览器存在少许恶意,则提醒用户是否继续操作;注册表防御认为写入自启动项存在恶意,则提醒用户,默认操作为拒绝;文件防御认为写入文件到system32目录下是严重恶意行为,则直接拒绝其操作。
由于防御机制是基于一定数量的规则进行行为判别,而对于不属于规则里的行为,通常情况下默认允许。所以恶意代码可以使用一些方法绕过这些规则,使主动防御无法发现其恶意行为。常见的绕过方法有,一、不使用被主动防御系统Hook过的函数;二、拆分恶意行为步骤;三、利用白名单程序加载执行恶意DLL。
本发明针对上述的情况,提出一种恶意代码绕过主动防御的发现方法,如图1所示,包括:
S101:开启主动防御,并同时扫描系统关键位置;
S102:记录可疑代码运行前系统关键位置的内容及键值;
S103:运行可疑代码,得到主动防御的监控结果;
S104:再次扫描系统关键位置,记录可疑代码运行后系统关键位置的内容及键值;
S105:对比可疑代码运行前与运行后系统关键位置的内容及键值变化情况,得到新增威胁;如对比扫描结果,发现自启动目录下有新增文件或注册表自启动项有新增键值,便可认为是新增威胁。
S106:比较主动防御的检测结果与新增威胁,判断两者是否相同,如果相同,则不存在新增的绕过主动防御的恶意代码,否则自动化发现新增的绕过主动防御的恶意代码。如,扫描发现恶意代码在自启动目录下新建了文件,即新增威胁,而主动防御却没有监控到这一行为,对比两者结果之间的差异,则可发现该可疑代码绕过了主动防御。
所述的方法中,所述系统关键位置包括:重要系统文件夹路径及注册表。
所述的方法中,所述记录可疑代码运行前系统关键位置的内容及键值具体为:记录可疑代码运行前重要系统文件夹路径下的文件名称、文件大小、MD5值以及注册表键值。
本发明主要利用了恶意代码绕过了主动防御后,仍将对系统进行修改。因此,可对系统关键位置在可疑代码运行前后分别进行扫描,发现新增威胁。对比运行前后的情况,得出新增威胁。最后,通过比较扫描发现的新增威胁与主动防御的监控结果,从中发现恶意代码绕过主动防御。
一种恶意代码绕过主动防御的发现系统,如图2所示,包括:
检测模块201,用于开启主动防御,并同时扫描系统关键位置;
第一扫描模块202,用于记录可疑代码运行前系统关键位置的内容及键值;
执行模块203,用于运行可疑代码,得到主动防御的监控结果;
第二扫描模块204,用于再次扫描系统关键位置,记录可疑代码运行后系统关键位置的内容及键值;
新增威胁获取模块205,用于对比可疑代码运行前与运行后系统关键位置的内容及键值变化情况,得到新增威胁;
结果判定模块206,用于比较主动防御的检测结果与新增威胁,判断两者是否相同,如果相同,则不存在新增的绕过主动防御的恶意代码,否则自动化发现新增的绕过主动防御的恶意代码。
所述的系统中,所述系统关键位置包括:重要系统文件夹路径及注册表。
所述的系统中,所述记录可疑代码运行前系统关键位置的内容及键值具体为:记录可疑代码运行前重要系统文件夹路径下的文件名称、文件大小、MD5值以及注册表键值。
本发明的优势在于,结合主动防御技术,以及对系统关键位置的监控扫描,确定新增威胁,通过新增威胁与主动防御的监控结果,自动化的发现恶意代码绕过主动防御的行为。当主动防御未发现威胁,而对系统关键位置的监控扫描发现新增威胁,则可以判断可疑代码存在绕过主动防御的行为。
通过该方法已经发现了包括设备名替代路径、分步写入重启等绕过主动防御实现自启动的方法。
主动防御会对写入自启动目录的操作进行监控。而设备名代替路径绕过主动防御实现自启动的方法,是将自启动路径定义为一个本地设备名称,再通过这个设备名称进行写文件写操作,将自身写入自启动目录;
而分步写入重启绕过主动防御实现自启动的方法,主要是绕过对RegSetValue、MoveFile的检查。如果直接使用RegSetValue向注册表的自启动项添加路径或使用MoveFile将自身移动到自启动目录下都会触发主动防御。该方法先向注册表延迟重命名项写入自身路径,然后用MoveFile再向该注册表项写入自启动路径,实现延迟移动到自启动目录。
这两个方法虽成功绕过主动防御,但通过本发明的方法进行扫描依然可发现其新增威胁,便可通过最终比较,实现自动化发现恶意代码绕过主动防御的技术。对于发现新的恶意威胁,完善主动防御具有良好的效果。
本发明提出一种恶意代码绕过主动防御的发现方法及系统,包括:开启主动防御,并同时扫描系统关键位置;记录可疑代码运行前系统关键位置的内容及键值;运行可疑代码,得到主动防御的监控结果;再次扫描系统关键位置,记录可疑代码运行后系统关键位置的内容及键值;对比可疑代码运行前与运行后系统关键位置的内容及键值变化情况,得到新增威胁;比较主动防御的检测结果与新增威胁,判断两者是否相同,如果相同,则不存在新增的绕过主动防御的恶意代码,否则自动化发现新增的绕过主动防御的恶意代码。通过本发明的方法实现了将人工才能够发现的绕过主动防御的情况自动化检测。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。