系统行为态势感知方法、系统及设备与流程

文档序号:19471323发布日期:2019-12-21 02:20阅读:542来源:国知局
本发明涉及计算机安全
技术领域
:,具体涉及系统行为态势感知方法、系统及设备。
背景技术
::态势感知是一种洞悉安全风险的能力,其覆盖感知、理解和预测三个层次。随着计算机安全重要性的凸显,态势感知开始在计算机安全
技术领域
:崭露头角。系统行为是指操作系统中各个进程/服务对于系统资源的调用,系统行为态势感知是计算机安全中一个比较新颖的细分
技术领域
:,用于对系统行为进行监控和分析。现有系统行为态势感知方法通常针对单个计算机的操作系统进行,然而根据软件的“二八定律”,一个操作系统中通常只有两成的软件是被经常使用的,并且这些软件的常用功能对系统资源的调用序列总是相同的,这就导致采集到的系统行为的数据样本不仅数据量少而且存在数据趋同的问题,无法有效地进行系统行为态势感知。技术实现要素:本发明实施例提供一种系统行为态势感知方法、系统及设备,用以解决现有系统行为态势感知中存在的数据样本数据量少且数据趋同的问题,以提高系统行为态势感知的可靠性和准确率。第一方面,本发明实施例提供一种系统行为态势感知方法,包括:通过多个数据探针获取局域网中多个计算机的系统行为数据样本,多个数据探针部署于局域网中的多个计算机内部;根据获取的系统行为数据样本,确定系统行为态势感知结果。在一种可能的实现方式中,系统行为数据样本包括向量数据和流量数据,向量数据包括调用函数名称、调用参数、被调用函数名称以及调用关系中的至少一种,流量数据包括目标地址、源地址、协议类型、操作类型以及操作数据中的至少一种;向量数据为数据探针通过挂钩方式从用户态和内核态的函数调用序列中获取;流量数据为数据探针通过过滤型驱动从网络协议栈和/或文件系统的输入输出请求包中获取。在一种可能的实现方式中,根据获取的系统行为数据样本,确定系统行为态势感知结果之前,所述方法还包括:将系统行为数据样本的数据格式转换为图数据格式。在一种可能的实现方式中,将系统行为数据样本的数据格式转换为图数据格式,包括根据如下规则对系统行为数据样本的数据格式进行转换:节点表示调用函数或者被调用函数,边表示函数调用关系,度数表示函数被调用的次数;和/或,节点表示源地址或者目标地址,边表示传输方向和协议类型。在一种可能的实现方式中,所述方法还包括:获取用户对系统行为态势感知结果的标注,标注包括拦截和放行;根据标注对系统行为态势感知结果进行校正。在一种可能的实现方式中,根据获取的系统行为数据样本,确定系统行为态势感知结果,包括:若系统行为数据样本中存在多个进程均与同一目标节点建立连接,并且向该目标节点发送同类型协议的数据包,则确定该目标节点为潜在的高级持续性威胁点。在一种可能的实现方式中,根据获取的系统行为数据样本,确定系统行为态势感知结果,包括:根据系统行为数据样本中各个调用序列以及预设的高级持续性威胁特征码,确定各个调用序列对应的计算机中存在的高级持续性威胁;和/或,根据系统行为数据样本中多个调用序列的行为和以及预设的高级持续性威胁特征码,确定局域网中存在的高级持续性威胁,行为和表示多个调用序列的共同过程。第二方面,本发明实施例提供一种系统行为态势感知系统,包括:采集模块,用于通过多个数据探针获取局域网中多个计算机的系统行为数据样本,多个数据探针部署于局域网中的多个计算机内部;处理模块,用于根据获取的系统行为数据样本,确定系统行为态势感知结果。第三方面,本发明实施例提供一种电子设备,包括:至少一个处理器和存储器;存储器存储计算机执行指令;至少一个处理器执行存储器存储的计算机执行指令,使得至少一个处理器执行如第一方面任一项所述的系统行为态势感知方法。第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现如第一方面任一项所述的系统行为态势感知方法。本发明实施例提供的系统行为态势感知方法、系统及设备,通过多个数据探针获取局域网中多个计算机的系统行为数据样本,多个数据探针部署于局域网中的多个计算机内部,根据获取的系统行为数据样本,确定系统行为态势感知结果,实现了对局域网中各计算机的系统行为的态势感知。通过分布式部署于多个计算机内部的多个数据探针,能够获取到多个计算机的系统行为数据样本,增加了样本的数量,且由于各个计算机用户使用习惯的差异,每个计算机产生的调用序列码是不一样的,从而降低了样本的趋同度,屏蔽了时间空间的差异性,提高了数据样本的可信度和可靠性,进而可以提高系统行为态势感知结果的可靠性和准确率。附图说明图1为本发明提供的系统行为态势感知方法一实施例的流程图;图2为本发明一实施例提供的获取向量数据的示意图;图3为内联钩子的挂钩原理示意图;图4为本发明一实施例提供的获取流量数据的示意图;图5为本发明一实施例提供的图数据格式的系统行为数据样本示意图;图6为本发明提供的系统行为态势感知方法又一实施例的流程图;图7为本发明提供的确定系统行为态势感知结果一实施例的示意图;图8为本发明提供的系统行为态势感知系统一实施例的结构示意图;图9为本发明提供的系统行为态势感知系统又一实施例的结构示意图;图10为本发明提供的电子设备一实施例的结构示意图。具体实施方式下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本申请所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。本发明实施例提供的方法可以应用于局域网中,所谓局域网是指在某一区域内由多台计算机互联成的计算机组,例如一个公司内或者一个校园内的多台计算机互联可以形成局域网。局域网中的多台计算机可以通过有线和/或无线的方式互联。在一个局域网环境中,各个计算机遭受高级持续性威胁(advancedpersistentthreat,简称:apt)攻击的可能性往往是等概率的,特别是蠕虫类病毒的感染具有泛在性和普遍性,一般不会只有一个计算机个体遭受攻击。同时,由于计算机使用者使用习惯和使用目的的不同,在一个局域网中不可能所有计算机都同时运行相同的软件/进程。因此,局域网中apt攻击具有如下三个特点:1)行为状态一致性:apt攻击产生的现象一般是一致的,即在受感染的软件体内的行为是相同的,例如通过相同的套接字(socket)应用程序编程接口(applicationprogramminginterface,简称:api)向远端建立连接,远端地址和端口相同,会话握手的报文相同等等。2)行为时间差异性:由于局域网中各计算机一般不会在同一时刻运行受感染的软件,因此同一时刻在一个局域网中可能只有很少的受测个体表现出异常的行为。3)寄生宿主相似性:apt攻击需要具备一定的寄生环境(漏洞),例如未采用数据执行保护(dataexecutionprevention,dep)机制的数据内存页面、造成堆栈溢出的环境等,被攻击的进程有可能是局域网中的同一进程,也有可能是具有相同漏洞的不同进程。因此,apt宿主进程具有漏洞的相同性或相似性。现有系统行为态势感知方法通常针对单个计算机的操作系统进行,例如在计算机中安装杀毒软件、入侵检测系统(intrusiondetectionsystems,简称:ids)等,其重点关注的是杀毒、漏洞扫描等,态势感知特征不明显;且由于软件的“二八定律”,系统行为数据样本不仅量少而且存在数据趋同的问题,无法有效地进行系统行为态势感知。下面将通过详细的实施例来说明本申请如何解决上述问题。图1为本发明提供的系统行为态势感知方法一实施例的流程图。如图1所示,本实施例提供的系统行为态势感知方法可以包括:s101、通过多个数据探针获取局域网中多个计算机的系统行为数据样本,多个数据探针部署于局域网中的多个计算机内部。本实施例中首先需要在局域网中分布式的部署数据探针,即对于局域网中需要进行系统行为态势感知的计算机,需要预先在其内部部署数据探针。数据探针用于获取计算机的系统行为数据样本,可以采用软件、硬件或者软硬结合的方式实现,例如可以通过在计算机中安装客户端的方式实现。本实施例中系统行为数据样本是计算机的操作系统中各个进程/服务调用系统资源的过程中产生的数据样本。s102、根据获取的系统行为数据样本,确定系统行为态势感知结果。本实施例中在获取到多个计算机的系统行为数据样本之后,便可以根据所获取的系统行为数据样本,进行系统行为态势感知,以确定系统行为态势感知结果。本实施例中的系统行为态势感知结果可以是针对单个计算机的,例如某台计算机面临apt攻击的风险,也可以是针对整个局域网或者该局域网中多个计算机的。可选的,本实施例中在确定系统行为态势感知结果之后,还可以将系统行为态势感知结果发送至相关的计算机,以使各相关的计算机能够根据该结果进行相应的处理,例如禁止风险软件的运行,删除有潜在安全隐患的文件等。若系统行为态势感知结果是针对单个计算机的,则可以根据计算机标识,如互联网协议(internetprotocol,简称:ip)地址、媒体访问控制地址(mediaaccesscontrol,简称:mac)地址等,将结果发送至具体的计算机;若系统行为态势感知结果是针对整个局域网的,则可以将该结果发送至该局域网中的所有计算机。可以理解的是,计算机在接收到系统行为态势感知结果之后,还可以通过人机交互界面向用户显示系统行为态势感知结果的相关信息,以及向用户提供操作选项,如拦截、放行等,根据用户的反馈执行后续操作。需要说明的是,本实施例提供的方法可以由局域网中的任意一台计算机执行,可以是某个用户的计算机,也可以是部署于局域网中专门用于进行系统行为态势感知的计算机。本实施例提供的系统行为态势感知方法,通过多个数据探针获取局域网中多个计算机的系统行为数据样本,多个数据探针部署于局域网中的多个计算机内部,根据获取的系统行为数据样本,确定系统行为态势感知结果,实现了对局域网中各计算机的系统行为的态势感知。通过分布式部署于多个计算机内部的多个数据探针,能够获取到多个计算机的系统行为数据样本,增加了样本的数量,且由于各个计算机用户使用习惯的差异,每个计算机产生的调用序列码是不一样的,从而降低了样本的趋同度,屏蔽了时间空间的差异性,提高了数据样本的可信度和可靠性,进而可以提高系统行为态势感知结果的可靠性和准确率。在上述实施例的基础上,为了进一步增加样本的多样性,本实施例提供的方法对于数据样本的采样方式进行进一步的改进。具体的,本实施例提供的方法中,系统行为数据样本包括向量数据和流量数据,向量数据包括调用函数名称、调用参数、被调用函数名称以及调用关系中的至少一种,流量数据包括目标地址、源地址、协议类型、操作类型以及操作数据中的至少一种;向量数据为数据探针通过挂钩方式从用户态和内核态的函数调用序列中获取;流量数据为数据探针通过过滤型驱动从网络协议栈和/或文件系统的输入输出请求包中获取。下面将采用两个具体的实施例来分别说明如何获取向量数据和流量数据。图2为本发明一实施例提供的获取向量数据的示意图。本实施例中通过挂钩hook的方式获取向量数据。如图2所示,图中上半部分表示用户态进程,下半部分表示内核态进程。图中实线部分表示软件函数原有调用序列,虚线部分表示本实施例中部署的数据探针。如图2所示,对于用户态进程,本实施例中的hook是采用shellcode方式进行的,即使用跳转字节替换的方式替换被挂钩的api入口的若干字节,以便从该入口处跳转到shellcode,在shellcode中收集api名称、参数、虚拟地址等信息,然后跳转回原来的被挂钩函数的业务逻辑继续执行。因此,本实施例中的shellcode起到了“承上启下”的跳板作用和信息采集的“窥探”作用。本实施例中shellcode具体可以采用内联钩子(inlinehook)、导入地址表(importaddresstable,简称:iat)、导出地址表(exportaddresstable,简称:eat)等方式实现。对于内核态进程,本实施例中的hook则可以采用系统服务描述符表(systemservicesdescriptortable,简称:ssdt)、中断描述符表(interruptdescriptortable,简称:idt)、输入输出请求包处理程序(input/outputrequestpackagehandler,简称:irphandler)等方式。表1对于本实施例中可以采用的挂钩对象/方式及其用途进行了说明。如表1所示,挂钩对象/方式包括:idt、ssdt、irphandler、iat、eat、全局描述符表(globaldescriptortable,简称:gdt)、特殊模块寄存器(modelspecificregister,简称:msr)、异步过程调用(asynchronousprocedurecall,简称:apc)、二进制补丁和运行时补丁。表1挂钩对象/方式用途说明idt用于中断处理例程挂钩,可以登记和监控中断服务ssdt用于系统调用例程挂钩,可以登记和监控系统调用irphandler用于驱动程序特定irp处理例程挂钩,可以登记和监控驱动服务,如tcpip驱动iat/eat导入/导出地址表挂钩,可以登记和监控静态方式导入的用户空间模块gdt这种方式可以替换操作系统全局描述符表msr登记和监控快速系统调用的专用寄存器apc采用异步过程调用的方法可以在被监控进程中引入新的模块或者创建新的线程二进制补丁更改磁盘上被监控进程的相关模块,即原位补丁运行时补丁更改内存上被监控进程的相关模块,可以通过迂回补丁实现对于内联钩子的挂钩原理采用图3进行进一步说明。图3为内联钩子的挂钩原理示意图。图3左部示出了软件函数调用序列,即指令序列1调用指令序列2、指令序列2调用指令序列3。图3右部示出了采用内联钩子时的调用序列,即使用跳转字节jmp0x12345678替换了被挂钩的指令序列1的入口,以便跳转执行旁路指令序列,在旁路指令序列中获取到所需要的向量数据之后,再跳转回原来的被挂钩的指令序列1继续执行。图4为本发明一实施例提供的获取流量数据的示意图。本实施例中采用过滤型驱动获取流量数据。图4以网络协议栈为例进行说明,如图4所示,图中最上层的winsock代表用户态的socket机制,通过辅助功能驱动(afd)可以将socket机制翻译成irp并向下层传递。本实施例中在网络协议栈中设置了高低两层接口用于注册挂钩,高层的是传输层网络传输提供者接口(tlnpi),用于过滤四层以上的数据包(此时数据包尚未传递到负责2-4层协议解析的tcpip驱动中);低层的是网络驱动接口规范(ndis),用于过滤ndis数据包(packet),这一层是接近网卡驱动的一层,用于底层防御和拦截。这两层均可以以注册的方式进行旁路挂钩,所谓旁路就是与现有协议栈驱动并存,数据会拷贝分发一份给新注册的过滤型驱动而不会影响原有的网络协议栈的输入和输出(i/o)。本实施例中通过高低两层过滤型驱动挂钩点获取流量信息,例如可以包括目标地址、源地址、报文类型等。需要说明的是,本实施例仅以两层接口为例进行说明,在实际运行中还可以设置更多或者更少接口。除了如图4所示的网络协议栈驱动框架外,文件系统也存在类似的协议栈,其挂钩的思路主要是通过堆叠挂钩驱动的方式,此处不再赘述。综上所述,本实施例提供的系统行为态势感知方法,在上述实施例的基础上,通过挂钩方式从用户态和内核态的函数调用序列中获取向量数据,通过过滤型驱动从网络协议栈和文件系统的irp中获取流量数据,进一步增加了系统行为数据样本的多样性,可以进一步提高系统行为态势感知的可靠性和准确率。在系统行为监控领域,调用行为的存储和关联一直是一个难点和热点。目前对于系统行为数据样本通常采用关系型数据库存储,这就导致无法实时、动态地反映出系统资源调用之间的关系,更难以用拓扑图的方式展现调用序列,也就是说无法快速关联。为了解决该问题,本实施例中采用图数据表示系统行为数据样本。本实施例提供的系统行为态势感知方法,在根据获取的系统行为数据样本,确定系统行为态势感知结果之前,将系统行为数据样本的数据格式转换为图数据格式。具体的,可以根据如下规则对系统行为数据样本的数据格式进行转换:节点表示调用函数或者被调用函数,边表示函数调用关系,度数表示函数被调用的次数;和/或,节点表示源地址或者目标地址,边表示传输方向和协议类型。举例来说,若获取的系统行为数据样本为api1调用api2,api2调用api3,则可以将其转换为图数据格式,采用图5所示的方式进行表示。图5为本发明一实施例提供的图数据格式的系统行为数据样本示意图。如图5左侧所示,调用函数api1和被调用函数api2采用节点表示,调用关系和参数集采用边表示。图数据库擅长存储和关联向量关系数据,并对向量关系数据做串联/并联以构成更大规模的向量。对于图5左侧所示的两个向量数据进行串联,可以得到右侧规模更大的向量数据。在关系型数据库中通常以序列表示调用行为,例如基于序列模式和关联规则的系统行为监控等。然而,序列的表达式通常比较长,一般一条序列表示整个调用栈,更新迭代时需要重新生成,计算开销大,灵活性较低。图数据库支持实时动态地反映系统资源的调用关系,以向量的方式表达调用关系,以拓扑图的方式展现系统资源调用序列。相比较以序列的方式表达调用关系,向量关系数据增量迭代/扩展容易,重新构建更灵活,因此采用图数据库能够解决迭代调用灵活性的问题。可以理解的是,在将系统行为数据样本的数据格式转换为图数据格式之后,可以采用图数据库存储转换后的系统行为数据样本。本实施例中例如可以采用neo4j这种nosql数据库,与关系型数据库相比,对于高度关联的数据如图形数据的查询速度要快上许多,同时兼容原子性、一致性、隔离性、持久性(atomicityconsistencyisolationdurability,简称:acid)的事务操作。进一步的,apt规则研判、病毒检测引擎以及漏洞检测引擎均可以从图数据库中获取系统行为数据样本,进行相应的分析处理。本实施例中转换为图数据格式的系统行为数据样本可以采用邻接矩阵表示,例如对于一个有五个节点的调用序列,其邻接矩阵可以表示为:其中,m(i,j)表示节点i和j之间边的权重,e表示边的集合,wij为常数。本实施例提供的系统行为态势感知方法,在上述实施例的基础上,通过采用图数据表示系统行为数据样本,不仅可以实时、动态地反映出系统资源调用之间的关系,直观的以拓扑图的方式展现调用序列,而且由于图数据具有很高的查询和存取效率,因此可以提高系统行为态势感知的速度和效率。在上述任一实施例的基础上,为了进一步提高系统行为态势感知的准确率,避免误判,本实施例提供的方法还可以包括:获取用户对系统行为态势感知结果的标注,标注包括拦截和放行;根据标注对系统行为态势感知结果进行校正。其中,系统行为态势感知结果的标注可以由各计算机向用户提供操作选择界面,根据用户的输入确定。本实施例通过增加学习反馈机制,通过使用者的参与对系统行为态势感知结果进行校正,进一步提高了系统行为态势感知的准确率,降低了误判率。图6为本发明提供的系统行为态势感知方法又一实施例的流程图。如图6所示,本实施例提供的方法可以包括:s601、通过多个数据探针获取局域网中多个计算机的系统行为数据样本,多个数据探针部署于局域网中的多个计算机内部。s602、将获取的系统行为数据样本的数据格式转换为图数据格式。s603、根据转换后的系统行为数据样本,确定系统行为态势感知结果。s604、获取用户对系统行为态势感知结果的标注,标注包括拦截和放行。s605、根据标注对系统行为态势感知结果进行校正。本实施例中各步骤的具体实现方式可以参考上述实施例,此处不再赘述。本实施例提供的系统行为态势感知方法,通过分布式部署于多个计算机内部的多个数据探针,能够获取到多个计算机的系统行为数据样本,增加了样本的数量,降低了样本的趋同度,提高了数据样本的可信度和可靠性;通过采用图数据表示系统行为数据样本,能够实时、动态、直观地反映出系统资源调用之间的关系,且增量迭代/扩展容易,重新构建更灵活,提高了系统行为态势感知的速度和效率;通过增加学习反馈机制,通过使用者的参与对系统行为态势感知结果进行校正,可以降低误判率。综上所述,本实施例提供的方法能够提高系统行为态势感知的可靠性和准确率。下面将通过两个具体的实施例来说明如何确定系统行为态势感知结果。在一种可能的实现方式中,根据获取的系统行为数据样本,确定系统行为态势感知结果,可以包括:若系统行为数据样本中存在多个进程均与同一目标节点建立连接,并且向该目标节点发送同类型协议的数据包,则确定该目标节点为潜在的高级持续性威胁apt点。图7为本发明提供的确定系统行为态势感知结果一实施例的示意图。如图7所示,通过对获取到的系统行为数据样本进行分析,确定局域网中的主机1、主机2和主机3中均存在与同一目标节点建立连接的进程,并且这些进程还向该目标节点发送同类型协议的数据包,则可以确定该目标节点为潜在的apt点。进而可以向用户发出警示,告知潜在的风险,还可以接收用户对于系统行为态势感知结果的标注。在一种可能的实现方式中,根据获取的系统行为数据样本,确定系统行为态势感知结果,可以包括:根据系统行为数据样本中各个调用序列以及预设的高级持续性威胁特征码,确定各个调用序列对应的计算机中存在的高级持续性威胁;和/或,根据系统行为数据样本中多个调用序列的行为和以及预设的高级持续性威胁特征码,确定局域网中存在的高级持续性威胁,行为和表示多个调用序列的共同过程。本实施例中基于特征码识别威胁,进行系统行为态势感知。具体的,本实施例中基于apt特征码识别威胁,本实施例中的apt特征码可以是根据历史数据预先确定的。表2api名称/地址参数a参数b.......参数n调用时间调用次数api1a1b1.......n1time1xapi2a2b2.......n2time2y表2为api调用关系表。在一个调用序列中,以v表示向量数据,以kv来表示加权后的向量数据,k表示向量权重,k的决定因素可以包括参数合法性、调用堆栈的深度、调用类型(快速调用/自陷型调用)、被调用接口的关键度、调用次数等。因此,一个调用序列可以表示为:∑(v)=k1v1+k2v2+k3v3+……+knvn。可以将各计算机的系统行为数据样本中各个调用序列公式与apt特征码公式进行比对,以挖掘出符合特征码公式的特征行为。符合特征码公式的特征行为在特征码定义的权重允许的范围内波动,即大于等于特征码的下边界域值,且小于等于特征码的上边界域值。根据调用序列以及apt特征码,便可以识别出潜在的风险,挖掘出计算机中存在的apt威胁。本申请由于是在局域网中分布式的部署多个数据探针,因此各数据探针获取到的调用序列不会是完全相同的,例如两个操作系统的调用序列可能是这样的:操作系统1:∑(v)=k1v1+k2v2+k3v3+……+knvn;操作系统2:∑(v)=m2v2+m3v3+m4v4+……+mivi;其中,i>=n。针对上述分布式部署的数据探针,本实施例中采用行为和表示多个操作系统中的多个调用序列的共同过程,具体的可以通过求最大公约数,将作为系数的权值进行累加,上述操作系统1和操作系统2的行为和可以表示为:(k2+m2)v2+(k3+m3)v3+(k4+m4)v4+……+(kn+mn)vn。行为和可以用于分析整个分布式系统中调用行为的可疑阶段的过程。进一步的,在上述确定系统行为态势感知结果的过程中,均可以通过学习反馈机制加入用户主动的拦截/放行机制,据此可以生成或者改变apt行为特征码。同时,向量权重也不是一成不变的,而是可以动态调整的。例如在从用户态自陷到内核态的系统调用中,ssdt是各种安全软件最佳的理想挂钩点,也同样是恶意软件的理想挂钩点,因此可以增大内核态的系统调用的向量权重;调用参数也可以作为堆栈溢出的工具,因此调用参数在向量中的比重也可以调整和加强。图8为本发明提供的系统行为态势感知系统一实施例的结构示意图。如图8所示,本实施例提供的系统行为态势感知系统80可以包括:采集模块801和处理模块802。采集模块801,用于通过多个数据探针获取局域网中多个计算机的系统行为数据样本,多个数据探针部署于局域网中的多个计算机内部。处理模块802,用于根据获取的系统行为数据样本,确定系统行为态势感知结果。本实施例的系统,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。可选的,系统行为数据样本包括向量数据和流量数据,向量数据包括调用函数名称、调用参数、被调用函数名称以及调用关系中的至少一种,流量数据包括目标地址、源地址、协议类型、操作类型以及操作数据中的至少一种;向量数据为数据探针通过挂钩方式从用户态和内核态的函数调用序列中获取;流量数据为数据探针通过过滤型驱动从网络协议栈和/或文件系统的输入输出请求包中获取。可选的,系统行为态势感知系统80还可以包括汇聚模块(图中未示出),用于在根据获取的系统行为数据样本,确定系统行为态势感知结果之前,将系统行为数据样本的数据格式转换为图数据格式。可选的,转换模块用于将系统行为数据样本的数据格式转换为图数据格式,具体可以包括根据如下规则对系统行为数据样本的数据格式进行转换:节点表示调用函数或者被调用函数,边表示函数调用关系,度数表示函数被调用的次数;和/或,节点表示源地址或者目标地址,边表示传输方向和协议类型。可选的,系统行为态势感知系统80还可以包括学习模块(图中未示出),用于获取用户对系统行为态势感知结果的标注,标注包括拦截和放行;根据标注对系统行为态势感知结果进行校正。可选的,处理模块802用于根据获取的系统行为数据样本,确定系统行为态势感知结果,具体可以包括:若系统行为数据样本中存在多个进程均与同一目标节点建立连接,并且向该目标节点发送同类型协议的数据包,则确定该目标节点为潜在的高级持续性威胁点。可选的,处理模块802用于根据获取的系统行为数据样本,确定系统行为态势感知结果,具体可以包括:根据系统行为数据样本中各个调用序列以及预设的高级持续性威胁特征码,确定各个调用序列对应的计算机中存在的高级持续性威胁;和/或,根据系统行为数据样本中多个调用序列的行为和以及预设的高级持续性威胁特征码,确定局域网中存在的高级持续性威胁,行为和表示多个调用序列的共同过程。图9为本发明提供的系统行为态势感知系统又一实施例的结构示意图。如图9所示,本实施例提供的系统行为态势感知系统可以包括:采集模块901、汇聚模块902、消息队列903、图数据库904、处理模块905和学习模块906。其中,采集模块901用于获取系统行为数据样本。具体的,通过分布式部署于局域网中的n(n>=2)个数据探针:数据探针1、数据探针2、……、数据探针n进行数据采集。为了进一步增加数据样本的多样性,各个数据探针通过多种采样手段进行数据采集,包括:用户态shellcode、内核态ssdthook、windows过滤平台(windowsfilteringplatform,简称:wfp)挂钩、文件系统过滤驱动和网络协议栈过滤驱动。汇聚模块902用于收集采集模块901采集到的系统行为数据样本,并进行格式转换。本实施例中各数据探针采集到的数据通过proxy通道进行汇聚和转换。本实施例中将采集到系统行为数据样本转换为图数据格式,具体包括:节点表示调用函数或者被调用函数,边表示函数调用关系,度数表示函数被调用的次数;和/或,节点表示源地址或者目标地址,边表示传输方向和协议类型。消息队列903用于对汇聚模块902输出的数据进行排序和缓存,实现对数据的串行化和持久化。在数据流量较大时,可以有效避免数据的丢失。在实际中,可以选择性地进行设置。图数据库904用于对格式转换为图数据格式的系统行为数据样本进行存储、分析和关联。例如可以采用neo4j数据库。处理模块905用于根据图数据库904中存储的系统行为数据样本确定系统行为态势感知结果。具体确定方法可以参考上述方法实施例,此处不再赘述。需要说明的是,处理模块905中还可以包括apt规则研判、病毒检测引擎、漏洞检测引擎以及其他应用模块。例如,apt规则研判模块可以根据图数据库904中存储的系统行为数据样本,进行apt规则研判。学习模块906用于获取用户对系统行为态势感知结果的标注,以便根据用户的标注进行校正。在实际中,可以选择性地进行设置。本实施例提供的系统行为态势感知系统,通过分布式部署的数据探针采集数据,并采用图数据格式表示数据样本,能够提高系统行为态势感知的可靠性和准确率。本发明实施例还提供一种电子设备,请参见图10所示,本发明实施例仅以图10为例进行说明,并不表示本发明仅限于此。图10为本发明提供的电子设备一实施例的结构示意图。如图10所示,本实施例提供的电子设备100可以包括:存储器1001、处理器1002和总线1003。其中,总线1003用于实现各元件之间的连接。存储器1001中存储有计算机程序,计算机程序被处理器1002执行时可以实现上述任一方法实施例的技术方案。其中,存储器1001和处理器1002之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可以通过一条或者多条通信总线或信号线实现电性连接,如可以通过总线1003连接。存储器1001中存储有实现系统行为态势感知方法的计算机程序,包括至少一个可以软件或固件的形式存储于存储器1001中的软件功能模块,处理器1002通过运行存储在存储器1001内的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器1001可以是,但不限于,随机存取存储器(randomaccessmemory,简称:ram),只读存储器(readonlymemory,简称:rom),可编程只读存储器(programmableread-onlymemory,简称:prom),可擦除只读存储器(erasableprogrammableread-onlymemory,简称:eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,简称:eeprom)等。其中,存储器1001用于存储程序,处理器1002在接收到执行指令后,执行程序。进一步地,上述存储器1001内的软件程序以及模块还可包括操作系统,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通信,从而提供其他软件组件的运行环境。处理器1002可以是一种集成电路芯片,具有信号的处理能力。上述的处理器1002可以是通用处理器,包括中央处理器(centralprocessingunit,简称:cpu)、网络处理器(networkprocessor,简称:np)等。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。可以理解,图10的结构仅为示意,还可以包括比图10中所示更多或者更少的组件,或者具有与图10所示不同的配置。图10中所示的各组件可以采用硬件和/或软件实现。需要说明的是,本实施例提供的电子设备包括但不限于以下中的至少一个:用户侧设备、网络侧设备。用户侧设备包括但不限于计算机、智能手机、平板电脑、数字广播终端、消息收发设备、游戏控制台、个人数字助理等。网络侧设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机组成的一个超级虚拟计算机。本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时可以实现上述任一方法实施例提供的系统行为态势感知方法。本实施例中的计算机可读存储介质可以是计算机能够存取的任何可用介质,或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备,可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如ssd)等。本领域技术人员可以理解,上述实施方式中各种方法的全部或部分功能可以通过硬件的方式实现,也可以通过计算机程序的方式实现。当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘、光盘、硬盘等,通过计算机执行该程序以实现上述功能。例如,将程序存储在设备的存储器中,当通过处理器执行存储器中程序,即可实现上述全部或部分功能。另外,当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序也可以存储在服务器、另一计算机、磁盘、光盘、闪存盘或移动硬盘等存储介质中,通过下载或复制保存到本地设备的存储器中,或对本地设备的系统进行版本更新,当通过处理器执行存储器中的程序时,即可实现上述实施方式中全部或部分功能。以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属
技术领域
:的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1