一种沙箱监控方法和装置制造方法及图纸

技术编号:20589364 阅读:17 留言:0更新日期:2019-03-16 07:18
本发明专利技术实施例提供了一种沙箱监控方法和装置,用以降低恶意代码通过检查公知的Hook点进行逆向的可能性。该方法包括:在沙箱中启动待分析的程序;确定所述待分析程序的进程ID;在待分析程序运行期间,确定当前产生的中断或者执行的特定指令为系统调用;确定所述系统调用由所述待分析程序的进程ID标识的进程产生;获取所述系统调用及其参数,并获取所述系统调用的结果,以将获取的所述系统调用及其参数和所述系统调用的结果传递给所述沙箱分析流程进行分析。

【技术实现步骤摘要】
一种沙箱监控方法和装置
本专利技术涉及网络安全
,尤其涉及一种沙箱监控方法和装置。
技术介绍
随着计算机技术的发展与普及,计算机应用已经全面渗透到人们的工作与生活中,成为人们不可缺少的重要工具和家庭娱乐设备。随着计算机的广泛使用同时也会产生相应的计算机安全问题。面对金钱的诱惑,一些黑客会利用计算机安全漏洞,通过相应的恶意程序对用户的计算机信息进行窃取并对计算机系统进行破坏,给广大计算机用户造成了巨大的经济损失。为了检测相关的恶意程序,计算机安全研究人员开发了相应的查毒杀毒工具,如在沙箱中运行一段未知代码,通过监控运行行为来分析未知代码是否为恶意代码。目前,沙箱是在虚拟机内部实现,并通过钩子(Hook)监控的,其中,Hook是一种通过执行系统调用时注入代码的方式来进行系统调用序列监控的方法,但是这种监控方法实现难度较低,容易被恶意代码通过检查公知的Hook点而发现其运行在沙箱中,从而导致在沙箱环境下样本中相关的恶意代码则不执行,进而给安全研究人员分析恶意代码带来干扰。
技术实现思路
本专利技术实施例提供了一种沙箱监控方法和装置,用以降低恶意代码通过检查公知的Hook点进行逆向的可能性。基于上述问题,本专利技术实施例提供的一种沙箱监控方法,包括:在沙箱中启动待分析的程序;确定所述待分析程序的进程ID;在待分析程序运行期间,确定当前产生的中断或者执行的特定指令为系统调用;确定所述系统调用由所述待分析程序的进程ID标识的进程产生;获取所述系统调用及其参数,并获取所述系统调用的结果,以将获取的所述系统调用及其参数和所述系统调用的结果传递给所述沙箱分析流程进行分析。本专利技术实施例提供的一种沙箱监控装置,包括:启动模块,用于在沙箱中启动待分析的程序;第一确定模块,用于确定所述待分析程序的进程ID;第二确定模块,用于在待分析程序运行期间,确定当前产生的中断或者执行的特定指令为系统调用;第三确定模块,用于确定所述系统调用由所述待分析程序的进程ID标识的进程产生;获取模块,用于获取所述系统调用及其参数,并获取所述系统调用的结果,以将获取的所述系统调用及其参数和所述系统调用的结果传递给所述沙箱分析流程进行分析。本专利技术实施例的有益效果包括:本专利技术实施例提供的一种沙箱监控方法,在沙箱中启动待分析程序后,首先确定待分析程序的进程ID,并在待分析程序运行期间,确定当前产生的中断或者执行的特定指令为系统调用,并在确定该系统调用由所述待分析程序的进程ID标识的进程产生之后,获取所述系统调用及其参数,并获取所述系统调用的结果,再将获取的所述系统调用及其参数和获取的所述系统调用的结果传递给所述杀向分析流程,从而避免了通过Hook来实现沙箱监控技术时,容易被恶意代码通过检查公知的Hook点进行逆向的缺陷。附图说明图1为本专利技术实施例提供的一种沙箱监控方法的流程图;图2为本专利技术实施例提供的一种运行沙箱程序的虚拟机的操作系统为Windows系统时在沙箱中启动待分析程序的方法的流程图;图3为本专利技术实施例提供的一种判断系统调用是否由待分析程序的进程ID所表示的进程产生的方法的流程图;图4为本专利技术实施例提供的一种获取系统调用的参数的方法的流程图;图5为本专利技术实施例提供的一种沙箱监控装置的结构图。具体实施方式本专利技术实施例提供了一种沙箱监控方法,通过监控由待分析程序的进程产生的系统调用,从而将该系统调用及其参数和该系统调用的结果传递给沙箱分析流程进行分析,进而避免了通过Hook来实现沙箱监控技术时,容易被恶意代码通过检查公知的Hook点进行逆向的缺陷。下面结合说明书附图,对本专利技术实施例提供的一种沙箱监控方法和装置的具体实施方式进行说明。本专利技术实施例提供的一种沙箱监控方法,如图1所示,具体包括以下步骤:S101、在沙箱中启动待分析的程序;S102、确定所述待分析程序的进程ID;S103、在待分析程序运行期间,确定当前产生的中断或者执行的特定指令为系统调用;S104、确定所述系统调用由所述待分析程序的进程ID标识的进程产生;S105、获取所述系统调用及其参数,并获取所述系统调用的结果;S106、将获取的所述系统调用及其参数和所述系统调用的结果传递给所述沙箱分析流程进行分析。其中,当运行沙箱程序的虚拟机的操作系统为Windows系统时,可以采用guestfs等方法将待分析的程序写入沙箱的自动登录用户名的“启动”目录下,这样,在沙箱中启动待分析程序,如图2所示,包括以下步骤:S201、启动沙箱,Explorer程序启动;S202、Explorer程序将所述待分析程序启动。由于待分析程序写入了沙箱的自动登录用户名的“启动”目录下,因此,沙箱启动时,虚拟机中的Explorer程序会启动,然后,Explorer程序会启动待分析程序的进程,由于Explorer程序启动待分析程序时会调用NtCreateProcessEx或NtCreateProcess系统调用,在此阶段,若调用NtCreateProcessEx或NtCreateProcess系统调用的进程为Explorer,且Explorer程序启动的程序的路径在待分析程序放置的路径中,则确认该系统调用正在启动待分析程序。等待该系统调用结束,即可获得待分析程序的进程ID。其中,特定指令可以包括syscall、sysenter、iret、sysexit指令。进一步地,可以根据当前产生的中断的中断号来判断当前产生的中断是否为系统调用。具体地,当运行沙箱程序的虚拟机的操作系统为Windows系统时,中断号为0x2E的中断为系统调用;当运行沙箱程序的虚拟机的操作系统为Linux系统时,中断号为0x80的中断为系统调用。若当前执行的特定指令为syscall或者sysenter指令时,则当前执行的特定指令为系统调用。进一步地,可以根据图3所示的步骤判断系统调用是否由待分析程序的进程ID所表示的进程产生;S301、获取运行沙箱程序的虚拟机程序进程空间中与虚拟机操作系统对应的地址;S302、根据获取的与虚拟机操作系统对应的地址,确定与虚拟机操作系统对应的物理地址;S303、通过从内存中读取确定的物理地址的数据,获取虚拟机操作系统当前执行的进程的进程ID;S304、获取的进程的进程ID是否与所述待分析程序的进程ID一致;若是,则执行S305,否则,执行S306;S305、确定所述系统调用由所述待分析程序的进程ID标识的进程产生;S306、确定所述系统调用不是由所述待分析程序的进程ID标识的进程产生。当虚拟机为Windows操作系统时,操作系统正在执行的进程ID可以通过对PsGetCurrentProcessId函数进行反汇编得到。当虚拟机为Linux操作系统时,操作系统正在执行的进程ID可以通过获取ESP寄存器的值后,对其后13位清零后,获取当前执行进程的thread_info,并通过读取其前4个(对64位系统为8个)字节,得到进程task_struct结构体地址,并通过得到的结构体地址+进程ID的偏移量,获取进程ID。可选地,在实践中,可以采用图4所示的方法获取系统调用的参数;S401、获取所述系统调用的调用ID;对于windows和linux操作系统来说,系统调用的调用ID都存在eax寄存器中;S402、根据获取的调用ID,获得所述系本文档来自技高网...

