APP下载

云原生架构下的容器安全深度检测与智能防护实践

2022-06-11吴祖康徐志成陈若鹏

电脑知识与技术 2022年13期
关键词:风险评估

吴祖康 徐志成 陈若鹏

摘要:基于云原生架构的容器平台技术具备“技术组件标准化、软件架构微服务化、服务管控实时化,资源编排灵活化、对外接口统一化、资源调度弹性化”等巨大灵活性优势,在为企业数字化转型提供了极大技术支撑的同时也带来了新的网络与信息安全挑战。针对容器自身的安全威胁特性,如镜像软件可能存在漏洞或木马病毒,租户之间存在横向攻击威胁,容器逃逸攻击宿主机风险,容器网络DDoS攻击风险,容器编排访问权限滥用、未经授权访问、容器组件安全合规风险等,文章从容器平台全生命周期出发,通过探索实践,实现了对容器平台高效、精准、全面的安全管控能力,助力企业数字化转型的快速、稳步发展。

关键词:云原生;容器安全;风险评估;威胁检测

中图分类号:TP393        文献标识码:A

文章编号:1009-3044(2022)13-0034-03

随着技术的发展,基于Kubernetes和Docker构建容器云服务平台是大型企业构建生产环境容器云服务平台的较优选择之一[1],但同时,容器技术由于自身特性,存在其特有的安全风险问题,包括:(1)容器镜像中可能包含有漏洞和恶意软件,存在潜在的安全风险;(2)容器运行在低安全系数的环境下,易遭受外部攻击;(3)容器之间存在通过主机虚拟网络相互攻击的安全风险;(4)容器管理平台本身由于权限滥用或配置不当等情况,使容器面临安全风险[2]。

研究团队针对这些风险问题,经过探索研究,实现了围绕容器生命周期的容器安全平台。平台通过主动扫描、实时监测、智能化分析,实现了容器安全的可视化、智能化;采用镜像深度扫描技术对镜像文件进行深度的漏洞、恶意程序等方面的安全检查,保障镜像文件的安全性,避免由不安全的镜像创建含有漏洞或恶意程序的容器;研究并实现了容器网络可视化技术,通过网络信息收集,建立对集群内各容器、POD、节点及服务之间的关联关系,以直观的图形方式进行全面可视化展示,使容器安全状态显性化;运用多层次的容器安全隔离机制,通过制定安全策略限制容器与容器、容器和主机之间的访问,从而增强容器隔离性,降低容器安全风险。

平台以容器的生命周期[3]为脉络,从以下几个方面实现对容器的安全检测与防护:

1 基于镜像文件深度扫描技术,对镜像进行漏洞、恶意程序等的扫描,实现镜像文件安全风险评估与管控

在容器平台实现并部署“扫描容器”,获取容器平台中的仓库镜像、节点镜像,使用扫描容器中的镜像文件扫描器分离镜像文件中的层和软件包,基于CVE安全漏洞库、Webshell库、病毒木马库等威胁情报对软件包进行深度扫描,发现其中存在的漏洞、惡意程序,同时逐层进行敏感检测,在容器镜像部署到生产环境之前及时发现并降低安全风险。扫描的内容主要包括:

1)镜像中软件包

扫描器获取到镜像后,将它分离成相应的层和软件包,对软件包进行检查。

2)镜像中文件

对镜像中的文件进行分层提取后,同时逐层进行恶意代码检测、敏感检测。这里主要采用模糊哈希、YARA规则和机器学习的CNN-Text-Classfication 分类算法三种检测方式[4]。

镜像扫描可以采取单独部署扫描容器的方式,通过扫描容器对镜像进行扫描,并实现扫描统一管理。并基于威胁情报,如CVE安全漏洞库、WebShell库、病毒木马库,对镜像进行病毒木马检测。

镜像扫描整体过程整体描述如下。

①扫描容器提取容器镜像并保存为tar格式的压缩包。

②拆包器将tar格式镜像拆分成各个镜像层。

③提取manifest.json文件中的镜像层信息。

④根据layer id解析出数据文件。

⑤恶意病毒与WebShell检测模块对可疑文件进行检测打分。

⑥解析镜像中的软件包版本。

⑦匹配CVE漏洞,检测镜像软件安全漏洞风险。

⑧对镜像历史行为、证书文件分析。

⑨根据漏洞信息综合打分。

⑩输出镜像扫描报告。

扫描之后,可以根据扫描报告结果进行安全加固处理,生成安全镜像并更新仓库。当发现镜像中存在安全风险时,通过安全容器对镜像进行修复,修复动作主要包括:

(1)替换基础镜像。对于镜像文件中的基础镜像存在安全风险的情况,使用最新已加固的基础镜像版本替换当前存在风险的基础镜像。

