恶意代码检测方法及装置制造方法及图纸

技术编号:21454398 阅读:24 留言:0更新日期:2019-06-26 04:55
本申请公开了一种恶意代码检测方法及装置,通过获取Linux操作系统的程序被执行过程中对敏感函数的调用路径,并确定调用路径是否为敏感路径,当确定调用路径为敏感路径时,即确定Linux操作系统的程序中存在恶意代码的威胁。与现有技术的恶意代码防护方法不同的是,本申请实施例提供的方案是基于操作系统的程序中包含的函数调用关系对恶意代码进行检测的,能够检测出未知恶意代码,以及,由已知恶意代码变形后生成的恶意代码,并且,与基于Linux操作系统的程序对恶意代码进行防护相比,其防护粒度更细,这样即便恶意代码植入了白名单程序也可进行有效检测。

【技术实现步骤摘要】
恶意代码检测方法及装置
本申请涉及网络安全防护
,更具体的说,是涉及一种恶意代码检测方法及装置。
技术介绍
随着网络和计算机技术的快速发展,Linux操作系统逐渐被越来越多的网络用户所使用,Linux操作系统下的网络安全问题受到越来越多的关注。当前,Linux操作系统下的网络安全问题多由攻击者将恶意代码(比如,病毒、蠕虫、后门程序等)植入Linux操作系统的程序内造成的,为了避免恶意代码对Linux操作系统下的网络安全造成威胁,通常需要对植入Linux操作系统的程序内的恶意代码进行防护。现有技术中,常用的恶意代码的防护方式主要有以下两种:第一种,基于恶意代码的特征码来检测植入Linux操作系统的程序内的恶意代码。恶意代码的特征码是从已知恶意代码中提取的能够代表一类恶意代码的一系列字节,多种恶意代码的特征码组成恶意代码的特征库。基于恶意代码的特征码检测,即,利用恶意代码的特征库与Linux操作系统的程序进行对比匹配,从而判断Linux操作系统的程序内是否植入了恶意代码。但是,针对未知恶意代码,以及,由已知恶意代码变形后生成的恶意代码,这种检测方式无法检测出,进而无法避免恶意代码对Linux操作系统下的网络安全问题造成威胁。第二种,预设白名单程序,攻击者如果对白名单程序之外的其他程序植入了恶意代码,这些程序由于不在白名单程序之列,恶意代码将被不允许执行,因此,可以避免恶意代码对Linux操作系统下的网络安全问题造成威胁,但是,如果攻击者对白名单程序植入恶意代码,恶意代码将被允许执行,这种情况下,将无法避免恶意代码对Linux操作系统下的网络安全问题造成威胁。可见,现有的恶意代码的防护方式对于无法部分恶意代码无法防护,导致恶意代码的防护可靠性较低,因此,如何提高恶意代码的防护的可靠性,成为需要本领域技术人员解决的技术问题。
技术实现思路
鉴于上述问题,提出了本申请以便提供一种克服上述问题或者至少部分地解决上述问题的恶意代码检测方法及装置。具体方案如下:一种恶意代码检测方法,所述方法包括:获取Linux操作系统的程序被执行过程中对敏感函数的调用路径;当所述调用路径为敏感路径时,确定所述Linux操作系统的程序中存在恶意代码的威胁;其中,所述敏感函数为可以访问Linux操作系统的资源的函数,和/或,可以改变Linux操作系统的状态的函数;所述敏感路径为除Linux操作系统设置的对所述敏感函数的正常调用路径之外的调用路径。优选地,所述方法还包括:在获取Linux操作系统的程序被执行过程中对敏感函数的调用路径之前,对Linux操作系统的程序中的所述敏感函数以及所述敏感路径中所用到的函数进行插桩,得到插桩后的Linux操作系统的程序。优选地,所述获取敏感函数在Linux操作系统的程序被执行过程中的调用路径,包括:在所述插桩后的Linux操作系统的程序被执行过程中,对所述敏感函数以及所述敏感路径中所用到的函数的调用进行跟踪,获取敏感函数在Linux操作系统的程序被执行过程中的调用路径。优选地,所述方法还包括:在所述对Linux操作系统的程序中的所述敏感函数以及所述敏感路径中所用到的函数进行插桩之前,确定所述敏感函数以及确定所述敏感路径。优选地,所述确定所述敏感函数,包括:确定Linux操作系统的程序中的文件操作函数、创建进程函数、内存操作函数、网络访问函数以及系统相关函数为敏感函数;所述文件操作函数包括open函数、openat函数、openat64函数、read函数、pread函数、write函数以及writev函数中的任意一个或多个;所述创建进程函数包括execve函数、clone函数以及fexecve函数中的任意一个或多个;所述内存操作函数包括ptrace函数、process_vm_writev函数以及memfd_create函数中的任意一个或多个;所述网络访问函数包括connect函数、accept函数、sendto函数以及recvfrom函数中的任意一个或多个;所述系统相关函数包括mknodat函数、chroot函数以及init_module函数中的任意一个或多个。优选地,所述确定所述敏感路径,包括:确定如下路径为敏感路径:通过syscall函数,以系统调用号直接调用所述敏感函数的路径;通过dlopen函数、dlmopen函数、__libc_dlopen函数、__libc_dlsym函数、dlsym函数、dlvsym函数、dlsym_doit函数以及_dl_sym函数中的任意一个或几个函数直接调用所述敏感函数的路径;通过先调用memfd_create函数在/proc/self/fd/目录下生成memfd:标志的文件描述符,进一步以fexecve函数执行memfd:标志的文件描述符的路径。优选地,所述方法还包括:在所述确定所述Linux操作系统的程序中存在恶意代码的威胁之后,输出告警信息,所述告警信息用于提示用户在Linux操作系统的程序中存在恶意代码的威胁。一种恶意代码检测装置,包括:获取单元,用于获取Linux操作系统的程序被执行过程中对敏感函数的调用路径;确定单元,用于当所述调用路径为敏感路径时,确定所述Linux操作系统的程序中存在恶意代码的威胁;其中,所述敏感函数为可以访问Linux操作系统的资源的函数,和/或,可以改变Linux操作系统的状态的函数;所述敏感路径为除Linux操作系统设置的对所述敏感函数的正常调用路径之外的调用路径。一种存储介质,其上存储有程序,该程序被处理器执行时实现如上所述的恶意代码检测方法。一种电子设备,所述电子设备包括存储器和处理器,所述存储器用于存储程序,所述处理器用于运行程序,其中,所述程序运行时执行如上所述的恶意代码检测方法。借由上述技术方案,本申请公开了一种恶意代码检测方法及装置,通过获取Linux操作系统的程序被执行过程中对敏感函数的调用路径,并确定调用路径是否为敏感路径,当确定调用路径为敏感路径时,即确定Linux操作系统的程序中存在恶意代码的威胁。与现有技术的恶意代码的防护方法不同的是,本申请实施例提供的方案是基于操作系统的程序中包含的函数调用关系对恶意代码进行检测的,能够检测出未知恶意代码,以及,由已知恶意代码变形后生成的恶意代码,并且,与基于Linux操作系统的程序对恶意代码进行防护相比,其防护粒度更细,这样即便恶意代码植入了白名单程序中也可进行有效检测。上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1为本申请实施例提供的一种恶意代码检测方法的流程示意图;图2为本申请实施例提供的又一种恶意代码检测方法的流程示意图;图3为本申请实施例提供的一种恶意代码检测装置的结构示意图;图4为本申请实施例提供的又一种恶意代码检测装置的结构示意图。具体实施方式下面将参照附图更详细地描述本公开的示例本文档来自技高网
...

