CN112395593B - 指令执行序列的监测方法及装置、存储介质、计算机设备 - Google Patents

指令执行序列的监测方法及装置、存储介质、计算机设备 Download PDF

Info

Publication number
CN112395593B
CN112395593B CN201910755846.9A CN201910755846A CN112395593B CN 112395593 B CN112395593 B CN 112395593B CN 201910755846 A CN201910755846 A CN 201910755846A CN 112395593 B CN112395593 B CN 112395593B
Authority
CN
China
Prior art keywords
instruction execution
execution sequence
sequence
preset
path
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.)
Active
Application number
CN201910755846.9A
Other languages
English (en)
Other versions
CN112395593A (zh
Inventor
杨晓东
王明广
游勇
杨小波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qax Technology Group Inc
Qianxin Safety Technology Zhuhai Co Ltd
Original Assignee
Qax Technology Group Inc
Qianxin Safety Technology Zhuhai Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qax Technology Group Inc, Qianxin Safety Technology Zhuhai Co Ltd filed Critical Qax Technology Group Inc
Priority to CN201910755846.9A priority Critical patent/CN112395593B/zh
Publication of CN112395593A publication Critical patent/CN112395593A/zh
Application granted granted Critical
Publication of CN112395593B publication Critical patent/CN112395593B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow

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)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种指令执行序列的监测方法及装置、存储介质、计算机设备,涉及网络安全技术领域,主要目的在于解决现有每一条指令执行序列中存在的安全隐患无法通过指令执行序列运行的行为进行监测的问题。包括:当监测到关键API被调用时,挂起调用所述关键API对应的线程;根据预设指令执行序列规范判断所述线程中所执行的指令执行序列是否为安全指令执行序列,所述预设指令执行序列规范中包括有不同运行状态的指令执行序列对应的监测规范;若所述指令执行序列为危险指令执行序列,则输出所述关键API。

Description

