自动调整训练好的异常检测器以适应软件补丁
1. 引言
检测进程是否被攻击(例如缓冲区溢出攻击)的一种广泛研究的方法是监控其系统调用行为。“白盒”检测器通过对源代码或二进制文件进行静态分析来构建程序系统调用行为的模型;“黑盒”(或“灰盒”)检测器则使用程序在处理预期输入时的系统调用跟踪进行训练。当系统调用行为与模型出现偏差时,就会触发警报,因为这可能表明进程中执行的代码发生了变化。
白盒方法的特点是,如果静态分析能够揭示程序可能发出的所有系统调用序列,那么它有可能实现近乎零或零误报率。而黑盒/灰盒方法由于是基于“正常”系统调用行为进行训练,因此更加敏感,能够反映被监控程序的本地环境和使用细节,还能检测到与程序控制流图一致但仍属于异常的行为。
然而,当被监控的程序打了补丁后,基于系统调用跟踪训练的异常检测器可能无法准确地监控更新后的程序。一种解决方法是通过收集更新后程序的跟踪来重建模型,但这需要在一个没有攻击的安全环境中进行,并且该环境要尽可能与程序运行的实际环境相似。如果存在多个这样的环境,这个问题会更加复杂。
为了避免每次发布补丁时都要设置安全环境来收集系统调用跟踪的麻烦,我们考虑采用一种替代方法,即检测更新后的程序与旧版本之间的差异,然后直接更新系统调用行为模型以反映这些变化。但这种方法存在一些复杂性:
- 程序补丁通常以全新的程序版本形式发布,而不是孤立的补丁。
- 程序更新通常只以二进制格式发布,这使得检测版本之间的变化位置变得困难。
- 虽然最先进的二进制差异分析器可以检测到变化的位置,但如何修改系统调用模型以反映这些变化可能需要进行大量的进一步分析。
我们的目标是在尽可能减少模型对异常行为敏感度下降的
超级会员免费看
订阅专栏 解锁全文
608

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



