CN112257065A - 一种进程事件处理方法和装置 - Google Patents

一种进程事件处理方法和装置 Download PDF

Info

Publication number
CN112257065A
CN112257065A CN202011040016.7A CN202011040016A CN112257065A CN 112257065 A CN112257065 A CN 112257065A CN 202011040016 A CN202011040016 A CN 202011040016A CN 112257065 A CN112257065 A CN 112257065A
Authority
CN
China
Prior art keywords
event
target
process event
information
command tree
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
Application number
CN202011040016.7A
Other languages
English (en)
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.)
Wangsu Science and Technology Co Ltd
Original Assignee
Wangsu Science and Technology 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 Wangsu Science and Technology Co Ltd filed Critical Wangsu Science and Technology Co Ltd
Priority to CN202011040016.7A priority Critical patent/CN112257065A/zh
Publication of CN112257065A publication Critical patent/CN112257065A/zh
Pending legal-status Critical Current

Links

Images

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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种进程事件处理方法,所述方法包括:解析本地正在运行的各个进程事件,以获取所述各个进程事件的进程信息;判断所述各个进程事件中任意一个目标进程事件是否存在于监听端口列表或进程信息列表中,若存在,则根据所述目标进程事件的进程信息完善所述进程信息列表;基于完善后的所述进程信息列表对所述目标进程事件进行行为分析,以判断所述目标进程事件是否属于恶意事件,若属于,则建立所述目标进程事件的进程命令树。本申请提供的技术方案,可以及时发现恶意攻击事件。

Description