指令执行序列的监测方法及装置、存储介质、计算机设备
技术领域
本发明涉及一种网络安全技术领域,特别是涉及一种指令执行序列的监测方法及装置、存储介质、计算机设备。
背景技术
随着网络安全技术的快速发展,新一代的漏洞防护体系的监测对象已经转变为指令执行序列,如以内核***调用API为关键监测点监测出动态、静态指令执行序列的白名单,从而建立安全防护引擎。
目前,现有的对指令执行序列的防护体系的建立仅仅是利用判断程序执行过程中指令执行序列的运行行为是否为定义规范规则来进行监测,但是,每一条指令执行序列中存在的安全隐患无法通过指令执行序列运行的行为进行监测,即无法通过对程序执行的行为进行漏洞攻击的判断,会漏掉进程中指令执行序列的一些恶意的指令特征,导致进程漏洞不能及时被发现,从而降低指令执行序列的监测效率。
发明内容
有鉴于此,本发明提供一种指令执行序列的监测方法及装置、存储介质、计算机设备,主要目的在于解决现有每一条指令执行序列中存在的安全隐患无法通过指令执行序列运行的行为进行监测的问题。
依据本发明一个方面,提供了一种指令执行序列的监测方法,包括:
当监测到关键API被调用时,挂起调用所述关键API对应的线程;
根据预设指令执行序列规范判断所述线程中所执行的指令执行序列是否为安全指令执行序列,所述预设指令执行序列规范中包括有不同运行状态的指令执行序列对应的监测规范;
若所述指令执行序列为危险指令执行序列,则输出所述关键API。
进一步地,所述根据预设指令执行序列规范判断所述线程中所执行的指令执行序列是否为安全指令执行序列包括:
调取位于二进制文件中所述指令执行序列的执行路径;
根据所述执行路径判断所述指令执行序列是否被规范执行路径调用。
进一步地,所述根据所述执行路径判断所述指令执行序列是否被异常路径调用包括:
判断所述执行路径是否存在于预设安全路径库中,所述预设安全路径库中预先存储有全部二进制文件中指令执行序列被调用的规范执行路径。
进一步地,所述根据预设指令执行序列规范判断所述线程中所执行的指令执行序列是否为安全指令执行序列包括:
收集正在执行的指令执行序列;
判断所述指令执行序列所执行的脚本模块是否存在于预设恶意加载模块库中。
进一步地,所述根据预设指令执行序列规范判断所述线程中所执行的指令执行序列是否为安全指令执行序列包括:
收集正在执行的第一指令执行序列,且判断所述第一指令执行序列所执行的脚本模块是否存在于预设恶意加载模块库中,并调取位于二进制文件中第二指令执行序列的执行路径,根据所述执行路径判断所述第二指令执行序列是否被规范执行路径调用。
进一步地,所述当监测到关键API被调用时,挂起调用所述关键API对应的线程包括:
当监测到关键API被调用时,判断调用所述关键API的线程是否为关键进程,若为关键进程,则利用hook函数挂起所述线程。
进一步地,若所述指令执行序列为安全指令执行序列,则放行所述关键API。
进一步地,所述关键API包括驱动加载、磁盘读写、创建进程、创建文件、打开文件、注册表写操作、加载模块、内存设置、DCOM本地调用。
依据本发明一个方面,提供了一种指令执行序列的监测装置,包括:
挂起模块,用于当监测到关键API被调用时,挂起调用所述关键API对应的线程;
判断模块,用于根据预设指令执行序列规范判断所述线程中所执行的指令执行序列是否为安全指令执行序列,所述预设指令执行序列规范中包括有不同运行状态的指令执行序列对应的监测规范;
输出模块,用于若所述指令执行序列为危险指令执行序列,则输出所述关键API。
进一步地,所述判断模块包括:
调取单元,用于当所述监测模式确定为静态指令执行序列监测模式时,调取位于二进制文件中所述指令执行序列的执行路径;
第一判断单元,用于根据所述执行路径判断所述指令执行序列是否被规范执行路径调用。
进一步地,所述判断单元,具体用于判断所述执行路径是否存在于预设安全路径库中,所述预设安全路径库中预先存储有全部二进制文件中指令执行序列被调用的规范执行路径。
进一步地,所述判断模块还包括:
收集单元,用于当所述监测模式确定为动态指令执行序列监测模式时,收集正在执行的指令执行序列;
第二判断单元,用于判断所述指令执行序列所执行的脚本模块是否存在于预设恶意加载模块库中。
进一步地,所述判断模块,具体还用于收集正在执行的第一指令执行序列,且判断所述第一指令执行序列所执行的脚本模块是否存在于预设恶意加载模块库中,并调取位于二进制文件中第二指令执行序列的执行路径,根据所述执行路径判断所述第二指令执行序列是否被规范执行路径调用。
进一步地,所述挂起模块,具体用于当监测到关键API被调用时,判断调用所述关键API的线程是否为关键进程,若为关键进程,则利用hook函数挂起所述线程。
进一步地,所述装置还包括:
放行模块,用于若所述指令执行序列为安全指令执行序列,则放行所述关键API。
进一步地,所述关键API包括驱动加载、磁盘读写、创建进程、创建文件、打开文件、注册表写操作、加载模块、内存设置、DCOM本地调用。
根据本发明的又一方面,提供了一种存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述指令执行序列的监测方法对应的操作。
根据本发明的再一方面,提供了一种计算机设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述指令执行序列的监测方法对应的操作。
借由上述技术方案,本发明实施例提供的技术方案至少具有下列优点:
本发明提供了一种指令执行序列的监测方法及装置、存储介质、计算机设备,与现有对指令执行序列的防护体系的建立仅仅是利用判断程序执行过程中指令执行序列的特征是否为定义规范规则来进行监测相比,本发明实施例通过监测关键API的调用情况,挂起调用关键API对应的线程,根据预设指令执行序列规范判断所执行的指令执行序列是否为安全指令执行序列,若为危险指令执行序列,则输出关键API,以实现根据指令执行序列对关键API进行防护判断的目的,增大对指令执行序列进行运行的安全隐患的防护范围,减少恶意指令执行序列的遗漏,及时发现指令执行序列对应进程的漏洞,从而提高指令执行序列的监测效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种指令执行序列的监测方法流程图;
图2示出了本发明实施例提供的一种监测指令执行序列的流程图;
图3示出了本发明实施例提供的另一种指令执行序列的监测方法流程图;
图4示出了本发明实施例提供的一种关键API调用对象示意图;
图5示出了本发明实施例提供的一种在进行分配/修改可写内存设置的关键API监测指令执行序列示意图;
图6示出了本发明实施例提供的一种DLL模块加载监测指令执行序列示意图:
图7示出了本发明实施例提供的一种指令执行序列的监测装置框图;
图8示出了本发明实施例提供的另一种指令执行序列的监测装置框图;
图9示出了本发明实施例提供的一种终端结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种指令执行序列的监测方法,如图1所示,所述方法包括:
101、当监测到关键API被调用时,挂起调用所述关键API对应的线程。
由于关键API被***调用时,通常为启动一个新的线程来执行,因此,在监测到关键API被调用时,挂起调用关键API对应的线程。其中,挂起方法为利用hook函数进行挂起,且预先准备多个hook函数,并进行注册,以便在监测到关键API被调用时,直至利用hook函数进行挂起线程,本发明实施例不做具体限定。另外,所述关键API包括驱动加载、磁盘读写、创建进程、创建文件、打开文件、注册表写操作、加载模块、内存设置、DCOM本地调用,本发明实施例不做具体限定。
102、根据预设指令执行序列规范判断所述线程中所执行的指令执行序列是否为安全指令执行序列。
其中,所述预设指令执行序列规范中包括有不同运行状态的指令执行序列对应的监测规范,所述运行状态的指令执行序列包括静态指令执行序列、动态指令执行序列,分别对应不同的监测规范,本发明实施例不做具体限定。对于安全指令执行序列的判断方式可以通过将指令执行序列与预设安全指令执行序列进行对比,若与安全指令执行序列相同,则为白,若不相同,则为黑,本发明实施例不做具体限定。
本发明实施例中,由于动态指令执行序列是指基于正在执行的脚本程序中的指令执行序列,静态指令执行序列是指基于二进制文件中的指令执行序列,因此,不同运行状态的指令执行序列是通过执行指令执行序列的场景、指令执行序列的防护需求来确定的。其中,所述执行指令执行序列的场景为指令执行序列在***内核中所执行的软件环境,所述指令执行序列的防护需求为根据不同的关键API的防护点所对应的需求,如针对动态指令执行序列需要以动态指令执行序列模式的进行监测,针对静态指令执行序列需要以静态指令执行序列模式进行监测,针对包含动态指令执行序列又包含静态指令执行序列需要以动态指令执行序列结合静态指令执行序列模式进行监测,本发明实施例不做具体限定。另外,本发明实施例中的***可以为客户端***,也可以为服务端***,不做具体限定。
103、若所述指令执行序列为危险指令执行序列,则输出所述关键API。
为了及时对指令执行序列中存在的危险指令执行序列进行及时防护,且作为防护脚本模块、API调用等底层技术的防护初始阶段,当判断出指令执行序列为危险指令执行序列,输出所述关键API,以便应用层进行再次判断。
相对的,若所述指令执行序列为安全指令执行序列,则直接放行所述关键API,如图2所示。
本发明提供了一种指令执行序列的监测方法,与现有对指令执行序列的防护体系的建立仅仅是利用判断程序执行过程中指令执行序列的特征是否为定义规范规则来进行监测相比,本发明实施例通过监测关键API的调用情况,挂起调用关键API对应的线程,根据预设指令执行序列规范判断所执行的指令执行序列是否为安全指令执行序列,若为危险指令执行序列,则输出关键API,以实现根据指令执行序列对关键API进行防护判断的目的,增大对指令执行序列进行运行的安全隐患的防护范围,减少恶意指令执行序列的遗漏,及时发现指令执行序列对应进程的漏洞,从而提高指令执行序列的监测效率。
本发明实施例提供了另一种指令执行序列的监测方法,如图3所示,所述方法包括:
201、当监测到关键API被调用时,判断调用所述关键API的线程是否为关键进程,若为关键进程,则利用hook函数挂起所述线程。
本步骤与图1所示的步骤101方法相同,在此不再赘述。
需要说明的是,本发明实施例中的全部监测点均在***的内核层实现,如所述关键API包括驱动加载、磁盘读写、创建进程、创建文件、打开文件、注册表写操作、加载模块、内存设置、DCOM本地调用,应用层所执行的行为事件是经过***关键API进行调用后转化在内核nt层,以实现对内核层中的指令执行序列的监测,如图4所示。
另外,当监测到关键API被调用时,为了针对指令执行序列进行防护监测,利用hook函数NtAlpcSendWaitReceivePort;NtRequestWaitReplyPort来挂起调用关键API所执行的线程,以便从此线程中获取对应的指令执行序列。在进行分配/修改可写内存设置的关键API监测时,分配可执行内存是通过函数VirtualAllocEx,进而调用内核函数NtAllocateVirtualMemory;修改可执行内存是通过函数VirtualProtect;进而调用内核函数NtProtectVirtualMemory,hook函数挂起调用关键API的线程后,判断出为关键进程后,进行指令执行序列的匹配判断,若匹配为白指令执行序列则挂起下一个线程,若未匹配未被指令执行序列则利用回调函数输出到应用层,如图5所示。其中,关键线程为预先设定的需要进行监测的浏览器、文本、下载等进程下的线程,本发明实施例不做具体限定。
202a、调取位于二进制文件中所述指令执行序列的执行路径。
对于本发明实施例,为了对静态的指令执行序列进行监测,当根据场景及防护需求确定为静态指令执行序列时,对于处于二进制文件中的指令执行序列,调取指令执行序列在运行时的执行路径。其中,所述二进制文件中存储有属于静态的指令执行序列,为了监测出属于静态的指令执行序列是否存在被攻击、或者被污染等安全隐患行为,调取指令执行序列的执行路径。
203a、根据所述执行路径判断所述指令执行序列是否被规范执行路径调用。
对于本发明实施例,由于静态指令执行序列为存在于二进制文件中的,对于被攻击、或被污染的安全隐患行为,会利用异常执行路径调用这些指令执行序列,因此,为了进行安全防护,需要判断这些指令执行序列是否为规范执行路径调用,从而增加防护机制的强度。
本发明实施例中,为了进一步地限定及细化,步骤203a具体可以为:判断所述执行路径是否存在于预设安全路径库中。
其中,所述预设安全路径库中预先存储有全部二进制文件中指令执行序列被调用的规范执行路径,根据预设安全路径库中存储的规范执行路径判断待监测的指令执行序列是否是安全的,具体方法为判断指令执行序列的执行路径是否与预先存储在预设安全路径库中的规范执行路径相同,本发明实施例中,规范执行路径为技术人员根据内核执行指令执行序列的安全路径进行预先存储在预设安全路径库中的,不做具体限定。
对于步骤若所述指令执行序列为危险指令执行序列,则输出所述关键API的具体细化204a、若没有被规范执行路径调用,则输出所述关键API。
对于本发明实施例,为了将被异常调用的执行指令序列再次进行监测以确定是否拦截当前执行指令执行序列的线程,当执行路径没有存在于预设安全路径库中,即没有被规范执行路径调用,输出关键API到防护层进行监测,以使根据输出返回的结果进行拦截或放行。
对于本发明实施例,与步骤202a-204a并列的步骤202b、收集正在执行的指令执行序列。
对于本发明实施例,为了对动态的指令执行序列进行监测,当根据场景及防护需求确定监测模式为动态指令执行序列监测模式时,由于动态指令执行序列为正在执行程序脚本中的每一条序列,则收集***中正在执行的指令执行序列,以便对正在执行的执行执行序列监测是否出现被攻击、或者被污染等安全隐患行为。
203b、判断所述指令执行序列所执行的脚本模块是否存在于预设恶意加载模块库中。
对于本发明实施例,当收集到动态执行的指令执行序列后,判断每个指令执行序列所执行的脚本模块是否为被恶意加载的模块,当指令执行序列所执行的脚本模块存在于预设恶意加载模块库中,则输出关键API,以使根据输出返回的结果进行拦截或放行。其中,所述预设恶意加载模块库中预先存储有全部指令执行序列恶意加载的脚本模块,恶意加载的脚本模块为技术人员根据防护需求、网络攻击经验确定的脚本模块,本发明实施例不做具体限定。
对于步骤若所述指令执行序列为危险指令执行序列,则输出所述关键API的具体细化204b、若没有存在于预设恶意加载模块库中,则输出所述关键API。
对于本发明实施例,与步骤202a-204a并列的步骤202c、收集正在执行的第一指令执行序列,且判断所述第一指令执行序列所执行的脚本模块是否存在于预设恶意加载模块库中,并调取位于二进制文件中第二指令执行序列的执行路径,根据所述执行路径判断所述第二指令执行序列是否被规范执行路径调用。
对于本发明实施例,为了即对动态的指令执行序列又对静态的指令执行序列进行安全防护,利用动态与静态指令执行序列组合方式进行监测,收集正在执行的第一指令执行序列,判断第一指令执行序列执行的脚本模块是否存在于预设恶意加载模块库中,并调取位于二进制文件中第二指令执行序列的执行路径,根据执行路径判断第二指令执行序列是否被规范执行路径调用,从而实现更为精准的指令执行序列的监测方式,提高指令执行序列的监测准确性。其中,第一指令执行序列为动态的指令执行序列,第二指令执行序列为静态的指令执行序列,第一指令执行序列与第二指令执行序列可以为相同的指令执行序列,也可以为不同的指令执行序列,本发明实施例不做具体限定。
对于步骤若所述指令执行序列为危险指令执行序列,则输出所述关键API的具体细化203c、若所述第一指令执行序列所执行的脚本模块存在于预设恶意加载模块库中,和/或所述第二指令执行序列未被规范执行路径条用,则输出所述关键API。
具体的,当动态的指令执行序列与静态的指令执行序列之中只要有一个是危险的,则需要将关键API进行输出,只有当动态指令执行序列与静态指令执行序列均为安全的,则放行关键API。
对于本发明实施例,为了进一步地限定及说明,对于指令执行序列运行于DLL模块加载防护的场景中,如图6所示:当监测到利用关键API加载DLL模块时,判断是否为关键进程,若为关键进程,则判断所述指令执行序列是否存在于预设序列匹配库中,若未存在于预设序列匹配库中,则将所述指令执行序列及DLL参数发送至应用层进行处理,以使所述应用层进行拦截或放行处理,若存在于预设序列匹配库中,则放行。
本发明实施例中,步骤204a、204b、204c并列的步骤205、若所述指令执行序列为安全指令执行序列,则放行所述关键API。
本发明提供了另一种指令执行序列的监测方法,本发明实施例通过监测关键API的调用情况,挂起调用关键API对应的线程,根据预设指令执行序列规范判断所执行的指令执行序列是否为安全指令执行序列,若为危险指令执行序列,则输出关键API,以实现根据指令执行序列对关键API进行防护判断的目的,增大对指令执行序列进行运行的安全隐患的防护范围,减少恶意指令执行序列的遗漏,及时发现指令执行序列对应进程的漏洞,从而提高指令执行序列的监测效率。
进一步的,作为对上述图1所示方法的实现,本发明实施例提供了一种指令执行序列的监测装置,如图7所示,该装置包括:挂起模块31、判断模块32、输出模块33。
挂起模块31,用于当监测到关键API被调用时,挂起调用所述关键API对应的线程;
判断模块32,用于根据预设指令执行序列规范判断所述线程中所执行的指令执行序列是否为安全指令执行序列,所述预设指令执行序列规范中包括有不同运行状态的指令执行序列对应的监测规范;
输出模块33,用于若所述指令执行序列为危险指令执行序列,则输出所述关键API
本发明提供了一种指令执行序列的监测装置,与现有对指令执行序列的防护体系的建立仅仅是利用判断程序执行过程中指令执行序列的特征是否为定义规范规则来进行监测相比,本发明实施例通过监测关键API的调用情况,挂起调用关键API对应的线程,根据预设指令执行序列规范判断所执行的指令执行序列是否为安全指令执行序列,若为危险指令执行序列,则输出关键API,以实现根据指令执行序列对关键API进行防护判断的目的,增大对指令执行序列进行运行的安全隐患的防护范围,减少恶意指令执行序列的遗漏,及时发现指令执行序列对应进程的漏洞,从而提高指令执行序列的监测效率。
进一步的,作为对上述图3所示方法的实现,本发明实施例提供了另一种指令执行序列的监测装置,如图8所示,该装置包括:挂起模块41、判断模块42、输出模块43、放行模块44。
挂起模块41,用于当监测到关键API被调用时,挂起调用所述关键API对应的线程;
判断模块42,用于根据预设指令执行序列规范判断所述线程中所执行的指令执行序列是否为安全指令执行序列,所述预设指令执行序列规范中包括有不同运行状态的指令执行序列对应的监测规范;
输出模块43,用于若所述指令执行序列为危险指令执行序列,则输出所述关键API。
进一步地,所述判断模块42包括:
调取单元4201,用于当所述监测模式确定为静态指令执行序列监测模式时,调取位于二进制文件中所述指令执行序列的执行路径;
第一判断单元4202,用于根据所述执行路径判断所述指令执行序列是否被规范执行路径调用。
进一步地,所述判断单元4202,具体用于判断所述执行路径是否存在于预设安全路径库中,所述预设安全路径库中预先存储有全部二进制文件中指令执行序列被调用的规范执行路径。
进一步地,所述判断模块42还包括:
收集单元4203,用于当所述监测模式确定为动态指令执行序列监测模式时,收集正在执行的指令执行序列;
第二判断单元4204,用于判断所述指令执行序列所执行的脚本模块是否存在于预设恶意加载模块库中。
进一步地,所述判断模块42,具体还用于收集正在执行的第一指令执行序列,且判断所述第一指令执行序列所执行的脚本模块是否存在于预设恶意加载模块库中,并调取位于二进制文件中第二指令执行序列的执行路径,根据所述执行路径判断所述第二指令执行序列是否被规范执行路径调用。
进一步地,所述挂起模块41,具体用于当监测到关键API被调用时,判断调用所述关键API的线程是否为关键进程,若为关键进程,则利用hook函数挂起所述线程。
进一步地,所述装置还包括:
放行模块44,用于若所述指令执行序列为安全指令执行序列,则放行所述关键API。
进一步地,所述关键API包括驱动加载、磁盘读写、创建进程、创建文件、打开文件、注册表写操作、加载模块、内存设置、DCOM本地调用。
本发明提供了另一种指令执行序列的监测装置,本发明实施例通过监测关键API的调用情况,挂起调用关键API对应的线程,根据预设指令执行序列规范判断所执行的指令执行序列是否为安全指令执行序列,若为危险指令执行序列,则输出关键API,以实现根据指令执行序列对关键API进行防护判断的目的,增大对指令执行序列进行运行的安全隐患的防护范围,减少恶意指令执行序列的遗漏,及时发现指令执行序列对应进程的漏洞,从而提高指令执行序列的监测效率。
根据本发明一个实施例提供了一种存储介质,所述存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的指令执行序列的监测方法。
图9示出了根据本发明一个实施例提供的一种计算机设备的结构示意图,本发明具体实施例并不对计算机设备的具体实现做限定。
如图9所示,该计算机设备可以包括:处理器(processor)502、通信接口(Communications Interface)504、存储器(memory)506、以及通信总线508。
其中:处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。
通信接口504,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器502,用于执行程序510,具体可以执行上述指令执行序列的监测方法实施例中的相关步骤。
具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
处理器502可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算机设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器506,用于存放程序510。存储器506可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序510具体可以用于使得处理器502执行以下操作:
当监测到关键API被调用时,挂起调用所述关键API对应的线程;
根据预设指令执行序列规范判断所述线程中所执行的指令执行序列是否为安全指令执行序列,所述预设指令执行序列规范中包括有不同运行状态的指令执行序列对应的监测规范;
若所述指令执行序列为危险指令执行序列,则输出所述关键API。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的资产数据的管理方法及装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (16)

