一种基于eBPF的混合主机命令行检测方法及系统

摘要: 本发明涉及主机安全,尤其涉及一种基于ebpf的混合主机命令行检测方法及系统。背景技术:1、linux主机中的命令执行行为通常由shell内建命令、管道操作、重定...
一种基于eBPF的混合主机命令行检测方法及系统

本发明涉及主机安全,尤其涉及一种基于ebpf的混合主机命令行检测方法及系统。

背景技术:

1、linux主机中的命令执行行为通常由shell内建命令、管道操作、重定向操作以及外部程序执行共同构成。现有主机安全方案主要依赖日志审计、规则匹配或者仅在用户空间进行行为分析。

2、其中,日志审计方案通常在命令执行后记录信息,难以完整保留同一原始shell命令对应的多个执行事件之间的关联关系;规则匹配方案对已知威胁具有较高确定性,但对未知异常行为的识别能力有限;仅在用户空间进行行为分析的方案通常缺少在可执行文件加载前实施阻断的能力。随着ebpf技术的发展,可在内核空间以较低开销采集主机行为事件,但现有技术仍缺少:对扩展伯克利包过滤器(extended berkeley packet filter,ebpf)内建命令事件、管道操作事件、重定向操作事件和execve系统调用事件的统一表示与关联机制;适用于命令行在线检测的因果序列建模方式;以及将已知恶意行为的内核级签名匹配与执行前阻断形成闭环的实现方案。

技术实现思路

1、为解决现有技术难以对同一原始shell命令涉及的bash内建命令、管道操作、重定向操作和外部程序执行进行统一采集与关联,并且难以在同一技术框架下兼顾未知异常行为的在线检测与已知恶意外部程序的执行前阻断的问题,本发明公开一种基于ebpf的混合主机命令行检测方法及系统,可以实现命令事件统一关联与执行还原,分主体降串扰减误报,签名匹配前置阻断恶意,告警阻断分离以增强防护完整性。

2、为实现上述目的,本发明的技术方案包括以下内容。

3、一种基于ebpf的混合主机命令行检测方法,所述方法包括:

4、通过ebpf程序拦截目标主机基于shell命令产生的命令执行事件,并将所述命令执行事件封装为统一数据结构;其中,所述命令执行事件包括bash内建命令事件、管道操作事件、重定向操作事件和execve系统调用事件中的一种或多种,所述统一数据结构包括命令文本信息;

5、将命令文本信息对应的骨架化词元追加到至相应监测主体的骨架化词元历史中之后,构造以该命令执行事件为结尾的因果窗口,并基于该因果窗口获取该命令执行事件的异常分数;

6、对于任一监测主体,在连续k个命令执行事件的异常分数大于设定阈值,判断该命令执行事件为异常行为。

7、进一步地,所述统一数据结构还包括时间戳、事件类型、shell命令标识、事件序号和监测主体标识。

8、进一步地,将命令文本信息对应的骨架化词元追加到至相应监测主体的骨架化词元历史中之后,构造以该命令执行事件为结尾的因果窗口,包括

9、对命令文本信息进行语义骨架化处理,得到骨架化词元;

10、将该骨架化词元追加到至相应监测主体的骨架化词元历史中;

11、从监测主体的骨架化词元历史中截取以命令执行事件结尾的最近w个词元作为因果窗口;其中,监测主体的骨架化词元历史中的词元数量不足w个时,使用填充域进行填充。

12、进一步地,所述命令文本信息包括类选项、文件路径、ip地址、网络url和systemd单元;

13、所述对命令文本信息进行语义骨架化处理,得到骨架化词元,包括:

14、将类选项标记映射为特征标识;

15、将文件路径映射为路径标识;

16、将ip地址映射为地址标识;

17、将网络url映射为链接标识;

18、将systemd单元名称映射为服务标识;

19、将不属于类选项、文件路径、ip地址、网络url和systemd单元名称的其他参数映射为参数标识;

20、在每个命令执行事件末尾加入结束标识。

21、进一步地,基于该因果窗口获取该命令执行事件的异常分数,包括:

