掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本申请涉及计算机安全技术领域,特别涉及一种攻击路径图构建方法、装置、设备、介质。

背景技术

当前的黑产团伙主要使用自动化攻击的方式依靠病毒蠕虫为主要载体对目前互联网上的资产进行批量扫描攻击,然后再利用被攻陷的主机的系统资源进行挖矿、组建僵尸网络等。一旦某个内网资产被入侵成功,蠕虫批量会利用系统漏洞、爆破破解等方式感染其他内网主机,从而实现批量感染主机。该行为主要呈现为某一台主机被感染成功后,会利用相同的攻击方式扫描、探测、攻击与当前主机处于网络可达的其他主机,二次受害的主机被感染后会重复一次受害的主机的行为,从而使得大量主机被感染。在该场景下,通常需要进行攻击路径还原,从而进行内网攻击路径图构建。

目前,针对上述场景,用户主要根据各个失陷主机的最新失陷时间来判断各个主机被感染的顺序,从而人工梳理出内网中各个主机被攻陷的路径图。但是由于会出现大量的重复感染情况,所以很多失陷主机的最新失陷时间是重复感染的时间点,所以对攻击者的传播路径无法有效的识别还原,且由于感染病毒的主机较多,导致普通用户从已发生的安全事件当中还原出样本的攻击路径需要极大的人力成本与时间成本梳理。

发明内容

有鉴于此,本申请的目的在于提供一种攻击路径图构建方法、装置、设备、介质,能够对攻击路径图进行自动梳理,节约攻击路径图构建过程中的人力成本和时间成本。其具体方案如下:

第一方面,本申请公开了一种攻击路径图构建方法,其特征在于,包括:

确定目标内网中在过去预设时长内处于失陷状态的失陷主机的信息,其中,所述失陷主机的信息包括各个所述失陷主机之间的访问关系及各个所述失陷主机的第一次失陷时间;

确定各个所述失陷主机对应的目标安全事件信息;

根据所述第一次失陷时间、所述目标安全事件信息确定各个所述失陷主机之间的访问关系是否为攻击关系,并利用各个所述失陷主机之间的攻击关系构建各个所述失陷主机之间的攻击路径图。

可选地,所述利用各个所述失陷主机之间的攻击关系构建各个所述失陷主机之间的攻击路径图之后,还包括:

将所述攻击路径图中所述第一次失陷时间最早的失陷主机作为最早开始传播病毒的主机。

可选地,所述确定目标内网中在过去预设时长内处于失陷状态的失陷主机的信息,包括:

根据所述目标内网对应的网络安全设备中的过去预设时长内的会话信息梳理出所述目标内网中各个主机之间的整体访问关系;

根据所述网络安全设备中的目标文件从各个所述主机中确定出在过去预设时长内处于失陷状态的失陷主机的主机IP地址及各个所述失陷主机的第一次失陷时间,其中,所述目标文件中包括所述目标内网中各个所述主机的安全状态字段;

将所述整体访问关系中的非失陷主机之间的访问关系删除,并保留所述失陷主机之间的访问关系,得到各个所述失陷主机之间的访问关系;

将所述失陷主机的主机IP地址、各个所述失陷主机之间的访问关系及所述第一次失陷时间作为所述失陷主机的信息。

可选地,所述根据所述第一次失陷时间、所述目标安全事件信息确定各个所述失陷主机之间的访问关系是否为攻击关系,并利用各个所述失陷主机之间的攻击关系构建各个所述失陷主机之间的攻击路径图,包括:

根据所述第一次失陷时间、所述目标安全事件信息确定各个所述失陷主机之间的访问关系是否为攻击关系,并将各个所述失陷主机之间的访问关系中不为攻击关系的访问关系删除,得到各个所述失陷主机之间的攻击关系;

利用各个所述失陷主机之间的攻击关系、各个所述攻击关系对应的目标安全事件的类型及对应的发起时间构建各个所述失陷主机之间的攻击路径图。

可选地,根据所述第一次失陷时间、所述目标安全事件信息确定任意两个失陷主机之间的访问关系是否为攻击关系,包括:

判断第一失陷主机的所述第一次失陷时间是否早于第二失陷主机的所述第一次失陷时间,并根据所述目标安全事件信息判断所述第一失陷主机是否向所述第二失陷主机发起过目标安全事件;

如果第一失陷主机的所述第一次失陷时间早于第二失陷主机的所述第一次失陷时间,且所述第一失陷主机向所述第二失陷主机发起过所述目标安全事件,则根据所述第一失陷主机向所述第二失陷主机发起的所述目标安全事件的攻击状态判断所述第一失陷主机对所述第二失陷主机的第一访问关系是否为攻击关系。

可选地,所述根据所述第一失陷主机向所述第二失陷主机发起的所述目标安全事件的攻击状态判断所述第一失陷主机对所述第二失陷主机的第一访问关系是否为攻击关系,包括:

如果所述第一失陷主机向所述第二失陷主机发起的所述目标安全事件的攻击状态为攻击成功,则判定所述第一失陷主机对所述第二失陷主机的第一访问关系为攻击关系;

如果所述第一失陷主机向所述第二失陷主机发起的所述目标安全事件的攻击状态为不能识别是否成功,则确定所述第二失陷主机的所述第一次失陷时间与所述第一失陷主机向所述第二失陷主机发起所述目标安全事件的发起时间之间的差值;

判断所述差值是否小于预设差值阈值;