1.一种指令执行序列的监测方法,其特征在于,包括:
当监测到关键API被调用时,挂起调用所述关键API对应的线程;
根据预设指令执行序列规范判断所述线程中所执行的指令执行序列是否为安全指令执行序列,所述预设指令执行序列规范中包括有不同运行状态的指令执行序列对应的监测规范;
若所述指令执行序列为危险指令执行序列,则输出所述关键API;
其中,所述不同运行状态的指令执行序列包括静态指令执行序列以及动态指令执行序列,所述预设指令执行序列规范包括动态指令执行序列监控规范、静态指令执行序列监控规范、以及结合动态指令执行序列与静态指令执行序列的监控规范;所述动态指令执行序列为基于正在执行的脚本程序中的指令执行序列,所述静态指令执行序列为基于二进制文件中的指令执行序列;
其中,当所述预设指令执行序列为结合动态指令执行序列与镜头指令执行序列的监控规范时,所述根据预设指令执行序列规范判断所述线程中所执行的指令执行序列是否为安全指令执行序列包括:
收集正在执行的第一指令执行序列,且判断所述第一指令执行序列所执行的脚本模块是否存在于预设恶意加载模块库中,并调取位于二进制文件中第二指令执行序列的执行路径,根据所述执行路径判断所述第二指令执行序列是否被规范执行路径调用。
2.根据权利要求1所述的方法,其特征在于,所述根据预设指令执行序列规范判断所述线程中所执行的指令执行序列是否为安全指令执行序列包括:
调取位于二进制文件中所述指令执行序列的执行路径;
根据所述执行路径判断所述指令执行序列是否被规范执行路径调用。
3.根据权利要求2所述的方法,其特征在于,所述根据所述执行路径判断所述指令执行序列是否被规范执行路径调用包括:
判断所述执行路径是否存在于预设安全路径库中,所述预设安全路径库中预先存储有全部二进制文件中指令执行序列被调用的规范执行路径。
4.根据权利要求1所述的方法,其特征在于,所述根据预设指令执行序列规范判断所述线程中所执行的指令执行序列是否为安全指令执行序列包括:
收集正在执行的指令执行序列;
判断所述指令执行序列所执行的脚本模块是否存在于预设恶意加载模块库中。
5.根据权利要求1所述的方法,其特征在于,所述当监测到关键API被调用时,挂起调用所述关键API对应的线程包括:
当监测到关键API被调用时,判断调用所述关键API的线程是否为关键进程,若为关键进程,则利用hook函数挂起所述线程。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
若所述指令执行序列为安全指令执行序列,则放行所述关键API。
7.根据权利要求6所述的方法,其特征在于,所述关键API包括驱动加载、磁盘读写、创建进程、创建文件、打开文件、注册表写操作、加载模块、内存设置、DCOM本地调用。
8.一种指令执行序列的监测装置,其特征在于,包括:
挂起模块,用于当监测到关键API被调用时,挂起调用所述关键API对应的线程;
判断模块,用于根据预设指令执行序列规范判断所述线程中所执行的指令执行序列是否为安全指令执行序列,所述预设指令执行序列规范中包括有不同运行状态的指令执行序列对应的监测规范;
输出模块,用于若所述指令执行序列为危险指令执行序列,则输出所述关键API;
其中,所述不同运行状态的指令执行序列包括静态指令执行序列以及动态指令执行序列,所述预设指令执行序列规范包括动态指令执行序列监控规范、静态指令执行序列监控规范、以及结合动态指令执行序列与静态指令执行序列的监控规范;所述动态指令执行序列为基于正在执行的脚本程序中的指令执行序列,所述静态指令执行序列为基于二进制文件中的指令执行序列;
其中,所述判断模块,具体还用于当所述预设指令执行序列为结合动态指令执行序列与镜头指令执行序列的监控规范时,收集正在执行的第一指令执行序列,且判断所述第一指令执行序列所执行的脚本模块是否存在于预设恶意加载模块库中,并调取位于二进制文件中第二指令执行序列的执行路径,根据所述执行路径判断所述第二指令执行序列是否被规范执行路径调用。
9.根据权利要求8所述的装置,其特征在于,所述判断模块包括:
调取单元,用于当监测模式确定为静态指令执行序列监测模式时,调取位于二进制文件中所述指令执行序列的执行路径;
第一判断单元,用于根据所述执行路径判断所述指令执行序列是否被规范执行路径调用。
10.根据权利要求9所述的装置,其特征在于,
所述判断单元,具体用于判断所述执行路径是否存在于预设安全路径库中,所述预设安全路径库中预先存储有全部二进制文件中指令执行序列被调用的规范执行路径。
11.根据权利要求10所述的装置,其特征在于,所述判断模块还包括:
收集单元,用于当所述监测模式确定为动态指令执行序列监测模式时,收集正在执行的指令执行序列;
第二判断单元,用于判断所述指令执行序列所执行的脚本模块是否存在于预设恶意加载模块库中。
12.根据权利要求8所述的装置,其特征在于,
所述挂起模块,具体用于当监测到关键API被调用时,判断调用所述关键API的线程是否为关键进程,若为关键进程,则利用hook函数挂起所述线程。
13.根据权利要求8-12任一项所述的装置,其特征在于,所述装置还包括:
放行模块,用于若所述指令执行序列为安全指令执行序列,则放行所述关键API。
14.根据权利要求13所述的装置,其特征在于,所述关键API包括驱动加载、磁盘读写、创建进程、创建文件、打开文件、注册表写操作、加载模块、内存设置、DCOM本地调用。
15.一种存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-7中任一项所述的指令执行序列的监测方法对应的操作。
16.一种计算机设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-7中任一项所述的指令执行序列的监测方法对应的操作。
CN201910755846.9A 2019-08-15 2019-08-15 指令执行序列的监测方法及装置、存储介质、计算机设备 Active CN112395593B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910755846.9A CN112395593B (zh) 2019-08-15 2019-08-15 指令执行序列的监测方法及装置、存储介质、计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910755846.9A CN112395593B (zh) 2019-08-15 2019-08-15 指令执行序列的监测方法及装置、存储介质、计算机设备

