高效预防面向返回编程及云规模数据存储中内核化MLS数据库架构的重新思考
1. 面向返回编程(ROP)检测中的高性能计数器(HPC)
在ROP检测中,机器学习技术确定了一些最能指示ROP计算的事件。这些事件大致可分为三类:
1. 指令转换后备缓冲器(ITLB)缺失 :ROP小工具较短且在内存中“随意”跳转,破坏了传统代码常见的空间局部性属性,还会使用原始程序可能从未执行过的库代码片段,因此ITLB缺失增加并不意外。完全的ITLB缺失会导致代价高昂的页表查找,即页遍历。
2. 分支预测相关事件 :ROP程序执行的间接跳转本质上不可预测,因为它们不遵循常见的调用/返回模式,且很少执行能提高预测性能的循环。
3. 指令流水线停顿 :这很可能是频繁预测或缓存缺失导致的。
不同处理器可能会为ROP检测引入不同的最优HPC事件子集。例如,在结构非常相似的i7 860上的评估显示,事件选择存在差异,虽然分支预测相关事件保持不变,但ITLB相关事件在一个事件上有很大不同。而且,即使是相同助记符的HPC事件,其实际功能在不同处理器上也可能不同。
| HPC事件 | 描述 |
|---|---|
| ITLB_MISSES.MISS_CAUSES_WALK | 指令转换后备缓冲器(ITLB)缺失 |
| ITLB_MISSES.LARGE_WAL |
超级会员免费看
订阅专栏 解锁全文
606

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



