Architecting software monitors for control-flow anomaly detection through large language models and conformance checking
作者: Francesco Vitale, Francesco Flammini, Mauro Caporuscio, Nicola Mazzocca
分类: cs.SE, cs.LG
发布日期: 2025-11-14
💡 一句话要点
提出基于大语言模型和一致性检验的软件监控架构,用于控制流异常检测
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 控制流异常检测 大语言模型 一致性检验 软件监控 源代码插桩
📋 核心要点
- 现代计算机系统日益复杂,运行时可能出现设计时未知的控制流异常,传统验证方法难以完全覆盖。
- 利用大语言模型连接设计模型与代码,自动化源代码插桩,生成事件日志,再通过一致性检验检测异常。
- 在ERTMS/ETCS案例研究中,该方法实现了较高的控制流覆盖率和异常检测性能,F1分数高达96.610%。
📝 摘要(中文)
现代计算机系统的复杂性使其可靠性保障面临挑战。尽管系统在设计时经过验证,但运行时行为可能存在差异,出现因“未知未知”导致的控制流异常。本文旨在通过软件监控检测控制流异常,该方法通过记录软件执行并检测与预期控制流的偏差来验证运行时行为。我们提出了一种利用大型语言模型(LLM)和一致性检验开发用于控制流异常检测的软件监控器的方法。该方法建立在现有软件开发实践的基础上,以保持传统的验证与确认,同时提供额外的鲁棒性和可信度。它利用LLM连接设计时模型和实现代码,从而实现源代码插桩的自动化。通过一致性检验分析生成的事件日志,这是一种可解释且有效的控制流异常检测技术。在欧洲铁路交通管理系统/欧洲列车控制系统(ERTMS/ETCS)的案例研究中验证了该方法,结果表明,基于LLM的源代码插桩可以实现参考设计时过程模型高达84.775%的控制流覆盖率,随后基于一致性检验的异常检测达到了96.610%的F1分数和93.515%的AUC的峰值性能。
🔬 方法详解
问题定义:论文旨在解决现代复杂软件系统中难以检测的控制流异常问题。现有方法,如传统的静态分析和测试,难以覆盖所有可能的运行时行为,特别是那些由“未知未知”引起的异常。这些异常可能导致系统故障,影响可靠性和安全性。因此,需要一种能够在运行时监控系统行为并检测与预期控制流偏差的方法。
核心思路:论文的核心思路是利用大语言模型(LLM)将设计时模型与实际代码联系起来,自动化源代码插桩过程,从而生成包含控制流信息的事件日志。然后,使用一致性检验技术分析这些日志,检测与预期控制流的偏差,从而发现异常。这种方法结合了LLM的自动化能力和一致性检验的可解释性,提供了一种有效的控制流异常检测方案。
技术框架:该方法的技术框架主要包括以下几个阶段:1) 设计时模型构建:构建系统的设计时模型,描述预期的控制流行为。2) LLM辅助的源代码插桩:利用LLM分析设计时模型和源代码,自动生成插桩代码,用于记录运行时的控制流事件。3) 运行时事件日志收集:执行插桩后的代码,收集运行时事件日志。4) 一致性检验:使用一致性检验技术分析事件日志,检测与设计时模型的偏差,从而发现控制流异常。
关键创新:该方法最重要的技术创新点在于利用LLM自动化源代码插桩过程。传统的手工插桩耗时且容易出错,而LLM可以根据设计时模型和源代码自动生成插桩代码,大大提高了效率和准确性。此外,结合一致性检验技术,可以提供可解释的异常检测结果,帮助开发人员理解和修复问题。
关键设计:在LLM的使用上,论文强调了领域知识的重要性,通过领域知识引导LLM进行源代码插桩,可以提高插桩代码的质量和可靠性。一致性检验方面,选择合适的距离度量和阈值对于异常检测的性能至关重要。具体的LLM参数设置和一致性检验算法的选择可能需要根据具体的应用场景进行调整。
🖼️ 关键图片
📊 实验亮点
在ERTMS/ETCS案例研究中,基于LLM的源代码插桩实现了高达84.775%的控制流覆盖率。随后,基于一致性检验的异常检测达到了96.610%的F1分数和93.515%的AUC。这些结果表明,该方法能够有效地检测控制流异常,并具有较高的准确性和召回率。相较于传统方法,该方法在自动化程度和检测性能方面均有显著提升。
🎯 应用场景
该研究成果可应用于各种需要高可靠性和安全性的软件系统,例如航空航天、轨道交通、工业控制等领域。通过实时监控和异常检测,可以及时发现潜在的故障,避免严重事故的发生。此外,该方法还可以用于软件测试和调试,帮助开发人员发现和修复代码中的错误,提高软件质量。
📄 摘要(原文)
Context: Ensuring high levels of dependability in modern computer-based systems has become increasingly challenging due to their complexity. Although systems are validated at design time, their behavior can be different at run-time, possibly showing control-flow anomalies due to "unknown unknowns". Objective: We aim to detect control-flow anomalies through software monitoring, which verifies run-time behavior by logging software execution and detecting deviations from expected control flow. Methods: We propose a methodology to develop software monitors for control-flow anomaly detection through Large Language Models (LLMs) and conformance checking. The methodology builds on existing software development practices to maintain traditional V&V while providing an additional level of robustness and trustworthiness. It leverages LLMs to link design-time models and implementation code, automating source-code instrumentation. The resulting event logs are analyzed via conformance checking, an explainable and effective technique for control-flow anomaly detection. Results: We test the methodology on a case-study scenario from the European Railway Traffic Management System / European Train Control System (ERTMS/ETCS), which is a railway standard for modern interoperable railways. The results obtained from the ERTMS/ETCS case study demonstrate that LLM-based source-code instrumentation can achieve up to 84.775% control-flow coverage of the reference design-time process model, while the subsequent conformance checking-based anomaly detection reaches a peak performance of 96.610% F1-score and 93.515% AUC. Conclusion: Incorporating domain-specific knowledge to guide LLMs in source-code instrumentation significantly allowed obtaining reliable and quality software logs and enabled effective control-flow anomaly detection through conformance checking.