本发明属于电力系统网络安全领域,具体讲涉及一种网络攻击图生成方法和系统。
背景技术:
由于网络是由大量主机相互连接组成的,所以在网络安全分析中,孤立地分析某个主机上的脆弱性存在一定的局限性,只有把网络中的脆弱性综合起来分析,才能更好地发现网络可能存在的潜在攻击。攻击图技术能够把网络中各主机上的脆弱性关联起来进行深入地分析,从而获取网络中潜在的安全威胁,并把这些威胁网络安全的攻击路径用图的方式展示出来,使安全管理人员能够直观地把握网络的脆弱性之间的关系。安全管理人员通过分析攻击图中所有攻击路径,可以选择代价最小的方法对网络安全进行维护。
目前已涌现出了多种攻击图构建方法,通过对现有方法进行总结分析发现,利用现有方法构建攻击图存在以下两方面的不足:第一,在现实的应用中,网络安全管理人员不仅需要知道攻击者可能从哪些路径入侵目标主机,还应该了解攻击者能够入侵网络内的哪些主机,但是现有的攻击图构建方法大部分只能用于分析单一攻击目标的安全性。第二,攻击图构建过程存在复杂度高、扩展性能低、状态爆炸等问题,导致攻击图生成时的系统资源消耗较大,从而难以适用于大规模复杂网络系统。
技术实现要素:
为克服上述现有技术的不足,本发明提出一种网络攻击图生成方法和系统,将攻击图构建过程分解为若干子任务,采用并行处理技术,在多个处理器上处理子任务,最终将子攻击图融合为整体攻击图,有效减少了攻击图生成时间,优化了系统资源利用。
实现上述目的所采用的解决方案为:
一种网络攻击图生成方法,其改进之处在于:
根据电力信息网络的子网可达关系,生成多个子任务;
将所述多个子任务分配到多台处理器上进行处理,生成多个子攻击图;
根据所述多个子攻击图、实际攻击者的初始权限以及在攻击过程中取得的权限,确定所述子攻击图中所述权限前提成立的攻击路径;
所有所述攻击路径构成网络攻击图。
本发明提供的第一优选技术方案,其改进之处在于,所述根据电力信息网络的子网可达关系,生成多个子任务,包括:
读取所述电力信息网络的信息,所述信息包括所述电力信息网络中存在的所有主机上的脆弱性、主机之间的可达关系、子网信息以及实际攻击者的初始能力;
遍历所述电力信息网络中的所有子网,判断子网两两之间是否存在直接可达关系;
若两子网存在直接可达关系,则建立子任务。
本发明提供的第二优选技术方案,其改进之处在于,所述子网两两之间存在直接可达关系包括:所述两个子网不同但子网中的主机相互可达,或者,两个子网为同一个子网。
本发明提供的第三优选技术方案,其改进之处在于,所述主机为与所述电力信息网络连接且具有漏洞的实体。
本发明提供的第四优选技术方案,其改进之处在于,在所述生成子任务之后、将所述子任务分配到多台处理器上进行处理之前,还包括:
将所有子任务加入任务集合t,所述任务集合t为向量<tc,ts,tg>的集合;其中:tc为子任务,ts为子任务中源子网,tg为子任务中目的子网;所述集合t初值为空。
本发明提供的第五优选技术方案,其改进之处在于,所述将所述多个子任务分配到多台处理器上进行处理,生成多个子攻击图,包括:通过并行执行的多个线程循环读取子任务信息,并根据读取的子任务信息读取源子网ts和目的子网tg中的主机脆弱性信息以及主机的可达关系;
在所述主机脆弱性的前提属性满足攻击规则库所提供的攻击模式时,将前提属性与攻击模式、以及攻击模式与后果属性用有向箭头连接,组成子攻击图;
所述后果属性包括攻击主机后产生的主机状态的变化;所述攻击模式包括在满足前提属性条件下可实施的攻击行为。
本发明提供的第六优选技术方案,其改进之处在于,所述根据所述多个子攻击图、实际攻击者的初始权限以及在攻击过程中取得的权限,确定所述子攻击图中所述权限前提成立的攻击路径,包括:
(1)读取攻击者具有初始权限的子网,将所述具有初始权限的子网定义为源子网,并将源子网存入攻击路径中;
(2)基于所述子攻击图确定所述源子网可达的子网为目的子网;
(3)若所述目的子网为多个,则逐一选择目的子网和对应的子任务,执行下一步,否则直接执行下一步;
(4)如果所述源子网对应的权限满足攻击模式,则将所述目的子网以及攻击模式存储到攻击路径中,并将所述目的子网设为新的源子网,并跳转到步骤(2)直到没有新的目的子网。
本发明还提供了一种网络攻击图生成系统,其改进之处在于,包括任务分解模块、子攻击图生成模块和综合计算模块;
所述任务分解模块用于根据电力信息网络的子网可达关系,把攻击图生成过程分解为多个子任务;
所述子攻击图生成模块用于将所述多个子任务分配到多台处理器上进行处理,生成多个子攻击图;
所述综合计算模块用于根据所有所述子攻击图、实际攻击者初始权限以及在攻击过程中取得的权限,确定所述子攻击图中所述权限前提成立的攻击路径,综合所有所述攻击路径构成网络攻击图。
本发明提供的第七优选技术方案,其改进之处在于,所述任务分解模块包括信息读取子单元、可达关系判断子单元和子任务计算子单元;
所述信息读取子单元用于读取所述电力信息网络的信息,所述信息包括所述电力信息网络中存在的所有主机上的脆弱性、主机之间的可达关系、子网信息以及实际攻击者的初始能力;
所述可达关系判断子单元用于遍历所述电力信息网络中的所有子网,判断子网两两之间是否存在直接可达关系;
所述子任务计算子单元用于若两子网存在直接可达关系,则建立子任务。
本发明提供的第八优选技术方案,其改进之处在于,所述子攻击图生成模块包括子任务读取子单元和子攻击图生成子单元;
所述子任务读取子单元用于通过并行执行的多个线程循环读取子任务信息,并根据读取的子任务信息读取源子网和目的子网中的主机脆弱性信息以及主机的可达关系;
所述子攻击图生成子单元用于在所述主机脆弱性的前提属性是否满足攻击规则库所提供的攻击模式时,将前提属性、后果属性、攻击模式和连接关系融合,组成子攻击图。
与最接近的现有技术相比,本发明具有的有益效果如下:
本发明可实现对电力信息网络的整体安全性评价,能够表达出所有可达的网络状态及其相应的攻击路径。采用分布处理技术,将攻击图生成过程分解为若干子任务,提高了攻击图的生成效率,减少了攻击图冗余信息,并且降低了攻击图生成时的系统资源消耗,能够用于评估大规模复杂网络系统的整体安全性。
附图说明
图1为本发明提供的一种网络攻击图生成方法流程示意图;
图2为本发明提供的一种网络攻击图生成方法原理示意图。
具体实施方式
下面结合附图对本发明的具体实施方式做进一步的详细说明。
本发明提供了一种网络攻击图生成方法,该方法流程如图1所示,包括:
根据电力信息网络的子网可达关系,生成多个子任务;
将多个子任务分配到多台处理器上进行处理,生成多个子攻击图;
根据多个子攻击图、实际攻击者的初始权限以及在攻击过程中取得的权限,确定子攻击图中权限前提成立的攻击路径;
所有攻击路径构成网络攻击图。
其中,所述权限前提成立的攻击路径是指以攻击者攻击过程中不断增加的权限为前提,匹配攻击规则库的攻击模式,将存在连通性且满足攻击模式前提条件的路径,即前提属性与攻击模式做有向连接。
该方法的原理如图2所示。
具体的,根据电力信息网络的子网可达关系,生成多个子任务包括:
1-1、读取电力信息网络的信息,该信息可以包括电力信息网络中所有主机上的脆弱性、主机之间的可达关系、子网信息以及实际攻击者的初始能力等;
在进行测试时,主机上的脆弱性以及攻击者初始能力,都可以由人工设置。
其中,主机可以指与网络连接且具有漏洞的实体,例如可以包括个人电脑、终端、计算服务器和数据库服务器等,子网可以包含多个主机,子网包含的主机数量也可以人为规定;攻击者在实施攻击时,考虑的包含漏洞信息、服务和端口号等的信息,可以统称为脆弱性信息;
1-2、遍历电力信息网络中的所有子网,判断子网两两之间是否存在直接可达关系;
1-3、若两子网存在直接可达关系,则建立子任务,将所有子任务加入任务集合t,其中任务集合t为向量<tc,ts,tg>的集合;tc为子任务,ts为子任务中源子网,tg为子任务中目的子网;集合t初值为空。
其中,子网两两之间存在直接可达关系可以包括:两个子网不同但子网中的主机相互可达,或者,两个子网为同一个子网。
在多个处理器上并行处理所述子任务,生成子攻击图可以包括:
2-1、设置并行执行的线程个数,默认为处理器个数;
2-2、通过并行执行的多个线程循环读取t中子任务信息,并根据读取的子任务信息读取源子网ts和目的子网tg中的主机脆弱性信息以及主机的可达关系;
2-3、判断主机脆弱性的前提属性是否满足攻击规则库所提供的攻击模式,如果满足,将前提属性、后果属性、攻击模式和连接关系融合,组成子攻击图并将子攻击图信息加入攻击图集合g中,该攻击图集合g初值为空。
其中,后果属性可以包括攻击主机后产生的主机状态的变化;攻击模式可以包括在满足前提属性条件下可实施的攻击行为;连接关系可以包括前提属性与攻击模式、以及攻击模式与后果属性的连接;攻击模式和后果属性可以根据前提属性读取自预先设定的攻击规则库;融合是根据连接关系将前提属性、后果属性、攻击模式用有向箭头连接。
根据多个子攻击图、实际攻击者的初始权限以及在攻击过程中取得的权限,确定子攻击图中权限前提成立的攻击路径,可以包括:
3-1、将攻击者开始攻击时拥有的初始权限加入攻击者初始能力集合haspri0,攻击者所在子网加入攻击者获取权限的子网集合ns,其初值为空集;ns为元素ns的集合,其中ns为攻击者获取权限的子网;
3-2、读取ns,s为当前获取的ns中的元素,haspris为攻击者攻击子网s中主机后所获得后果属性的集合,若获取的s为攻击者所在的子网,则此时的haspris即为haspri0;haspris为向量<mc,ju>的集合,其中mc表示主机,ju表示攻击该主机后获取的权限;
3-3、搜索源子网和目的子网相同的子攻击图,具体为令c为ts=tg=s的子任务,若子任务c对应的前提属性在集合haspris中存在,则将子任务c对应的后果属性加入haspris,并将子任务c对应的前提属性、后果属性、攻击模式和连接关系加入网络攻击图;
3-4、搜索源子网和目的子网不同的子攻击图,具体为令nt为需要进行结果融合的子任务集合,其初值为空集,遍历任务集合t,若t中子任务的ts=s且ts≠tg,则将该子任务加入集合nt;遍历集合nt,令c=tc,若子任务c对应的前提属性在集合haspris中存在,则将子任务c对应的后果属性加入haspris,将子任务c对应的前提属性、后果属性、攻击模式和连接关系加入所述网络攻击图,并判断子任务c对应的tg在ns中是否存在,若ns中不存在tg,则将tg加入ns;其中nt为元素nt的集合,nt表示任务集合t中ts=s且ts≠tg的子任务;
3-5、读取ns,若ns中存在未被读取过的元素,则跳转至步骤3-3,否则结束。
基于同一发明构思,本发明还提供了一种网络攻击图生成系统,由于这些设备解决技术问题的原理与所述网络攻击图生成方法相似,重复之处不再赘述。
所述网络攻击图生成系统可以包括任务分解模块、子攻击图生成模块和综合计算模块;
任务分解模块用于根据电力信息网络的子网可达关系集合,把攻击图生成过程分解为多个子任务,所有子任务构成任务集合t;
子攻击图生成模块用于将所述子任务分配到多台处理器上进行处理,生成子攻击图;
综合计算模块用于综合所有所述子攻击图,利用实际攻击者初始权限以及在攻击过程中取得的权限,搜索子攻击图中权限前提成立的攻击路径,综合所有攻击路径构成网络攻击图。
其中任务分解模块包括信息读取子单元、可达关系判断子单元和子任务计算子单元;
信息读取子单元用于读取电力信息网络的信息,该信息包括电力信息网络中存在的所有主机上的脆弱性、主机之间的可达关系、子网信息以及攻击者初始能力;
可达关系判断子单元用于遍历电力信息网络中的所有子网,判断子网两两之间是否存在直接可达关系;
子任务计算子单元用于若两子网存在直接可达关系,则建立子任务,并将子任务加入任务集合t。
子攻击图生成模块包括线程设置子单元、子任务读取子单元和子攻击图生成子单元;
线程设置子单元用于设置并行执行的线程个数,默认为处理器个数;
子任务读取子单元用于通过多个线程循环读取t中子任务信息,并根据读取的子任务信息读取源子网ts和目的子网tg中的主机脆弱性信息以及主机的可达关系;
子攻击图生成子单元用于判断主机脆弱性的前提属性是否满足攻击规则库所提供的攻击模式,如果满足,将前提属性、后果属性、攻击模式和连接关系融合,组成子攻击图并将子攻击图信息加入攻击图集合g中,所述攻击图集合g初值为空。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用于说明本申请的技术方案而非对其保护范围的限制,尽管参照上述实施例对本申请进行了详细的说明,所属领域的普通技术人员应当理解:本领域技术人员阅读本申请后依然可对申请的具体实施方式进行种种变更、修改或者等同替换,但这些变更、修改或者等同替换,均在申请待批的权利要求保护范围之内。