日志完整性怎么做
日志防篡改一般叠加三层手段:文件属性设为只追加,让内容无法被改写或删除;集中存储与权限隔离,让本地日志被清理后仍有服务器副本;定期计算哈希并可对哈希签名,形成可验证的证据链。哈希与签名文件应异地留存。
基本信息
| 适用平台 | Linux 文件系统(ext4 等支持 chattr 属性的文件系统) |
|---|---|
| 只追加属性 | chattr +a,禁止改写与删除,仅允许追加写入 |
| 权限隔离 | 日志目录权限最小化,读写与删除权限分离 |
| 校验手段 | sha256sum 生成摘要,openssl 做签名与验签 |
| 留存方式 | 摘要与签名文件异地存放,避免与日志一并被清理 |
| 注意事项 | 叠加轮转策略,防止磁盘写满引发服务故障 |
典型使用场景
- 等保整改中为关键审计日志设置只追加属性
- 事后证明日志未被篡改时提供哈希与签名验签记录
- 将哈希文件同步到异地存储,抵御本地清理
- 对合规要求高的日志定期签名并归档
- 事件调查中比对多个副本确认日志一致性
只追加属性与哈希
只追加属性与哈希
chattr +a /var/log/audit/audit.log # 仅允许追加
lsattr /var/log/audit/audit.log
sha256sum /var/log/audit/audit.log > /secure/audit-$(date +%F).sha256哈希签名验签
哈希签名验签
openssl dgst -sha256 -sign /etc/pki/log-sign.key -out audit.sig /var/log/audit/audit.log
openssl dgst -sha256 -verify /etc/pki/log-sign.pub -signature audit.sig /var/log/audit/audit.log手段与效果
| 手段 | 防什么 | 局限 |
|---|---|---|
| 只追加属性 | 本地改写与删除 | root 可先去除属性再操作 |
| 集中存储 | 本地整机被清理 | 服务器侧权限若过松同样有风险 |
| 权限最小化 | 非授权账号读取 | 对特权账号约束有限 |
| 定期哈希 | 事后篡改无法自证 | 需异地留存摘要才有意义 |
| 签名 | 摘要本身被替换 | 私钥需妥善保护并轮换 |
哈希与签名文件异地留存:攻击者改掉日志后难以同步改掉异地的校验记录,这是这套方案的价值所在。
只追加属性与轮转策略要配套:有的轮转工具依赖重命名或删除文件,加属性后可能失败,导致日志目录膨胀并最终写满磁盘。