Elkeid
Elkeid®: Elkeid 是一款可以满足主机,容器与容器集群,Serverless 等多种工作负载安全需求的开源解决方案,源于字节跳动内部最佳实践。
Elkeid 由两部分组成:
- 端上:在Linux主机中完成信息采集,与后端进行通信。
- 后端:处理端上通信,管理各个 Agent 与插件,提供管理接口和操作界面,对采集数据进行分析。
端上能力
Elkeid-Agent | 用户态 Agent,负责管理各个端上能力组件,与 Elkeid Server 通讯。 |
Elkeid-Driver | 在 Linux Kernel 层采集数据的组件,兼容容器环境,并能够提供Rootkit检测能力。 |
Elkeid-RASP | 支持 CPython、Golang、JVM、NodeJS 的运行时数据采集探针,支持动态注入到运行时。 |
插件
Driver | 负责与Elkeid Driver通信,处理其传递的数据等。 |
Collector | 负责端上的资产/关键信息采集工作,如用户,定时任务,包信息等等。 |
Journal Watcher | 负责监测systemd日志的插件,目前支持ssh相关日志采集与上报。 |
Scanner | 负责在端上进行静态检测恶意文件的插件,目前支持yara 规则。 |
RASP | 分析系统进程运行时,上报运行时信息,处理server下发的 attach 指令,收集各个探针上报的数据,并支持与探针通信。 |
Baseline | 基线插件通过已有或自定义的基线策略对资产进行检测,来判断资产上的基线安全配置是否存在风险。基线插件每天定时扫描一次,同时也可以通过前端进行立即检查。 |
后端能力
AgentCenter | 负责与Agent进行通信,采集Agent数据并简单处理后汇总到消息队列集群,同时也负责对Agent进行管理包括Agent的升级,配置修改,任务下发等。 |
ServiceDiscovery | 后台中的各个服务模块都需要向该组件定时注册、同步服务信息,从而保证各个服务模块中的实例相互可见,便于直接通信 |
Manager | 负责对整个后台进行管理,并提供相关的查询、管理接口。 |
Console | Elkeid 操作界面,让 Elkeid 更加易用。 |
Elkeid-HUB | 进行数据分析,产出告警,见:Elkeid-HUB。 |