HIDS建设经验总结
0x01 核心能力
1. 数据采集能力
Agent端做深入的数据采集(采集深度、数据上下文丰富度),提高对抗成本
1)内核态、用户态系统数据
2)容器层数据:Docker、Kubernetes
3)通用服务组件数据及日志:数据库、Web服务器、大数据组件、中间件、开发软件等
2. 检测分析能力
能检测到什么程度的攻击(一般入侵 —> 渗透测试 —> 红队演练 —> APT)
核心能力
1 | 1. 入侵对抗:基于网络攻杀链、ATT & CK模型等各个阶段的攻击战术、技术、过程检测与响应 |
0x02 考虑因素
1. 安全性
1 | (1) Agent跟Server的配置下发通道安全,数据传输加密 |
2. 低损耗
1 | 节省资源,占用较少的CPU、内存;可使用cgroup等严格限制资源占用 |
3. 稳定性
1 | 需保证agent长期运行稳定,确保agent本身不影响正常服务及业务 |
3. 高可用
1 | (1) 需满足数十万服务器量级的IDC规模 |
4. 可控性
1 | (1) 精确的熔断限流,服务端命令下发响应需控制在分钟级以内 |
5. 部署兼容性
1 | 需满足广泛的部署兼容性、兼容Linux各种版本、支持容器环境等 |
6. 可扩展性
1 | 系统功能增加、版本更新及维护较为方便,满足可扩展性 |
0x03 数据采集
1. 采集维度
依据安全需求、等保合规、威胁检测模型等梳理HIDS需要采集的数据维度、数据项…
2. 技术方案
总结业界成熟的主机入侵检测技术方案、开源项目核心模块…
(1) eBPF
eBPF Linux内核提供的一种扩展的BPF虚拟机,可用于获取内核运行信息
Seccomp BPF 使用BPF程序对任意系统调用及其参数进行过滤
bpftrace eBPF的高级跟踪语言,可实现内核动态跟踪(kprobes),用户级动态跟踪(uprobes)
(2) Audit
linux-audit Linux安全审计系统,可用于收集记录系统、内核、用户进程发生的行为事件
go-audit Go实现的Linux audit类库,可替代auditd daemon
go-libaudit go-libaudit是用于与Linux Audit Framework通信的库
(4) sysdig
- sysdig 提供深层系统可见性的工具,可对容器进行访问
(5) Capsule8
- capsule8 Linux系统及云环境实时威胁检测防护开源项目
(6) Osquery-events
- osquery-events Osquery事件监控模块,可持续监控系统事件变化情况
(7)elastic-auditbeat
- auditbeat 用于收集Linux审计框架数据,对消息进行解析和标准化,并监测文件的完整性
(8) grsecurity
- grsecurity 一个用于Linux内核的修补程序,为ACL系统提供了内核模块的支持
(9) snoopy
- snoopy 开源的轻量级lib库, 可以记录系统中所有执行过的命令和参数
(10) inotify-tools
- inotify-tools Linux文件系统事件监控工具套件
(11) Rootkit Detection
0x04 检测分析
1. 检测模型
Refer: https://help.aliyun.com/document_detail/191144.html
2. 检测方法
a. 误用检测方法
1 | 1) 模式匹配法 |
b. 异常检测方法
1 | 1) 基于贝叶斯推理检测法 |