Publications (2)

Publication Number Publication Date
CN112395593A CN112395593A (zh) 2021-02-23
CN112395593B true CN112395593B (zh) 2024-03-29

Family

ID=74601792

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910755846.9A Active CN112395593B (zh) 2019-08-15 2019-08-15 指令执行序列的监测方法及装置、存储介质、计算机设备

Country Status (1)

Country Link
CN (1) CN112395593B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114491506A (zh) * 2020-11-13 2022-05-13 奇安信科技集团股份有限公司 行为控制方法、装置、电子设备及存储介质
CN114640507B (zh) * 2022-02-28 2024-03-12 天翼安全科技有限公司 一种WebShell的检测方法、装置及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102651060A (zh) * 2012-03-31 2012-08-29 北京奇虎科技有限公司 一种漏洞检测的方法和***
CN102819697A (zh) * 2011-12-26 2012-12-12 哈尔滨安天科技股份有限公司 一种基于线程反编译的多平台恶意代码检测方法和***
CN104268471A (zh) * 2014-09-10 2015-01-07 珠海市君天电子科技有限公司 一种检测面向返程的编程攻击的方法及装置
WO2016095673A1 (zh) * 2014-12-16 2016-06-23 北京奇虎科技有限公司 一种基于应用程序的行为处理方法和装置
CN106326732A (zh) * 2015-07-03 2017-01-11 阿里巴巴集团控股有限公司 一种api保护方法和装置
CN106650436A (zh) * 2016-12-29 2017-05-10 北京奇虎科技有限公司 一种基于局域网的安全检测方法和装置
CN108255585A (zh) * 2016-12-28 2018-07-06 北京奇虎科技有限公司 Sdk异常控制及应用程序运行方法、装置及其设备
CN108399332A (zh) * 2017-02-08 2018-08-14 卡巴斯基实验室股份制公司 在虚拟机中针对恶意性对文件进行分析的***和方法
CN109800571A (zh) * 2018-12-29 2019-05-24 360企业安全技术(珠海)有限公司 事件处理方法和装置、以及存储介质和电子装置
CN109829270A (zh) * 2018-12-27 2019-05-31 北京奇安信科技有限公司 应用程序防护方法及装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102819697A (zh) * 2011-12-26 2012-12-12 哈尔滨安天科技股份有限公司 一种基于线程反编译的多平台恶意代码检测方法和***
CN102651060A (zh) * 2012-03-31 2012-08-29 北京奇虎科技有限公司 一种漏洞检测的方法和***
CN104268471A (zh) * 2014-09-10 2015-01-07 珠海市君天电子科技有限公司 一种检测面向返程的编程攻击的方法及装置
WO2016095673A1 (zh) * 2014-12-16 2016-06-23 北京奇虎科技有限公司 一种基于应用程序的行为处理方法和装置
CN106326732A (zh) * 2015-07-03 2017-01-11 阿里巴巴集团控股有限公司 一种api保护方法和装置
CN108255585A (zh) * 2016-12-28 2018-07-06 北京奇虎科技有限公司 Sdk异常控制及应用程序运行方法、装置及其设备
CN106650436A (zh) * 2016-12-29 2017-05-10 北京奇虎科技有限公司 一种基于局域网的安全检测方法和装置
CN108399332A (zh) * 2017-02-08 2018-08-14 卡巴斯基实验室股份制公司 在虚拟机中针对恶意性对文件进行分析的***和方法
CN109829270A (zh) * 2018-12-27 2019-05-31 北京奇安信科技有限公司 应用程序防护方法及装置
CN109800571A (zh) * 2018-12-29 2019-05-24 360企业安全技术(珠海)有限公司 事件处理方法和装置、以及存储介质和电子装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张焕国等.《可信计算》.2011,第257-258页. *
恶意代码行为监测分析***的设计与实现;谢静;《北京交通大学》;20190115;全文 *

