Elkeid 经过多个版本的迭代打磨,现正式对外发布我们的第一个企业版本。
Elkeid 是一个主机安全解决方案,通过该方案可以一站式解决的企业生产环境内服务器的安全问题,相较于传统的主机安全类产品,Elkeid 更开放,更强大。
一. 主机安全的需求是什么
资产/风险可视
我们的服务器上有哪些组件与依赖?有哪些存在漏洞?高危害的占比多少?
这些问题相信在安全团队内出现的频率一直没有降低过,并且随着多云/混合云/容器化的生长,带来的这类对资产可视的需求也越来越复杂。
合规需求
我们的生产环境服务器是否可以满足一些基础基线的安全配置?又有多少服务器存在潜在的配置或合规性风险?内外审计的需求也是主机安全的核心诉求之一。
入侵检测
服务器是否被入侵?是否存在挖矿程序?是否被植入后门?是否被上传 Webshell?是否有内部人员执行恶意操作?无需赘述,主机安全的核心价值之一就是通过动态、静态等手段尽早的发现恶意行为。
威胁猎捕
当我们确定存在入侵行为,接下来的问题就是:入侵者如何进入的?多少资产受到影响?入侵者具体做了什么?解决这些问题,我们才可以进行完整的定损止损和后续优化。
而往往主机安全产品还需要回答如网络安全产品,行为安全产品,威胁情报的各种问题:谁在服务器上做的这个行为触发了我的告警?
止损/环境恢复
当入侵发生了,我们希望可以有具备有效的手段中止入侵行为,如果可以进行环境恢复来缓解入侵带来的影响那应该是更好的。
稳定性需求
安全很重要,但不能因为安全影响业务。因此针对需要在生产环境服务器内部署 Agent 的主机安全产品来说,稳定性,对业务的性能影响也是至关重要的。
访问控制
可以通过更多的上下文进行行为限制,即签名+行为白名单,实现进一步的安全,而非单纯防御。
Elkeid 目标是成为满足各类型的主机安全需求的产品,构建企业安全防御最重要的基石。Elkeid 从真实的安全前沿对抗中诞生,可作为每个安全工程师得力的依靠,能力的扩展与产品力的进步将不会停止。
二. Elkeid的入侵检测能力
Elkeid 基于内核态获取数据,天然具有很强的抗干扰和混淆能力。这种数据上的优势提供了无与伦比的入侵检测能力,我们具有更多的数据点位,更多的数据来源,更准确的信息情报。因此在国外知名公司组织的第三方测试中获得了在一线海外竞品中面对 APT 类行为最好检出能力的评价结果。
注:测试时间为2021年年初,均使用 Linux 版本,各产品由厂家直接提供和校正。测试方案为自动化工具模拟APT入侵行为,大部分行为具有较高迷惑性。
测试期间Elkeid 仅提供了恶意行为检测能力和杀伤链检测能力,当前Elkeid 已经追加了更多入侵检测相关功能,可以提供更高更强的检测水平。
静态检测能力
通过静态特征对服务器上的文件/进程二进制进行检测,从而发现如 Webshell/后门/挖矿程序/勒索程序等恶意软件。
例一:文件落盘时依据静态检测能力,对落盘文件触发式进行静态检测,发现 /root/webshell_testdir 目录下的新增PHP Webshell。
例二:静态检测周期扫描中,发现 /root/bincheck0310 目录下存在疑似挖矿类的 test_6002 文件。
恶意行为检测能力
对主机上正在执行的进程链进行行为检测,用于检测各类远程命令执行,权限提升,反弹shell,驻留行为,信息收集行为,后门行为等。由于 Elkeid 出色的底层数据采集能力,在该项中表现更加精准,上下文数据更为全面,更符合安全运营的告警处理逻辑。
例一:以简单的反弹shell为例,我们可以看到进程树信息
,进程的连接信息
,进程的输入
/输出
与SSH信息
,以及对应的父进程命令行
与进程组命令行
信息,可以有效的帮助运营人员理解告警成因。
例二:以容器逃逸为例,我们除了父进程命令行
与进程组命令行
等信息以外,还会提供诸如文件路径
,外联进程命令行
等辅助字段,用于辅助判断恶意文件和潜在入侵入口。
杀伤链检测
有鉴于APT入侵过程均较为隐蔽,整体行为非常接近正常运维/业务操作,且也不一定会用到特征明显的后门或者木马。Elkeid 会对机器上的行为序列进行分析、打分、并按照杀伤链合并成告警,可以有效发现掩盖在业务操作中的隐蔽入侵行为。
例一:这里的告警对临时文件目录下创建后门行为来进行告警。从告警链条上可以直接看到特定的临时文件创建
和临时文件外链
行为。
例二:这里的Elkeid对文件下载,赋权,扫描等行为序列来进行告警。从溯源图上可以直接看到特定的下载
,赋权
和扫描
行为。
内核态Rootkit检测
在当下,Linux Rootkit 已经广泛作为武器化进行使用,内核态 Rootkit 的危险程度是超出大部分安全工程师的预期的。E lkeid 在ring0 层提供内核态的Rootkit检测和追溯能力。目前我们支持多种 Rootkit 的行为检测,不依赖指纹,可以更好的识别未知威胁。
例:这里我们的Rootkit检测能力可以成功发现并检出已经加载进内核的 Diamorphine
Rootkit,并指出了其对应的恶意行为。
事件合并能力
一次入侵/测试行为往往不是一击即走的,很可能会在不同时间段内产生多条告警。Elkeid通过将告警提取关键信息,用自动化归并成为事件的方式来降低运营噪音,降低运营人员负担,同时提高运营人员对告警的关联分析能力,为运营人员面对入侵/测试行为提供了更全局的视角。
例:Elkeid 自动根据告警特性将10.225.117.35
和 10.225.124.211
两台机器上的相近测试告警合并在一个事件中。
端上文件下载
Elkeid 整合了端上溯源能力,其中文件路径
和进程二进制
均支持页面点击触发端上文件下载,节省运营人员登机排查样本的时间。
告警自动溯源
当告警触发后,Elkeid会自动对恶意行为进行的上下文行为进行关联溯源,将告警放置到相关的原始数据中,以溯源图(Provenance Graph)的形式来帮助运营人员更好的理解告警上下文。目前支持关联的原始数据类型有:进程创建,文件创建,DNS请求,网络连接,监听端口,加载内核模块。
例一:
例二:
值得一提的是,溯源模块目前可以支持告警前后2个小时的原始数据溯源,存储部分依赖Elkeid HUB策略引擎,不需要维护专门存储模块。Elkeid HUB 自研的持久化模块实现了200TB历史数据秒级查询溯源的能力,并且仅依赖原有计算节点资源,是低成本且可靠的告警溯源解决方案。
三. Elkeid 的风险防范能力
HIDS 并不仅仅是入侵检测,作为安全检测和应急处置的发起方,防患于未然也是安全防护的重点工作。Elkeid Team 基于长期高强度对抗形成的经验,整合资产盘点,漏洞扫描,基线检查等功能于一体,作为企业版HIDS 的风险防范能力,增强用户的事前防御。
资产盘点
Elkeid 该版本支持以下资产数据采集:
Cron 定时任务采集
发行版软件包采集
PYPI 软件包采集
Java 软件包采集(支持fatjar)
Systemd 服务采集
开放端口采集
常驻进程采集
用户信息采集
系统完整性信息采集
漏洞检测
目前版本 Elkeid 内置了漏洞库信息,支持基于资产采集信息进行漏洞匹配,实现漏洞管理功能。
基线检测
目前支持等级保护二,等级保护三与弱口令基线检测。
四. 开放/强壮的架构设计
支持百万级Agent接入
Elkeid 后台各组件均可以实现横向扩容与高可用,支持百万级 Agent 接入。在内部百万级 Agent 接入的情况下,平均告警检出时间小于1s。
支持自定义端上插件
Elkeid 在端上是 One Agent 设计,功能模块拆分为不同插件进行工作。如有需求也可以按需编写自己的插件实现自定义需求。
性能/稳定性
Elkeid 经过2年以上超百万台的多场景装机验证,客户端Agent平均占用CPU使用小于0.5%单核,平均内存占用小于100MB,可以满足计算、存储、网络分发等多业务场景下严格的性能与稳定性要求。
在我们的内部压力测试中,Elkeid 展现出了卓越的性能表现,在众多产品横向对比中具有最好的性能和最小的资源占用。
注1: 图上数字越小性能越好,资源占用越小
注2: 压力测试方式为:
120tps的创建文件,文件写入1字节,删除文件;
120tps的进程创建,进程退出;
120tps的网路连接创建,发送数据,连接关闭。
五. 完整的数据控制权
使用者具有完整的 Elkeid 数据权限,用户可以对Elkeid所采集的丰富数据进行进一步的数据挖掘、审计,亦或是进行事件的处理与编排。
对于 Elkeid Agent 上报的原始数据,可以便捷的导入到自己的分析平台中进行保存或分析,也可以通过 Elkeid HUB 进行自定义策略编写,比如:
特殊场景下的自定义策略;
接入内部威胁情报API实现对 Elkeid 采集到的 DNS/MD5 等信息进行威胁情报比对,并将结果推送到 Elkeid 告警中进行查看,或推送到内部SOC平台;
接入内部资产数据库(CMDB)追加告警相关资产所属业务信息,并支持在 Elkeid Console 告警中查看追加信息;
亦可以通过 Elkeid HUB 进行事件处置等工作,如自动化将告警涉及到的恶意IP推送到 WAF 进行封禁等工作。
总之,使用者可以完整自由的使用 Elkeid 产生的全部数据,结合自身场景挖掘数据潜力。可以咨询Elkeid Team 获取更多安全场景的最佳实践。
六. 完整的视野,透视整个云环境
Elkeid RASP
Elkeid 会在后续版本中集成 Elkeid RASP,可以实现 Application Runtime 层面更精准的检测与防御,弥补 Elkeid HIDS 目前仅能采集到操作系统层行为的短板;并且原生支持 RASP 告警关联主机层原始数据,从而更好的实现对服务端的防御。该功能预计v1.8.0发布,补齐下图中的最后一块缺失:
Elkeid 云原生安全能力
随着云原生的发展,k8s 这个新形态的操作系统也越发普及。Elkeid Team 在云原生安全方面也有深厚的积累,我们会首先实现 Kubernetes Auditing 入侵&威胁检测,基线巡检,应用巡检这部分功能,并且原生与Elkeid其他数据/功能打通,实现更全面的防御。该功能预计v1.9.0发布。
Elkeid 是一个正在快速迭代、创新与突破的产品,在可预见的未来,溯源(威胁猎捕)、恶意文件识别与事件处理等关键领域都会有重要更新。
七. 企业版与开源版
Elkeid 依然会保持端上与接入层的全部功能持续开源。
八. Elkeid 的未来
Elkeid 产品化工作从开始研发到v1.7.1版本上线用了7个月时间,产品整体还在快速迭代中。我们希望将我们理解的安全能力赋予在 Elkeid 产品上,给业界带来不一样的思考与创新;希望以技术为核心,解决实际问题为最高优先级,打造符合高强度对抗情况下的安全产品,从而真实帮助到安全工程师与企业。
另一方面:联动与多维度关联,行为分析等是我们一直关注的方向,从Linux Kernel Space 到 User Space,再到Application Runtime 与 Kubernetes。一次入侵可能跨越多个维度,入侵检测也同样不应该拘泥于某个维度,而是应该尝试通过完整的生命周期进行分析/理解/发现/响应。
九. 申请试用
十. 其他
Elkeid 社区版:https://github.com/bytedance/Elkeid
Elkeid HUB 社区版:https://github.com/bytedance/Elkeid-HUB
Elkeid 社区交流群(飞书群):
十一. 写在最后
最后,由衷的感谢内外部的各位朋友,同事以及早期试用的伙伴们,没有你们的协助、建议与包容,或许 Elkeid 企业版还要走很多弯路才能与大家见面。