如果是,则判断所述第二失陷主机是否出现目标失陷行为特征,其中,所述目标失陷行为特征为所述第一失陷主机向所述第二失陷主机发起的所述目标安全事件导致的失陷行为特征;

如果是,则判定所述第一失陷主机对所述第二失陷主机的第一访问关系为攻击关系。

可选地,所述判定所述第一失陷主机对所述第二失陷主机的第一访问关系为攻击关系之后,还包括:

如果所述第一失陷主机和所述第二失陷主机之间存在所述第二失陷主机对所述第一失陷主机的第二访问关系,则判定所述第二失陷主机对所述第一失陷主机的第二访问关系不为攻击关系。

可选地,所述判定所述第一失陷主机对所述第二失陷主机的访问关系为攻击关系之后,还包括:

如果存在除了所述第一失陷主机之后的至少一个失陷主机对所述第二失陷主机的第三访问关系,且对应的所述第一次失陷时间早于第二失陷主机的所述第一次失陷时间,且向所述第二失陷主机发起过所述目标安全事件且对应的攻击状态为攻击成功,则判定所述第三访问关系为攻击关系。

第二方面,本申请公开了一种攻击路径图构建方法,包括:

确定目标内网中在过去预设时长内处于失陷状态的失陷主机的主机IP地址及各个所述失陷主机的第一次失陷时间;

确定出各个所述失陷主机对应的目标安全事件信息;

根据所述主机IP地址、所述第一次失陷时间、所述目标安全事件信息构建各个所述失陷主机之间的攻击关系,并利用各个所述失陷主机之间的攻击关系构建各个所述失陷主机之间的攻击路径图。

第三方面,本申请公开了一种攻击路径图构建装置,包括:

第一信息确定模块,用于确定目标内网中在过去预设时长内处于失陷状态的失陷主机的信息,其中,所述失陷主机的信息包括各个所述失陷主机之间的访问关系及各个所述失陷主机的第一次失陷时间;

第二信息确定模块,用于确定各个所述失陷主机对应的目标安全事件信息;

攻击路径图构建模块,用于根据所述第一次失陷时间、所述目标安全事件信息确定各个所述失陷主机之间的访问关系是否为攻击关系,并利用各个所述失陷主机之间的攻击关系构建各个所述失陷主机之间的攻击路径图。

第四方面,本申请公开了一种网络安全设备,包括:

存储器和处理器;

其中,所述存储器,用于存储计算机程序;

所述处理器,用于执行所述计算机程序,以实现前述公开的攻击路径图构建方法。

第五方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的攻击路径图构建方法。

可见,本申请确定目标内网中在过去预设时长内处于失陷状态的失陷主机的信息,其中,所述失陷主机的信息包括各个所述失陷主机之间的访问关系及各个所述失陷主机的第一次失陷时间。然后确定各个所述失陷主机对应的目标安全事件信息。接着还需要根据所述第一次失陷时间、所述目标安全事件信息确定各个所述失陷主机之间的访问关系是否为攻击关系,并利用各个所述失陷主机之间的攻击关系构建各个所述失陷主机之间的攻击路径图。由此可见,本申请中是对目标内网中各个失陷主机之间的攻击路径进行自动梳理,从而节约了现有技术中需要人工梳理攻击路径图所浪费的人力成本和时间成本,减少攻击路径图梳理及溯源所消耗的时间,提高攻击路径图构建效率,且在攻击路径图构建过程中,用到的是各个失陷主机的第一次失陷时间构建攻击路径图,从而可以有效还原攻击传播路径。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请公开的一种攻击路径图构建方法流程图;

图2为本申请公开的一种具体的攻击路径图构建方法部分流程图;

图3为本申请公开的一种具体的攻击路径图构建方法部分流程图;

图4为本申请公开的一种具体的攻击路径图构建方法部分流程图;

图5为本申请公开的一种具体的攻击关系示意图;

图6为本申请公开的一种具体的攻击关系示意图;

图7为本申请公开的一种具体的攻击关系示意图;

图8为本申请公开的一种具体的攻击关系示意图;

图9为本申请公开的一种攻击路径图构建方法流程图;

图10为本申请公开的一种攻击路径图构建装置结构示意图;

图11为本申请公开的一种攻击路径图构建装置结构示意图;

图12为本申请公开的一种网络安全设备结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

目前,针对利用蠕虫病毒批量式攻击内网中主机的场景,用户主要根据各个失陷主机的最新失陷时间来判断各个主机被感染的顺序,从而人工梳理出内网中各个主机被攻陷的路径图。但是由于会出现大量的重复感染情况,所以很多失陷主机的最新失陷时间是重复感染的时间点,所以对攻击者的传播路径无法有效的识别还原,且由于感染病毒的主机较多,导致普通用户从已发生的安全事件当中还原出样本的攻击路径需要极大的人力成本与时间成本梳理。有鉴于此,本申请提出了一种攻击路径图构建方法,能够对攻击路径图进行自动梳理,节约攻击路径图构建过程中的人力成本和时间成本。

参见图1所示,本申请实施例公开了一种攻击路径图构建方法,该方法包括:

步骤S11:确定目标内网中在过去预设时长内处于失陷状态的失陷主机的信息,其中,所述失陷主机的信息包括各个所述失陷主机之间的访问关系及各个所述失陷主机的第一次失陷时间。

在具体的实施过程中,要对目标内网中的失陷主机的攻击路径进行梳理时,需要先确定出所述目标内网中在过去预设时长内处于失陷状态的失陷主机的信息,其中,所述失陷主机的信息包括失陷主机之间的访问关系及各个所述失陷主机的第一次失陷时间,此外,所述失陷主机的信息还包括所述失陷主机的主机IP(Internet Protocol,网际互连协议)地址等,所述过去预设时长可以根据实际情况确定,所述过去预设时长可以为过去30天之内。