(2)清除恶意文件。对于镜像文件中发现存在恶意文件的情况,对发现的恶意文件进行清除操作。

(3)敏感信息清除。自动清除镜像文件中所发现的敏感信息。

(4)软件包版本升级。镜像中的软件包由于版本原因存在安全漏洞时,使用较新版无漏洞的软件包替换,以消除该漏洞风险。

2通过实时入侵行为检测及智能威胁检测,实现容器运行状态的安全防护

分析容器运行状态下WebShell攻击、反弹网络连接、挖矿行为、勒索病毒、提权逃逸行为、敏感文件操作、危险命令、可疑进程以及容器特有的未经授权访问ApiServer等恶意行为的特征,制订容器危险行为的检测规则,实时监测所有操作是否有黑客入侵的迹象。另外,采用机器学习算法检测容器异常行为,对于利用漏洞发起的攻击以及通过窃取管理权限进而攻击宿主机的逃逸行为进行实时监测和阻断,保障容器运行过程中的安全。主要包括以下功能:

1)入侵行为检测

根据恶意行为特征,制订容器入侵行为检测规则,实时监控所有容器操作,监测是否有黑客入侵的迹象。入侵行为规则主要包括两大类:命令执行类和文件、数据读写类。

2)智能威胁检测

采用机器学习算法,对容器操作行为经过一定时段的学习,形成正常操作行为模型,通过模型实时监测检测容器操作行为,及时发现超出模型外的威胁行为。操作行为模型主要包括:容器操作行为模型、进程信息模型、文件信息模型、网络信息模型、配置信息模型。

智能威胁检测主要采用基于Apriori算法的容器安全检测方法,能够准确检测容器中的未知异常行为,方法步骤如图3所示:

如图3所示,智能威胁检测主要包括以下步骤:

①数据的获取及特征提取。获取进程数据并提取特征,包括获取正常行为数据集及测试行为数据集,本发明中获取程序运行期间,各种不同程序行为产生的系统调用序列,用于不同的容器行为存在大量循环和重复的操作。因此,会存在大量的重复子序列,设置相应的阈值T1,将超过阈值T1的重复子序列作为该行为的特征。

②基于Apriori算法的特征建模。抽取正常的容器行为的特征,通過Apriori算法进行挖掘,产生正常的行为模式,然后获取测试数据特征,进行挖掘,将测试行为数据集中挖掘出的模式与正常行为模式比较,设置相应的阈值,当距离达到一定的阈值时,判断该行为为异常行为。

③确定风险等级。根据距离的大小,设置相应的风险等级,本发明中可将风险等级设置为低、中、高。

④异常行为报警。当发现存在异常的容器行为时,进行报警,并根据风险等级设置报警级别,本发明中根据风险等级将报警级别设置为提示、异常、紧急。

⑤异常行为处理。技术人员在收到报警信息后,根据不同的风险等级,对该行为进行不同的处理。

3)容器运行服务威胁检测

利用防御容器中应用扫描模块,一方面通过容器平台API获取集群中的服务信息,另一方面,通过调用容器集群内部DNS插件,以域名方式访问集群内的服务,从而完成容器内的服务及应用的自动发现。随后制订扫描任务,对服务所对应的域名和端口进行扫描:使用爬虫模块对应用程序进行页面抓取以获取页面文件与目录信息;通过端口扫描模块,获取所对应的服务以及版本信息。之后通过指纹识别模块识别出应用程序的名称以及版本信息,将以上信息收集后交由通用漏洞检测模块以及exploit检测模块检测应用程序漏洞,最终通过漏洞汇总模块将发现的应用程序漏洞入库。

4)威胁告警

对入侵行为检测及智能威胁检测所发现的恶意行为,立即触发告警,邮件通知相关安全管理、维护人员,并且将告警转发至集中的告警监控平台。

5)关联分析

基于图形可视化和列表形式展现对象关联关系,为安全分析人员、运维人员快速定位威胁范围提供强有力的工具支撑。

3部署网络探针收集、抓取容器网络连接,实现容器网络安全可视化分析以及容器之间的网络隔离及漏洞扫描,对容器网络全面安全防护

通过网络探针在网络收集层收集网络链接信息,并以图形可视化方式直观展现各容器、POD、节点及服务之间的关联关系。同时,采用容器网络隔离技术,根据业务实际安全需求,制订容器之间ACL访问控制策略,阻止容器之间需求之外的访问通道,减小容器之间横向渗透的攻击面。通过双向控制、访问可视化、访问过程溯源等功能,基于容器、容器组和业务视角对容器平台进行超细粒度的双向网络访问控制,能够监控非法访问轨迹并溯源整个非法行为的访问过程。

