
核心要点(TL;DR)
- 网页防篡改核心是监控+拦截+恢复,而非单纯备份。
- WAF防外部攻击,防篡改防文件被改,二者互补。
- 文件备份是事后恢复,防篡改强调实时阻断。
- 选型看场景:静态站用防篡改,动态站需组合方案。
痛点引入:网站被篡改,为什么备份和WAF都没拦住?
很多运维都遇到过:页面突然被插入博彩链接,WAF没告警,备份是三天前的。根本原因是网页防篡改缺位——WAF管流量,备份管恢复,而防篡改管文件实时完整性。本文用实战命令和清单,帮你理清三者区别并落地防篡改。
网页防篡改是什么:核心机制与常见实现
网页防篡改(Web Tamper-Proofing)是通过监控网站文件变化,发现非授权修改时立即阻断或恢复的技术。核心三要素:监控、拦截、恢复。
常见实现方式:
- 文件完整性监控:定时比对哈希,如AIDE、Tripwire。
- 实时监控:inotify监听文件事件,触发告警或恢复。
- 内核级驱动:拦截写操作,只允许白名单进程修改。
- 发布隔离:网站目录只读,更新走发布系统。
轻量实战:用inotifywait监控网站目录,发现修改立即从备份恢复并告警。
#!/bin/bash
WEB_DIR="/var/www/html"
BACKUP_DIR="/backup/web"
inotifywait -m -r -e modify,create,delete --format '%w%f' "$WEB_DIR" | while read FILE; do
REL=${FILE#$WEB_DIR/}
cp -a "$BACKUP_DIR/$REL" "$FILE" 2>/dev/null
echo "$(date) 恢复文件: $FILE" >> /var/log/tamper.log
done注意:需先安装inotify-tools,并确保备份目录与网站一致。
与WAF、文件备份的区别:一张表看清
| 维度 | 网页防篡改 | WAF | 文件备份 |
|---|---|---|---|
| 防护对象 | 网站文件完整性 | HTTP/HTTPS流量 | 数据副本 |
| 作用时机 | 篡改发生时实时阻断/恢复 | 攻击请求到达前拦截 | 事后恢复 |
| 核心能力 | 监控、拦截、恢复 | 规则匹配、CC防护 | 版本回滚 |
| 典型工具 | AIDE、inotify、内核驱动 | ModSecurity、云WAF | rsync、borg、云备份 |
| 局限性 | 不防流量攻击 | 不防文件落地篡改 | 有恢复窗口期 |
结论:三者互补,不能互相替代。WAF防入侵,防篡改防落地,备份保底。
具体排查:如何发现网站是否被篡改
定期执行以下检查,快速定位异常:
- 哈希比对:用find+sha256sum生成基线,对比当前文件。
find /var/www/html -type f -exec sha256sum {} \; > /tmp/web_baseline.txt # 对比时重新生成并diff - 查找最近修改文件:
find /var/www/html -type f -mtime -1 -ls - 检查异常进程:
ps aux | grep -E 'www-data|apache|nginx',看是否有可疑子进程。 - 检查计划任务:
crontab -l和ls /etc/cron.*,攻击者常留后门。 - 日志分析:grep文件修改记录,如
grep 'POST' /var/log/nginx/access.log | grep -i 'eval\|base64'。
分步解决:从零搭建网页防篡改
以Linux+Nginx为例,四步落地:
步骤1:建立文件基线
aideinit
cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db配置/etc/aide/aide.conf,监控/var/www/html。
步骤2:配置实时监控与自动恢复
使用前文的inotify脚本,配合systemd服务常驻。
步骤3:设置目录只读(发布隔离)
chattr +i /var/www/html/index.html
# 更新时先chattr -i,更新后加回或使用mount只读挂载,但需评估更新流程。
步骤4:接入告警
脚本中调用邮件或webhook,例如curl发送到钉钉机器人。
防护建议:对于需要内核级拦截的场景,可考虑AegisX的网页防篡改能力,支持实时监控与自动恢复,减少人工干预。
检查清单与适用场景对比
上线前核对清单:
- □ 网站目录已建立哈希基线
- □ 实时监控进程运行中
- □ 备份目录与网站分离
- □ 告警通道测试通过
- □ 发布流程已适配只读目录
适用场景:
- 静态官网/博客:文件变动少,适合只读+监控,成本低。
- 动态CMS(WordPress等):需防篡改+WAF组合,防插件漏洞。
- 电商/金融:建议内核级防篡改+备份+WAF,多层防御。
行动建议
今天起,先为网站目录建立哈希基线,并部署一个inotify监控脚本。若人力有限,可选用云防篡改服务或AegisX方案,把实时阻断与恢复交给专业工具。记住:防篡改不是备份的替代品,而是安全闭环的关键一环。
常见问题(FAQ)
网页防篡改和WAF到底有什么区别?
网页防篡改聚焦文件完整性,监控网站目录变化并实时恢复或阻断;WAF聚焦HTTP流量,拦截SQL注入、XSS等攻击。两者互补:WAF防入侵,防篡改防落地。
有了文件备份还需要网页防篡改吗?
需要。备份是事后恢复,存在时间窗口;防篡改能实时发现并阻断篡改,减少损失。建议备份+防篡改组合使用。
网页防篡改一般怎么实现?
常见方式有:文件完整性监控(如AIDE)、内核级驱动拦截、发布隔离(只允许通过发布系统更新)。轻量方案可用inotify+脚本实现监控告警。
小网站需要上网页防篡改吗?
建议上。小网站常因弱口令被篡改挂马,影响SEO和信誉。可从免费工具入手,如配置inotify监控关键目录,或使用云厂商的防篡改服务。