具体的,确定所述目标内网中在过去预设时长内处于失陷状态的失陷主机的信息,包括:根据所述目标内网对应的网络安全设备中的过去预设时长内的会话信息梳理出所述网络安全设备对应的目标内网中各个主机之间的整体访问关系;根据所述网络安全设备中的目标文件从各个所述主机中确定出在过去预设时长内处于失陷状态的失陷主机的主机IP地址及各个所述失陷主机的第一次失陷时间,其中,所述目标文件中包括所述目标内网中各个所述主机的安全状态字段;将所述整体访问关系中的非失陷主机之间的访问关系删除,并保留所述失陷主机之间的访问关系,得到各个所述失陷主机之间的访问关系;将所述失陷主机的主机IP地址、各个所述失陷主机之间的访问关系及所述第一次失陷时间作为所述失陷主机的信息。

也即,所述目标内网对应的网络安全设备中会保存所述目标内网中各个主机之间的会话信息,所以可以先根据所述网络安全设备中的过去预设时长之内的会话信息梳理出所述目标内网中各个主机之间的整体访问关系。所述会话信息中包括会话双方的信息,例如,发送方IP地址、接收方IP地址、相应的端口等,以及会话内容、会话时间等。所以对过去预设时长内的会话信息进行梳理,可以梳理出所述目标内网中各个主机之间的整体访问关系。

在梳理出各个所述主机之间的整体访问关系之后,还需要确定出各个所述主机中在过去预设时长之内处于失陷状态的失陷主机的主机IP地址及各个所述失陷主机的第一次失陷时间。所述网络安全设备中有目标文件,目标文件中包括所述目标内网中各个所述主机的安全状态字段,所述安全状态字段用于表示各个所述主机是否为安全,所述安全状态字段可以包括正常、已失陷,根据所述目标文件便可以确定出各个所述主机是否处于失陷状态,如果处于失陷状态,还会包括失陷状态出现的时间,所以可以根据所述目标文件从各个所述主机中确定出在过去预设时长内处于失陷状态的失陷主机的主机IP地址及各个所述失陷主机的第一次失陷时间。

在确定出各个所述失陷主机的主机IP地址以及各个所述失陷主机的第一次失陷时间之后,便可以将所述整体访问关系中的非失陷主机之间的访问关系删除,并保留所述失陷主机之间的访问关系,得到各个所述失陷主机之间的访问关系。由于需要确定的是攻击路径图,攻击路径图中各个主机节点都是失陷主机,所以便可以将所述整体访问关系中的非失陷主机之间的访问关系删除,也即,将所述整体访问关系中各个非失陷主机相关的访问关系均删除,只保留各个所述失陷主机的访问关系,便可以得到各个所述失陷主机之间的访问关系。并将所述失陷主机的主机IP地址、各个所述失陷主机之间的访问关系以及各个所述失陷主机的第一次失陷时间作为所述失陷主机的信息便可以。

步骤S12:确定各个所述失陷主机对应的目标安全事件信息。

在确定出所述失陷主机的信息之后,还需要确定各个所述失陷主机对应的目标安全事件信息。具体的,可以根据所述网络安全设备中的告警信息确定出各个所述失陷主机对应的目标安全事件信息,其中,所述目标安全事件信息对应的目标安全事件为具有横向传播能力的安全事件,例如,目标安全事件可以为SMB(Server Message Block,服务器信息块)内网暴力破解攻击、WMI(Windows Management Instrumentation,Windows 2K/XP管理系统的核心)内网创建计划任务、MS17-010内网永恒之蓝攻击以及Psexec内网远程命令执行等。

所述网络安全设备中的告警信息中会记录所述目标内网中各个主机产生的告警信息,所述告警信息包括目标安全事件信息,其中,所述目标安全事件信息包括目标安全事件的类型、发送方IP地址、发起时间、攻击状态及接收方IP地址,所述目标安全事件的类型表示所述目标安全事件具体为什么事件,例如,SMB内网暴力破解攻击、WMI内网创建计划任务、MS17-010内网永恒之蓝攻击等。所述发送方IP地址为发起所述目标安全事件的失陷主机的主机IP地址,所述发起时间为所述发送方IP地址发起所述目标安全事件的时间,所述攻击状态为所述目标安全事件的攻击成功与否的状态,包括攻击成功、攻击不成功及不能识别是否成功几种状态,所述接收方IP地址表示受到所述目标安全事件攻击的失陷主机的主机IP地址。

具体的,根据所述网络安全设备中的告警信息确定出各个所述失陷主机对应的目标安全事件信息,包括:按照各个所述失陷主机的第一次失陷时间的先后顺序从所述网络安全设备中的告警信息确定出各个所述失陷主机对应的目标安全事件信息。

步骤S13:根据所述第一次失陷时间、所述目标安全事件信息确定各个所述失陷主机之间的访问关系是否为攻击关系,并利用各个所述失陷主机之间的攻击关系构建各个所述失陷主机之间的攻击路径图。

在获取到所述目标安全事件信息之后,还需要根据所述第一次失陷时间、所述目标安全事件信息确定各个所述失陷主机之间的访问关系是否为攻击关系,并利用各个所述失陷主机之间的攻击关系构建各个所述失陷主机之间的攻击路径图。