【技术保护点】
1.一种沙箱监控方法,其特征在于,包括:在沙箱中启动待分析的程序;确定所述待分析程序的进程ID;在待分析程序运行期间,确定当前产生的中断或者执行的特定指令为系统调用;确定所述系统调用由所述待分析程序的进程ID标识的进程产生;获取所述系统调用及其参数,并获取所述系统调用的结果,以将获取的所述系统调用及其参数和所述系统调用的结果传递给所述沙箱分析流程进行分析。

【技术特征摘要】
1.一种沙箱监控方法,其特征在于,包括:在沙箱中启动待分析的程序;确定所述待分析程序的进程ID;在待分析程序运行期间,确定当前产生的中断或者执行的特定指令为系统调用;确定所述系统调用由所述待分析程序的进程ID标识的进程产生;获取所述系统调用及其参数,并获取所述系统调用的结果,以将获取的所述系统调用及其参数和所述系统调用的结果传递给所述沙箱分析流程进行分析。2.如权利要求1所述的方法,其特征在于,所述特定指令包括下列指令之一或其组合:syscall、sysenter、iret和sysexit。3.如权利要求1所述的方法,其特征在于,确定当前产生的中断为系统调用,包括:根据当前产生的中断的中断号,确定当前产生的中断为系统调用。4.如权利要求1所述的方法,其特征在于,确定当前执行的特定指令为系统调用,包括:若当前执行的特定指令为syscall或者sysenter指令,则确定当前执行的特定指令为系统调用。5.如权利要求1所述的方法,其特征在于,确定所述系统调用由所述待分析程序的进程ID标识的进程产生,包括:获取运行沙箱程序的虚拟机程序进程空间中与虚拟机操作系统对应的地址;根据获取的与虚拟机操作系统对应的地址,确定与虚拟机操作系统对应的物理地址;通过从内存中读取确定的物理地址的数据,获取虚拟机操作系统当前执行的进程的进程ID;若获取的进程的进程ID与所述待分析程序的进程ID一致,则确定所述系统调用由所述待分析程序的进程ID标识的进程产生。6.如权利要求1所述的方法,其特征在于,获取所述系统调用及其参数,包括:获取所述系统调用的调用ID;根据获取的调用ID,获得所述系统调用的参数列表和所述系统调用对应的寄存器位置;根据所述系统调用的参数列表和对应的寄存器位置,获取所述系统调用的参数。7.如权利要求1所述的方法,其特征在于,运行沙箱程序的虚拟机的操作系统为Windows系统,在沙箱中启动待分析的程序,包括:启动沙箱,Explorer程序启动;Explo...

【专利技术属性】
技术研发人员:关墨辰李林哲王永亮王小丰肖新光
申请(专利权)人:北京安天网络安全技术有限公司
类型:发明
国别省市:北京,11

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

1