【技术保护点】
1.一种恶意代码检测方法,其特征在于,所述方法包括:获取Linux操作系统的程序被执行过程中对敏感函数的调用路径;当所述调用路径为敏感路径时,确定所述Linux操作系统的程序中存在恶意代码的威胁;其中,所述敏感函数为可以访问Linux操作系统的资源的函数,和/或,可以改变Linux操作系统的状态的函数;所述敏感路径为除Linux操作系统设置的对所述敏感函数的正常调用路径之外的调用路径。

【技术特征摘要】
1.一种恶意代码检测方法,其特征在于,所述方法包括:获取Linux操作系统的程序被执行过程中对敏感函数的调用路径;当所述调用路径为敏感路径时,确定所述Linux操作系统的程序中存在恶意代码的威胁;其中,所述敏感函数为可以访问Linux操作系统的资源的函数,和/或,可以改变Linux操作系统的状态的函数;所述敏感路径为除Linux操作系统设置的对所述敏感函数的正常调用路径之外的调用路径。2.根据权利要求1所述的方法,其特征在于,还包括:在获取Linux操作系统的程序被执行过程中对敏感函数的调用路径之前,对Linux操作系统的程序中的所述敏感函数以及所述敏感路径中所用到的函数进行插桩,得到插桩后的Linux操作系统的程序。3.根据权利要求2所述的方法,其特征在于,所述获取敏感函数在Linux操作系统的程序被执行过程中的调用路径,包括:在所述插桩后的Linux操作系统的程序被执行过程中,对所述敏感函数以及所述敏感路径中所用到的函数的调用进行跟踪,获取敏感函数在Linux操作系统的程序被执行过程中的调用路径。4.根据权利要求2所述的方法,其特征在于,还包括:在所述对Linux操作系统的程序中的所述敏感函数以及所述敏感路径中所用到的函数进行插桩之前,确定所述敏感函数以及确定所述敏感路径。5.根据权利要求4所述的方法,其特征在于,所述确定所述敏感函数,包括:确定Linux操作系统的程序中的文件操作函数、创建进程函数、内存操作函数、网络访问函数以及系统相关函数为敏感函数;所述文件操作函数包括open函数、openat函数、openat64函数、read函数、pread函数、write函数以及writev函数中的任意一个或多个;所述创建进程函数包括execve函数、clone函数以及fexecve函数中的任意一个或多个;所述内存操作函数包括ptrace函数、process_vm_writev函数以及memfd_create函数中的任意一个或多个;所述网络访问函数...

【专利技术属性】
技术研发人员:贾佳
申请(专利权)人:北京椒图科技有限公司
类型:发明
国别省市:北京,11

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

1