也即,各个所述失陷主机之间的访问关系并不一定是攻击关系,所以需要根据所述第一次失陷时间、所述目标安全事件信息确定各个所述失陷主机之间的访问关系是否为攻击关系,从而确定出各个失陷主机之间实际的攻击关系,并将实际的非攻击关系删除,然后才能构建各个所述失陷主机之间的攻击路径图。其中,所述攻击关系为一次攻击关系,重复攻击所造成的访问关系属于非攻击关系,例如,存在失陷主机A对失陷主机B的访问关系,且存在失陷主机B对失陷主机A的访问关系,失陷主机A对失陷主机B的访问关系为失陷主机A攻陷失陷主机B造成的访问关系,失陷主机B对失陷主机A的访问关系为失陷主机B在失陷后,对失陷主机A进行二次攻击造成的访问关系,那么判定所述失陷主机A对所述失陷主机B的访问关系为攻击关系,失陷主机B对失陷主机A的访问关系便为非攻击关系。

在实际过程中,在利用各个所述失陷主机之间的攻击关系构建各个所述失陷主机之间的攻击路径图之后,还可以包括:将所述攻击路径图中所述第一次失陷时间最早的失陷主机作为最早开始传播病毒的主机。

在构建出所述攻击关系图之后,相应地,便确定出病毒在所述目标内网中传播的路径关系,也即,便得到了是哪些失陷主机先感染病毒之后,再对其他失陷主机进行感染。便可以将所述攻击关系图中的所述第一次失陷时间最早的失陷主机作为最早开始传播病毒的主机,从而实现所述目标内网中失陷主机的攻击溯源。由于是将第一次失陷时间最早的失陷主机作为目标内网中最早开始传播病毒的主机,从而实现内网中的溯源,提高了溯源准确率。

可见,本申请确定目标内网中在过去预设时长内处于失陷状态的失陷主机的信息,其中,所述失陷主机的信息包括各个所述失陷主机之间的访问关系及各个所述失陷主机的第一次失陷时间。然后确定各个所述失陷主机对应的目标安全事件信息。接着还需要根据所述第一次失陷时间、所述目标安全事件信息确定各个所述失陷主机之间的访问关系是否为攻击关系,并利用各个所述失陷主机之间的攻击关系构建各个所述失陷主机之间的攻击路径图。由此可见,本申请中是对目标内网中各个失陷主机之间的攻击路径进行自动梳理,从而节约了现有技术中需要人工梳理攻击路径图所浪费的人力成本和时间成本,减少攻击路径图梳理及溯源所消耗的时间,提高攻击路径图构建效率,且在攻击路径图构建过程中,用到的是各个失陷主机的第一次失陷时间构建攻击路径图,从而可以有效还原攻击传播路径。

参见图2所示,根据所述第一次失陷时间、所述目标安全事件信息确定各个所述失陷主机之间的访问关系是否为攻击关系,并利用各个所述失陷主机之间的攻击关系构建各个所述失陷主机之间的攻击路径图,包括:

步骤S21:根据所述第一次失陷时间、所述目标安全事件信息确定各个所述失陷主机之间的访问关系是否为攻击关系,并将各个所述失陷主机之间的访问关系中不为攻击关系的访问关系删除,得到各个所述失陷主机之间的攻击关系。

在根据所述第一次失陷时间、所述目标安全事件信息确定各个所述失陷主机之间的访问关系是否为攻击关系,并利用各个所述失陷主机之间的攻击关系构建各个所述失陷主机之间的攻击路径图的过程中,首先需要根据所述第一次失陷时间、所述目标安全事件信息确定各个所述失陷主机之间的访问关系是否为攻击关系,并将各个所述失陷主机之间的访问关系中不为攻击关系的访问关系删除,得到各个所述失陷主机之间的攻击关系。

其中,参见图3所示,根据所述第一次失陷时间、所述目标安全事件信息确定任意两个失陷主机之间的访问关系是否为攻击关系,包括:

步骤S211:判断第一失陷主机的所述第一次失陷时间是否早于第二失陷主机的所述第一次失陷时间,并根据所述目标安全事件信息判断所述第一失陷主机是否向所述第二失陷主机发起过目标安全事件。

首先需要判断第一失陷主机的所述第一次失陷时间是否早于第二失陷主机的所述第一次失陷时间,并根据所述目标安全事件信息判断所述第一失陷主机是否向所述第二失陷主机发起过目标安全事件。

要判断第一失陷主机对第二失陷主机的第一访问关系是否为攻击关系,可以判断所述第一失陷主机的第一次失陷时间是否早于第二失陷主机的第一次失陷时间。要确定第一失陷主机对第二失陷主机的第一访问关系是否为攻击关系,也即,要确定是否是由于第一失陷主机攻击第二失陷主机,从而导致所述第二失陷主机从正常主机变为失陷主机,所述第一失陷主机的第一次失陷时间便需要早于所述第二失陷主机的第一次失陷时间,这样才可能是由于所述第一失陷主机对所述第二失陷主机进行攻击,导致所述第二失陷主机从正常状态变为失陷状态,也即,所述第一失陷主机对所述第二失陷主机的第一访问关系为攻击关系。

也需要根据所述目标安全事件信息判断所述第一失陷主机是否向所述第二失陷主机发起过所述目标安全事件。也即,所述第一失陷主机对所述第二失陷主机的第一访问关系是否为攻击关系,还需要根据所述目标安全事件信息判断所述第一失陷主机是否向所述第二失陷主机发起过所述目标安全事件,只有第一失陷主机向第二失陷主机发起过目标安全事件,所述第一访问关系才会为攻击关系。