一种进程事件处理方法和装置
技术领域
本发明涉及互联网技术领域,特别涉及一种进程事件处理方法和装置。
背景技术
随着互联网的快速发展,网络上的恶意攻击事件日渐增长,为提高网络的安全性,人们越来越重视恶意攻击事件的分析工作。现有的分析技术,主要依靠事件审计来实现,例如通过检测文件的篡改记录来发现入侵行为,或者依靠内核hook函数对进程事件进行检测。
但是通过检测文件的篡改记录来发现入侵行为,属于事后检测,不仅无法及时发现恶意攻击事件,而且无法获取篡改入口,这就导致不能对恶意攻击事件进行完整的分析。而通过内核hook函数对进程事件进行检测,则需要重新编译内核模块,不仅使用不方便,而且性能开销高,稳定性差。
鉴于此,有必要提供一种新的进程事件处理方法和装置以解决上述不足。
发明内容
本申请的目的在于提供一种新的进程事件处理方法和装置,可以及时发现恶意攻击事件。
为实现上述目的,本申请一方面提供一种进程事件处理方法,所述方法包括:解析本地正在运行的各个进程事件,以获取所述各个进程事件的进程信息;判断所述各个进程事件中任意一个目标进程事件是否存在于监听端口列表或进程信息列表中,若存在,则根据所述目标进程事件的进程信息完善所述进程信息列表;基于完善后的所述进程信息列表对所述目标进程事件进行行为分析,以判断所述目标进程事件是否属于恶意事件,若属于,则建立所述目标进程事件的进程命令树。
为实现上述目的,本申请另一方面还提供一种进程事件处理装置,所述装置包括:进程解析模块,用于解析本地正在运行的各个进程事件,以获取所述各个进程事件的进程信息;进程筛选模块,用于判断所述各个进程事件中任意一个目标进程事件是否存在于监听端口列表或进程信息列表中,若存在,则根据所述目标进程事件的进程信息完善所述进程信息列表;行为分析模块,用于基于完善后的所述进程信息列表对所述目标进程事件进行行为分析,以判断所述目标进程事件是否属于恶意事件,若属于,则建立所述目标进程事件的进程命令树。
为实现上述目的,本申请另一方面还提供一种进程事件处理装置,所述进程事件处理装置包括存储器和处理器,所述存储器用于存储计算机程序,当所述计算机程序被所述处理器执行时,实现上述进程事件处理的方法。
由此可见,本申请提供的技术方案,一方面实时监测本地正在运行的各种进程事件,并对上述进程事件进行解析,进而获取到各个进程事件对应的进程信息,另一方面以监听端口上运行的进程事件作为关心进程,对监测到的各个进程事件进行筛选,这样既可以及时发现恶意行为,也可以减少无效进程事件的干扰。在完成进程事件的筛选工作后,本申请还可以基于进程事件的进程信息,对筛选出的进程事件进行行为分析,以判断该进程事件是否为恶意事件,从而及时发现恶意攻击行为。对于被判断为恶意攻击行为的进程事件,本申请还可以生成该进程事件的进程命令树,从而使得运维人员可以通过分析上述进程命令树,对该进程事件的整个攻击过程进行完整的分析,方便运维人员进行本地排查和溯源分析。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施方式一中进程事件处理方法的流程图;
图2是本申请实施方式一中进程事件筛选的流程图;
图3是本申请实施方式一中进程事件行为分析的流程图;
图4是本申请实施方式二中进程事件处理方法的流程图;
图5是本发明实施方式中进程事件处理装置的功能模块示意图;
图6是本发明实施方式中进程事件处理装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
随着互联网的快速发展,网络上的恶意攻击事件日渐增长,为提高网络的安全性,人们越来越重视恶意攻击事件的分析工作。在实际应用中,运维人员通常会检测文件的篡改记录来发现入侵行为,但这种检测属于事后检测,当发现入侵行为时,非法入侵者已经完成了入侵过程,并且通过检测文件的篡改记录人们无法发现篡改入口,这就导致运维人员无法对恶意攻击事件进行溯源,不能对非法入侵者的整个攻击过程进行完整的分析。在另一种场景下,还可以利用内核hook函数对进程事件进行检测,但是这种检测方式需要重新编译内核模块,对系统入侵性高,而且随着hook函数的增多,系统的性能开销也随之增大,这会影响正常业务的运行。
因此,如何对入侵行为进行实时监测与分析,以及时发现恶意攻击事件,便成为本领域亟需解决的课题。
本申请提供的技术方案可以解决上述不足。
为便于理解本申请中涉及到的进程内容,下面对其进行简要介绍。
进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。进程一般由程序、数据集合和进程控制块(Processing Control Block,PCB)三部分组成。进程控制块为结构体类型,其主要包含有进程标识符(Process Identification,PID)、进程状态、当前工作目录、文件描述符、用户id和组id等信息。
proc目录是一种文件系统,用户可以通过proc目录查看有关系统硬件及当前正在运行的进程信息。proc目录中包含多个以数字命名的子目录,这些数字表示系统当前正在运行的各个进程的进程标识符,每一个子目录中都包含有对应进程的进程信息文件。
请一并参阅图1、图2和图3,图1为本申请实施方式一中进程事件处理方法的流程图,图2是本申请实施方式一中进程事件筛选的流程图,图3为本申请实施方式一中进程事件行为分析的流程图。
S101:解析本地正在运行的各个进程事件,以获取所述各个进程事件的进程信息。
在本实施方式中,可以利用进程事件连接器在用户层与内核模块之间建立netlink连接,并构造netlink控制消息事件,以通知内核模块打开进程事件连接器报告开关,当内核模块打开进程事件连接器报告开关后,内核模块便可以获取本地所有正在运行的进程事件。当内核模块获取到本地正在运行的进程事件后,内核模块可以对上述进程事件进行解析,从而获取到各个进程事件的进程信息,具体的,内核模块可以对各个进程事件的进程控制块进行解析,以获取其中包含的进程PID、用户ID和组ID等进程信息。
当内核模块获取到各个进程事件的进程信息后,内核模块可以将获取到的进程信息封装为netlink消息。上述netlink消息包括netlink消息头、连接器消息头、进程事件或控制操作指令,进程事件包括控制指令的应答、fork事件、exec事件、Uid事件、exit事件、Gid事件等。
在本实施方式中,当内核模块生成netlink消息后,便可以将上述netlink消息发送至用户层,用户层接收netlink消息后,可以对接收到的netlink消息进行解析,并根据解析结果读取各个进程事件对应的/proc/pid子目录,并最终获取各个进程的进程信息,如此,无需对内核模块进行改造,用户层便可以通过进程事件连接器获取到本地正在运行的各个进程事件,并最终解析出上述进程事件的进程信息。
在实际应用中,对于fork事件,用户层可以输出父进程和线程的ID以及子进程和线程的ID;对于exec事件,用户层可以输出执行exec调用的进程和线程的ID;对于Uid事件,用户层可以输出制造该事件的进程和线程的ID、旧的用户ID以及新的用户ID;对于Gid事件,用户层可以输出制造该事件的进程和线程的ID,旧的组ID以及新的组ID;对于exit事件,用户层可以输出结束运行的进程和线程的ID以及退出码。
同时,通过对各个进程事件对应的子目录进行解析,用户层还可以获取到各个进程事件对应的cmdline(进程启动参数)、exe(进程名)、sessionID(进程会话ID)、PID(进程标识符)、cwd(进程工作目录)、启动时间戳、fd(文件描述符)等进程信息。
在一个实施方式中,在解析本地正在运行的各个进程事件之前,还可以提前设置关心进程,以减少无效进程事件的干扰。设置关心进程可以通过以下方式实现:
首先,查询本地监听端口,以获取监听端口运行的进程事件;
然后,根据进程事件的进程标识符和进程名称建立监听端口列表和进程信息列表。
在实际应用中,大部分恶意攻击事件是通过监听端口进行非法入侵的,因此可以将监听端口上运行的进程事件设置为关心进程。具体的,可以通过网络状态工具Netstat或者ss等查询本地已开启的所有监听端口,进而获取到各个监听端口上运行的进程事件,然后对获取到的进程事件进行解析,以获取上述进程事件的进程标识符和进程名称。进一步的,还可以根据上述进程标识符和进程名称建立监听端口列表和进程信息列表,从而将上述进程标识符和进程名称储存在监听端口列表和进程信息列表中。
需要特别指出的是,监听端口列表仅用于储存各个监听端口上运行的进程事件,进程信息列表既用于储存各个监听端口上运行的进程事件,也用于储存与监听端口上运行的进程事件相关联的其它进程事件,例如监听端口上运行的某一个进程事件的子进程可以被储存于进程信息列表中。在初始阶段,监听端口列表和进程信息列表中储存的进程事件内容是相同的,而随着用户层不断对各个进程事件进行解析,当用户层发现某一个进程事件与监听端口上运行的进程事件相关联时,例如某一个进程事件是监听端口上运行的进程事件的子进程,但该进程事件并不在监听端口列表中,那么用户层可以在进程信息列表中生成与该进程事件相对应的条目,并将该进程事件的进程标识符和进程名称存储于上述条目下。随着时间的推移,大量与监听端口上运行的进程事件存在关联的进程事件将被储存在进程信息列表中,进程信息列表中储存的进程事件将多于监听端口列表中储存的进程事件。
S102:判断所述各个进程事件中任意一个目标进程事件是否存在于监听端口列表或进程信息列表中,若存在,则根据所述目标进程事件的进程信息完善所述进程信息列表。
在本实施方式中,当用户层获取到本地正在运行的各个进程事件的进程信息后,针对上述各个进程事件中的任意一个进程事件(即目标进程事件),用户层可以将解析得到的目标进程事件的进程标识符,与监听端口列表或者进程信息列表中储存的信息进行对比,从而判断目标进程事件的进程标识符是否存在于监听端口列表或者进程信息列表中。
如果监听端口列表或者进程信息列表中存在目标进程事件的进程标识符,则说明目标进程事件存在于监听端口列表或者进程信息列表中,目标进程事件可能存在恶意攻击风险,因此用户层可以将从/proc/pid文件中解析得到的目标进程事件的进程信息,补充在进程信息列表中目标进程事件对应的条目下,从而完善进程信息列表,以方便后继对目标进程事件进行行为分析。进一步的,用户层还可以建立威胁分析队列,并将目标进程事件放入上述威胁分析队列中,以等待用户层对其进行行为分析。
如果监听端口列表或者进程信息列表中不存在目标进程事件的进程标识符,则说明目标进程事件不存在于监听端口列表或者进程信息列表中,目标进程事件不存在恶意攻击风险,因此用户层可以丢弃上述目标进程事件,而对下一个进程事件进行处理。
需要特别指出的是,用户层在判断目标进程事件的进程标识符是否存在于监听端口列表或者进程信息列表中时,可以首先根据监听端口列表进行第一次筛选,然后根据进程信息列表进行第二次筛选。由于进程事件的发生是连续的,因此仅通过监听端口列表判断是否需要将某一个进程事件的进程信息补充入进程信息列表,可能存在漏选的情况。例如,假设进程事件A存在于监听端口列表中,而进程事件B是进程事件A的子进程,那么进程事件B将被添加在进程信息列表中。如果进程事件B发生exec事件,从而产生进程事件C,由于进程事件B并不存在于监听端口列表中,因此,仅通过监听端口列表进行筛选,用户层将判断进程事件C与进程事件A无关联,进程事件C无需添加入进程信息列表中,这就使得用户层对进程事件C形成了漏选。
为避免出现漏选情况,用户层在根据监听端口列表进行第一次筛选后,还需要结合进程信息列表进行第二次筛选。以前文举例进行说明,由于进程信息列表中存在进程事件B,而进程事件C是进程事件B的exec进程,因此用户层在结合进程信息列表进行第二次筛选时,将判断进程事件C与进程事件B存在关联,进程事件C需要添加入进程信息列表中,这样用户层便可以针对进程事件A一直追踪下去,进而获得进程事件A的完整工作流程。
需要特别指出的是,进程信息列表中各个进程事件的排列顺序,以用户层接收到各个进程事件对应的netlink消息的时间为基准。举例说明,假设用户层接收到进程事件A对应的netlink消息的时间为15:21:02,接收到进程事件B对应的netlink消息的时间为15:21:04,那么进程信息列表中进程事件A将排列在进程事件B之前,本申请将进程事件A定义为进程事件B的在前进程事件,将进程事件B定义为进程事件A的在后进程事件。
在一个实施方式中,为避免因进程信息列表体积过大,导致占用内存太多,在实际应用中,可以对进程信息列表的容量进行限制。具体的,可以对进程信息列表设置容量上限,例如将进程信息列表容量上限设置为4000条,假设进程信息列表中存储的进程事件的数量已经达到4000条,此时用户层判断进程事件C也需要添加入进程信息列表,那么用户层可以将进程信息列表中排列在首位的进程事件删除,再将进程事件C添加在进程信息列表的末位。针对后继需要添加入进程信息列表的进程事件,用户层可以重复上述操作,这样进程信息列表的体积可以控制在一个合适的水平,而且进程信息列表中始终存储有最新的进程事件。
S103:基于完善后的所述进程信息列表对所述目标进程事件进行行为分析,以判断所述目标进程事件是否属于恶意事件,若属于,则建立所述目标进程事件的进程命令树。
在本实施方式中,当用户层将目标进程事件的进程信息,补充在进程信息列表中目标进程事件对应的条目下后,用户层可以根据完善后的进程信息列表对目标进程事件进行行为分析。具体的,用户层可以将目标进程事件从威胁分析队列中取出,并根据目标进程事件的进程树信息、文件描述符信息、网络信息,以及进程信息列表中目标进程事件的在前进程事件的进程信息、目标进程事件的在后进程事件的进程信息,对目标进程事件依次进行webshell分析、反弹shell分析和远程命令执行分析。
在实际应用中,用户层可以查询进程信息列表中的父子进程关系,从而获得目标进程事件对应的进程间关系(即进程树信息)。在对目标进程事件进行webshell分析时,用户层可以结合本地运行的web进程的web工作路径、目标进程事件的在前进程事件和在后进程事件的行为等信息进行综合分析和特征提取,从而判断目标进程事件的特征是否符合webshell行为;在对目标进程事件进行反弹shell分析时,用户层可以结合目标进程事件的在前进程事件和在后进程事件的行为、目标进程事件的fd网络连接等信息进行综合分析和特征提取,从而判断目标进程事件的特征是否符合设定的反弹shell行为;在对目标进程事件进行远程命令执行(RCE,remote code execution)分析时,用户层可以结合目标进程事件的父子进程变化、目标进程事件的fd网络连接信息、以及目标进程事件的在前进程事件和在后进程事件进行综合分析和特征提取,从而判断目标进程事件的特征是否符合远程命令执行行为。
如果上述目标进程事件符合威胁行为特征,则说明目标进程事件属于恶意事件,用户层可以建立以目标进程事件的进程标识符为根节点的进程命令树;如果上述目标进程事件不符合威胁行为特征,则说明目标进程事件不属于恶意事件,用户层可以丢弃上述目标进程事件。进一步的,当用户层判断目标进程事件属于恶意事件后,用户层还可以建立待告警队列,并将目标进程事件放入上述待告警队列中,以等待用户层判断是否针对目标进程事件发送告警消息。
需要特别指出的是,恶意事件进程威胁特征判断逻辑可以通过对历史上发生的恶意事件进行进程分析获得。
请参阅图4,为本申请实施方式二中进程事件处理方法的流程图。
在实际应用中,当用户层将目标进程事件放入待告警队列后,用户层可以追踪目标进程事件的后继进程事件,对目标进程事件的进程命令树进行拼接,进而获得目标进程事件的完整工作流程。
在一个实施方式中,用户层可以将目标进程事件从待告警队列中取出,并通过进程事件连接器获取目标进程事件之后发生的各个进程事件,然后对获取到的各个进程事件中的任意一个进程事件(即对象进程事件)进行分析,以判断上述对象进程事件是否是目标进程事件的子进程,如果上述对象进程事件是目标进程事件的子进程,用户层可以将对象进程事件的进程标识符添加在目标进程事件的进程命令树中,以对进程命令树进行拼接;如果上述对象进程事件不是目标进程事件的子进程,用户层可以丢弃上述对象进程事件,而对下一个进程事件进行处理。
在一个实施方式中,如果对象进程事件是目标进程事件的子进程,为获得目标进程事件的完整工作流程,用户层可以进一步判断对象进程事件是否存在子进程。具体的,用户层可以解析上述对象进程事件,并判断上述对象进程事件之后发生的进程事件是否为对象进程事件的子进程(即fork事件)或者exec事件。如果对象进程事件存在子进程,用户层可以将对象进程事件的子进程拼接入上述进程命令树。如果用户层发现与目标进程事件相关联的进程事件全部结束,例如发现exit事件,那么用户层可以停止上述进程命令树的拼接,并以最终拼接得到的进程命令树(即目标进程命令树)作为目标进程事件的完整工作流程。
在一个实施方式中,为避免进程命令树体积过大,用户层可以对进程命令树的拼接过程进行限制。具体的,用户层可以设置拼接阈值,上述拼接阈值包括但不限于拼接时长和拼接级数,在对进程命令树进行拼接时,用户层可以判断进程命令树的拼接是否达到上述拼接阈值,如果进程命令树的拼接已经达到拼接阈值,用户层可以停止上述进程命令树的拼接,以生成目标进程命令树。例如,用户层可以设置拼接时长为2s、拼接级数为20级,那么用户层将只对目标进程事件之后2s内发生的进程事件进行分析,以判断上述2s内发生的各个进程事件是否为目标进程事件的子进程,或者上述2s内发生的各个进程事件是否存在子进程,如果进程命令树的级数达到20级,用户层也可以停止拼接过程。
需要指出的是,对于目标进程事件而言,其后续进程事件属于尚未发生的进程事件,因此在拼接进程命令树时需要等待后续进程事件的发生,在某些情况下,例如某一个进程事件迟迟没有结束,并且它的拼接过程没有达到拼接阈值,那么进程命令树的拼接过程将无限等待下去。在另一种情况下,如果某一个进程事件在很短时间内发生很多子进程事件,则会造成上报告警的时候信息过长,无法控制。为避免出现上述情况,用户层在设置拼接阈值时,需要同时设置拼接时长和拼接级数,用户层以首先达到的阈值为标准判断是否停止进程命令树的拼接。
在一个实施方式中,用户层在对目标进程事件之后发生的各个进程事件进行处理时,可以根据用户层接收到各个进程事件对应的netlink消息的时间,按照接收顺序依次对各个进程事件进行处理。用户层在向进程命令树中添加各个进程事件的进程标识符时,各个进程事件的进程标识符在进程命令树中的关系应符合各个进程事件的进程树信息,例如,假设目标进程事件为exec事件,目标进程事件的进程标识符为216,后继发生进程事件B为fork事件,并且进程事件B的父进程是目标进程事件,进程事件B的进程标识符为235,则可以将235拼接在216之后,接着发生进程事件C为exec事件,进程事件C的进程标识符为242,则242需要拼接在216之后,继续发生进程事件D,并且进程事件D的父进程是进程事件B,进程事件D的进程标识符为246,则246需要拼接在235之后。通过对目标进程事件之后发生的各个进程事件进行逐一匹配,并重复上述拼接操作,用户层最终可以得到以目标进程事件为根节点,以各个与目标进程事件相关联的进程事件为子节点的树状结构(即目标进程命令树)。
在一个实施方式中,为避免用户层在根据威胁特征逻辑判断目标进程事件是否属于恶意事件时出现误判,用户层还可以根据进程白名单对目标进程事件进行筛选。具体的,当用户层生成目标进程命令树之后,用户层可以将目标进程命令树与本地储存的进程白名单进行比对,以判断目标进程命令树是否存在于进程白名单中,如果目标进程命令树存在于进程白名单中,则说明目标进程事件不属于恶意事件,用户层可以丢弃上述目标进程命令树,不对目标进程事件进行预警;如果目标进程命令树不存在于进程白名单中,则说明目标进程事件属于恶意事件,用户层可以在本地保存上述目标进程命令树,并基于上述目标进程命令树生成目标告警信息,该目标告警信息与目标进程命令树相绑定,通过目标告警信息,运维人员可以查询到目标进程事件和目标进程命令树,以对目标进程事件的完整工作流程进行分析。需要特别指出的是,进程白名单可以通过对历史上发生的误判进行分析获得。
在一个实施方式中,当用户层生成目标告警信息之后,为避免相同的告警信息重复发送,用户层可以将目标告警信息放入缓存队列,并判断上述目标告警信息的发送次数是否小于规定值,如果目标告警信息的发送次数小于上述规定值,用户层可以以邮件、短信等方式向运维人员发送目标告警信息,从而使得运维人员可以对恶意事件及时进行处理;如果目标告警信息的发送次数大于或者等于上述规定值,则说明用户层已经向运维人员发送过上述目标告警信息,为避免重复发送目标告警信息,用户层可以不向运维人员发送此次生成的目标告警信息,而是丢弃上述目标告警信息。
需要特别指出的是,为保证进程信息的获取和消费效率,上述进程事件的处理过程可以采用双队列异步处理方式,并且对使用的内存资源进行重复利用和回收,系统无需重复开辟内存变量。以用户层获取本地正在运行的进程事件为例进行说明,系统可以建立队列A和队列B,用户层可以首先从队列B中获取已开辟的内存变量,然后使用netlink方式从内核连接器获取进程事件,并将其储存在上述已开辟的内存变量中,之后用户层可以将获取到的进程事件变量放入队列A中,以对进程事件进行处理,当进程事件解析完成后,可以将内存变量重新放入队列B中回收,从而实现内存资源的重复利用。
需要特别指出的是,针对实际应用中的容器进程,由于容器进程接收到请求的路径,一般是通过宿主机的docker-proxy进程接收请求,然后再转发到真实的容器进程,这就使得通过网络状态工具获取到的是docker-proxy进程的监听端口,系统无法直接获取到真实的容器进程,因此可以通过映射代理端口,在docker-proxy进程和真实的容器进程之间建立映射关系,以获取真实的容器进程,从而达到对真实的容器进程的入侵检测。
请参阅图5,本申请还提供一种进程事件处理装置,所述装置包括:
进程解析模块,用于解析本地正在运行的各个进程事件,以获取所述各个进程事件的进程信息;
进程筛选模块,用于判断所述各个进程事件中任意一个目标进程事件是否存在于监听端口列表或进程信息列表中,若存在,则根据所述目标进程事件的进程信息完善所述进程信息列表;
行为分析模块,用于基于完善后的所述进程信息列表对所述目标进程事件进行行为分析,以判断所述目标进程事件是否属于恶意事件,若属于,则建立所述目标进程事件的进程命令树。
在一个实施方式中,所述装置还包括:
关心进程获取模块,用于查询本地监听端口,以获取所述监听端口运行的进程事件,并根据所述进程事件的进程标识符和进程名称建立所述监听端口列表和所述进程信息列表。
在一个实施方式中,基于完善后的所述进程信息列表对所述目标进程事件进行行为分析包括:
根据所述目标进程事件的进程树信息、文件描述符信息、网络信息、在前进程事件和在后进程事件,对所述目标进程事件进行webshell分析、反弹shell分析和远程命令执行分析。
在一个实施方式中,所述装置还包括:
命令树拼接模块,用于获取所述目标进程事件之后发生的各个进程事件,并判断所述各个进程事件中任意一个对象进程事件是否是所述目标进程事件的子进程,若所述对象进程事件是所述目标进程事件的子进程,则将所述对象进程事件拼接入所述进程命令树。
在一个实施方式中,所述命令树拼接模块,还用于解析所述对象进程事件,以判断所述对象进程事件是否存在子进程,若所述对象进程事件存在子进程,则将所述对象进程事件的子进程拼接入所述进程命令树。
在一个实施方式中,所述命令树拼接模块,还用于判断所述进程命令树的拼接是否达到拼接阈值,若达到所述拼接阈值,则停止所述进程命令树的拼接,以生成目标进程命令树。
在一个实施方式中,所述装置还包括:
告警模块,用于判断所述目标进程命令树是否存在于进程白名单中,若不存在,则保存所述目标进程命令树,并基于所述目标进程命令树生成目标告警信息,以及判断所述目标告警信息的发送次数是否小于规定值,若小于所述规定值,则发送所述目标告警信息。
请参阅图6,本申请还提供一种进程事件处理装置,所述进程事件处理装置包括存储器和处理器,所述存储器用于存储计算机程序,当所述计算机程序被所述处理器执行时,可以实现如上述的进程事件处理方法。具体地,在硬件层面,该进程事件处理装置可以包括处理器、内部总线和存储器。所述存储器可以包括内存以及非易失性存储器。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行。本领域普通技术人员可以理解,图6所示的结构仅为示意,其并不对上述进程事件处理装置的结构造成限定。例如,所述进程事件处理装置还可包括比图6中所示更多或者更少的组件,例如还可以包括其他的处理硬件,如GPU(Graphics Processing Unit,图像处理器),或者对外通信端口等。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等。
本实施方式中,所述的处理器可以包括中央处理器(CPU)或图形处理器(GPU),当然也可以包括其他的具有逻辑处理能力的单片机、逻辑门电路、集成电路等,或其适当组合。本实施方式所述的存储器可以是用于保存信息的记忆设备。在数字系统中,能保存二进制数据的设备可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也可以为存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也可以叫存储器等。实现的时候,该存储器也可以采用云存储器的方式实现,具体实现方式,本说明书不做限定。
需要说明的是,本说明书中的进程事件处理装置,具体的实现方式可以参照方法实施方式的描述,在此不作一一赘述。
由此可见,本申请提供的技术方案,一方面实时监测本地正在运行的各种进程事件,并对上述进程事件进行解析,进而获取到各个进程事件对应的进程信息,另一方面以监听端口上运行的进程事件作为关心进程,对监测到的各个进程事件进行筛选,这样既可以及时发现恶意行为,也可以减少无效进程事件的干扰。在完成进程事件的筛选工作后,本申请还可以基于进程事件的进程信息,对筛选出的进程事件进行行为分析,以判断该进程事件是否为恶意事件,从而及时发现恶意攻击行为。对于被判断为恶意攻击行为的进程事件,本申请还可以生成该进程事件的进程命令树,从而使得运维人员可以通过分析上述进程命令树,对该进程事件的整个攻击过程进行完整的分析,方便运维人员进行本地排查和溯源分析。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种进程事件处理方法,其特征在于,所述方法包括:
解析本地正在运行的各个进程事件,以获取所述各个进程事件的进程信息;
判断所述各个进程事件中任意一个目标进程事件是否存在于监听端口列表或进程信息列表中,若存在,则根据所述目标进程事件的进程信息完善所述进程信息列表;
基于完善后的所述进程信息列表对所述目标进程事件进行行为分析,以判断所述目标进程事件是否属于恶意事件,若属于,则建立所述目标进程事件的进程命令树。
2.根据权利要求1所述的方法,其特征在于,在解析本地正在运行的各个进程事件之前,所述方法还包括:
查询本地监听端口,以获取所述监听端口运行的进程事件;
根据所述进程事件的进程标识符和进程名称建立所述监听端口列表和所述进程信息列表。
3.根据权利要求1所述的方法,其特征在于,基于完善后的所述进程信息列表对所述目标进程事件进行行为分析包括:
根据所述目标进程事件的进程树信息、文件描述符信息、网络信息、在前进程事件和在后进程事件,对所述目标进程事件进行webshell分析、反弹shell分析和远程命令执行分析。
4.根据权利要求1所述的方法,其特征在于,在建立所述目标进程事件的进程命令树之后,所述方法还包括:
获取所述目标进程事件之后发生的各个进程事件;
判断所述各个进程事件中任意一个对象进程事件是否是所述目标进程事件的子进程,若所述对象进程事件是所述目标进程事件的子进程,则将所述对象进程事件拼接入所述进程命令树。
5.根据权利要求4所述的方法,其特征在于,将所述对象进程事件拼接入所述进程命令树之后,所述方法还包括:
解析所述对象进程事件,以判断所述对象进程事件是否存在子进程,若所述对象进程事件存在子进程,则将所述对象进程事件的子进程拼接入所述进程命令树。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
设置拼接阈值;
判断所述进程命令树的拼接是否达到所述拼接阈值,若达到所述拼接阈值,则停止所述进程命令树的拼接,以生成目标进程命令树。
7.根据权利要求6所述的方法,其特征在于,在生成目标进程命令树之后,所述方法还包括:
判断所述目标进程命令树是否存在于进程白名单中,若存在,则丢弃所述目标进程命令树;
若不存在,则保存所述目标进程命令树,并基于所述目标进程命令树生成目标告警信息。
8.根据权利要求7所述的方法,其特征在于,在生成目标告警信息之后,所述方法还包括:
判断所述目标告警信息的发送次数是否小于规定值,若小于所述规定值,则发送所述目标告警信息;
若大于或者等于所述规定值,则丢弃所述目标告警信息。
9.一种进程事件处理装置,其特征在于,所述装置包括:
进程解析模块,用于解析本地正在运行的各个进程事件,以获取所述各个进程事件的进程信息;
进程筛选模块,用于判断所述各个进程事件中任意一个目标进程事件是否存在于监听端口列表或进程信息列表中,若存在,则根据所述目标进程事件的进程信息完善所述进程信息列表;
行为分析模块,用于基于完善后的所述进程信息列表对所述目标进程事件进行行为分析,以判断所述目标进程事件是否属于恶意事件,若属于,则建立所述目标进程事件的进程命令树。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
命令树拼接模块,用于获取所述目标进程事件之后发生的各个进程事件,并判断所述各个进程事件中任意一个对象进程事件是否是所述目标进程事件的子进程,若所述对象进程事件是所述目标进程事件的子进程,则将所述对象进程事件拼接入所述进程命令树。
11.根据权利要求10所述的装置,其特征在于,
所述命令树拼接模块,还用于解析所述对象进程事件,以判断所述对象进程事件是否存在子进程,若所述对象进程事件存在子进程,则将所述对象进程事件的子进程拼接入所述进程命令树。
12.一种进程事件处理装置,其特征在于,所述进程事件处理装置包括存储器和处理器,所述存储器用于存储计算机程序,当所述计算机程序被所述处理器执行时,实现如权利要求1至8中任一权利要求所述的方法。
CN202011040016.7A 2020-09-28 2020-09-28 一种进程事件处理方法和装置 Pending CN112257065A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011040016.7A CN112257065A (zh) 2020-09-28 2020-09-28 一种进程事件处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011040016.7A CN112257065A (zh) 2020-09-28 2020-09-28 一种进程事件处理方法和装置

