本文是对Wazuh, Osquery, AgentSmith这三款开源HIDS进行功能性的评估,目的是取长补短,做一个完善的HIDS系统。
简介
HIDS的功能主要是依靠agent的数据收集功能, 所以HIDS的功能对比,实际上是agent的功能对比。
HIDS主要是为了检测主机系统的异常行为,也就是说,必须要建立各种基线,在基线的基础上进行事件监控,从事件中甄别出异常行为或误报,从而不断地调整更新基线。
那么,agent必须要采集各种系统信息生成各种基线,并且通过轮循或实时监控的方式来收集各种事件。
agent由于必须要主机系统上运行,有着不抢占资源,无感知,尽可能精准的要求,
所以开发agent需要使用更贴近系统,管控资源更好,不需要依赖大量运行库的语言,一般都是使用C/C++,也有使用rust和Go。
评估标准
由于基线数据的采集频次不需要很高,可以使用定时采集方式,降低对业务服务进程的性能影响。所以,采集基线数据的开发难度不是很高。
事件监控,很多时候是希望不要遗漏,尽量精准和实时,但同时又不占大量资源,尽量不影响业务系统的运行。所以,事件监控的开发难度就非常高,特别是实时监控方面。
基于上面考虑,对agent的功能评估标准大致如下:
-
基线:整体占40分,包含10条基线,每条基线4分。
-
设备基线:系统的硬件设备(CPU型号,内存设备型号,存储设备,各种外设)
-
系统基线:cpu个数,内存使用,磁盘使用,分区加载,系统版本,发行版,启动时长,系统限制
-
供应链基线:软件管理的仓库
-
软件基线:软件列表,软件详细信息
-
配置基线:shell配置,启动配置,加载配置,分区配置
-
用户基线: 用户列表,组列表,权限列表
-
网络基线:网卡个数,地址信息,ARP信息,路由信息,DNS信息,防火墙信息
-
服务基线:服务列表,已启动的服务,服务所管理的进程,定时任务
-
容器基线:docker版本,镜像,网络,容器
-
安全基线:apparmor配置和运行状态,selinux配置和运行状态,yara配置,suid程序
-
-
事件监控:总分60。由于在操作系统里,基本上一切事件都可以归结为进程的活动。
-
谁启动进程:进程树,检测进程隐藏,so注入,提权行为
-
某个进程退出:监控进程异常退出
-
哪个进程插入内核模块:检测rootkit/bootkit
-
哪个进程操作某个文件:检测恶意篡改,痕迹隐藏,恶意授权
-
哪个进程启动socket:检测高危端口和外连行为
-
哪个进程操作某个进程:检测动态注入和DOS行为
-
各种基线
功能有无这样表示:
1: 有 0: 无
设备基线
剩余内容请关注本人公众号debugeeker, 链接为最后防线:三款开源HIDS功能对比评估