Elkeid

Elkeid®: Elkeid 是一款可以满足主机,容器与容器集群,Serverless 等多种工作负载安全需求的开源解决方案,源于字节跳动内部最佳实践。

源码仓库: github.com/bytedance/Elkeid

server

Elkeid 由两部分组成:

  • 端上:在Linux主机中完成信息采集,与后端进行通信。
  • 后端:处理端上通信,管理各个 Agent 与插件,提供管理接口和操作界面,对采集数据进行分析。

端上能力

ability

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负责对整个后台进行管理,并提供相关的查询、管理接口。
ConsoleElkeid 操作界面,让 Elkeid 更加易用。
Elkeid-HUB进行数据分析,产出告警,见:Elkeid-HUB