基于指令特征重要性的SDC脆弱性预测方法技术

技术编号:33449737 阅读:28 留言:0更新日期:2022-05-19 00:34
本发明专利技术公开了一种基于指令特征重要性的SDC脆弱性预测方法,包括:对复杂程序进行指令特征提取;对复杂程序进行随机注入故障,获取指令SDC脆弱性值;基于基尼系数衡量指令SDC脆弱性特征T对SDC脆弱性值的重要性程度,构建指令特征重要性评估系数;通过将指令特征重要性融合到LightGBM的每个子决策树的话语权中,生成新的话语权ω以提高指令SDC脆弱性的预测精度;基于改进的LightGBM算法,构建并训练基于指令特征重要性的SDC脆弱性预测模型;得到最终的SDC脆弱性预测模型对待预测程序的进行指令SDC脆弱性预测。本发明专利技术相比其他方法具有更高的脆弱性预测精度,并且能有效降低内存消耗和计算成本,同时能适用于标准数据类型和混合数据类型,且具有轻量级和高解释性等优点。且具有轻量级和高解释性等优点。且具有轻量级和高解释性等优点。

【技术实现步骤摘要】
基于指令特征重要性的SDC脆弱性预测方法


[0001]本专利技术属于软件检测加固和可靠性与安全性领域,特别是一种基于指令特征重要性的SDC脆弱性预测方法、系统、计算机设备和存储介质。

技术介绍

[0002]随着5G通信的快速发展,晶体管在芯片制造工艺中的集成度越来越高。这些芯片广泛应用于工业自动化、医疗服务、智能家居等领域。然而,由于各种设备中巨大的资源消耗(例如CPU内核和内存)很可能导致软错误(例如信号或数据错误)。其中,静默数据损坏(SDC)是软错误中最危险的错误,在多控制、分布式存储和公共云存储中都表现为位翻转现象却无法被系统捕获。因此,准确高效地建立SDC检测模型对于保证系统可靠性和安全性至关重要。
[0003]近年来,为了准确有效地识别SDC错误,已经有很多针对SDC检测的研究。其中,故障注入技术通过随机翻转指令目的操作数,并识别错误结果来检测SDC。它虽然易于操作、检测精度较高,但对于大规模应用程序,对所有指令的每一位进行故障注入会消耗巨额的计算资源。程序分析技术通过分析故障传播的历史经验值来检测SDC,但由于动态指令的随本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于指令特征重要性的SDC脆弱性预测方法,其特征在于,所述方法包括以下步骤:步骤1,在LLVM中间代码级对复杂程序进行指令特征提取,生成指令SDC脆弱性特征T;步骤2,通过LLFI故障注入工具模拟单位翻转对复杂程序进行随机注入故障,并计算每条指令的SDC敏感因子factor(I
i
)和SDC概率P
SDC
(I
i
),最后获取指令SDC脆弱性值V
SDC
(I
i
);步骤3,基于基尼系数衡量指令SDC脆弱性特征T对SDC脆弱性值V
SDC
(I
i
)的影响关系以及重要性程度,构建指令特征重要性评估系数SI(f);步骤4,将指令特征重要性融合到LightGBM的每个子决策树的话语权中,生成新的话语权;步骤5,基于改进的LightGBM算法,构建并训练基于指令特征重要性的SDC脆弱性预测模型;步骤6,根据步骤1和步骤2生成指令SDC脆弱性样本训练集,并结合步骤5得到最终的SDC脆弱性预测模型对待预测程序的进行指令SDC脆弱性预测。2.根据权利要求1所述的基于指令特征重要性的SDC脆弱性预测方法,其特征在于,步骤1中所述指令SDC脆弱性特征T为:T=[I
type
,B
structure
,L
level
,P
operate
,F
analysis
]式中,I
type
代表指令类型,B
structure
代表基本块结构,L
level
代表指令高低位层次,P
operate
代表程序操作,F
analysis
代表执行函数分析。3.根据权利要求1所述的基于指令特征重要性的SDC脆弱性预测方法,其特征在于,步骤2中所述SDC敏感因子factor(I
i
)表示动态指令执行次数占动态指令执行总数的比例,用来衡量SDC脆弱性的敏感程度,计算公式为:式中,表示在程序运行时第i个程序指令I
i
的动态执行次数为d
i
,n为程序指令总数;所述SDC概率P
SDC
(I
i
)表示动态指令发生SDC错误的概率,计算公式为:式中,表示在所有动态指令集中第q条动态指令;表示程序故障注入后发生的SDC错误的总次数;表示目的寄存器故障注入的总次数;所述指令SDC脆弱性值V
SDC
(I
i
)表示程序执行过程中动态指令操作数的一位发生位翻转引起的SDC错误的敏感程度,计算公式为:V
SDC
(I
i
)=P
SDC
(I
i
)
×
factor(I
i
)。4.根据权利要求1或3所述的基于指令特征重要性的SDC脆弱性预测方法,其特征在于,步骤3中基于基尼系数构建指令特征重要性评估系数SI(f),具体包括:令f表示指令特征集合IF中的任意一个特征,集合IF表示为:IF={f1,f2,...,f
k
,...,f
m
}
f
k
表示第k个指令特征,m表示指令特征的数量;指令特征重要性评估系数SI(f)具体计算方式如下:步骤3

1,对于给定的指令样本集合基尼系数Gini(D)计算如下:式中,x
i
表示第i个指令样本,N表示指令样本总数,K表示指令样本集合D中有K个类别,C
k
表示第k个类别;步骤3

2,将指令特征f样本集合D分割成M个子样本,对于指令样本集合D的基尼系数Gini(D,f)表示为:式中,Gini(D
m
)表示第m个子样本D
m
的基尼系数;步骤3

3,进行最大化基尼下降,指令特征f的基尼下降定义为:GD(f)=Gini(D)

Gini(D,f)步骤3

4,在节点分裂后随机排列每个特征的值,SI(f)通过“袋外OOB”样本的平均基尼系数下降计算得到:式中,DT
f
是指令特征f中决策树的数量,f...

【专利技术属性】
技术研发人员:顾晶晶方文涛
申请(专利权)人:南京航空航天大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1