具体的,可以先判断第一失陷主机的所述第一次失陷时间是否早于第二失陷主机的所述第一次失陷时间,如果第一失陷主机的所述第一次失陷时间早于第二失陷主机的所述第一次失陷时间,再根据所述目标安全事件信息判断所述第一失陷主机是否向所述第二失陷主机发起过目标安全事件。

判断所述第一失陷主机的第一次失陷时间是否早于所述第二失陷主机的第一次失陷时间之后,如果所述第一失陷主机的第一次失陷时间晚于或与所述第二失陷主机的第一次失陷时间相同,则直接判定所述第一失陷主机对所述第二失陷主机的第一访问关系不为攻击关系。如果所述第二失陷主机的第一次失陷时间早于所述第二失陷主机的第一次失陷时间,则表示所述第一失陷主机对所述第二失陷主机的第一访问关系可能为攻击关系,具体是不是还需要根据所述目标安全事件信息判断所述第一失陷主机是否向所述第二失陷主机发起过所述目标安全事件,也即,根据所述目标安全事件信息判断所述第一失陷主机是否向所述第二失陷主机发起过具有横向传播能力的安全事件。

当然,也可以先根据所述目标安全事件信息判断所述第一失陷主机是否向所述第二失陷主机发起过目标安全事件,如果所述第一失陷主机向所述第二失陷主机发起过所述目标安全事件,再判断第一失陷主机的所述第一次失陷时间是否早于第二失陷主机的所述第一次失陷时间。

步骤S212:如果第一失陷主机的所述第一次失陷时间早于第二失陷主机的所述第一次失陷时间,且所述第一失陷主机向所述第二失陷主机发起过所述目标安全事件,则根据所述第一失陷主机向所述第二失陷主机发起的所述目标安全事件的攻击状态判断所述第一失陷主机对所述第二失陷主机的第一访问关系是否为攻击关系。

可以理解的是,在第一失陷主机的所述第一次失陷时间早于第二失陷主机的所述第一次失陷时间,且所述第一失陷主机向所述第二失陷主机发起过所述目标安全事件时,还需要根据所述第一失陷主机向所述第二失陷主机发起的所述目标安全事件的攻击状态判断所述第一失陷主机对所述第二失陷主机的第一访问关系是否为攻击关系。

根据所述目标安全事件信息判断所述第一失陷主机是否向所述第二失陷主机发起过所述目标安全事件之后,如果所述第一失陷主机并未向所述第二失陷主机发起过所述目标安全事件,则所述第二失陷主机便不是所述第一失陷主机攻陷的,所以所述第一失陷主机对所述第二失陷主机的第一访问关系不为攻击关系,如果所述第一失陷主机向所述第二失陷主机发起过所述目标安全事件,则表示所述第一失陷主机对所述第二失陷主机的第一访问关系可能为攻击关系,具体是不是还需要根据所述第一失陷主机向所述第二失陷主机发起的所述目标安全事件的攻击状态判断所述第一失陷主机对所述第二失陷主机的第一访问关系是否为攻击关系。

其中,参见图4所示,根据所述第一失陷主机向所述第二失陷主机发起的所述目标安全事件的攻击状态判断所述第一失陷主机对所述第二失陷主机的第一访问关系是否为攻击关系,包括:

步骤S2121:判断所述第一失陷主机向所述第二失陷主机发起的所述目标安全事件的攻击状态是否为攻击成功。

步骤S2122:如果是,则直接判定所述第一失陷主机对所述第二失陷主机的第一访问关系为攻击关系。

在判断所述第一失陷主机向所述第二失陷主机发起的所述目标安全事件的攻击状态是否为攻击成功之后,如果所述第一失陷主机对所述第二失陷主机发起的所述目标安全事件的攻击状态为攻击成功,则表示所述第一失陷主机对所述第二失陷主机的第一访问关系为攻击关系,可以判定所述第一失陷主机对所述第二失陷主机的第一访问关系为攻击关系。如果所述第一失陷主机对所述第二失陷主机发起的所述目标安全事件的攻击状态为攻击不成功,则判定所述第一失陷主机对所述第二失陷主机的第一访问关系不为攻击关系。

步骤S2123:如果所述第一失陷主机向所述第二失陷主机发起的所述目标安全事件的攻击状态为不能识别是否成功,则确定所述第二失陷主机的所述第一次失陷时间与所述第一失陷主机向所述第二失陷主机发起的所述目标安全事件的发起时间之间的差值。

如果所述第一失陷主机向所述第二失陷主机发起的所述目标安全事件的攻击状态为不能识别是否成功,则还需要确定所述第二失陷主机的所述第一次失陷时间与所述第一失陷主机向所述第二失陷主机发起的所述目标安全事件的发起时间之间的差值。所述目标安全事件中有些安全事件是不能识别出是否成功的,例如,RDP(Remote DisplayProtocol,远程显示协议)内网暴力破解攻击、SSH(Secure Shell,安全外壳协议)内网暴力破解攻击、MS08-067内网攻击以及数据库扫描攻击,所以对于这种类型的安全事件还需要进行后续的处理。具体的,就是确定所述第二失陷主机的所述第一次失陷时间与所述第一失陷主机向所述第二失陷主机发起的所述目标安全事件的发起时间之间的差值。

步骤S2124:判断所述差值是否小于预设差值阈值。

在得到所述差值之后,还需要判断所述差值是否小于预设差值阈值。

