1.一种基于脆弱性描述攻击图的电力工控系统网络攻击评估方法,其特征在于,包括以下步骤:
步骤s01,利用网络爬虫,从漏洞库中收集漏洞基本信息和漏洞描述,形成原始攻击案例;
步骤s02,对原始攻击案例进行清洗、分类与聚类,形成攻击样本;
步骤s03,构建系统网络连接拓扑:
选择目标攻击系统,根据目标攻击系统的业务流程和物理分布构建系统网络连接拓扑,确定系统中包含的设备、设备之间的通信连接和通信方向,得到设备两两之间通信关系的矩阵表达;
步骤s04,构建网络连接权限拓扑:
根据步骤s03所述的系统网络连接拓扑,获取设备间传输信息需要的权限,得到设备两两之间的通信所需最低权限的矩阵表达;
步骤s05,构建电力工控系统组件集合,其中每一个电力工控系统组件由工控设备的固有属性和设备编号构成,所述的固有属性包括设备漏洞、设备功能和设备资产价值,所述的设备漏洞由步骤s02得到;
步骤s06,构建系统状态集合,其中每一个系统状态由步骤s05构建的系统组件和攻击权限构成,表示攻击者所处的设备位置和拥有的设备权限;
步骤s07,构造基于状态的攻击图,所述攻击图由系统状态集合、攻击接入状态集合、攻击目标状态集合、状态迁移关系、攻击起始状态集合和攻击结束状态集合组成;
所述的系统状态集合由步骤s06获得;所述的攻击接入状态集合为攻击场景选定攻击的接入点对应的攻击设备的初始状态;所述的攻击目标状态集合包括系统组件为一次设备、攻击权限为修改配置或更改状态,以及系统组件为控制设备、攻击权限为发送指令或执行代码状态;所述的状态迁移关系为攻击过程中状态之间的转换关系,用于构成攻击图的边;所述攻击起始状态集合和攻击结束状态集合分别由所述状态迁移关系中已有的起始状态和结束状态构成;
步骤s08,根据步骤s07输出的攻击图构造攻击路径,结合步骤s06输出的系统状态集合计算单步攻击路径的可行性、完整攻击路径的可行性和收益,完成电力工控系统网络攻击的评估。
2.根据权利要求1所述的基于脆弱性描述攻击图的电力工控系统网络攻击评估方法,其特征在于,所述的步骤s02包括:
步骤s21,对原始攻击案例中的文本进行分词处理,并对分词后的英文单词进行词干还原和词形还原;
步骤s22,统计文本分词结果的词频数据,去除停用词;
步骤s23,构建表示攻击对象、攻击方法和攻击后果的布尔表达式集合,在步骤s22的结果中依次匹配布尔表达式,匹配成功得分为1,否则为0,根据匹配结果构成0-1向量;
步骤s24,判断s23中向量的组成,若向量中攻击对象、攻击方法或攻击后果任一部分全为0,则此向量为非典型攻击;移除非典型攻击向量,完成数据清洗;
步骤s25,根据预设的分类规则、聚类规则,对s24中的攻击向量进行降维处理,形成攻击样本;所述的分类规则和聚类规则分别对攻击对象、攻击方法、攻击后果三种特征进行分类和聚类。
3.根据权利要求1所述的基于脆弱性描述攻击图的电力工控系统网络攻击评估方法,其特征在于,步骤s03的系统网络连接拓扑中,设备两两之间的通信关系采用0或1表示,构成n×n的矩阵,矩阵中的元素c(devid1,devid2)=1表示信息能够从设备devid1传输到设备devid2,c(devid2,devid1)=0表示信息不能够从设备devid2传输到设备devid1,n为系统包含的设备数量。
4.根据权利要求1所述的基于脆弱性描述攻击图的电力工控系统网络攻击评估方法,其特征在于,所述步骤s05中每一个电力工控系统组件表示为h=(devid,func,vuls,value),其中:
devid为设备编号,在目标攻击系统的系统网络连接拓扑中,每一个设备对应一个编号;
func为设备功能编号,根据预设的分类规则将设备种类进行分类,每一类对应一项设备功能编号;
vuls={vuls1,vuls2…vulsv}表示系统漏洞,vulsi=(typei,resulti)表示第i个系统漏洞,typei为第i个系统漏洞的所属类型,resulti为第i个系统漏洞的攻击后果;
value为设备资产价值,第i个设备的资产价值的计算方法为:valuei=wi×ui×ai×w,wi为负荷因子,ui为故障影响因子,ai为权限影响因子,w为常数。
5.根据权利要求4所述的基于脆弱性描述攻击图的电力工控系统网络攻击评估方法,其特征在于,步骤s06的系统状态集合中每一个系统状态表示为s=(h,per)=((devid,func,vuls,value),{per1,per2…perp}),其中per为攻击者目前在设备devid处拥有的权限集合,peri为权限集合中的第i个权限,p为权限的数量。
6.根据权利要求1所述的基于脆弱性描述攻击图的电力工控系统网络攻击评估方法,其特征在于,所述步骤s07中的状态迁移关系包含攻击过程中状态之间的转换关系,用于构成攻击图的边;状态m与状态n之间存在迁移关系的前提是状态m和状态n对应设备之间存在网络连接,通过网络连接拓扑搜索得到,并判断是否符合迁移成功的迁移条件;
所属搜索的过程包括:
1)攻击者的状态表示为si,在网络连接拓扑c中查询条件c(si,*)=1,符合条件的设备在系统状态集合s中选择其状态,记为si+1={si+1,1,si+1,2...si+1,m},若
2)判断状态si+1,n,n∈[1,m]和状态si是否符合约束条件;
若存在si+1,n与si不满足约束,则n=n+1,重复步骤2);
若存在si+1,n与si满足约束,并且存在
若存在si+1,n与si满足约束,并且存在si+1,n∈攻击目标状态集合sg,将(si,si+1,n,si,vuls,si+1,n,vuls,si,per)计入状态迁移关系τ,此条攻击路径结束,进行路径广度搜索,n=n+1,重复步骤2);
若n+1>m,即状态{si+1,1,si+1,2...si+1,m}均已完成约束条件判断,则将si-1作为si,重复步骤1)。
7.根据权利要求6所述的基于脆弱性描述攻击图的电力工控系统网络攻击评估方法,其特征在于,所述的约束条件包括:
a)状态si+1,n的设备在第i+1个攻击步骤中没有进行过判断,满足单调性假设;
b)si+1,n的设备在本条攻击路径的前i个攻击步骤中没有进行过判断;或该设备在第k个攻击步骤中进行过判断,但第i+1个攻击步骤中设备的攻击权限大于第k个攻击步骤中设备的攻击权限,满足单调性假设;
c)si的设备存在漏洞,可作为攻击者利用的对象;
d)si+1的设备存在漏洞或si+1的设备是现场一次设备,可作为攻击者下一步攻击实施的对象;
e)攻击者在si的设备处的攻击权限≥通过si的设备作用于si+1的设备的最低权限。
8.根据权利要求1所述的基于脆弱性描述攻击图的电力工控系统网络攻击评估方法,其特征在于,所述步骤s08具体为:
s81,根据步骤s07输出的攻击图构造攻击路径,从攻击图的攻击起始状态集合i=1开始,依次在状态迁移关系中选择状态迁移路径,直到i=k且sk∈攻击结束状态集合时结束,得到一条攻击路径,该条攻击路径包括k个状态,k-1个迁移关系,即k个节点,k-1条边;
s82,单步攻击路径的可行性计算公式为:
dp(m,n)=sm.mvuls×sm.mper×sn.mvuls
式中,dp(m,n)表示单步路径可行性,sm.mvuls表示攻击开始状态的漏洞,sm.mper表示攻击开始状态的攻击权限,sn.mvuls表示攻击结束状态的漏洞;
s83,一条完整的攻击路径的可行性dp,计算公式为:
dpi=dp(i,i+1)
式中,dpi表示第i步攻击路径的可行性;
s84,一条完整的攻击路径的收益vp,计算公式为:
式中,si.value表示第i步攻击获得的设备资产。