Also Published As

Publication number Publication date
CN112395593A (zh) 2021-02-23

Similar Documents

Publication Publication Date Title
KR101880375B1 (ko) 네트워크 활동을 보이는 실행파일들의 분리
US10691800B2 (en) System and method for detection of malicious code in the address space of processes
US8943592B1 (en) Methods of detection of software exploitation
US8645923B1 (en) Enforcing expected control flow in program execution
CN112395593B (zh) 指令执行序列的监测方法及装置、存储介质、计算机设备
CN114676424B (zh) 一种容器逃逸检测与阻断方法、装置、设备及存储介质
US11397812B2 (en) System and method for categorization of .NET applications
CN101599113A (zh) 驱动型恶意软件防御方法和装置
CN112631661B (zh) 程序安全管控方法、装置、设备及存储介质
US9787699B2 (en) Malware detection
CN111259392B (zh) 一种基于内核模块的恶意软件拦截方法及装置
CN113312623B (zh) 访问控制中的进程检测方法、装置、电子设备和存储介质
KR20110057297A (ko) 악성 봇 동적 분석 시스템 및 방법
CN113518055B (zh) 数据安全防护的处理方法及装置、存储介质、终端
CN114564720A (zh) 程序文件审核方法、装置、电子设备及存储介质
AU2017201880A1 (en) User-mode component injection techniques
CN112632534A (zh) 一种恶意行为检测方法及装置
CN112395595B (zh) 指令执行序列的监测方法及装置、存储介质、计算机设备
US8863159B2 (en) System, method and computer program product for inserting an emulation layer in association with a COM server DLL
CN116628694B (zh) 反序列化0day安全风险防御方法、装置与设备
CN112395149B (zh) 脚本行为的识别方法及装置、存储介质、计算机设备
CN115935341B (zh) 一种漏洞防御方法、***、服务器及存储介质
CN115168072A (zh) 一种用于识别基于管道进行风险操作的方法以及装置
CN117272298A (zh) 无文件攻击检测方法、装置、设备及存储介质
CN116738425A (zh) 应用程序的界面劫持攻击检测方法、装置及可读介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant