CN117494110A - 一种代码检测方法及相关系统 - Google Patents
一种代码检测方法及相关系统 Download PDFInfo
- Publication number
- CN117494110A CN117494110A CN202210886924.0A CN202210886924A CN117494110A CN 117494110 A CN117494110 A CN 117494110A CN 202210886924 A CN202210886924 A CN 202210886924A CN 117494110 A CN117494110 A CN 117494110A
- Authority
- CN
- China
- Prior art keywords
- code
- host
- detection device
- detection
- dynamic
- 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.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 439
- 238000000034 method Methods 0.000 claims abstract description 82
- 238000012545 processing Methods 0.000 claims description 33
- 238000001914 filtration Methods 0.000 claims description 29
- 230000006870 function Effects 0.000 claims description 29
- 230000015654 memory Effects 0.000 claims description 28
- 239000000725 suspension Substances 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 description 37
- 238000004891 communication Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 9
- 230000003993 interaction Effects 0.000 description 9
- 238000007726 management method Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 241000700605 Viruses Species 0.000 description 2
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000004886 process control Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
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)
- Computer And Data Communications (AREA)
Abstract
本申请提供了一种代码检测方法,包括:主机端检测装置将待检测的动态代码暂停,向远端检测装置发送检测请求,该检测请求用于请求远端检测装置对动态代码进行恶意检测,接收远端检测装置返回的检测结果,该检测结果用于表征所述动态代码是否为恶意代码。该方法在暂停动态代码的基础上对动态代码进行恶意检测,能够实现及时地拦截恶意代码,从而保障云主机或云主机上部署的应用的安全。
Description
技术领域
本申请涉及云计算技术领域,尤其涉及一种代码检测方法、系统、计算设备集群、计算机可读存储介质以及计算机程序产品。
背景技术
随着云计算的不断发展,越来越多的用户选择将应用(application,APP)部署在云主机上,尤其是部署在公有云的云主机上,如此可以大幅降低部署和运维的成本。云主机以及部署在云主机上的应用对互联网开放服务,非常容易受到攻击。攻击者可以利用各种可能的方式,如钓鱼、下载、软件漏洞等方式在云主机上运行恶意代码。该恶意代码是指达到恶意目的的代码,包括但不限于勒索、挖矿、木马、病毒等代码。
为了保护云主机以及云主机上部署的应用,安全组织通过蜜罐、交换等方式收集了大量恶意代码,并根据恶意代码的签名形成签名库。云厂商可以提供基于签名库的安全软件进行代码检测,以检测出恶意代码,进而拦截该恶意代码。
与传统的安全软件类似,云厂商提供的安全软件可以部署在云主机上。云主机还可以下载全量的签名库,并将签名库加载到内存中,构建查询数据结构。云主机上有代码被执行,从而启动上述代码对应的进程时,安全软件可以将代码的签名与签名库中的签名进行匹配,当代码的签名在签名库中命中,则表明该代码是恶意代码,安全软件可以拦截该代码,终止代码对应的进程。
然而,安全软件进行全量匹配也需要较长时间,如此可以导致云主机或云主机上的应用在安全软件检测出恶意代码之前即被攻击。业界亟需提供一种更高效的、及时的代码检测方法,以保障云主机或云主机上部署的应用的安全性。
发明内容
本申请提供了一种代码检测方法,该方法在暂停动态代码的基础上对动态代码进行恶意检测,能够实现及时地拦截恶意代码,从而保障云主机或云主机上部署的应用的安全。而且,该方法不占用云主机太多的资源,不影响用户正常应用程序的执行。本申请还提供了该方法对应的代码检测系统、计算设备集群、计算机可读存储介质以及计算机程序产品。
第一方面,本申请提供了一种代码检测方法。该方法可以由代码检测系统执行,代码检测系统包括主机端检测装置和远端检测装置。代码检测系统可以是软件系统,该软件系统可以部署在计算设备集群中。计算设备集群通过执行软件系统的程序代码,从而执行本申请实施例的代码检测方法。在一些实施例中,代码检测系统也可以是具有代码检测功能的硬件系统,该硬件系统运行时,执行本申请实施例的代码检测方法。例如,代码检测系统可以是具有代码检测功能的计算设备集群。
具体地,主机端检测装置首先将待检测的动态代码暂停,并向远端检测装置发送检测请求,以请求远端检测装置对动态代码进行恶意检测,接着主机端检测装置接收远端检测装置返回的检测结果,确定该动态代码是否为恶意代码。
在该方法中,远端检测装置在动态代码暂停的状态下进行动态代码的恶意检测,从而避免云主机或云主机上部署的应用在检测出恶意代码之前被攻击,保障云主机或云主机上部署的应用的安全。同时,在远端检测装置进行动态代码的恶意检测,不占用云主机太多的资源,不影响用户正常应用程序的执行,保障用户利益。
在一些可能的实现方式中,检测请求中包括动态代码的签名,远端检测装置可以查询动态代码的签名与签名库中恶意代码样本的签名是否匹配,从而对动态代码进行恶意检测。
该方法通过简单的签名匹配操作实现对动态代码的恶意检测,一方面可以获得较高的检测效率,另一方面,签名库中包括大量的恶意代码样本的签名,将动态代码与签名库中的上述恶意代码样本的签名进行全量匹配,能够保障恶意检测的准确性。
在一些可能的实现方式中,当检测结果表征动态代码为恶意代码,主机端检测装置可以将该动态代码终止,当检测结果表征动态代码不是恶意代码,主机端检测装置可以将动态代码恢复。
该方法提供了对动态代码的处理机制,当动态代码为恶意代码时,终止该动态代码,从而及时地拦截恶意代码,当动态代码不为恶意代码时,恢复该动态代码,从而不影响用户正常应用程序的执行。
在一些可能的实现方式中,主机端检测装置接收到代码执行通知时,将代码执行通知关联的动态代码暂停。该方法在接收到代码执行通知时及时暂停动态代码,避免动态代码可能对云主机或云主机上部署的应用产生的攻击,保障了云主机或云主机上部署的应用的安全。
在一些可能的实现方式中,主机端检测装置可以将代码执行通知关联的动态代码进行过滤,将过滤后的动态代码暂停。
该方法对动态代码进行过滤,将过滤后的可疑代码暂停,能够减少远端检测装置恶意检测的动态代码数量,从而提升代码检测的效率。
在一些可能的实现方式中,主机端检测装置可以接收远端检测装置发送的位数组和哈希函数,根据该位数组和该哈希函数构建布隆过滤器,将代码执行通知关联的动态代码通过布隆过滤器进行过滤。
该方法利用布隆过滤器对动态代码进行过滤,能够在占用较少资源的情况下进行高效过滤,从而及时暂停过滤后的可疑代码,同时,布隆过滤器的过滤误差率较低,能够准确地从动态代码中确定可疑代码,从而不影响用户正常应用程序的执行。
在一些可能的实现方式中,主机端检测装置可以将代码执行通知关联的动态代码进行白名单过滤。该方法利用白名单对动态代码进行过滤,能够准确、快速地将受信任的安全代码过滤,从而及时对可疑代码进行暂停,同时,用户可以根据自身需求更新白名单,从而满足用户的个性化需求。
在一些可能的实现方式中,主机端检测装置可以向用户呈现检测结果。该方法能够直观地向用户展示动态代码的检测结果,从而及时地告知用户云主机或云主机上部署的应用中可能存在的不安全状况,以便用户进行后续处理。
在一些可能的实现方式中,主机端检测装置可以接收用户对检测结果的反馈,并根据用户对检测结果的反馈,确定对动态代码的处理策略。
该方法基于与用户的交互确定对动态代码的处理策略,从而可以实现对动态代码的双重检测,提高了检测准确度,保障了云主机和云主机上应用的安全性。
在一些可能的实现方式中,主机端检测装置可以向远端检测装置发送用户对检测结果的反馈,以便远端检测装置根据用户对检测结果的反馈更新签名库。该方法根据用户的反馈更新签名库,例如远端检测装置可以将用户信任的动态代码的签名移出签名库,从而使得代码检测的结果更加符合用户的需求,远端检测装置还可以将用户不信任的动态代码的签名加入签名库,从而使得代码检测更加严格,保障云主机和云主机上部署的应用的安全。
在一些可能的实现方式中,主机端检测装置还可以根据用户对历史的检测结果的反馈,向用户提供对动态代码的处理建议。该方法通过分析用户对检测结果的反馈,了解用户对动态代码的处理习惯,从而向用户推荐符合用户习惯的动态代码处理建议,便于用户快捷地对检测结果进行反馈。
第二方面,本申请提供了一种代码检测系统。所述系统包括:
主机端检测装置,用于将待检测的动态代码暂停;
所述主机端检测装置,还用于向远端检测装置发送检测请求,所述检测请求用于请求所述远端检测装置对所述动态代码进行恶意检测;
所述远端检测装置,用于对所述动态代码进行恶意检测;
所述主机端检测装置,还用于接收所述远端检测装置返回的检测结果,所述检测结果用于表征所述动态代码是否为恶意代码。
在一些可能的实现方式中,所述检测请求中包括所述动态代码的签名,所述远端检测装置具体用于:
查询所述动态代码的签名与签名库中恶意代码样本的签名是否匹配,以对所述动态代码进行恶意检测。
在一些可能的实现方式中,所述主机端检测装置还用于:
当所述检测结果表征所述动态代码为恶意代码,将所述动态代码终止;
当所述检测结果表征所述动态代码不是恶意代码,将所述动态代码恢复。
在一些可能的实现方式中,所述主机端检测装置具体用于:
接收到代码执行通知时,将所述代码执行通知关联的动态代码暂停。
在一些可能的实现方式中,所述主机端检测装置具体用于:
将所述代码执行通知关联的动态代码进行过滤;
将过滤后的所述动态代码暂停。
在一些可能的实现方式中,所述主机端检测装置还用于:
接收所述远端检测装置发送的位数组和哈希函数;
所述主机端检测装置具体用于:
将所述代码执行通知关联的动态代码,通过由所述位数组和所述哈希函数构建的布隆过滤器进行过滤。
在一些可能的实现方式中,所述主机端检测装置具体用于:
将所述代码执行通知关联的动态代码进行白名单过滤。
在一些可能的实现方式中,所述主机端检测装置还用于:
向用户呈现所述检测结果。
在一些可能的实现方式中,所述主机端检测装置还用于:
接收用户对所述检测结果的反馈;
根据所述用户对所述检测结果的反馈,确定对所述动态代码的处理策略。
第三方面,本申请提供一种计算设备集群。所述计算设备集群包括至少一台计算设备,所述至少一台计算设备包括至少一个处理器和至少一个存储器。所述至少一个处理器、所述至少一个存储器进行相互的通信。所述至少一个处理器用于执行所述至少一个存储器中存储的指令,以使得计算设备或计算设备集群执行如第一方面或第一方面的任一种实现方式所述的代码检测方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,所述指令指示计算设备或计算设备集群执行上述第一方面或第一方面的任一种实现方式所述的代码检测方法。
第五方面,本申请提供了一种包含指令的计算机程序产品,当其在计算设备或计算设备集群上运行时,使得计算机或计算设备集群执行上述第一方面或第一方面的任一种实现方式所述的代码检测方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
为了更清楚地说明本申请实施例的技术方法,下面将对实施例中所需使用的附图作以简单地介绍。
图1为本申请实施例提供的一种代码检测系统的架构示意图;
图2为本申请实施例提供的一种代码检测方法的流程图;
图3为本申请实施例提供的一种检测结果呈现界面的示意图;
图4为本申请实施例提供的一种计算设备的结构示意图;
图5为本申请实施例提供的一种计算设备集群的结构示意图;
图6为本申请实施例提供的一种计算设备集群的结构示意图;
图7为本申请实施例提供的一种计算设备集群的结构示意图。
具体实施方式
本申请实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
首先对本申请实施例中所涉及到的一些技术术语进行介绍。
云计算(cloud computing)是一种基于互联网的计算方式,用于提供虚拟化的计算资源。云计算通常以云服务的方式对外提供虚拟化的计算资源。例如,云计算服务提供商可以对外提供弹性云主机(Elastic Cloud Server,ECS)服务。应用开发者或应用运营者可以租赁或购买上述云服务,以在云主机上部署应用。一方面可以降低部署成本,另一方面可以由云服务提供商对云主机等进行运维,降低运维成本。
云主机和部署在云主机中的应用对互联网开放服务,因而容易受到攻击者的攻击。例如,攻击者可以使用钓鱼、下载、软件漏洞等多种方式在云主机上运行恶意代码(malicious code),从而对云主机和部署在云主机中的应用发起攻击,影响云主机或云主机上应用的正常运行。
恶意代码,也称为恶意软件(malicious software,Malware),通常指能够使计算机(例如是云主机)按照攻击者的意图执行以达到恶意目的的指令集,具体地,恶意代码可以包括计算机病毒、蠕虫、恶意移动代码、后门、特洛伊木马、僵尸网络和内核套件。恶意代码在计算机系统中以多种形式存在,例如,恶意代码可以以Java Applet、ActiveX控件、推送内容、插件、脚本语言的形式存在,当恶意代码在计算机中进行非授权操作时,会对计算机和计算机中的文件造成潜在破坏。
为了降低恶意代码在云主机上执行对云主机或云主机上部署的应用造成的损害,业界提供了一些代码检测方法,以检测出恶意代码,进而对恶意代码进行拦截。具体地,安全组织可以预先收集恶意代码,根据恶意代码的签名(例如是根据恶意代码的内容通过哈希算法生成的哈希值)生成恶意代码签名库(也可以称为签名库)。例如,安全组织可以使用蜜罐技术,通过布置一些作为诱饵的云主机、网络服务或者信息,诱使攻击者对云主机进行攻击,对攻击者行为进行捕捉和分析,从而收集恶意代码,并生成签名库。云厂商或网络安全服务提供商可以利用上述签名库,提供代码检测方案,以检测出在云主机上运行的恶意代码,进而对该恶意代码进行进一步处理,从而保障云主机或云主机上应用的安全。
其中,云厂商或网络安全服务提供商可以提供基于签名库的安全软件。该安全软件可以部署在云主机上。云主机上的安全软件可以和云管理端协同,从而实现代码检测。具体地,云主机上的安全软件接收代码执行通知,代码执行时可以启动进程,因此上述代码执行通知也称作进程启动通知,安全软件可以根据进程启动通知将进程信息如签名发送到云管理端,云管理端基于签名进行全量的签名库匹配,若匹配成功,则表明该代码是恶意代码,云管理端向云主机上的安全软件发送结束进程命令,安全软件结束进程。然而,安全软件进行全量匹配以及安全软件与云管理侧交互需要较长时间,如此可以导致云主机或云主机上的应用在安全软件检测出恶意代码之前即被攻击。
云主机上的安全软件也可以采用传统杀毒软件进行代码检测。具体地,云主机侧的安全软件下载全量签名库,将签名库加载到内存中,构建查询数据结构。进程启动后,云主机侧的安全软件收到进程启动通知,在云主机侧进行全量的签名库匹配,若匹配成功,则表明代码是恶意代码,安全软件可以结束相应的进程。该方法虽然减少了云主机侧和云管理端的交互时间,但是全量匹配的时间较长,云主机或云主机上的应用仍有较高概率在安全软件检测出恶意代码之前被攻击。并且,该方法占用云主机侧大量资源,影响应用业务正常运行,损害了用户利益。
有鉴于此,本申请实施例提供了一种代码检测方法。该方法可以由代码检测系统执行,其中,代码检测系统可以包括主机端检测装置和远端检测装置。在一些实施例中,代码检测系统可以是软件系统,软件系统可以部署在计算机集群中,计算机集群通过运行该软件系统的程序代码,以执行代码检测方法。在另一些实施例中,该代码检测系统也可以是用于检测代码的硬件系统。本申请实施例以代码检测系统为软件系统进行示例说明。
具体地,主机端检测装置首先将待检测的动态代码暂停,并向远端检测装置发送检测请求,以请求远端检测装置对动态代码进行恶意检测,接着主机端检测装置接收远端检测装置返回的检测结果,确定该动态代码是否为恶意代码。
在该方法中,代码检测系统中的远端检测装置在动态代码暂停的状态下进行动态代码的恶意检测,并将检测结果返回至代码检测系统中的主机端检测装置,从而确定动态代码是否为恶意代码,以便对动态代码进行后续恢复或者终止(也即结束进程、终止进程)的操作。相较于在远端检测装置中进行代码检测,或者直接在主机端检测装置中进行代码检测的方法,本申请实施例的代码检测方法在暂停动态代码的基础上对动态代码进行恶意检测,能够实现及时地拦截恶意代码,从而保障云主机或云主机上部署的应用的安全。而且,该方法不占用云主机太多的资源,不影响用户正常应用程序的执行。
为了使得本申请的技术方案更加清楚、易于理解,下面结合附图对本申请实施例的系统架构进行介绍。
参见图1所述的代码检测系统的系统架构图,该代码检测系统100包括主机端检测装置102和远端检测装置104。其中,主机端检测装置102和远端检测装置104可以部署在云平台10中。云平台10可以根据租户租赁或购买的云服务,如云主机服务,为租户提供虚拟私有云(Virtual Private Cloud,VPC)集群,该VPC集群也称作租户集群12,不同租户的租户集群12可以隔离。云平台10中还包括管理集群14,管理集群14用于对云平台10的资源或服务进行管理。基于此,主机端检测装置102可以部署在租户集群12中,远端检测装置104可以部署在管理集群14中。其中,租户集群12中还部署有至少一个应用300。图1以租户集群12中部署租户的多个应用进行示例说明。
需要说明的是,主机端检测装置102和远端检测装置104也可以集中或分布式地部署在其他环境中。例如主机端检测装置102和远端检测装置104可以分布式地部署在边缘节点。边缘节点是相对于云计算数据中心的,指与最终接入的用户之间具有较少中间环节的网络节点,可以是某个机房或者某个物理设备,相对于直接访问云计算数据中心的源站而言,用户访问时有更好的响应能力和连接速度。
具体地,主机端检测装置102包括通信模块1022、代码暂停模块1024。其中,主机端检测装置102中的代码暂停模块1024用于将待检测的动态代码(例如是进程)暂停,通信模块1022用于向远端检测装置104发送检测请求,所述检测请求用于请求所述远端检测装置104对所述动态代码进行恶意检测。通信模块1022还用于接收远端检测装置104返回的检测结果。该检测结果用于表征所述动态代码是否为恶意代码。
相应地,远端检测装置104包括通信模块1042和检测模块1044。其中,远端检测装置104中的通信模块1042用于接收检测请求,检测模块1044用于根据检测请求,对所述动态代码进行恶意检测。其中,检测模块1044可以查询动态代码的签名与签名库中恶意代码样本的签名是否匹配,以对动态代码进行恶意检测。通信模块1042还用于向主机端检测装置102返回检测结果。
在一些可能的实现方式中,主机端检测装置102中的通信模块1022还用于接收代码执行通知,该代码执行通知可以为应用执行时产生的进程的启动通知,即进程启动通知。该进程启动通知可以包括启动进程的进程标识(identifer,ID)。代码暂停模块1024可以根据该进程启动通知中的进程标识,将对应的进程(即动态代码)暂停。
进一步地,主机端检测装置102还包括过滤模块1023、交互模块1025和代码处理模块1026中的一个或多个。过滤模块1023用于对代码执行通知关联的动态代码也即启动的进程先进行过滤,以提前过滤可疑的进程,而无需等待全量匹配的结果,如此可以进一步提高代码检测的效率。并且,主机端检测装置102通过提前过滤可疑的进程,可以减少后续检测的计算量。
主机端检测装置102还可以包括代码处理模块1026。代码处理模块1026根据远端检测装104返回的检测结果,对动态代码进行处理。例如,检测结果表征动态代码为恶意代码,代码处理模块1026可以将所述动态代码终止;又例如,检测结果表征动态代码不是恶意代码,代码处理模块1026可以将动态代码恢复。
需要说明的是,主机端检测装置102可以在接收到检测结果,直接根据检测结果对动态代码进行恢复或终止。在一些实施例中,主机端检测装置102还支持基于与用户的交互对动态代码进行处理。具体地,主机端检测装置102还可以包括交互模块1025,交互模块1025用于向用户呈现检测结果,接收用户对检测结果的反馈,根据用户对检测结果的反馈,确定对动态代码的处理策略,然后按照该处理策略对动态代码进行处理。如此,可以实现对动态代码的双重检测,具体是代码检测系统的自动检测以及用户的人工检测,提高了检测准确度,保障了云主机和云主机上应用的安全性。
接下来,将从代码检测系统100中主机端检测装置102、远端检测装置104的角度,对本申请实施例提供的代码检测方法进行详细说明。
参见图2所示的代码检测方法的流程图,该方法包括:
S202:主机端检测装置102接收代码执行通知。
代码执行通知可以为进程启动通知。具体地,部署主机端检测装置102的云主机上还可以包括可执行的代码。该可执行的代码可以包括用户部署的应用业务的代码、攻击者使用钓鱼、下载、软件漏洞等方式植入的恶意代码。这些可执行的代码执行时,可以生成代码执行通知,也即进程启动通知。主机端检测装置102可以通过监听上述可执行的代码,从而接收代码执行通知。
具体地,可执行的代码执行时,云主机可以产生对应的代码执行通知,以表示该代码进入执行状态,形成动态代码。例如,云主机可以为进入执行状态的代码也即进程申请空白进程控制块(Process Control Block,PCB)和分配必要的内存空间,接着初始化PCB,将能够唯一标识该进程的数字标识符写入PCB中,并将PCB中的进程状态改为TASK_RUNNING,将该进程插入就绪队列,从而产生代码执行通知(进程启动通知)。主机端检测装置102接收该进程启动通知,从而确定正在执行的动态代码,以便后续进行恶意检测。
S204:主机端检测装置102将代码执行通知关联的动态代码进行过滤。
具体地,主机端检测装置102可以根据接收到的代码执行通知,将代码执行通知关联的动态代码确定为待检测代码,并对动态代码进行过滤,以便初步筛选出动态代码中可能存在的恶意代码,防止恶意代码危害云主机或云主机上部署的应用的安全。
在一些实施例中,主机端检测装置102可以使用布隆过滤器(Bloom Filter)对代码执行通知关联的动态代码进行过滤。下面,对布隆过滤器进行介绍。
布隆过滤器可以用于判断一个目标元素是否在一个集合中。具体地,布隆过滤器包括一个长度为m的位数组和个数为k的哈希函数,其中长度为m的位数组的初始值均设置为0。在构建布隆过滤器时,首先根据布隆过滤器中的k个哈希函数,确定集合中的一个原始元素对应的k个索引值,接着将长度为m的位数组中与该原始元素对应的k个索引值的位置的数值设置为1,针对集合中的多个原始元素重复上述步骤,从而完成布隆过滤器的构建。在使用布隆过滤器判断目标元素是否在一个集合中时,首先根据布隆过滤器中的k个哈希函数,确定目标元素对应的k个索引值,接着检索布隆过滤器中长度为m的位数组中与目标元素对应的k个索引值的位置的数值,当k个索引值的位置的数值均为0时,表示目标元素不在该集合中,当k个索引值的位置的数值为1时,表示目标元素可能在该集合中。
需要说明的是,若要判断一个目标元素是否在一个集合中,常用的方式是将集合中的所有元素保存在例如链表、树、散列表的数据结构中,然后比较目标元素是否在该数据结构中,从而确定目标元素是否在该集合中。然而,随着集合中元素数量的增加,数据结构需要的存储空间也随之增加,同时,判断速度会随之降低,从而无法快速、有效地判断目标元素是否在集合中。而布隆过滤器中包括k个哈希函数,从而大大降低了构建布隆过滤器和使用布隆过滤器判断的时间,且布隆过滤器中的k个哈希函数之间不存在关联,方便由硬件并行实现。同时,使用布隆过滤器判断目标元素是否在一个集合中的准确度较高,例如,在布隆过滤器包括长度为1600万的位数组和8个哈希函数时,对于200万个元素的集合,在占用2M内存的情况下,判断准确率可以达到98%,在占用4M内存的情况下,判断准确率可以达到99.9%,误差率可以控制在0.1%。具体地,使用布隆过滤器过滤的误差率如下所示:
表1布隆过滤器的误差率
其中,m表示位数组长度,k表示哈希函数个数,n表示集合中的元素个数。
因此,主机端检测装置102可以接收远端检测装置发送的位数组和哈希函数,并根据该位数组、哈希函数和签名库构建对应的布隆过滤器,从而使用该布隆过滤器对代码执行通知关联的动态代码进行过滤,确定出可疑代码。具体地,签名库中包括多个恶意代码样本的签名,主机端检测装置102首先针对签名库中的每个恶意代码样本,利用哈希函数计算每个恶意代码样本对应的哈希值,接着将计算得到的哈希值作为恶意代码样本的索引值,将位数组中与索引值对应的位置的数值由0置1,从而完成布隆过滤器的构建。在使用布隆过滤器对动态代码进行过滤时,主机端检测装置102利用哈希函数计算动态代码对应的哈希值,并将计算得到的哈希值作为动态代码的索引值,若位数组中与动态代码的索引值对应的位置的数值均为0,则表示该动态代码没有命中签名库,即该动态代码为安全代码,从而将该动态代码过滤,若位数组中与动态代码的索引值对应的位置的数值不全为0,则表示该动态代码命中签名库,即该动态代码可能为恶意代码,从而将该动态代码保留。
由于使用了布隆过滤器对动态代码进行过滤,主机端检测装置102可以在占用较少资源的情况下实现动态代码的过滤,同时提升了过滤效率和过滤准确率,从而及时暂停可疑代码。
在一些实施例中,主机端检测装置102可以将代码执行通知关联的动态代码进行白名单(White List)过滤。具体地,主机端检测装置102中可以预先设置白名单,其中,白名单中可以包括允许执行的安全代码,当主机端检测装置102接收到的代码执行通知关联的动态代码为白名单中的安全代码时,表示该动态代码为受信任的代码,可以被安全执行,无需暂停;当主机端检测装置102接收到的代码执行通知关联的动态代码不为白名单中的安全代码时,表示该动态代码不为受信任的代码,将该动态代码暂停,从而保障云主机或云主机上部署的应用的安全。需要说明的是,白名单中包括的安全代码可以由主机端检测装置102根据历史代码执行结果设置,也可以由用户手动设置。
需要说明的是,上述使用布隆过滤器过滤动态代码或者白名单过滤动态代码的方法为本申请实施例中代码执行通知关联的动态代码进行过滤的一些具体实现方式,执行本申请实施例的代码检测方法也可以采用其他方式将代码执行通知关联的动态代码进行过滤,本申请实施例对此不作限制。
S206:主机端检测装置102将过滤后的动态代码暂停。
具体地,主机端检测装置102可以将过滤后的动态代码暂停,从而在动态代码暂停的基础上进行后续的恶意检测,避免恶意代码对云主机或云主机上部署的应用造成破坏。例如,在Linux系统中,主机端检测装置102可以使用Ptrace技术将动态代码暂停,具体地,主机端检测装置102可以首先使用PTRACE_ATTACH或是PTRACE_SEIZE连接到动态代码,从而实现对动态代码的跟踪,接着使用PTRACE_INTERRUPT对正在执行的动态代码进行中断操作,从而实现对动态代码的暂停。
需要说明的是,S204中将代码执行通知关联的动态代码进行过滤的步骤为本申请实施例的代码检测方法中的可选步骤。在一些实施例中,主机端检测装置102可以选择不执行S204,在接收到代码执行通知后,直接将代码通知关联的动态代码暂停,从而在后续对动态代码进行更加全面的恶意检测,避免过滤动态代码的过程中出错,导致恶意代码未被及时暂停,对云主机或云主机上部署的应用的安全造成影响。
S208:主机端检测装置102向远端检测装置104发送检测请求。
其中,检测请求用于请求远端检测装置104对动态代码进行恶意检测。具体地,主机端检测装置102发送的检测请求中可以包括已经暂停执行的动态代码的签名,以实现远端检测装置104根据动态代码的签名进行恶意检测。
S210:远端检测装置104对动态代码进行恶意检测。
具体地,远端检测装置104可以根据历史代码执行结果,预先收集恶意代码样本,并根据恶意代码样本的签名生成签名库,其中,恶意代码样本的签名可以为恶意代码的哈希值。远端检测装置104接收到主机端检测装置102发送的检测请求后,远端检测装置104可以根据检测请求中包括的动态代码的签名,查询该动态代码的签名与签名库中的恶意代码样本的签名是否匹配,从而在未占用较多云主机资源的基础上,完成对动态代码的恶意检测。
S212:远端检测装置104向主机端检测装置102发送检测结果。
其中,当动态代码的签名与签名库中的恶意代码样本的签名匹配时,该动态代码的检测结果为恶意代码;当动态代码的签名与签名库中的恶意代码样本的签名不匹配时,该代码的检测结果不为恶意代码。远端检测装置104向主机端检测装置102发送检测结果,其中,检测结果可以包括动态代码的签名和动态代码对应的检测结果,从而将动态代码恶意检测的结果返回至主机端检测装置102。
S214:主机端检测装置102向用户呈现检测结果,接收用户对检测结果的反馈。
具体地,主机端检测装置102在接收到远端检测装置104发送的检测结果后,可以向用户呈现检测结果。例如,主机端检测装置102可以向用户呈现动态代码对应的应用程序信息和该动态代码的检测结果,从而使用户获知在云主机中运行的应用的安全情况。进一步地,当检测结果表征动态代码为恶意代码,主机端检测装置102还可以获取用户对检测结果的反馈。例如,主机端检测装置102可以询问用户是否信任该动态代码,并将用户的回答作为用户对检测结果的反馈。
具体地,参见图3所示的检测结果呈现界面300的示意图。其中,检测结果呈现界面300可以分为主机信息区域302、检测结果区域304、用户反馈控件307和308。在主机信息区域302中,主机端检测装置102可以向用户呈现待检测的动态代码所在的云主机信息,例如,云主机信息可以为“HOST 1”,从而便于用户了解恶意代码存在的主机信息。在检测结果区域304中,主机端检测装置102可以向用户呈现对动态代码恶意检测后的检测结果,例如,检测结果可以为“发现可疑程序”,从而将检测结果直观地告知用户并且,主机端检测装置102还可以在检测结果区域304中向用户呈现可疑程序的相关信息,其中,可疑程序的相关信息可以包括可疑程序的执行操作和可疑程序所在路径,例如,可疑程序的执行操作可以为“可疑程序试图修改组策略,极少软件会修改组策略,如果您不认识此程序,建议阻止”,可疑程序所在路径可以为“可疑程序:C:\windows\system32\SearchIndexer.exe”。在用户反馈控件307和308中,主机端检测装置102可以通过部署选择控件的方式获取用户对检测结果的反馈,例如,用户对检测结果的反馈控件可以包括“信任此程序”控件305和“阻止并关闭此程序”控件306,主机端检测装置102根据用户触发的选择控件获取用户对检测结果的反馈。
需要说明的是,上述检测结果呈现界面300为本申请实施例中向用户呈现检测结果,接收用户对检测结果的反馈的一种具体实现方式,执行本申请实施例的代码检测方法也可以采用其他方式向用户呈现检测结果,接收用户对检测结果的反馈,本申请实施例对此不作限制。
S216:主机端检测装置102确定对动态代码的处理策略。
主机端检测装置102可以根据用户对检测结果的反馈,确定对动态代码的处理策略。例如,主机端检测装置102可以根据用户触发的“信任此程序”或“阻止并关闭此程序”,将动态代码的处理策略确定为恢复或终止。
需要说明的是,S214中向用户呈现检测结果,接收用户对检测结果的反馈的步骤为本申请实施例的代码检测方法中的可选步骤。在一些实施例中,主机端检测装置102可以选择不执行S214,在接收到检测结果后,根据动态代码的检测结果确定对动态代码的处理策略。具体地,当检测结果表征动态代码为恶意代码,主机端检测装置102可以将该动态代码的处理策略确定为终止;当检测结果表征动态代码不为恶意代码,主机端检测装置102可以将该动态代码的处理策略确定为恢复。
S218:主机端检测装置102根据处理策略处理动态代码。具体地,在Linux系统中,当动态代码的处理策略为终止该动态代码时,主机端检测装置102可以使用SIGKILL将动态代码终止,当动态代码的处理策略为恢复该动态代码时,主机端检测装置102可以使用PTRACE_CONT将动态代码恢复,并使用PTRACE_DETACH解除对该动态代码的连接,从而不影响动态代码的执行。由此,主机端检测装置102在不影响正常程序执行的基础上,及时拦截恶意代码,从而避免云主机或云主机上部署的应用的安全受到危害。
基于上述内容描述,本申请实施例提供了一种代码检测方法。在该方法中,代码检测系统中的主机端检测装置将待检测的动态代码暂停,并向代码检测系统中的远端检测装置发送检测请求,以使远端检测装置对动态代码进行恶意检测,主机端检测装置根据远端检测装置返回的检测结果,确定动态代码是否为恶意代码。该方法将待检测的动态代码暂停,从而及时终止了可疑动态代码的执行,在此基础上,在远端检测装置对动态代码进行恶意检测,不占用云主机太多的资源,能够及时拦截恶意代码,不影响用户正常应用程序的执行,从而保障云主机或云主机上部署的应用的安全。
基于本申请实施例提供的代码检测方法,本申请实施例还提供了一种如前述的代码检测系统100。下面结合附图对代码检测系统100进行介绍。
参见图1所示的代码检测系统100的结构示意图,该系统100包括:主机端检测装置102和远端检测装置104。其中,主机端检测装置102用于将待检测的动态代码暂停,向远端检测装置104发送检测请求,接收远端检测装置104返回的检测结果,该检测结果用于表征动态代码是否为恶意代码。远端检测装置104用于接收主机端检测装置102发送的检测请求,对动态代码进行恶意检测,向主机端检测装置102返回检测结果。
上述主机端检测装置102和远端检测装置104可以通过硬件模块实现或通过软件模块实现。
当主机端检测装置102、远端检测装置104通过软件实现时,主机端检测装置102、远端检测装置104可以是运行在计算设备或计算设备集群上的应用程序或者应用程序模块。例如,主机端检测装置102可以包括通信模块1022、代码暂停模块1024,远端检测装置104可以包括通信模块1042、检测模块1044。
具体地,主机端检测装置102中的代码暂停模块1024,用于将待检测的动态代码暂停;主机端检测装置102中的通信模块1022,用于向远端检测装置104发送检测请求,该检测请求用于请求远端检测装置104对动态代码进行恶意检测;主机端检测装置102中的通信模块1022,还用于接收远端检测装置104中的通信模块1042返回的检测结果,该检测结果用于表征动态代码是否为恶意代码。
相应地,远端检测装置104中通信模块1042用于接收主机端检测装置102发送的检测请求,远端检测装置104中的检测模块1044,用于对动态代码进行恶意检测,远端检测装置104中通信模块1042还用于向主机端检测装置102返回检测结果。
当通过硬件实现时,主机端检测装置102可以包括至少一个计算设备,如服务器。或者主机端检测装置102也可以是利用专用集成电路(application-specific integratedcircuit,ASIC)实现、或可编程逻辑器件(programmable logic device,PLD)实现的设备等。其中,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD)、现场可编程门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合实现。类似地,远端检测装置104可以包括至少一个计算设备,或者是是利用ASIC实现、PLD实现的设备。
在一些可能的实现方式中,检测请求中包括动态代码的签名,远端检测装置104中的检测模块1044具体用于:
查询动态代码的签名与签名库中恶意代码样本的签名是否匹配,以对动态代码进行恶意检测。
在一些可能的实现方式中,主机端检测装置102还包括代码处理模块1026,该代码处理模块1026用于:
当检测结果表征动态代码为恶意代码,将动态代码终止;
当检测结果表征动态代码不是恶意代码,将动态代码恢复。
在一些可能的实现方式中,主机端检测装置102中的代码暂停模块1024具体用于:
接收到代码执行通知时,将代码执行通知关联的动态代码暂停。
在一些可能的实现方式中,主机端检测装置102还包括过滤模块1023,该过滤模块1023用于:
将代码执行通知关联的动态代码进行过滤;
主机端检测装置102中的代码暂停模块1024具体用于:
将过滤后的动态代码暂停。
在一些可能的实现方式中,主机端检测装置102中的通信模块1022还用于:
接收远端检测装置104发送的位数组和哈希函数;
主机端检测装置102中的过滤模块1023具体用于:
将代码执行通知关联的动态代码,通过由位数组和哈希函数构建的布隆过滤器进行过滤。
在一些可能的实现方式中,主机端检测装置102中的过滤模块具体用于:
将代码执行通知关联的动态代码进行白名单过滤。
在一些可能的实现方式中,主机端检测装置102还包括交互模块1025,该交互模块1025用于:
向用户呈现检测结果。
在一些可能的实现方式中,主机端检测装置102中的交互模块1025还用于:
接收用户对检测结果的反馈;
根据所述用户对检测结果的反馈,确定对动态代码的处理策略。
本申请还提供一种计算设备400。如图4所示,计算设备400包括:总线402、处理器404、存储器406和通信接口408。处理器404、存储器406和通信接口408之间通过总线402通信。计算设备400可以是服务器或终端设备。应理解,本申请不限定计算设备400中的处理器、存储器的个数。
总线402可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。总线404可包括在计算设备400各个部件(例如,存储器406、处理器404、通信接口408)之间传送信息的通路。
处理器404可以包括中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
存储器406可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。处理器404还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,机械硬盘(hard diskdrive,HDD)或固态硬盘(solid state drive,SSD)。存储器406中存储有可执行的程序代码,处理器404执行该可执行的程序代码以实现前述代码检测方法。具体的,存储器406上存有代码检测系统100用于执行代码检测方法的指令。
通信接口403使用例如但不限于网络接口卡、收发器一类的收发模块,来实现计算设备400与其他设备或通信网络之间的通信。
本申请实施例还提供了一种计算设备集群。该计算设备集群包括至少一台计算设备。该计算设备可以是服务器,例如是中心服务器、边缘服务器,或者是本地数据中心中的本地服务器。在一些实施例中,计算设备也可以是台式机、笔记本电脑或者智能手机等终端设备。
如图5所示,所述计算设备集群包括至少一个计算设备400。计算设备集群中的一个或多个计算设备400中的存储器406中可以存有相同的代码检测系统100用于执行代码检测方法的指令。
在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备400也可以用于执行代码检测系统100用于执行代码检测方法的部分指令。换言之,一个或多个计算设备400的组合可以共同执行代码检测系统100用于执行代码检测方法的指令。
需要说明的是,计算设备集群中的不同的计算设备400中的存储器406可以存储不同的指令,用于执行代码检测系统100的部分功能。
图6示出了一种可能的实现方式。如图6所示,两个计算设备400A和400B通过通信接口408实现连接。计算设备400A中的存储器上存有用于执行主机端检测装置102的功能的指令。计算设备400B中的存储器上存有用于执行远端检测装置104的功能的指令。换言之,计算设备400A和400B的存储器406共同存储了代码检测系统100用于执行代码检测方法的指令。
图6所示的计算设备集群之间的连接方式可以是考虑到本申请提供的代码检测方法需要将接收到的动态代码暂停和对动态代码进行恶意检测。因此,考虑将主机端检测装置102实现的功能交由计算设备400A执行,远端检测装置104实现的功能由计算设备400B执行。
应理解,图6中示出的计算设备400A的功能也可以由多个计算设备400完成。同样,计算设备400B的功能也可以由多个计算设备400完成。
在一些可能的实现方式中,计算设备集群中的一个或多个计算设备可以通过网络连接。其中,所述网络可以是广域网或局域网等等。图7示出了一种可能的实现方式。如图7所示,两个计算设备400C和400D之间通过网络进行连接。具体地,通过各个计算设备中的通信接口与所述网络进行连接。在这一类可能的实现方式中,计算设备400C中的存储器406中存有执行主机端检测装置102的功能的指令。同时,计算设备400D中的存储器406中存有执行远端检测装置104的功能的指令。
图7所示的计算设备集群之间的连接方式可以是考虑到本申请提供的代码检测方法需要将接收到的动态代码暂停和对动态代码进行恶意检测,因此考虑将主机端检测装置102实现的功能交由计算设备400C执行,远端检测装置104实现的功能由计算设备400D执行。应理解,图7中示出的计算设备400C的功能也可以由多个计算设备400完成。同样,计算设备400D的功能也可以由多个计算设备400完成。
本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备执行上述应用于代码检测系统用于执行代码检测方法。
本申请实施例还提供了一种包含指令的计算机程序产品。所述计算机程序产品可以是包含指令的,能够运行在计算设备上或被储存在任何可用介质中的软件或程序产品。当所述计算机程序产品在至少一个计算设备上运行时,使得至少一个计算设备执行上述代码检测方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。
Claims (21)
1.一种代码检测方法,其特征在于,应用于代码检测系统,代码检测系统包括主机端检测装置和远端检测装置,所述方法包括:
所述主机端检测装置将待检测的动态代码暂停;
所述主机端检测装置向所述远端检测装置发送检测请求,所述检测请求用于请求所述远端检测装置对所述动态代码进行恶意检测;
所述主机端检测装置接收所述远端检测装置返回的检测结果,所述检测结果用于表征所述动态代码是否为恶意代码。
2.根据权利要求1所述的方法,其特征在于,所述检测请求中包括所述动态代码的签名,所述远端检测装置对所述动态代码进行恶意检测,包括:
所述远端检测装置查询所述动态代码的签名与签名库中恶意代码样本的签名是否匹配,以对所述动态代码进行恶意检测。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
当所述检测结果表征所述动态代码为恶意代码,所述主机端检测装置将所述动态代码终止;
当所述检测结果表征所述动态代码不是恶意代码,所述主机端检测装置将所述动态代码恢复。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述主机端检测装置将待检测的动态代码暂停,包括:
所述主机端检测装置接收到代码执行通知时,将所述代码执行通知关联的动态代码暂停。
5.根据权利要求4所述的方法,其特征在于,所述将所述代码执行通知关联的动态代码暂停,包括:
将所述代码执行通知关联的动态代码进行过滤;
将过滤后的所述动态代码暂停。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
接收所述远端检测装置发送的位数组和哈希函数;
所述将所述代码执行通知关联的动态代码进行过滤,包括:
将所述代码执行通知关联的动态代码,通过由所述位数组和所述哈希函数构建的布隆过滤器进行过滤。
7.根据权利要求5所述的方法,其特征在于,所述将所述代码执行通知关联的动态代码进行过滤,包括:
将所述代码执行通知关联的动态代码进行白名单过滤。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述方法还包括:
所述主机端检测装置向用户呈现所述检测结果。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
接收用户对所述检测结果的反馈;
根据所述用户对所述检测结果的反馈,确定对所述动态代码的处理策略。
10.一种代码检测系统,其特征在于,所述系统包括:
主机端检测装置,用于将待检测的动态代码暂停;
所述主机端检测装置,还用于向远端检测装置发送检测请求,所述检测请求用于请求所述远端检测装置对所述动态代码进行恶意检测;
所述远端检测装置,用于对所述动态代码进行恶意检测;
所述主机端检测装置,还用于接收所述远端检测装置返回的检测结果,所述检测结果用于表征所述动态代码是否为恶意代码。
11.根据权利要求10所述的系统,其特征在于,所述检测请求中包括所述动态代码的签名,所述远端检测装置具体用于:
查询所述动态代码的签名与签名库中恶意代码样本的签名是否匹配,以对所述动态代码进行恶意检测。
12.根据权利要求10或11所述的系统,其特征在于,所述主机端检测装置还用于:
当所述检测结果表征所述动态代码为恶意代码,将所述动态代码终止;
当所述检测结果表征所述动态代码不是恶意代码,将所述动态代码恢复。
13.根据权利要求10至12任一项所述的系统,其特征在于,所述主机端检测装置具体用于:
接收到代码执行通知时,将所述代码执行通知关联的动态代码暂停。
14.根据权利要求13所述的系统,其特征在于,所述主机端检测装置具体用于:
将所述代码执行通知关联的动态代码进行过滤;
将过滤后的所述动态代码暂停。
15.根据权利要求14所述的系统,其特征在于,所述主机端检测装置还用于:
接收所述远端检测装置发送的位数组和哈希函数;
所述主机端检测装置具体用于:
将所述代码执行通知关联的动态代码,通过由所述位数组和所述哈希函数构建的布隆过滤器进行过滤。
16.根据权利要求14所述的系统,其特征在于,所述主机端检测装置具体用于:
将所述代码执行通知关联的动态代码进行白名单过滤。
17.根据权利要求10至16任一项所述的系统,其特征在于,所述主机端检测装置还用于:
向用户呈现所述检测结果。
18.根据权利要求17所述的系统,其特征在于,所述主机端检测装置还用于:
接收用户对所述检测结果的反馈;
根据所述用户对所述检测结果的反馈,确定对所述动态代码的处理策略。
19.一种计算设备集群,其特征在于,所述计算设备集群包括至少一台计算设备,所述至少一台计算设备包括至少一个处理器和至少一个存储器,所述至少一个存储器中存储有计算机可读指令;所述至少一个处理器执行所述计算机可读指令,以使得所述计算设备集群执行如权利要求1至9中任一项所述的方法。
20.一种计算机可读存储介质,其特征在于,包括计算机可读指令;所述计算机可读指令用于实现权利要求1至9任一项所述的方法。
21.一种计算机程序产品,其特征在于,包括计算机可读指令;所述计算机可读指令用于实现权利要求1至9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210886924.0A CN117494110A (zh) | 2022-07-26 | 2022-07-26 | 一种代码检测方法及相关系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210886924.0A CN117494110A (zh) | 2022-07-26 | 2022-07-26 | 一种代码检测方法及相关系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117494110A true CN117494110A (zh) | 2024-02-02 |
Family
ID=89675028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210886924.0A Pending CN117494110A (zh) | 2022-07-26 | 2022-07-26 | 一种代码检测方法及相关系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117494110A (zh) |
-
2022
- 2022-07-26 CN CN202210886924.0A patent/CN117494110A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10834107B1 (en) | Launcher for setting analysis environment variations for malware detection | |
US10872151B1 (en) | System and method for triggering analysis of an object for malware in response to modification of that object | |
CN109684832B (zh) | 检测恶意文件的系统和方法 | |
US11210390B1 (en) | Multi-version application support and registration within a single operating system environment | |
US10242186B2 (en) | System and method for detecting malicious code in address space of a process | |
US9251343B1 (en) | Detecting bootkits resident on compromised computers | |
US10630643B2 (en) | Dual memory introspection for securing multiple network endpoints | |
US9094451B2 (en) | System and method for reducing load on an operating system when executing antivirus operations | |
US9781144B1 (en) | Determining duplicate objects for malware analysis using environmental/context information | |
RU2531861C1 (ru) | Система и способ оценки вредоносности кода, исполняемого в адресном пространстве доверенного процесса | |
Bayer et al. | Scalable, behavior-based malware clustering. | |
US8037290B1 (en) | Preboot security data update | |
US11438349B2 (en) | Systems and methods for protecting devices from malware | |
US9202054B1 (en) | Detecting a heap spray attack | |
JP2014509421A (ja) | Usbホストシステムの拡張usbプロトコルスタックのためのセキュリティ手段 | |
WO2014071867A1 (zh) | 程序处理方法和系统,用于程序处理的客户端和服务器 | |
CN110119619B (zh) | 创建防病毒记录的系统和方法 | |
JP2019067372A (ja) | プロセスのアドレス空間内の悪意のあるコードの検出のためのシステムおよび方法 | |
US11829467B2 (en) | Dynamic rules engine in a cloud-based sandbox | |
CN109997138B (zh) | 用于检测计算设备上的恶意进程的系统和方法 | |
US8978139B1 (en) | Method and apparatus for detecting malicious software activity based on an internet resource information database | |
US10200374B1 (en) | Techniques for detecting malicious files | |
US9785775B1 (en) | Malware management | |
CN110659478B (zh) | 在隔离的环境中检测阻止分析的恶意文件的方法 | |
EP2881883B1 (en) | System and method for reducing load on an operating system when executing antivirus operations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |