1、概述
什么是HIDS
HIDS( host-based intrusion detection system,基于主机的入侵检测系统),通过监测主机上的进程、文件、网络等信息来识别入侵风险。

项目地址:https://github.com/bytedance/Elkeid

Elkeid
架构

Elkeid Agent:代理,与Manager节点通信,负责上传日志等信息,管理组件。
Elkeid Driver:负责 Linux Kernel 层采集数据,兼容容器,并能够检测常见 Rootkit。
Elkeid RASP:支持 CPython、Golang、JVM、NodeJS、PHP 的运行时数据采集探针,支持动态注入到运行时。
Elkeid HUB:策略引擎。
AgentCenter:收集Agent 数据,写入到消息队列,给Agent下发指令。
ServiceDiscovery:服务发现。
实时计算模块:消费消息队列数据,进行分析和检测。
离线计算模块:消费消息队列数据
Manager:管理各个模块。

Elkeid Agent && Agent center

Elkeid Agent
Agent具有数据通信、资源监控、组件版本控制、文件传输、机器基础信息采集等功能。

Agent拥有多个Plugins,是Agent的插件,Agent的子进程,可以由多种语言实现。

Driver Plugin: 负责与 Elkeid Driver 通信,处理其传递的数据等
Collector Plugin: 负责端上的资产/关键信息采集工作,如用户,定时任务,包信息等
Journal Watcher: 负责监测systemd日志的插件,目前支持ssh相关日志采集与上报
Scanner Plugin:负责在端上进行静态检测恶意文件的插件,支持
Yara RASP Plugin: 分析系统进程运行时,上报运行时信息,处理下发的Attach 指令,收集各个探针上报的数据
Baseline Plugin: 负责在端上进行基线风险识别的插件

Agent Center基于gRPC + ProtoBuf通信,具有以下功能:

限流:最大链接数保护
负载均衡:SD服务发现+Manager动态控制
通信链路安全:SSL+HTTPS
上报数据Kafka

Elkeid Driver
Elkeid Driver 主要通过 Kprobe Hook Kernel Function 来提供丰富而准确的数据收集功能,包括内核级进程执行探测,特权升级监控,网络审计等等。,并且支持 Linux Namespace。
主要是Plugins、Hook、Filter、Anti-Rootkit四个功能。

Elkeid RASP
RASP(Runtime application self-protection,实时应用自我防护),通过探针的方式注入到应用中,在运行时实时防护。

Elkeid HUB

INPUT 数据输入层,社区版仅支持Kafka
RULEENGINE/RULESET 对数据进行检测/外部数据联动/数据处理的核心组件
OUTPUT 数据输出层,社区版仅支持Kafka/ES
SMITH_DSL 用来描述数据流转关系

Service Discovery
服务发现,发现Agent。
负载均衡,

Manager
任务下发,分布式任务分发系统。

2、安装

按照官方文档给了2中按照方式,在实际使用中docker安装使用的127.0.0.1有许多问题,这里选择服务器安装方式------Elkeid 完整部署

2.1、配置目标机器root用户ssh免密登录

如果部署机器为本机,依旧需要配置本机免密登录【此步骤一定要做】,登录耗时需要小于1s。 可用以下命令进行验证,两次date命令的输出结果需要相同。

date && ssh root@{ip} date # 输出时间差小于1s 

2.2、解压release产物并配置目录

  • 下载release产物(分卷压缩包),并合并压缩包
wget https://github.com/bytedance/Elkeid/releases/download/v1.9.1.4/elkeidup_package_v1.9.1.tar.gz.00
wget https://github.com/bytedance/Elkeid/releases/download/v1.9.1.4/elkeidup_package_v1.9.1.tar.gz.01
wget https://github.com/bytedance/Elkeid/releases/download/v1.9.1.4/elkeidup_package_v1.9.1.tar.gz.02
cat elkeidup_package_v1.9.1.tar.gz.* > elkeidup_package_v1.9.1.tar.gz

如果之前安装过,请删除/root/.elkeidup/elkeid文件夹,避免造成干扰

  • 解压release产物并配置目录
mkdir -p /root/.elkeidup && cd /root/.elkeidup 
mv {DownloadDir}/elkeidup_package_v1.9.1.tar.gz elkeidup_package_v1.9.1.tar.gz
tar -xf elkeidup_package_v1.9.1.tar.gz 
chmod a+x /root/.elkeidup/elkeidup 

2.3、生成并修改config.yaml

ip为本机ip,不能写127.0.0.1,若不为单机部署,请参考资源手册修改config.yaml

cd /root/.elkeidup
./elkeidup init --host {ip} 
mv config_example.yaml config.yaml

2.4、部署

cd /root/.elkeidup
# 命令为交互式 
./elkeidup deploy 

2.5、构建Agent

cd /root/.elkeidup 
./elkeidup agent init 
./elkeidup agent build 
./elkeidup agent policy create 

2.6、访问前端console并安装Agent

顺利安装完成后,执行cat /root/.elkeidup/elkeid_passwd将看到各组件的随机生成的密码和相关的url。

字段 说明
elkeid_console console账号密码
elkeid_hub_frontend hub前端账号密码
grafana grafana账号密码
grafana grafana 地址
elkeid_hub_frontend elkeid hub前端地址
elkeid_console elkeid console地址
elkeid_service_discovery 服务发现地址

3、访问  ip+8082;账号密码为elkeid_console的输出

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