Publications (1)

Publication Number Publication Date
CN112257065A true CN112257065A (zh) 2021-01-22

Family

ID=74234663

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011040016.7A Pending CN112257065A (zh) 2020-09-28 2020-09-28 一种进程事件处理方法和装置

Country Status (1)

Country Link
CN (1) CN112257065A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113315775A (zh) * 2021-06-01 2021-08-27 深信服科技股份有限公司 恶意事件的定位方法、系统、存储介质和终端
CN113515743A (zh) * 2021-03-23 2021-10-19 杭州安恒信息技术股份有限公司 反弹shell进程调用链的识别方法、装置和电子装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101944167A (zh) * 2010-09-29 2011-01-12 中国科学院计算技术研究所 识别恶意程序的方法及系统
KR101431192B1 (ko) * 2013-03-28 2014-08-19 한신대학교 산학협력단 모바일 단말의 루팅 공격 이벤트 검출 방법
CN106650436A (zh) * 2016-12-29 2017-05-10 北京奇虎科技有限公司 一种基于局域网的安全检测方法和装置
CN106960154A (zh) * 2017-03-30 2017-07-18 兴华永恒(北京)科技有限责任公司 一种基于决策树模型的恶意程序动态识别方法
CN110414236A (zh) * 2019-07-26 2019-11-05 北京神州绿盟信息安全科技股份有限公司 一种恶意进程的检测方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101944167A (zh) * 2010-09-29 2011-01-12 中国科学院计算技术研究所 识别恶意程序的方法及系统
KR101431192B1 (ko) * 2013-03-28 2014-08-19 한신대학교 산학협력단 모바일 단말의 루팅 공격 이벤트 검출 방법
CN106650436A (zh) * 2016-12-29 2017-05-10 北京奇虎科技有限公司 一种基于局域网的安全检测方法和装置
CN106960154A (zh) * 2017-03-30 2017-07-18 兴华永恒(北京)科技有限责任公司 一种基于决策树模型的恶意程序动态识别方法
CN110414236A (zh) * 2019-07-26 2019-11-05 北京神州绿盟信息安全科技股份有限公司 一种恶意进程的检测方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113515743A (zh) * 2021-03-23 2021-10-19 杭州安恒信息技术股份有限公司 反弹shell进程调用链的识别方法、装置和电子装置
CN113515743B (zh) * 2021-03-23 2024-03-19 杭州安恒信息技术股份有限公司 反弹shell进程调用链的识别方法、装置和电子装置
CN113315775A (zh) * 2021-06-01 2021-08-27 深信服科技股份有限公司 恶意事件的定位方法、系统、存储介质和终端

