自动适配训练好的异常检测器以应对软件补丁
在软件开发过程中,软件补丁的发布是常见的操作,它可以修复软件中的漏洞、改进性能等。然而,当软件应用了补丁后,原本训练好的异常检测器可能无法准确地检测新软件中的异常行为。本文将介绍一种转换算法,用于自动调整训练好的异常检测器以适应软件补丁。
转换算法概述
假设我们有一个程序 P 的执行图 egP,并且发布了 P 的补丁,得到了新程序 Q。我们的转换算法旨在通过利用 egP、二进制差异分析工具的输出以及对 Q 的静态分析,来获得新程序 Q 的执行图 egQ。
设计转换算法有两个重要要求:
1. egQ 要保留原始执行图模型的合理性,即只接受与 cfgQ 一致的系统调用序列。
2. 尽可能减少模型对异常行为敏感性的衰减,保留黑盒和灰盒模型的优势,即 egQ 不应接受在训练时未观察到的系统调用行为,即使 cfgQ 可能接受这些行为。
为了满足这些要求,算法按以下步骤执行:
1. 尽可能在 egQ 中创建与 egP 中节点和边相对应的部分。
2. 向 egQ 中添加新的节点和边,以适应 P 和 Q 之间的变化。
3. 以最小化 egQ 接受的系统调用行为集的方式执行上述两个任务。
具体来说,算法分为以下四个步骤:
1. 复制匹配的节点和边(copy()) :当函数 f 和 g 匹配(f ∼g)时,将 esgf 中匹配的部分复制到 esgg 中。
2. 处理 g 的未匹配部分(diff()) :分析 g 中未匹配的部分,为 esgg 创建更多的节点和边。
3
超级会员免费看
订阅专栏 解锁全文
270

被折叠的 条评论
为什么被折叠?