步骤S2125:如果是,则判断所述第二失陷主机是否出现目标失陷行为特征,其中,所述目标失陷行为特征为所述第一失陷主机向所述第二失陷主机发起的所述目标安全事件导致的失陷行为特征。

如果所述差值小于预设差值阈值,则表示所述第一失陷主机对所述第二失陷主机的第一访问关系可能为攻击关系,具体是不是还需要判断所述第二失陷主机是否出现目标失陷行为特征,其中,所述目标失陷行为特征为所述第一失陷主机向所述第二失陷主机发起的所述目标安全事件导致的失陷行为特征。例如,所述目标失陷行为特征可以为访问与所述第一失陷主机失陷时访问过的相同的恶意域名、使用与所述第一失陷主机失陷后所使用过的同样的漏洞进行横向扩散、与所述第一失陷主机失陷后产生的安全告警事件一致等。

步骤S2126:如果是,则判定所述第一失陷主机对所述第二失陷主机的第一访问关系为攻击关系。

如果所述第二失陷主机出现目标失陷行为特征,则判定所述第一失陷主机对所述第二失陷主机的第一访问关系为攻击关系。如果所述第二失陷主机未出现目标失陷行为特征,则判定所述第一失陷主机对所述第二失陷主机的第一访问关系不为攻击关系。

参见图5所示,已失陷主机包括主机A和主机B,主机A的第一次失陷时间早于主机B的第一次失陷时间,且主机A向主机B发送了RDP暴力破解攻击,所述预设差值阈值为30分钟,主机B的第一次失陷时间与主机A向主机B发起RDP暴力破解攻击的发起时间之间的差值在30分钟以内,且主机B出现了对应的失陷行为特征,所以主机A对主机B的第一访问关系为攻击关系。

步骤S22:利用各个所述失陷主机之间的攻击关系、各个所述攻击关系对应的目标安全事件的类型及对应的发起时间构建各个所述失陷主机之间的攻击路径图。

在确定各个所述失陷主机之间的攻击关系之后,还需要利用所述失陷主机之间的攻击关系、各个所述攻击关系对应的目标安全事件的类型及对应的发起时间构建各个所述失陷主机之间的攻击路径图。也即,所述攻击路径图中不仅包括各个所述失陷主机之间的攻击关系,还包括了各个攻击关系对应的目标安全事件的类型以及对应的发起时间。各个攻击关系对应的目标安全事件的类型也即造成各个攻击关系的目标安全事件的类型。

在判定所述第一失陷主机对所述第二失陷主机的第一访问关系为攻击关系之后,还包括:如果所述第一失陷主机和所述第二失陷主机之间存在所述第二失陷主机对所述第一失陷主机的第二访问关系,则判定所述第二失陷主机对所述第一失陷主机的第二访问关系不为攻击关系。也即,由于蠕虫类的病毒容易出现相互感染的情况,所以此处仅考虑单向图的情况,回调感染的情况,这里需要忽略,受害者主机被关联到前置主机并建立路径后,将不会再建立反方向的攻击路径,从而解决了环路的问题。

参见图6所示,主机A横向攻击使得主机B从正常状态便于失陷状态,所述主机A对主机B的访问关系为攻击关系,主机B横向攻击使得主机C从正常状态便于失陷状态,所述主机B对主机C的访问关系为攻击关系,主机C在失陷之后返回来对主机A和主机B进行攻击,所以主机C对主机A和主机B并不属于本申请中所述的攻击关系。

在具体的实施过程中,在判定所述第一失陷主机对所述第二失陷主机的访问关系为攻击关系之后,还包括:如果存在除了所述第一失陷主机之后的至少一个失陷主机对所述第二失陷主机的第三访问关系,且对应的所述第一次失陷时间早于第二失陷主机的所述第一次失陷时间,且向所述第二失陷主机发起过所述目标安全事件且对应的攻击状态为攻击成功,则判定所述第三访问关系为攻击关系。也即,如果出现多个攻击源的场景,则同时建立多条路径,例如,参见图7所示,主机A、主机B同时攻击主机C,且所述主机A的所述第一次失陷时间早于主机C的所述第一次失陷时间,所述主机B的所述第一次失陷时间早于主机C的所述第一次失陷时间,所述主机A和主机B均向所述主机C发起过所述目标安全事件且对应的攻击状态为攻击成功,则分别建立主机A和主机B与主机C之间的攻击关系。

参见图8所示,为攻击路径图。主机1在2019—05—23 19:31:38对主机2、主机3以及主机4分别发起了SMB暴力破解、MS17—010、WMI横向移动的攻击,从而使得主机2、主机3以及主机4被攻陷,主机2失陷之后又分别向主机5、主机6、主机7发起了MS17—010、MS17—010以及RDP暴力破解的攻击,从而使得主机5、主机6以及主机7被攻陷,主机3失陷之后,向主机8发起了MS17—010攻击,使得主机8被攻陷,主机8被攻陷之后,向主机9于2019—05—2320:31发起了SMB暴力破解,使得主机9被攻陷。

参见图9所示,在实际实施过程中,构建所述攻击路径图,还可以采用如下方法:

步骤S31:确定目标内网中在过去预设时长内处于失陷状态的失陷主机的主机IP地址及各个所述失陷主机的第一次失陷时间。

也即,相比于前述实施例中公开的内容,此处需要先确定目标内网中在过去预设时长内处于失陷状态的失陷主机的主机IP地址及各个所述失陷主机的第一次失陷时间。

具体的,可以根据所述目标内网对应的网络安全设备中的目标文件从各个所述主机中确定出在过去预设时长内处于失陷状态的失陷主机的主机IP地址及各个所述失陷主机的第一次失陷时间,其中,所述目标文件中包括所述目标内网中各个所述主机的安全状态字段。

