发明内容
有鉴于此,有必要提供一种安全知识图谱的构建方法、系统、计算机设备及计算机可读存储介质,以解决当前海量安全数据的组织和管理效率低下的技术问题。
为实现上述目的,本发明实施例提供了安全知识图谱的构建方法,所述方法步骤包括:
从安全数据中提取出多个安全实体,所述多个安全实体为关联于信息安全的实体;
获取所述多个安全实体中各个安全实体之间的关系数据;及
根据各个安全实体以及各个安全实体之间的关系数据,构建由多个三元组组成的安全知识图谱。
示例性的,所述安全知识图谱的构建方法,还包括:
计算每个安全实体和所述多个安全实体中的其他安全实体之间的跳转概率,以构建所述安全知识图谱的跳转矩阵。
示例性的,计算每个安全实体和所述多个安全实体中的其他安全实体之间的跳转概率,以构建所述安全知识图谱的跳转矩阵,包括:
根据所述多个安全实体,定义安全实体集V={v1,v2…,vn};
计算所述安全实体集V中的各个安全实体之间的跳转概率
根据各个安全实体之间的跳转概率,构建n*n的跳转矩阵J[i][j];
其中,P(vi/vj)表示安全实体i到安全实体j的跳转概率,G[i][j]表示安全实体i和安全实体j是否存在边关系,0<i≤n,0<j≤n,n表示所述多个安全实体的数量。
示例性的,所述安全知识图谱的构建方法,还包括:
S1:根据第k批安全数据生成第k个实体关系图矩阵;
S2:根据所述第k个实体关系图矩阵,计算出第k个跳转矩阵;
S3:将所述第k个跳转矩阵与第k-1个实体等级序列进行计算,得到第k个实体等级序列;
S4:循环执行步骤S1~S3直至k等于m,将所述第m个实体等级序列确定为目标实体等级序列;
其中,所述1≤k≤m,所述第m-1个实体等级序列与第m个实体等级序列之间的差异度小于预设阈值,所述第一个实体等级序列是根据第一个跳转矩阵与初始实体等级序列计算得到的,所述初始实体等级序列中的各个安全实体对应的初始等级均为1/n。
示例性的,所述安全知识图谱的构建方法,还包括:
接收搜索条件,所述搜索条件包括安全实体的安全类别;
根据所述搜索条件在所述安全知识图谱中进行安全实体匹配,以得到多个目标安全实体;
根据所述目标实体等级序列获取各个目标安全实体的安全实体等级;及
根据各个目标安全实体的安全实体等级,对所述多个目标安全实体进行排序以得到目标安全实体列表。
示例性的,所述的安全知识图谱的构建方法,还包括基于所述安全知识图谱的遍历操作:
根据各个安全实体对应的安全实体等级,断开遍历操作过程中的当前安全实体与部分关联安全实体之间的连接,所述关联安全实体为与所述当前安全实体具有连接关系的安全实体。
为实现上述目的,本发明实施例还提供了一种安全知识图谱的构建系统,所述系统包括:
提取模块,用于从安全数据中提取出多个安全实体,所述多个安全实体为关联于信息安全的实体;
获取模块,用于获取所述多个安全实体中各个安全实体之间的关系数据;及
构建模块,用于根据各个安全实体以及各个安全实体之间的关系数据,构建由多个三元组组成的安全知识图谱。
示例性的,所述系统还包括计算模块,用于计算每个安全实体和所述多个安全实体中的其他安全实体之间的跳转概率,以构建所述安全知识图谱的跳转矩阵。
为实现上述目的,本发明实施例还提供了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被处理器执行时实现如上述的安全知识图谱的构建方法的步骤。
为实现上述目的,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如上述的安全知识图谱的构建方法的步骤。
本发明实施例提供的安全知识图谱的构建方法、系统、计算机设备及计算机可读存储介质,通过构建安全知识图谱以对海量信息安全数据进行有效的组织和管理,解决了当前海量安全数据的组织和管理效率低下的问题,提高了安全数据的组织和管理的效率。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
以下实施例中,将以计算机设备2为执行主体进行示例性描述。
实施例一
参阅图1,示出了本发明实施例之安全知识图谱的构建方法的步骤流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以计算机设备2为执行主体进行示例性描述。具体如下。
步骤S100,从安全数据中提取出多个安全实体,所述多个安全实体为关联于信息安全的实体。
示例性的,所述安全数据是从预设数据源中获取的,所述安全数据包括文件信息、进程信息、网址信息、IP信息、域名信息、攻击者(attacker family)信息、设备信息和企业信息。所述多个安全实体包括文件标识、进程标识、网址、IP、域名、attacker family、设备标识和企业标识。
示例性的,所述安全数据可以从预设数据源中获取,所述预设数据源中的初始数据为预先收集的信息安全相关数据,其中,所述初始数据包括经过归一化处理后的信息安全相关数据。例如,所述信息安全相关数据可以是CVE(Common Vulnerabilities&Exposures,公共漏洞与暴露)中的漏洞描述信息和/或从互联网上采集到的信息安全相关信息,比如,可以是漏洞发布平台所发布的有关于公共漏洞的漏洞信息、相关新闻媒体上发布的有关于漏洞的新闻报导信息、突发的安全事件细节信息描述和相关技术人员在网络上发表的博文信息等,所述漏洞信息可以是威胁情报、木马、病毒等,比如海莲花、熊猫烧香病毒等。其中,从不同数据来源收集到的信息安全相关数据,往往会有含义相同而描述不同的信息安全信息;所以,在所述信息安全相关数据收集的过程中,可以通过归一化处理对信息安全相关信息进行整合,这样可以排除掉具有相同含义的描述和多余的描述。
步骤S102,获取所述多个安全实体中各个安全实体之间的关系数据。
示例性的,所述各个安全实体之间的关系数据包括:文件标识之间的父子关系、进程标识之间的父子关系、文件标识与进程标识之间的关系、文件标识与网址之间的关系、网址与IP之间的关系、网址与域名之间的关系、域名与attacker family之间的关系、设备标识与文件标识之间的关系,以及设备标识与企业之间的关系。
示例性的,如图2所示,文件与文件之间可以具有父子关系,例如,在A文件中还创建了多个子文件,则A文件与多个子文件具有父子关系;根据所述文件存放的位置还可以生成存在关系,例如,A文件存放在B设备中,则所述A文件与所述B设备具有存在关系;所述设备与企业具有属于关系,例如,C企业拥有B设备,则所述B设备与所述C企业具有属于关系。在操作文件时会生产出进程,即所述文件与所述进程具有生产关系;所述进程与进程之间还存在着父子关系;文件与下载该文件的网址具有下载关系,例如,A文件是从D网址上下载的,则所述D网址与A文件具有下载关系;如果文件访问过的网址,则该文件与该文件访问过的网址都具有访问关系;通过网址解析的IP与该网址具有解析关系。
步骤S104,根据各个安全实体以及各个安全实体之间的关系数据,构建由多个三元组组成的安全知识图谱。
在一些实施例中,由于构建信息安全知识图谱的知识图谱三元组的安全实体是从不同的数据来源提取到的,虽然在搜收集数据时已经对数据进行了一次数据整合,但还是会有部分具有相同含义的安全实体没有被整合到。鉴于此,针对于三元组所涉及到的安全实体,可以对这些安全实体进行聚类分析,并通过聚类分析的结果,将在同一个聚类中但是又具有不同描述信息的安全实体进行合并。并根据合并后的安全实体对三元组进行重新调整,从而可以通过调整后的三元组构建信息安全知识图谱。
在示例性的实施例中,为了能够进一步的管理和使用安全知识图谱,可以获取安全知识图谱中各个节点(即,安全实体)跳转到其他节点(即,其他安全实体)的跳转概率,即表示从一个安全实体开始进行游走到其他安全实体的概率。这些跳转概率可以用于分析数据等,如分析或预测出各个异常的概率等。
示例性的,所述安全知识图谱的构建方法,还包括:计算每个安全实体和所述多个安全实体中的其他安全实体之间的跳转概率,以构建所述安全知识图谱的跳转矩阵。
所述安全实体与安全实体之间可以通过关系数据进行连接,得到一个关系有向图,所述关系有向图可以通过用矩阵的形式来表示,将所述关系有向图中一个节点(安全实体)指向另一个节点(安全实体),定义为跳转指向,所述跳转指向用于表示两个节点有指向关系;根据所述跳转指向定义一个节点到另一个节点的跳转概率,所述跳转概率用于表示从一个实体开始进行游走到其他节点的概率;计算出所有节点的跳转概率,根据多个跳转概率生成一个伴随矩阵(跳转矩阵)。
示例性的,如图3所示,步骤S108可以通过如下步骤S300~S304实现:
步骤S300,根据所述多个安全实体,定义安全实体集V={v1,v2…,vn}。
根据所述多个安全实体,将由所述多个安全实体构成的所述关系有向图定义为G(v,e),其中,v为安全实体,e为关系数据。根据所述关系有向图G(v,e),定义安全实体集V={v1,v2…,vn},其中,安全实体集合V由所述关系有向图G(v,e)中的所有的安全实体v构成。
步骤S302,计算所述安全实体集V中的各个安全实体之间的跳转概率
假设安全实体集V中有n个安全实体,则所述安全实体集V的矩阵化表示为G[i][j],历遍所述安全实体集V中的G[i][j],可以得到所述安全实体集V中的各个安全实体之间的跳转概率P:
其中,P(vi/vj)表示安全实体i到安全实体j的跳转概率,G[i][j]表示安全实体i和安全实体j是否存在边关系,0<i≤n,0<j≤n,n表示所述多个安全实体的数量。可以理解,如果安全实体i和安全实体j不存在边关系,则安全实体i跳转到安全实体j的概率为0。如果安全实体i和h个安全实体之间分别存在边关系,则该安全实体i跳转到这h个安全实体中的各个安全实体的概率分别为1/h。
步骤S304,根据各个安全实体之间的跳转概率,构建n*n的跳转矩阵J[i][j];
由于安全实体集V中含有n个安全实体,所以构建的跳转矩阵J[i][j]为n*n的矩阵。
在示例性的实施例中,为了能够进一步的管理和使用安全知识图谱,可以获取安全知识图谱中各个节点(即,安全实体)的实体安全等级。这些实体安全等级可以用在多个场景中,后文会举例说明。根据马尔科夫随机过程理论,在一定条件下,无论初始值是什么,经过数轮的跳转矩阵的变换,安全知识图谱的各个安全实体的值会收敛到稳定值,这些稳定值即可代表各自对应的安全实体在安全知识图谱中的实体安全等级。
如图4所示,获取安全知识图谱中各个节点(即,安全实体)的实体安全等级,步骤可以包括S1~S4:
S1:根据第k批安全数据生成第k个实体关系图矩阵。
示例性的,从所述安全实体集V中获取多批安全数据,根据所述多批安全数据中的第k批安全数据生成第k批安全数据的所述关系有向图,对所述第k批安全数据的所述关系有向图以矩阵化表示,以得到第k个实体关系图矩阵。
S2:根据所述第k个实体关系图矩阵,计算出第k个跳转矩阵。
示例性的,根据所述第k个实体关系图矩阵,计算所述第k批安全数据中每个安全实体之间的跳转概率,根据所述第k批安全数据中每个安全实体之间的跳转概率,构建所述第k批安全数据的跳转矩阵。
S3:将所述第k个跳转矩阵与第k-1个实体等级序列进行计算,得到第k个实体等级序列。
示例性的,所述第k个实体等级序列Vk用于表示第k批安全数据中的每个安全数据实体中的跳转概率大小顺序。所述第k个实体等级序列Vk为所述第k个跳转矩阵与第k-1个实体等级序列Vk-1乘积:Vk=k-1*k。当k=1,k-1=0时,即,第k-1个实体等级序列Vk-1为第0个实体等级序列,其中,所述第0个实体等级序列为初始实体等级序列V0,所述初始实体等级序列V0预先设定的。
S4:循环执行步骤S1~S3直至k等于m,将所述第m个实体等级序列确定为目标实体等级序列;其中,所述1≤k≤m,所述第m-1个实体等级序列与第m个实体等级序列之间的差异度小于预设阈值,所述第一个实体等级序列是根据第一个跳转矩阵与初始实体等级序列计算得到的,所述初始实体等级序列中的各个安全实体对应的初始等级均为1/n。
示例性的,预先设定一个预设阈值,当第m个实体等级序列Vm与第m-1个实体等级序列Vm-1之间的差异度小于预设阈值时,表明所述第m个实体等级序列Vm达到稳定状态,将所述第m个实体等级序列Vm确定为目标实体等级序列;其中,Vm与Vm-1之间的差异度为Vm中的最大数值与Vm-1中的最大数值之间的差的绝对值。
示例性的,在一些实施例中:
遍历G1可以得到J1
设
第一轮:
假设经过多轮迭代,最后得到Vm:
当Vm与Vm-1之间的差异度小于预设阈值时,以Vm为目标实体等级序列。
不难理解,该目标实体等级序列中的各个数值,可以表示对应的安全实体在所述安全知识图谱中的权重等级等。该目标实体等级序列可以被使用在多个场景中,例如:用于对检索结果排序,或用于提升网络异常等分析效率。具体如下。
在示例性的实施例中,如图5所示,针对目标实体等级序列的其中一个应用示例:响应用户输入的搜索条件和目标实体等级序列,输出排列更优的搜索结果列表:
步骤S500,接收搜索条件,所述搜索条件包括安全实体的安全类别;
步骤S502,根据所述搜索条件在所述安全知识图谱中进行安全实体匹配,以得到多个目标安全实体;
步骤S504,根据所述目标实体等级序列获取各个目标安全实体的安全实体等级;
步骤S506,根据各个目标安全实体的安全实体等级,对所述多个目标安全实体进行排序以得到目标安全实体列表;及
步骤S508,输出所述目标安全实体列表。
示例性的,本实施还可以根据搜索条件在所述安全知识图谱中进行安全实体匹配,以得到排好顺序的多个安全实体。
在示例性的实施例中,针对目标实体等级序列的另一个应用示例:基于所述安全知识图谱的遍历操作:
根据各个安全实体对应的安全实体等级,断开遍历操作过程中的当前安全实体与部分关联安全实体之间的连接,所述关联安全实体为与所述当前安全实体具有连接关系的安全实体。
当安全实体对应的实体关系特别多时,则在进行深度遍历时候需要找重要的实体关系进行剪枝操作,以实现更高效多层遍历目的。例如,在一些实施例中,可以根据各个安全实体对应的安全实体等级,将一些安全实体等级低于一个预设值时,则断开当前安全实体与关联安全实体之间的连接,不难理解,在知识图谱中安全实体等级越低则说明当前安全实体与关联安全实体之间的关系越低,断开关联性低的关联安全实体之间的连续,继续历遍关联性高的关联安全实体,以实现更高效多层遍历目的。
实施例二
图6为本发明安全知识图谱的构建系统实施例二的程序模块示意图。数据异常解析系统20可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述安全知识图谱的构建方法。本发明实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述数据异常解析系统20在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能:
提取模块200,用于从所述安全数据中提取出多个安全实体,所述多个安全实体为关联于信息安全的实体。
获取模块202,用于获取所述多个安全实体中各个安全实体之间的关系数据。
构建模块204,用于根据各个安全实体以及各个安全实体之间的关系数据,构建由多个三元组组成的安全知识图谱。
示例性的,所述系统还包括计算模块,用于计算每个安全实体和所述多个安全实体中的其他安全实体之间的跳转概率,以构建所述安全知识图谱的跳转矩阵。
示例性的,所述计算模块,还用于:根据所述多个安全实体,定义安全实体集V={v1,v2…,vn};计算所述安全实体集V中的各个安全实体之间的跳转概率根据各个安全实体之间的跳转概率,构建n*n的跳转矩阵J[i][j];其中,P(vi/vj)表示安全实体i到安全实体j的跳转概率,G[i][j]表示安全实体i和安全实体j是否存在边关系,0<i≤n,0<j≤n,n表示所述多个安全实体的数量。
示例性的,所述系统还包括生成模块,用于根据第k批安全数据生成第k个实体关系图矩阵;根据所述第k个实体关系图矩阵,计算出第k个跳转矩阵;将所述第k个跳转矩阵与第k-1个实体等级序列进行计算,得到第k个实体等级序列;循环执行步骤S1~S3直至k等于m,将所述第m个实体等级序列确定为目标实体等级序列;其中,所述1≤k≤m,所述第m-1个实体等级序列与第m个实体等级序列之间的差异度小于预设阈值,所述第一个实体等级序列是根据第一个跳转矩阵与初始实体等级序列计算得到的,所述初始实体等级序列中的各个安全实体对应的初始等级均为1/n。
示例性的,所述生成模块,还用于接收搜索条件,所述搜索条件包括安全实体的安全类别;根据所述搜索条件在所述安全知识图谱中进行安全实体匹配,以得到多个目标安全实体;根据所述目标实体等级序列获取各个目标安全实体的安全实体等级;根据各个目标安全实体的安全实体等级,对所述多个目标安全实体进行排序以得到目标安全实体列表;及输出所述目标安全实体列表。
示例性的,所述生成模块,还用于基于所述安全知识图谱的遍历操作:根据各个安全实体对应的安全实体等级,断开遍历操作过程中的当前安全实体与部分关联安全实体之间的连接,所述关联安全实体为与所述当前安全实体具有连接关系的安全实体。
实施例三
参阅图7,是本发明实施例三之计算机设备的硬件架构示意图。本实施例中,所述计算机设备2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。该计算机设备2可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图7所示,所述计算机设备2至少包括,但不限于,可通过系统总线相互通信连接存储器21、处理器22、网络接口23、以及数据异常解析系统20。
本实施例中,存储器21至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备2的内部存储单元,例如该计算机设备2的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器21还可以既包括计算机设备2的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备2的操作系统和各类应用软件,例如实施例二的安全知识图谱的构建系统20的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备2的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行安全知识图谱的构建系统20,以实现实施例一的安全知识图谱的构建方法。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述计算机设备2与其他电子装置之间建立通信连接。例如,所述网络接口23用于通过网络将所述计算机设备2与外部终端相连,在所述计算机设备2与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(WidebandCode Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图3仅示出了具有部件20-23的计算机设备2,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器21中的安全知识图谱的构建系统20还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器21中,并由一个或多个处理器(本实施例为处理器22)所执行,以完成本发明。
例如,图6示出了本发明实施例二之所述实现安全知识图谱的构建系统20的程序模块示意图,该实施例中,所述安全知识图谱的构建系统20可以被划分为数据提取模块200、获取模块202和合成模块204。其中,本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述安全知识图谱的构建系统20在所述计算机设备2中的执行过程。所述程序模块200-204的具体功能在实施例二中已有详细描述,在此不再赘述。
实施例四
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于安全知识图谱的构建系统20,被处理器执行时实现实施例一的安全知识图谱的构建方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。