UNIX系统安全工具 第7章:Tripwire 文件系统完整性检测

来源:《UNIX系统安全工具》(UNIX System Security Tools)第7章,田浩然上传电子书。pdftotext 提取,13页文本型。

核心定位

Tripwire 是完整性检测工具:监测对文件系统的未授权修改(植入木马、篡改日志、留后门/逻辑炸弹)。它给文件取数字”快照/指印”存入基线数据库,之后每次运行把当前快照与基线比对,标记新增/删除/内容变更的文件。

两大价值:

  1. 入侵检测——手工检查 UNIX 上数万个文件不现实,Tripwire 自动化比对;
  2. 入侵后恢复省时——没有它,怀疑 root 被攻破时只能重装系统。

由 Eugene Spafford 和 Gene Kim 1992 年在 Purdue 大学开发,1998 年商业化(Tripwire Security Inc.)。

优秀安全工具的五个特征(Tripwire 全占)

  • 自保护性:10 种签名算法(MD5/MD4/MD2、Snefru、SHA、Haval、CRC-32/16 等),默认每条目记录两个签名——攻击者伪造一个校验和或许可能,同时伪造两个实际不可能(作者实测 25 万文件,128 位 MD4/MD5/Snefru 零冲突,16 位 CRC 约 2.5 万冲突)。
  • 可移植性:支持几十个 UNIX 版本,数据库用 ASCII 文本编码。
  • 可配置性:按文件/目录粒度控制监测哪些属性,可忽略特定项。
  • 可扩展性:一次安装覆盖上千台机器,内置预处理语言共享配置、每机一个数据库。
  • 自包容性:不依赖外部程序(外部程序 = 额外安装成本 + 额外攻击面)。

操作模型

四模式:数据库生成(-initialize 建基线)→ 完整性检查(默认主模式)→ 数据库更新(-update 路径)/ 交互式更新(-interactive 逐项询问)。

流程:tw.config(监测清单+屏蔽选项)→ 生成新数据库 → 与基线比对 → 应用屏蔽 → 输出报告(邮件/终端)。

tw.config 语法要点

  • 条目 = 路径 + 选项屏蔽:/home/xyz +s -a(监测大小、忽略访问时间)。
  • 属性标志:p 权限 / i 节点 / n 链接数 / u uid / g gid / s 大小 / a 访问时间 / m 修改时间 / c 节点时间。
  • 签名编号:1=MD5、2=Snefru、3=CRC-32、4=CRC-16、5=MD4、6=MD2、7=SHA、8=Haval(默认用 1+2)。
  • 模板简化配置:R 只读文件(默认)、L 日志文件、N 什么都不忽略、E 忽略所有、> 增加日志。可混合,如 R-2 = 缺省检测但不跑 Snefru。
  • ! 前缀排除整个条目;= 前缀只监测目录本身不进内容。

部署铁律(规划考虑)

  1. 安装时机:系统刚装好/刚升级时立刻装。已运行一段时间的系统可能已被污染,之后再建基线毫无价值。补救办法:单用户模式重装系统文件。
  2. 基线存放:必须放只读介质(写保护软盘/CD-ROM/安全远程只读分区)。挂载只读不够——root 攻击者可随时改回可写。
  3. 性能权衡:Snefru 极慢;作者实践=所有文件跑 MD5、关键系统文件加跑 Snefru,仍在 Pentium Pro/RedHat 5.0 上花半小时出报告。按风险评估选算法组合。

运维技巧

  • cron 定期跑(联网机器至少每天),tripwire | /bin/mail root;同时随机时间间隔运行——固定周期会被攻击者摸清利用。
  • 快速检测:tripwire -i 2 跳过 Snefru(忽略指定签名)。
  • Tripwire 不跨文件系统安装点:配置 ”/” 不会检查 /usr、/home,每个分区起点都要单独声明。
  • 数据库太大放不进只读介质时:忽略次要文件、减少监测属性、只用一种签名——降低有效性也强于不检测。

可行动点

  • 任何服务器交付前基线化:Tripwire/AIDE 类工具 + 基线放异地只读存储,是入侵后唯一能自证系统干净的手段。
  • “两个独立哈希”原则可推广到一切防篡改场景(单校验和可被针对性碰撞)。
  • 类比现代工具:AIDE、osquery、IMA 都是 Tripwire 思路的后裔。

关联