关于软件行为轨迹分析的模型选择,需根据具体应用场景和需求进行权衡。以下是综合多个研究模型的对比分析:
一、基于行为区间划分的模型(SBMDB)
核心思想 通过划分软件行为区间,提取区间内的行为轨迹属性(如运行轨迹和功能轨迹),并采用区间化简算法降低度量复杂度。
优势
- 提高度量效率:显著降低动态可信度量时的计算资源消耗;
- 准确性提升:能有效检测异常行为,尤其对控制流攻击有较好检测能力。
局限性
- 依赖行为区间划分质量,复杂软件结构可能影响效果。
二、基于编译器插桩的模型(SDTBT)
核心思想
在GCC编译预处理阶段插入代码,获取C程序的控制流轨迹(函数调用/基本块调用),支持选择基本块或函数调用作为验证对象。
优势
- 灵活性高:可针对不同场景选择验证粒度,降低资源消耗;
- 准确性较好:能有效提取控制流相关行为,检测基于流程的攻击。
局限性
- 需修改源代码进行插桩,部署复杂度较高。
三、其他相关模型
行为轨迹描述模型(CEMTBT): 结合运行轨迹和功能轨迹,通过化简规则降低开销,但未明确提及效率提升。 全行为路径分析模型
四、选择建议
优先考虑准确性:
若需强效攻击检测,选择SBMDB或SDTBT;
兼顾效率与灵活性:
SDTBT在编译阶段获取数据,适合持续集成环境;
复杂场景适配:
SBMDB的区间化简策略对大规模软件更友好。
建议根据实际应用场景(如安全检测、性能优化等)进行模型选型,并可结合多种方法取长补短。