特征比对做初筛
chkrootkit 与 rkhunter 通过比对已知 rootkit 的特征来发现常见痕迹:被替换的系统命令、隐藏的进程与端口、异常的文件属性、可疑的启动项等。它们的定位是初筛工具——能在几分钟内给出需要人工复核的清单,但不能直接给出「是否被入侵」的结论。
结果要人工复核,工具本身也要核对
两类问题很常见:一是误报,自编译内核、安全产品组件、容器环境经常触发告警;二是工具被针对,如果系统已被控制,工具依赖的系统命令本身就可能是被替换过的,据此得出的结论毫无意义。所以使用前应先比对系统命令的哈希(最好用只读介质上的可信副本),再运行检查。
基本信息
| 适用平台 | Linux/Unix(chkrootkit、rkhunter 均需 root 才能完整检查) |
|---|---|
| 常用输出 | /var/log/chkrootkit/、/var/log/rkhunter.log |
| 静默运行 | chkrootkit -q 只输出异常项;rkhunter --check --sk 跳过按键确认 |
| 可信前提 | 依赖的系统命令未被替换,最好从只读介质运行 |
| 定位 | 初筛工具,结论需人工逐条确认 |
典型使用场景
- 应急初查:快速得到一份可疑项清单,确定深入方向
- 定期巡检:把检查结果与上次结果对比,发现新增异常
- 处置后复核:确认清理动作生效,告警项消失
- 多主机批量检查:统一输出接口,汇总比对
- 为报告提供过程说明:记录检查命令、时间与结果概览
运行与留存
运行与留存
# 先确认关键系统命令未被替换(与可信副本比对哈希)
sha256sum /usr/bin/ls /bin/ps /usr/bin/ss
# chkrootkit:静默模式只输出异常项,结果同时留存
chkrootkit -q 2>&1 | tee /mnt/ev/chkrootkit-$(date +%Y%m%d%H%M).txt
# rkhunter:跳过交互确认,指定日志位置
rkhunter --check --sk --logfile /mnt/ev/rkhunter.log
# 记录检查时间与工具版本,便于后续复核
rkhunter --version | head -2常见告警与判断
| 告警类型 | 常见原因 | 复核方式 |
|---|---|---|
| 可疑文件属性文件 | 安全产品或自编译组件 | 核对文件来源与软件包记录 |
| 隐藏进程或端口 | 工具误判或内核特性 | 用多个独立手段交叉验证 |
| 系统命令被替换 | 发行版升级或人为替换 | 比对软件包校验值与文件哈希 |
| 启动项新增 | 运维或软件安装 | 与变更记录、部署时间对照 |
| 网络接口异常 | 容器或虚拟化环境 | 确认网络命名空间与虚拟接口 |
在疑似被控的主机上运行检查工具可能被规避,甚至触发攻击者的对抗动作;采集顺序上应先做易失性数据留存,再运行检查工具。
工具版本与特征库会随时间更新,版本过旧会漏掉新的 rootkit;在报告中记录工具版本与运行时间,避免结论被质疑时效性。