22、构造时间卷积网络,所述时间卷积网络包括输入嵌入层、第一因果膨胀卷积层、第二因果膨胀卷积层、第三因果膨胀卷积层和输出层;其中,所述第一因果膨胀卷积层、第二因果膨胀卷积层与第三因果膨胀卷积层为膨胀系数不同的因果膨胀卷积层;

23、将因果窗口输入到时间卷积网络,基于该命令执行事件对应的非填充域词元位置的平均负对数似然确定异常分数。

24、进一步地,训练所述时间卷积网络的过程,包括:

25、基于命令执行事件样本的因果窗口的非填充域词元位置,计算掩码交叉熵损失;

26、依据掩码交叉熵损失进行反向传播,以更新时间卷积网络的参数。

27、进一步地,在所述命令执行事件包括execve系统调用事件的情况下,所述方法还包括:

28、对shell命令展开,得到最终可执行文件路径以及可执行文件对应的命令行参数;其中,所述最终可执行文件路径为shell完成变量展开、通配符展开以及执行目标确定后,用于实际加载的可执行文件路径;所述命令行参数为传递至execve系统调用事件中调用路径的argv数据;

29、对最终可执行文件路径以及可执行文件对应的命令行参数进行签名匹配;其中,签名规则包括目标路径精确匹配、路径与参数组合匹配和参数模式匹配;

30、当签名匹配成功时,生成该execve系统调用事件的阻断标志;

31、挂载于bprm_check_security钩子的bpf lsm程序在该execve系统调用事件加载前检查所述阻断标志,并在阻断标志被设置时返回拒绝结果。

32、一种基于ebpf的混合主机命令行检测系统,所述系统包括:

33、命令事件采集模块,用于通过ebpf程序拦截目标主机基于shell命令产生的命令执行事件,并将所述命令执行事件封装为统一数据结构;其中,所述命令执行事件包括bash内建命令事件、管道操作事件、重定向操作事件和execve系统调用事件中的一种或多种,所述统一数据结构包括命令文本信息;

34、异常检测模块,用于将命令文本信息对应的骨架化词元追加到至相应监测主体的骨架化词元历史中之后,构造以该命令执行事件为结尾的因果窗口,并基于该因果窗口获取该命令执行事件的异常分数;

35、告警决策模块,用于对于任一监测主体,在连续k个命令执行事件的异常分数大于设定阈值,判断该命令执行事件为异常行为。

36、进一步地,所述系统还包括:

37、签名检测模块,用于对shell命令展开,得到最终可执行文件路径以及可执行文件对应的命令行参数;其中,所述最终可执行文件路径为shell完成变量展开、通配符展开以及执行目标确定后,用于实际加载的可执行文件路径;所述命令行参数为传递至execve系统调用事件中调用路径的argv数据;对最终可执行文件路径以及可执行文件对应的命令行参数进行签名匹配;其中,签名规则包括目标路径精确匹配、路径与参数组合匹配和参数模式匹配;

38、阻断模块,用于当签名匹配成功时,生成该execve系统调用事件的阻断标志;挂载于bprm_check_security钩子的bpf lsm程序在该execve系统调用事件加载前检查所述阻断标志,并在阻断标志被设置时返回拒绝结果。

39、一种计算机设备,所述计算机设备包括:处理器以及存储有计算机程序指令的存储器;所述处理器执行所述计算机程序指令时实现上述任一项所述的基于ebpf的混合主机命令行检测方法。

40、与现有技术相比,本发明至少具有如下有益效果:

41、其一,通过原始命令标识和事件序号实现了对同一原始shell命令所对应的bash内建命令事件、管道操作事件、重定向操作事件和execve系统调用事件的统一采集与关联,有利于还原命令执行过程;

42、其二,通过按监测主体维护词元历史、构造因果窗口以及执行连续k事件门控,有利于降低不同主体之间的上下文串扰,并减少偶发高分事件引起的误报;

43、其三,通过对shell展开后的最终可执行文件路径及其参数进行签名匹配,并结合可执行文件加载前的内核侧阻断机制,可实现对已知恶意外部程序的执行前防护;

44、其四,异常告警与签名阻断分别对应未知异常行为检测和已知恶意行为拦截,二者在触发条件上相互分离,有利于提高主机命令行安全防护的完整性。