1、首届中国首届中国eBPFeBPF研讨会研讨会基于eBPF的内核漏洞检测实践深信服创新研究院许庆伟首届中国首届中国eBPFeBPF研讨会研讨会0102内核安全策略演进eBPF检测Rootkit实例传统内核安全首届中国首届中国eBPFeBPF研讨会研讨会01l 正如Linus Torvalds曾经说过的,大多数安全问题都是bug造成的,而bug又是软件开发过程的一部分,是软件就有bug。l 至于是安全还是非安全漏洞bug,内核社区的做法就是尽可能多的测试,找出更多潜在漏洞这样近似于黑名单的做法;l 内核代码提交走的流程比较繁琐,应用到具体内核版本上,又存在周期长以及版本适配的问题,如下图,所以导致
2、内核在安全方面发展的速度明显慢于其他模块内核安全漏洞的危害首届中国首届中国eBPFeBPF研讨会研讨会01l 随着智能化、数字化、云化的飞速发展,全球基于Linux系统的设备数以百亿计,而这些设备的安全保障主要取决于主线内核的安全性和健壮性;l 当某一内核LTS版本被发有漏洞,这样相关的机器都会面临被攻破利用的局面,损失难以估;Critical&High CVE lifetimes安全策略演进首届中国首届中国eBPFeBPF研讨会研讨会01策略策略阶段阶段概述概述主机/终端黑名单(HIDS、EDR)1.业务场景复杂庞大,检测范围广,应用程序数量浮动变化,是主机端最大的特点以及痛点;2.从进程、
3、网络、文件等维度来看,学习正常行为数据的成本和难度极大,难以描绘出白名单的全部正常行为,所以在主机端的HIDS、EDR主要使用黑名单策略;应用范围:全局场景黑名单策略应用范围:全局场景黑名单策略主机/终端白名单 1.针对特定场景做学习分析,存在数量固定或系统原生自带的特点,相对于HIDS、EDR产品,检测范围小,可以在局部场景下使用;应用应用范围:局部场景白名单策略范围:局部场景白名单策略容器白名单阶段 1.容器的轻量、场景单一的特性,更加能够刻画完备的容器正常行为,使得白名单的构建更加具备可行性;2.一旦构建好容器行为白名单,实现容器权限最小化,缩减攻击面,所有在白名单之外非预期的行为均可阻
4、止,具备更好的防御效果;应用范围:容器场景白名单策略应用范围:容器场景白名单策略 白名单:白名单:允许系统或应用程序进行相关操作的集合;通过动静态方案获取系统或应用的正常行为数据,可以构建权限最小化行为集合;任何不在名单上的动作行为将被阻止运行,适合场景单一、业务范围固定的环境;黑名单:黑名单:阻止系统或应用程序进行相关操作的集合;随着攻击手段的提升和高级化,需持续学习攻击案例来扩充集合;适合复杂化、多元化业务等难以学到完整正常行为的场景;内核安全方案对比首届中国首届中国eBPFeBPF研讨会研讨会01BPF安全特性演进首届中国首届中国eBPFeBPF研讨会研讨会01Seccomp阶段eBPF
5、阶段由于早期Seccomp对syscall管控过于严格,导致该技术没有发展起来。到了2012年,Seccomp+BPF的过滤模式开始兴起;该模式允许开发人员编写 BPF 程序,来确定是否允许给定的系统调用,基于系统调用号和参数(寄存器)值进行过滤。2005年,Linux 2.6.12中的引入了第一个版本的seccomp,最初只有一个模式:严格模式(strict mode),该模式下只允许被限制的进程使用4种系统调用:read(),write(),_exit(),和 sigreturn();一旦为程序施加了严格模式的seccomp,对于其他的所有系统调用的调用,都会触发SIGKILL并立即终止进
6、程;首届中国首届中国eBPFeBPF研讨会研讨会02eBPF检测Rootkit实例eBPF检测Rootkit攻击首届中国首届中国eBPFeBPF研讨会研讨会02l 为了Hook内核函数,必须首先获得想要钩住的对象访问权;l 例如,它可以是保存所有系统调用函数地址的系统调用表。然后,保存函数的原始地址并覆盖它;l 在某些情况下,由于当前位置的内存权限,还需要获取CPU中控制寄存器的权限;首届中国首届中国eBPFeBPF研讨会研讨会02l 通过内核的core_text边界检测来实现这一点。内核中的内存被分为几个部分。其中一个是core_text段,它保存内核