Similar Documents

Publication Publication Date Title
CN107135093B (zh) 一种基于有限自动机的物联网入侵检测方法及检测系统
US7636919B2 (en) User-centric policy creation and enforcement to manage visually notified state changes of disparate applications
CN110287163B (zh) 安全日志采集解析方法、装置、设备及介质
CN101997925A (zh) 具有预警功能的服务器监控方法及其系统
CN116107846B (zh) 一种基于EBPF的Linux系统事件监控方法及装置
CN112257065A (zh) 一种进程事件处理方法和装置
CN114880159B (zh) 数据处理方法、装置、设备及存储介质
CN114465741B (zh) 一种异常检测方法、装置、计算机设备及存储介质
CN108462598A (zh) 一种日志生成方法、日志分析方法及装置
CN114528457A (zh) Web指纹检测方法及相关设备
CN115186274A (zh) 基于iast的安全测试方法及装置
CN108111328B (zh) 一种异常处理方法及装置
CN109189652A (zh) 一种封闭网络终端行为数据的采集方法及系统
CN112565232A (zh) 一种基于模板和流量状态的日志解析方法及系统
CN112035839A (zh) 一种竞态条件漏洞利用的检测方法及装置
CN107656849B (zh) 一种软件系统性能问题定位方法以及装置
CN113301049B (zh) 一种工控设备的审计方法、装置、设备及可读存储介质
CN115828256A (zh) 一种越权与未授权逻辑漏洞检测方法
CN112688947B (zh) 基于互联网的网络通信信息智能监测方法及系统
CN114338347A (zh) 基于Ampere平台的故障信息带外获取方法及装置
CN114547628A (zh) 漏洞检测方法及装置
CN113810386B (zh) 一种从大数据中提取用于网络安全的训练数据方法和装置
CN113282372B (zh) 数据收集集群的部署方法、装置、设备以及存储介质
CN115766278B (zh) 防火墙策略生成方法、装置、设备及存储介质
CN113672910B (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