步骤S32:确定出各个所述失陷主机对应的目标安全事件信息。

然后还需要确定个所述失陷主机对应的目标安全事件信息。具体的,可以根据所述目标内网对应的网络安全设备中的告警信息确定出各个所述失陷主机对应的目标安全事件信息,其中,所述目标安全事件信息对应的目标安全事件为具有横向传播能力的安全事件,例如,目标安全事件可以为SMB(Server Message Block,服务器信息块)内网暴力破解攻击、WMI(Windows Management Instrumentation,Windows 2K/XP管理系统的核心)内网创建计划任务、MS17-010内网永恒之蓝攻击以及Psexec内网远程命令执行等。

步骤S33:根据所述主机IP地址、所述第一次失陷时间、所述目标安全事件信息构建各个所述失陷主机之间的攻击关系,并利用各个所述失陷主机之间的攻击关系构建各个所述失陷主机之间的攻击路径图。

然后便可以根据主机IP地址、所述第一次失陷时间、所述目标安全事件信息构建各个所述失陷主机之间的攻击关系,并利用各个所述失陷主机之间的攻击关系构建各个所述失陷主机之间的攻击路径图。

具体的,先根据主机IP地址、所述第一次失陷时间、所述目标安全事件信息构建各个所述失陷主机之间的攻击关系,然后利用各个所述失陷主机之间的攻击关系、各个所述攻击关系对应的目标安全事件的类型及对应的发起时间构建各个所述失陷主机之间的攻击路径图。

其中,根据主机IP地址、所述第一次失陷时间、所述目标安全事件信息构建任意两个失陷主机之间的攻击关系,包括:

判断第一失陷主机的所述第一次失陷时间是否早于第二失陷主机的所述第一次失陷时间,并根据所述目标安全事件信息判断所述第一失陷主机是否向所述第二失陷主机发起过目标安全事件。

如果第一失陷主机的所述第一次失陷时间早于第二失陷主机的所述第一次失陷时间,且所述第一失陷主机向所述第二失陷主机发起过所述目标安全事件,则判断所述第一失陷主机向所述第二失陷主机发起的所述目标安全事件的攻击状态是否为攻击成功,如果成功,则直接构建所述第一失陷主机对所述第二失陷主机的攻击关系。如果所述第一失陷主机向所述第二失陷主机发起的所述目标安全事件的攻击状态为不能识别是否成功,则确定所述第二失陷主机的所述第一次失陷时间与所述第一失陷主机向所述第二失陷主机发起的所述目标安全事件的发起时间之间的差值。判断所述差值是否小于预设差值阈值。如果所述差值小于预设差值阈值,则判断所述第二失陷主机是否出现目标失陷行为特征,其中,所述目标失陷行为特征为所述第一失陷主机向所述第二失陷主机发起的所述目标安全事件导致的失陷行为特征。如果所述第二失陷主机出现目标失陷行为特征,则构建所述第一失陷主机对所述第二失陷主机的攻击关系。

也即,一开始只需要确定出失陷主机的主机IP地址和各个失陷主机的第一次失陷时间即可,然后确定各个所述失陷主机对应的目标安全事件信息,然后根据所述第一次失陷时间、所述目标安全事件信息构建各个所述失陷主机之间的攻击关系,具体要不要构建两个失陷主机之间的攻击关系的过程与前述的确定两个失陷主机之间的访问关系是否为攻击关系的的过程相似,只是相比于前面所述的先梳理出各个失陷主机之间的访问关系,然后再利用第一次失陷时间、目标安全事件信息确定哪些访问关系实际上为攻击关系的减法式做法不同,本处采用的是直接从零开始构建各个失陷主机之间的攻击关系的方法。

参见图10所示,本申请实施例公开了一种攻击路径图构建装置,包括:

第一信息确定模块11,用于确定目标内网中在过去预设时长内处于失陷状态的失陷主机的信息,其中,所述失陷主机的信息包括各个所述失陷主机之间的访问关系及各个所述失陷主机的第一次失陷时间;

第二信息确定模块12,用于确定各个所述失陷主机对应的目标安全事件信息;

攻击路径图构建模块13,用于根据所述第一次失陷时间、所述目标安全事件信息确定各个所述失陷主机之间的访问关系是否为攻击关系,并利用各个所述失陷主机之间的攻击关系构建各个所述失陷主机之间的攻击路径图。

可见,本申请应用于网络安全设备,先确定所述网络安全设备对应的目标内网中在过去预设时长内处于失陷状态的失陷主机的信息,其中,所述失陷主机的信息包括各个所述失陷主机之间的访问关系及各个所述失陷主机的第一次失陷时间。然后根据所述网络安全设备中的告警信息确定出各个所述失陷主机对应的目标安全事件信息,其中,所述目标安全事件信息对应的目标安全事件为具有横向传播能力的安全事件。接着还需要根据所述第一次失陷时间、所述目标安全事件信息对各个所述失陷主机之间的访问关系进行梳理,以构建各个所述失陷主机之间的攻击路径图。并将所述攻击路径图中所述第一次失陷时间最早的失陷主机作为最早开始传播病毒的主机。由此可见,本申请中是对目标内网中各个失陷主机之间的攻击路径进行自动梳理,从而节约了现有技术中需要人工梳理攻击路径图所浪费的人力成本和时间成本,减少攻击路径图梳理及溯源所消耗的时间,提高攻击路径图构建效率,且在攻击路径图构建过程中,用到的是各个失陷主机的第一次失陷时间以及具有横向传播能力的安全事件的信息对攻击路径图进行梳理,从而可以确切地确定出第一个失陷的主机的信息,从而有效还原攻击传播路径,提高溯源准确率。

