腾讯洋葱EDR团队
Online、Jaylam
导语
“洋葱”系统是腾讯自研的主机入侵检测系统(HIDS),能够实时采集服务器上的各种行为并进行实时关联分析和落地存储,承载公司所有的服务器、虚拟机和容器的入侵防护、漏洞检测。
洋葱作为公司的老牌安全系统,从2007年开始研发,经过几代洋葱人的不断努力,洋葱的功能不断完善、架构几经迭代,满足了公司的服务器安全需求。现在进入云计算时代,洋葱也要跟随业务拥抱云原生。
本文介绍洋葱后台系统在上云过程中的方案及实践,希望对大家的系统上云有一点帮助,涉及到的一些敏感信息将被隐去。
1. 背景
我们梳理了当前后台存在的一些问题,结合云原生技术发展的趋势,尝试去构建一套新的后台框架,全面拥抱云时代,提高研发效能,尽可能在较长时间内能满足业务需求。
随着公司业务的发展,特别是云原生技术架构的演进,公司的主机资产(服务器、虚拟机、容器)在不断增加,洋葱客户端采集的数据量也在快速上涨(从2019到2020年,数据量增长了200%以上)。
在未来的某个时间点,洋葱后台架构将无法适应快速增长的业务需求,可能出现各种问题(如无法快速扩缩容、版本发布流程冗长、需要人工介入等),老系统的维护将举步维艰。因此,对洋葱后台系统进行改造以适应当前不断变化的公司业务形态势在必行。
我们梳理了当前后台存在的一些问题,结合云原生技术发展的趋势,尝试去构建一套新的后台框架,全面拥抱云时代,引入DevOps提高研发效能,尽可能在较长时间内能满足业务需求。
2. 现状
2.1 当前洋葱系统架构
洋葱系统分为客户端和后台两部分。客户端非本文重点,这里仅做简单说明,其主要由洋葱agent及安全插件组成,覆盖公司所有自营业务主机,负责采集主机上的操作系统数据,并通过一个与后端接入服务建立加密通信通道的网络连接将数据上传至洋葱后台进行分析。
洋葱后台则主要由接入层、实时流式审计分析、实时审计数据流压缩、工单系统、agent配置管理、路由服务、心跳服务、任务服务和文件服务等组成,负责对主机侧采集到的数据进行归档存储、提取特征及关联分析,判断主机上是否存在安全漏洞和异常行为以及对所有客户端agent进行管控。
2.2 当前存在的问题
随着公司业务服务的快速发展,洋葱客户端的数据量也是快速增长,原有后台系统架构的一些问题,也逐渐突出暴露出来,经过梳理,总结出了当前面临的一些主要矛盾和突出问题:
(1) agent通过TCP协议连接后台,数据和控制指令共用一个通道,在数据增量较大,后端负载较高的情况下,容易触发后台的负载均衡,导致agent频繁切换接入,进而影响后台对agent的控制指令触达率;
(2) 当agent采集的数据量暴涨,后台容量不足时,传输的重传机制可能会引起后台超时雪崩,而服务的扩容需要运维人工参与,流程冗长;
(3) 部分后台