基于级联森林的控制流错误检测优化算法

作者:董志腾; 顾晶晶
来源:小型微型计算机系统, 2022, 43(05): 1088-1095.
DOI:10.20009/j.cnki.21-1106/TP.2020-1037

摘要

在单粒子翻转引起的瞬时故障中,控制流错误占很大比例.主流的控制流错误软件检测方法依靠插桩标签来检测控制流错误.但基于标签的检测算法很难在标签插桩的开销和错误检测率之间找到一个平衡.本文提出一种智能的基本块拆分方法,在不用修改原有检测算法的基础上,提升控制流错误的检测率,同时尽可能的减小额外开销.首先,使用GDB调试工具和LLVM Pass文件,对程序进行故障注入实验并提取特征;其次,使用级联森林模型筛选出程序中易发生控制流错误的基本块,并对其进行智能拆分,使基于标签的检测算法能够在拆分点进行标签插桩;最后,在单标签算法CFCSS和双标签算法RCFC上进行验证实验,均取得很好的实验效果.本文提出的方法几乎可以在所有的基于标签的检测算法上使用,并能在提高检错能力的同时,具有较低的时空开销.