在一些具体的实施过程中,所述攻击路径图构建装置,还包括:

溯源模块,用于将所述攻击路径图中所述第一次失陷时间最早的失陷主机作为最早开始传播病毒的主机。

在一些具体的实施过程中,所述第一信息确定模块11,用于:

根据所述目标内网对应的网络安全设备中的过去预设时长内的会话信息梳理出所述目标内网中各个主机之间的整体访问关系;

根据所述网络安全设备中的目标文件从各个所述主机中确定出在过去预设时长内处于失陷状态的失陷主机的主机IP地址及各个所述失陷主机的第一次失陷时间,其中,所述目标文件中包括所述目标内网中各个所述主机的安全状态字段;

将所述整体访问关系中的非失陷主机之间的访问关系删除,并保留所述失陷主机之间的访问关系,得到各个所述失陷主机之间的访问关系;

将所述失陷主机的主机IP地址、各个所述失陷主机之间的访问关系及所述第一次失陷时间作为所述失陷主机的信息。

在一些具体的实施过程中,所述攻击路径图构建模块13,用于:

根据所述第一次失陷时间、所述目标安全事件信息确定各个所述失陷主机之间的访问关系是否为攻击关系,并将各个所述失陷主机之间的访问关系中不为攻击关系的访问关系删除,得到各个所述失陷主机之间的攻击关系;

利用各个所述失陷主机之间的攻击关系、各个所述攻击关系对应的目标安全事件的类型及对应的发起时间构建各个所述失陷主机之间的攻击路径图。

在一些具体的实施过程中,所述攻击路径图构建模块13,用于:

判断第一失陷主机的所述第一次失陷时间是否早于第二失陷主机的所述第一次失陷时间,并根据所述目标安全事件信息判断所述第一失陷主机是否向所述第二失陷主机发起过目标安全事件;

如果第一失陷主机的所述第一次失陷时间早于第二失陷主机的所述第一次失陷时间,且所述第一失陷主机向所述第二失陷主机发起过所述目标安全事件,则根据所述第一失陷主机向所述第二失陷主机发起的所述目标安全事件的攻击状态判断所述第一失陷主机对所述第二失陷主机的第一访问关系是否为攻击关系。

在一些具体的实施过程中,所述攻击路径图构建模块13,用于:

如果所述第一失陷主机向所述第二失陷主机发起的所述目标安全事件的攻击状态为攻击成功,则判定所述第一失陷主机对所述第二失陷主机的第一访问关系为攻击关系;

如果所述第一失陷主机向所述第二失陷主机发起的所述目标安全事件的攻击状态为不能识别是否成功,则确定所述第二失陷主机的所述第一次失陷时间与所述第一失陷主机向所述第二失陷主机发起所述目标安全事件的发起时间之间的差值;

判断所述差值是否小于预设差值阈值;

如果是,则判断所述第二失陷主机是否出现目标失陷行为特征,其中,所述目标失陷行为特征为所述第一失陷主机向所述第二失陷主机发起的所述目标安全事件导致的失陷行为特征;

如果是,则判定所述第一失陷主机对所述第二失陷主机的第一访问关系为攻击关系。

在一些具体的实施过程中,所述攻击路径图构建模块13,用于:

如果所述第一失陷主机和所述第二失陷主机之间存在所述第二失陷主机对所述第一失陷主机的第二访问关系,则判定所述第二失陷主机对所述第一失陷主机的第二访问关系不为攻击关系。

在一些具体的实施过程中,所述攻击路径图构建模块13,用于:

如果存在除了所述第一失陷主机之后的至少一个失陷主机对所述第二失陷主机的第三访问关系,且对应的所述第一次失陷时间早于第二失陷主机的所述第一次失陷时间,且向所述第二失陷主机发起过所述目标安全事件且对应的攻击状态为攻击成功,则判定所述第三失陷主机对所述第二失陷主机的第三访问关系为攻击关系。

参见图11所示,本申请实施例公开了一种攻击路径图构建装置,包括:

第三信息确定模块21,用于确定目标内网中在过去预设时长内处于失陷状态的失陷主机的主机IP地址及各个所述失陷主机的第一次失陷时间;

第四信息确定模块22,用于确定出各个所述失陷主机对应的目标安全事件信息;

攻击路径图构建模块23,用于根据所述主机IP地址、所述第一次失陷时间、所述目标安全事件信息构建各个所述失陷主机之间的攻击关系,并利用各个所述失陷主机之间的攻击关系构建各个所述失陷主机之间的攻击路径图。

进一步的,参见图12所示,本申请实施例还公开了一种网络安全设备,包括:处理器31和存储器32。

其中,所述存储器,用于存储计算机程序;所述处理器,用于执行所述计算机程序,以实现前述实施例中公开的攻击路径图构建方法。

其中,关于上述攻击路径图构建方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。

进一步的,本申请实施例还公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述任一实施例中公开的攻击路径图构建方法。

其中,关于上述攻击路径图构建方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

最后,还需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得一系列包含其他要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本申请所提供的一种攻击路径图构建方法、装置、设备、介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

相关技术
  • 一种攻击路径图构建方法、装置、设备、介质
  • 一种查询图构建方法、装置、电子设备及计算机存储介质
技术分类

06120113269976