前言
随着攻防对抗技术升级,攻击者大量使用高级/绕过/伪装/白利用手法,尤其在APT、攻防演练场景使用愈加频繁,基于规则的判黑方法面临很大的挑战。为了有效应对0-day漏洞和APT等未知攻击,顺丰科技安全部门根据实战场景设计实现了容器行为异常自学习引擎。该引擎会自动学习容器全生命周期行为,持续智能构建容器行为基线画像,将偏离基线的行为检测出来。
判定容器攻击行为有以下两种:规则算法和异常算法,其中规则算法穷举所有的黑行为(攻击行为),似黑即黑;异常算法穷举所有的白行为(正常行为),非白即黑;所以,从检测方法来看,规则算法智能发现已知攻击行为,异常算法可以发现未知方法,应对不确定性威胁。
01
引擎架构
Engine Architecture
顺丰科技安全部门设计的容器引擎具备内生、自学习、自进化等特点,可以对容器的正常行为进行自学习,生成基线画像,并且会随着容器全生命周期过程中变化,持续不断的智能进化对应的画像,从而让实体始终处于正常行为中,应对各种未知的攻击。引擎的框架如下所示:
该引擎主要分为画像、告警消减、智能学习三个部分。
(1)画像部分包括对容器行为进行画像的各种基线类型,如进程、文件和网络基线,引擎捕获容器日志后,就会自动进行学习;
(2)告警消减部分,提取画像间公有特征构建自学习白名单,并采用特征聚合技术,消减重复告警;
(3)智能学习部分,引擎会持续关注画像的构建过程,智能分配学习时间,通过智能分析算法感知业务变化,对画像进行持续的进化。
02
引擎部署
Engine Deployment
引擎部署后,分为学习期和检测期。学习期会主动学习容器生命周期行为构建画像;学习完毕后,进入检测期,将偏离画像的攻击行为检出。
以下是顺丰环境中容器行为异常自学习引擎学习到的部分容器画像示例。
03
防护效果(常用高危组件漏洞)
Protective Effect
3.1
异常发现
顺丰的引擎在日常运营过程中发现下列疑似攻击行为:
(1)java组件调用jndi相关功能注入异常命令。
(2)发现异常IP访问,未经验证身份访问Weblogic。
3.2
分析研判
经研判后发现,Log4j JNDI注入(CVE-2021-44228)漏洞原理利用jndi的Lookup功能,实现jndi注入命令执行。
WebLogic远程代码执行漏洞(漏洞编号:CVE-2020-14882)的补丁存在绕过风险,远程攻击者可以构造特殊的 HTTP 请求,在未经身份验证的情况下接管 WebLogic Server Console ,并在 WebLogic ServerConsole 执行任意代码,导致上述异常行为。
3.3
漏洞复现
通过攻击模拟平台,启动容器内应用漏洞入侵任务,建立容器注入攻击。并且额外增加注入了Struts2代码注入漏洞,shiro反序列化漏洞。
另外,通过容器行为异常自学习引擎建立画像持续检测,成功捕获到了如下漏洞与攻击,以下案例仅展示告警日志关键特征:
漏洞Ⅰ:
Struts2代码注入
检出日志关键特征:
检出容器名:
“s2-032_struts2_1”
进程路径:
“/usr/bin/whoami”
漏洞描述:
漏洞Ⅱ:
Log4j JNDI注入漏洞
检出日志关键特征:
检出容器名:
“cve-2021-44228_solr_1”
攻击命令行:
“/bin/sh -c whoami”
进程路径:
“/bin/dash”
漏洞描述:
漏洞Ⅲ:
CVE-2020-14882 weblogic未授权命令执行漏洞
检出日志关键特征:
检出容器名:
“cve-2020-14882_weblogic_1”
攻击命令行:
“/bin/sh -c whoami”
进程路径:
“/usr/bin/bash”
漏洞描述:
漏洞Ⅳ:
shiro反序列化
检出日志关键特征:
检出容器名:
“cve-2016-4437_web_1”
攻击命令行:
“/bin/sh -c whoami && echo c-end”
进程路径:
“/proc/41080/root/bin/dash”
漏洞描述:
3.4
价值体现
根据顺丰内部环境而研制的引擎,可对容器业务行为建立画像,能够及时检测包括0-N day漏洞攻击在内的未知威胁,保护业务容器。
04
总结
Summary
不同于基于规则的判黑方法,顺丰科技安全部门研制的容器行为异常自学习引擎会自动学习容器全生命周期的行为,持续智能构建容器行为基线画像,有效应对0-N day漏洞和APT等未知攻击,并能在实际生产环境中成功发现上述威胁用户生产环境安全的漏洞。
原文始发于微信公众号(顺丰安全应急响应中心):容器行为异常自学习引擎