容器网络可视化主要包括:

1) 网络探针层

通过eBPF(一种用于内核追踪、应用性能监控、流控的工具)或Conntrack(系统命令)工具抓取网络连接信息,通过容器平台的API获取服务信息,从/proc获取进程信息,将以上抓取的网络信息发送到网络收集层。

2) 网络收集层

定时从各个网络探针获取网络信息,将以上网络信息拍摄快照,入库。

3) 网络绘制层

网络链接绘制层通过分析网络快照信息,绘制出容器、服务、POD、进程、节点之间的连接关系。

平台的网络隔离能力实现了网络的微隔离,支持东西向网络微分段、隔离策略管理,从而遏制网络威胁横向扩散,减少损失。容器网络隔离以隔离的对象进行分类,主要包括:

1)租户隔离

租户之间默认禁止直接通信,可以通过配置RBAC、Pod安全策略、网络策略、准入控制以及运行时沙箱等手段,实现按需放通租户间的访问通道,有效避免网络、容器资源的滥用。

2)节点隔离

节点之间默认网络互通,可以配置互通策略,将业务按策略调度到所需的节点上,策略通过匹配Pod的Label值实现。

3)Pod隔离

配置Pod间的访问规则,阻断或者允许来自其他命名空间的所有流量,阻断或者允许来自外部客户端的流量等。

容器隔离能力一方面基于Iptables技术实现的对Docker网络通信的细粒度控制,可以通过Iptables规则限制容器通信的IP和端口[5]。另一方面也实现了基于NetworkPolicy的访问控制,可以按照业务需求,设置不同的namespace、不同Pod的流量出入站策略,阻止攻击者在内网的横向移动,极大减少攻击面和业务风险,减少安全运维成本。

4 采用基于规则模板的自动化合规检测方法对容器平台进行合规检测,以高效方式满足等保2.0、行业规范的基线合规要求

依据行业监管相关指导文件、规范,容器云平台相关行业标准以及国家等保2.0要求和国际流行CIS标准等,制订对应安全检测规则模板,并实现自动化的容器合规检测、分析引擎,实现容器平台安全合规基线配置核查以及平台相关开源组件的安全漏洞扫描。

研究团队研究并采用了基于规则模板的自动化合规检测方法,通过适配规则模板语法要求,针对不同检查项所对应的检查命令或脚本进行灵活的模板配置,使其适用于不同合规项的不同要求。一方面降低了专业性的要求,能够使普通的运维人员也可以参与到对检查项及检查规则制订与维护的工作中来,提高了制订、维护配置核查规则的效率;另一方面,也更加便于对检查执行的过程进行排错,提高了检查项、检查规则的复用性。

容器合规基线检测内容主要包括如下方面:

1) 容器合规检查

实现容器合规检查,从主机安全配置、守护进程配置、守护程序文件配置、容器镜像和构建文件、容器运行时保护、安全操作、集群配置等方面对容器进行合规检查。

2) K8S集群合规检查

容器平台负责管理所有容器,一旦发生安全性问题,则会造成其大量容器、应用服务面临安全威胁。根据平台配置合规性相关要求,对容器平台进行配置合规检测,及时检测发现配置不当的情况,及时发现、及时处理。

3) 主机节点合规

从Docker守护进程安全配置、Docker守护程序文件权限配置、容器运行安全、Docker安全选项、Dockerswarm集群安全配置等方面进行检测。

4) 编排文件合规

在K8S系统中,各类资源均需要通过编排文件构建,编排文件编写是否规范,将直接影响到构建资源的安全性、规范性与可用性。对于部署资源所编写的编排文件,系统支持自动接 入,自动扫描,根据扫描结果指出编排文件中存在风险或不规范的配置项,并给出修复建议,保障资源合规且安全地创建。

参考文献:

[1] 王骏翔,郭磊.基于Kubernetes和Docker技术的企业级容器云平台解决方案[J].上海船舶运输科学研究所学报,2018,41(3):51-57.

[2] 任兰芳,庄小君,付俊.Docker容器安全防护技术研究[J].电信工程技术与标准化,2020,33(3):73-78.

[3] 王欢.构建全生命周期的容器安全防护体系[J].数字通信世界,2020(11):152-153.

[4] 赵立农,曹莉,曾艺骁.Docker镜像安全深度扫描[J].通信技术,2021,54(2):457-463.

[5] 王鹃,胡威,张雨菡,等.基于Docker的可信容器[J].武汉大学学报(理学版),2017,63(2):102-108.

【通联编辑:代影】

猜你喜欢

风险评估
H银行企业信贷项目风险评估分析