" 在真实安全分析场景中,相比于这段代码"有没有漏洞",安全工程师往往更关心的是:这是什么类型的漏洞?是缓冲区溢出、空指针解引用,还是资源泄漏?多类别漏洞预测不仅更贴近实际需求,也对模型提出了更高要求,模型既要具备强大的表示能力,又要能够捕捉不同漏洞类型背后的逻辑约束与判别规则。
为此,研究者提出了MC-LRNN:一种将逻辑推理能力与神经网络表示学习相结合的多类别漏洞预测模型。"
- 📄 论文标题:MC-LRNN: A Logic-Based Neural Network for Multi-Class Software Vulnerability Prediction
📅 发表时间:The Journal of Systems & Software, 2025
🏫 作者单位:华东师范大学、广岛大学
01---方法介绍
MC-LRNN 的核心思想是:不同类型的漏洞,往往遵循不同的程序逻辑模式,而这些模式不能完全依赖数据自动学出来。因此,论文将漏洞检测建模为一个"数据驱动+逻辑约束"的联合学习问题,整体流程可概括为三步:
① 程序特征抽取
从源代码中提取与漏洞相关的语法与语义特征。
② 逻辑规则建模
引入人工定义或归纳得到的漏洞逻辑规则。
③ 神经-逻辑联合推理
通过逻辑增强的神经网络完成多类别预测。

图 1. MC-LRNN整体流程
小结:MC-LRNN 不只是"学模式",而是"在规则约束下学习"。
02---关键机制
- 多类别漏洞预测视角,超越二分类,更贴近真实安全需求。
- 逻辑与神经网络融合,弥补纯深度学习可解释性不足的问题。
- 规则约束学习,降低类别混淆,提高预测稳定性。
- 更强泛化能力,在样本不均衡场景下表现更稳健。
| 模块 | 设计思路 | 作用 |
|---|---|---|
| 特征表示层 | 编码代码语法与语义信息 | 为漏洞预测提供基础表示 |
| 逻辑规则层 | 建模不同漏洞类型的判别逻辑 | 约束模型预测空间 |
| 逻辑递归神经网络 | 融合规则与神经表示 | 实现联合推理与学习 |
| 多类别输出层 | Softmax 多分类 | 预测具体漏洞类型 |
小结:逻辑不是"事后解释",而是直接参与模型决策过程。
03---实验结果
实验选择了三个广泛使用的漏洞数据集来评估提出的方法:REVEAL、SATE IV Juliet和SARD。主要实验结果如下。
(1)项目内预测结果。表1、2和3详细比较了MC-LRNN模型与基线模型在Juliet、SARD和REVEAL数据集上的数值表现。
表1. Juliet数据集上的结果(二分类)

表2. SARD数据集上的结果(多类分类)

表3. REVEAL数据集上的结果(类别不平衡的二分类)

(2)实验还考虑了跨项目预测,即模型在一个数据集上进行训练,在另一个数据集上进行测试。为确保标签一致性,将Juliet和SARD数据集均视为二元分类问题。结果如表4和表5所示。
表4. 跨项目结果:在Juliet上训练,在SARD(二分类)上测试

表5. 跨项目结果:在SARD上训练,在Juliet上测试(二分类)

**小结:**实验结果表明,在Juliet、SARD和REVEAL数据集上MC-LRNN的表现优于大多数相关模型,同时还能有效缓解现实场景中类别不平衡的影响。MC-LRNN能够通过一阶逻辑规则推断出与漏洞样本相关的软件指标。将这些推断出的指标作为模型属性,引入了一种新颖的特征工程方法。
📌 总结
MC-LRNN 为多类别软件漏洞预测提供了一种新的建模范式:不是在神经网络之外谈规则,而是让规则直接成为网络的一部分。
这一工作表明,未来漏洞检测模型的一个重要方向,可能正是:从纯数据驱动,走向"神经 + 逻辑"的协同智能。
📣 欢迎留言讨论
-
你认为逻辑规则在漏洞检测中应扮演多大的角色?
-
在工业场景中,规则维护成本与模型收益该如何权衡?
📌 点赞 + 收藏 + 分享,你的支持,是我们持续解析高水平软件安全论文的最大动力!