发明内容
本申请实施例的目的在于提供一种恶意PE程序的阻断方法、检测方法及装置,通过异步检测的方法和预拦截技术,可提升恶意程序的阻断率,解决现有方法阻断效率低以及使用受限的问题。
本申请实施例提供了一种恶意PE程序的阻断方法,应用于报文处理单元,所述方法包括:
对当前报文进行解析,以识别文件类型;
若为PE文件,则提取文件头,并通过消息队列发送至检测单元进行检测;
根据预设的所述检测单元的响应超时时间和检测完成情况判断是否丢弃报文。
在上述实现过程中,通过异步检测方法将耗时较长的机器学习检测从数据面报文处理流程中移出,使得AI技术在串接网络中的应用成为可能,并且实现了实时阻断并根据预设的所述检测单元的响应超时时间和检测完成情况进行综合判断实现预拦截,提高了阻断成功率,从而解决了现有方法阻断效率低以及使用受限的问题。
进一步地,所述对当前报文进行解析,以识别文件类型,包括:
对当前报文进行解码、流重组和应用层解析,以将HTTP、FTP、SAMBA、NFS、邮件协议中的PE文件提取出来。
在上述实现过程中,可应用于HTTP、FTP、SAMBA、NFS、邮件协议,解决了现有方法只能用于HTTP及FTP协议的问题。
进一步地,所述方法还包括:
从共享内存获取检测单元记录的检测结果。
在上述实现过程中,通过共享内存同步检测结果,以便于报文处理单元实时获取检测结果。
进一步地,所述根据预设的所述检测单元的响应超时时间和检测完成情况判断是否丢弃报文,包括:
若未到响应超时时间且检测已完成,且检测结果为恶意,则对所述报文进行阻断;
若未到响应超时时间且检测未完成,则丢弃当前报文;
若到响应超时时间且检测未完成,则对所述当前报文放行,直到检测完成,再根据检测结果进行处置。
在上述实现过程中,检测所需时间为毫秒级,因此在获得PE检测结果前,丢弃当前报文以提升阻断成功率,由于TCP的重传机制,毫秒级延迟对应用影响较小。
本申请实施例还提供一种恶意PE程序的检测方法,应用于检测单元,所述方法包括:
监听消息队列,以获得待检测的PE文件头;
对所述PE文件头利用预设的机器学习检测模型进行检测,以获得检测结果;
将所述检测结果记录至共享内存,以供报文处理单元获取。
在上述实现过程中,通过检测单元实现对PE文件的异步检测,将耗时较长的机器学习检测从数据面报文处理流程中移出,使得AI技术在串接网络中的应用成为可能;通过共享内存进行结果同步,报文处理单元可快速根据结果进行阻断。
本申请实施例还提供一种恶意PE程序的阻断装置,所述装置包括:
解析模块,用于对当前报文进行解析,以识别文件类型;
提取模块,用于若为PE文件,则提取文件头,并通过消息队列发送至检测单元进行检测;
处理模块,用于根据预设的所述检测单元的响应超时时间和检测完成情况判断是否丢弃报文。
在上述实现过程中,通过异步检测方法将耗时较长的机器学习检测从数据面报文处理流程中移出,使得AI技术在串接网络中的应用成为可能,并且实现了实时阻断并根据预设的所述检测单元的响应超时时间和检测完成情况进行综合判断,提高了阻断成功率。
进一步地,所述处理模块包括:
阻断模块,用于若未到响应超时时间且检测已完成,且检测结果为恶意,则对所述报文进行阻断;
丢弃模块,用于若未到响应超时时间且检测未完成,则丢弃当前报文;
放行模块,用于若到响应超时时间且检测未完成,则对所述当前报文放行,直到检测完成,再根据检测结果进行处置。
在上述实现过程中,检测所需时间为毫秒级,因此在获得PE检测结果前,丢弃当前报文以提升阻断成功率,由于TCP的重传机制,毫秒级延迟对应用影响较小。
本申请实施例还提供一种恶意PE程序的检测装置,所述装置包括:
监听模块,用于监听消息队列,以获得待检测的PE文件;
检测模块,用于对所述PE文件利用预设的机器学习检测模型进行检测,以获得检测结果;
记录模块,用于将所述检测结果记录至共享内存,以供报文处理单元获取。
在上述实现过程中,通过检测单元实现对PE文件的异步检测,将耗时较长的机器学习检测从数据面报文处理流程中移出,使得AI技术在串接网络中的应用成为可能;通过共享内存进行结果同步,报文处理单元可快速根据结果进行阻断。
本申请实施例还提供一种电子设备,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行上述中任一项所述的恶意PE程序的阻断方法。
本申请实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述中任一项所述的恶意PE程序的阻断方法。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
实施例1
请参看图1,图1为本申请实施例提供的一种恶意PE程序的阻断方法的流程图。该方法可实现在串接环境下的未知恶意的PE程序的阻断。
现有技术中,如图2所示,为利用伪装传播病毒的阻断方法流程图。通过文件格式化存储和网络文件传输的特点,通过捕获同一连接的双向网络流量,分别提取客户端向服务器发送请求中的文件拓展名,以及服务器向客户端应答数据的文件头内容;对比两者的文件类型是否匹配。如匹配,认为正常,否则认为异常,这样可以阻断利用伪装传播病毒的途径。具体地,分析已知文件类型的样本文件,提取各种文件类型的文件头特征,建立文件头特征和文件拓展名之间的对应关系,捕获网络中的数据包,并进行协议解码,分离出HTTP与FTP报文,提取HTTP协议头URI字段中的文件名或FTP stor或retr命令携带的文件名,提取HTTP响应或FTP响应中的文件头,识别文件类型并找到对应的拓展名,比较提取到的文件扩展名是否一致,如果不一致则报告未知威胁。
该现有方法仅应用于HTTP与FTP协议,并且仅对比请求文件拓展名和真实文件拓展名,准确性难以保证,偏向于文件伪装(逃逸),报告未知威胁后直接阻断存在一定的风险,基于该现有方法存在的问题,本申请重点在于解决未知恶意PE程序阻断难的问题,以及解决现有技术只能用于HTTP及FTP协议的问题,同时又采用报文预拦截方法,可提升未知恶意程序阻断率。
具体地,本申请所述方法主要由报文处理和检测两个单元实现。整体上,采用异步检测方式,将耗时较长的检测流程从报文处理单元移动到检测单元,解决了AI检测恶意程序无法在数据面报文处理流程中使用的问题。报文处理单元,在超时时间内若检测未完成,由报文处理单元丢弃该连接相关报文。在检测单元,通过共享内存同步机制,检测单元将检测结果写到共享内存,报文处理单元可以实时获取。在报文处理单元端,该方法具体包括以下步骤:
步骤S100:对当前报文进行解析,以识别文件类型;
如图3所示,为报文处理流程图,报文处理单元进行协议解析及PE文件头提取,具体地,对当前报文进行解码、流重组和应用层解析,以将HTTP、FTP、SAMBA、NFS、邮件协议中的PE文件提取出来。在文件传输首个报文时就可以将文件类型识别出来,如果文件类型为PE文件,则将PE文件的文件头通过消息队列发送给检测单元,可用于多个协议,解决了现有方法只能用于HTTP及FTP协议的问题。
步骤S200:若为PE文件,则提取文件头,并通过消息队列发送至检测单元进行检测;
检测单元将检测结果存储到共享内存上,报文处理单元可根据共享内存中的检测结果及是否超时对报文进行处置。
步骤S300:根据预设的所述检测单元的响应超时时间和检测完成情况判断是否丢弃报文。
为保证阻断成功率,报文处理单元将待检测数据发送到检测单元后,将按照以下流程进行处理:
若未到响应超时时间且检测已完成,且检测结果为恶意,则对所述报文进行阻断;
若未到响应超时时间且检测未完成,则丢弃当前报文(可能会增加网络延迟,可配置关闭)。由于大多数恶意PE文件较小,多在kb级别,如不及时丢弃当前报文,在检测结束前文件很可能已完成传输,采用预拦截可显著提高小文件的阻断率,并且即使检测结果不是恶意文件,也不会影响用户正常业务的开展(可利用TCP的重传机制);
采用报文预拦截的方式,即在获得PE文件的检测结果前,丢弃当前报文以提升未知恶意程序阻断率,PE头机器学习检测可在毫秒级时间内检测完成。预拦截后,由于TCP的重传机制,客户端或服务器会重新发送被丢掉的当前报文,不会影响正常业务。PE恶意程序一般都比较小,这种预拦截方式可以取得很好的阻断效果。
若到响应超时时间且检测未完成,则对所述当前报文放行,直到检测完成,再根据检测结果进行处置。
这样设置的目的在于,在保证阻断率的同时能够保证业务的正常进行,使两者达到平衡。
本申请实施例还提供一种恶意PE程序的检测方法,应用于检测单元,如图4所示,为恶意PE程序的检测方法的流程图,所述方法包括:
步骤S400:监听消息队列,以获得待检测的PE文件头;
步骤S500:对所述PE文件头利用预设的机器学习检测模型进行检测,以获得检测结果;
步骤S600:将所述检测结果记录至共享内存,以供报文处理单元获取。
在检测单元端,初始化检测模型并监听消息队列的具体步骤为:检测单元主进程启动,调用cpython库初始化通过机器学习得到的检测模型,初始化用来同步检测结果的共享内存,并监听初始化后接收待检测数据的消息队列。
检测单元对接收到的PE文件头进行格式检查,如格式正确则进行检测,利用机器学习检测模型对PE文件头进行检测,以确定其是否为未知恶意PE程序,检测所需要的时间极短,一般为毫秒级,检测完成后将检测结果保存到共享内存中的指定位置,以便报文处理单元进行查看。
对于机器学习检测模型,示例地,可以采用单分类支持向量机算法,也可以是利用特征矩阵训练的机器学习分类器,对于机器学习检测模型在此不做任何限定。
该方法通过异步检测的方法实现对PE文件的检测,而检测所需的时间为毫秒级,因此可根据响应超时时间和检测完成情况共同判断并处置当前报文,从而提高未知恶意PE程序的拦截率,同时异步检测又不会影响用户的正常业务,因检测时间为毫秒级,因此,设置的响应超时时间也相对较短,不会影响用户正常的业务使用。
此外,将耗时较长的机器学习检测从数据面报文处理流程中移出,使得AI技术在串接网络中的应用成为可能;通过共享内存进行结果同步,报文处理单元可快速根据结果进行阻断,从而通过异步检测机制实现了对恶意PE程序的实时阻断。
示例地,该方法可用于入侵防御系统的检测并阻断未知恶意PE程序。将该方法与基于威胁情报的恶意程序检测技术相结合,本申请提供了一套完整的已知、未知病毒检测与阻断解决方案,具体可以包括以下步骤:
步骤S11:系统启动,底层收包模块及检测引擎模块完成初始化;
步骤S12:报文处理单元进行报文解码、建立会话并进行流重组,对有子连接的会话建立关联表,如FTP协议;
步骤S13:报文处理单元对应用层数据解码,识别文件传输行为并识别文件类型;
步骤S14:如果文件类型为文档、压缩、可执行程序,报文处理模块开始计算MD5,如文件类型为PE,则将PE文件发送给检测单元;
步骤S15:检测单元对PE头进行检测;
步骤S16:文件类型为PE,检测未完成且未到响应超时时间,报文处理单元丢弃当前处理报文;
步骤S17:文件传输完成,报文处理模块将文件MD5与威胁情报库中的MD5进行匹配,如命中则丢弃报文并发送reset。
实施例2
本申请实施例提供一种恶意PE程序的阻断装置,如图5所示,为恶意PE程序的阻断装置的结构框图,所述装置包括:
解析模块100,用于对当前报文进行解析,以识别文件类型;
具体地,报文处理单元进行协议解析及PE文件头提取,具体地,对当前报文进行解码、流重组和应用层解析,以将HTTP、FTP、SAMBA、NFS、邮件协议中的PE文件提取出来。在文件传输首个报文时就可以将文件类型识别出来,如果文件类型为PE文件,则将PE文件的文件头通过消息队列发送给检测单元,可用于多个协议,解决了现有方法只能用于HTTP及FTP协议的问题。
提取模块200,用于若为PE文件,则提取文件头,并通过消息队列发送至检测单元进行检测;
检测单元将检测结果存储到共享内存上,报文处理单元可根据共享内存中的检测结果及是否超时对报文进行处置。
处理模块300,用于根据预设的所述检测单元的响应超时时间和检测完成情况判断是否丢弃报文。
如图6所示,为另一种恶意PE程序的阻断装置的结构框图,其中,所述处理模块300包括:
阻断模块301,用于若未到响应超时时间且检测已完成,且检测结果为恶意,则对所述报文进行阻断;
丢弃模块302,用于若未到响应超时时间且检测未完成,则丢弃当前报文;
放行模块303,用于若到响应超时时间且检测未完成,则对所述当前报文放行,直到检测完成,再根据检测结果进行处置。
这样设置的目的在于,在保证阻断率的同时能够保证业务的正常进行,使两者达到平衡。
相应地,本申请实施例还提供一种恶意PE程序的检测装置,如图7所示,为恶意PE程序的检测装置的结构框图,所述装置包括:
监听模块400,用于监听消息队列,以获得待检测的PE文件;
检测模块500,用于对所述PE文件利用预设的机器学习检测模型进行检测,以获得检测结果;
记录模块600,用于将所述检测结果发送至共享内存,以供报文处理单元获取。
该装置通过异步检测方法在不影响用户正常业务的情况下,提高了未知恶意PE程序拦截率。
综上所述,通过异步检测的方法实现对PE文件的检测,而检测所需的时间为毫秒级,因此可根据响应超时时间和检测完成情况共同判断并处置当前报文,从而提高未知恶意PE程序的拦截率,同时异步检测又不会影响用户的正常业务,因检测时间为毫秒级,因此,设置的响应超时时间也相对较短,不会影响用户正常的业务使用,从而解决现有方法阻断率低以及阻断不适用于串接部署场景,从而使用受到限制的问题。
本申请实施例还提供一种电子设备,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行实施例1所述的恶意PE程序的阻断方法。
本申请实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行实施例1所述的恶意PE程序的阻断方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。