mcpField
V
validating-backup-integrity-for-recovery

validating-backup-integrity-for-recovery

github.com/mukul975安全35.2k133 次安装8 周前更新
代码仓库

关于 validating-backup-integrity-for-recovery

用于备份后的完整性检查与恢复验证的安全技能,面向负责备份运维和灾难恢复的人员。它涵盖哈希比对、隔离恢复测试及勒索软件痕迹检查,不负责初始备份配置或调度。

主要功能

  1. 01生成 SHA-256 文件清单
  2. 02验证备份归档完整性
  3. 03在隔离环境测试恢复
  4. 04核对文件数量与数据大小
  5. 05扫描勒索软件痕迹
  6. 06自动化并安排验证任务

适用场景

  1. 01勒索软件恢复前确认备份可用
  2. 02备份任务完成后运行自动校验
  3. 03检测存储中的静默数据损坏
  4. 04审计备份是否满足恢复要求

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill validating-backup-integrity-for-recovery

安装后在 Claude Code 中输入/validating-backup-integrity-for-recovery确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
references/
api-reference.md
scripts/
agent.py

详细介绍

验证备份完整性以用于恢复

何时使用

在以下情况下使用此技能:

  • 在依赖备份进行勒索软件恢复之前,验证备份完整性
  • 构建在每次备份作业后运行的自动化备份验证流水线
  • 审计备份基础设施,以确认符合合规要求(SOC 2、ISO 27001、NIST CSF RC.RP-03)的可恢复性
  • 在灾难发生前检测备份存储中的静默数据损坏(位腐)
  • 验证不可变或气隙备份未被篡改

请勿使用于初始备份配置或调度。此技能侧重于备份后验证。

前置条件

  • 可访问备份存储(本地、NAS、S3、Azure Blob、GCS)
  • Python 3.9+ 及 hashlib(标准库)
  • 用于比较的备份清单或基线哈希文件
  • 用于恢复测试的隔离恢复环境
  • 备份工具命令行访问权限(restic、borgbackup、rclone 或厂商专用工具)

工作流

步骤 1:生成基线哈希清单

在备份时为每个文件创建加密指纹:

# Generate SHA-256 manifest for a directory
find /data/production -type f -exec sha256sum {} \; > /manifests/prod_baseline_$(date +%Y%m%d).sha256

# Verify manifest format
head -5 /manifests/prod_baseline_20260319.sha256
# e3b0c44298fc1c149afbf4c8996fb924...  /data/production/config.yaml
# a7ffc6f8bf1ed76651c14756a061d662...  /data/production/database.sql
步骤 2:验证备份归档完整性

检查备份归档本身是否损坏:

# Restic: verify backup repository integrity
restic -r s3:s3.amazonaws.com/backup-bucket check --read-data

# Borg: verify backup archive
borg check --verify-data /backup/repo::archive-2026-03-19

# Tar with gzip: verify archive integrity
gzip -t backup_20260319.tar.gz && echo "Archive OK" || echo "Archive CORRUPTED"

# AWS S3: verify object checksums
aws s3api head-object --bucket backup-bucket --key daily/2026-03-19.tar.gz \
  --checksum-mode ENABLED
步骤 3:执行恢复到隔离环境的测试
# Restore to isolated test directory
restic -r s3:s3.amazonaws.com/backup-bucket restore latest --target /restore-test/

# Generate hash manifest of restored data
find /restore-test -type f -exec sha256sum {} \; > /manifests/restored_$(date +%Y%m%d).sha256

# Compare baseline and restored manifests
diff <(sort /manifests/prod_baseline_20260319.sha256) \
     <(sort /manifests/restored_20260319.sha256)
步骤 4:验证数据完整性
# Count files in original vs restored
echo "Original: $(find /data/production -type f | wc -l) files"
echo "Restored: $(find /restore-test -type f | wc -l) files"

# Check total size
echo "Original: $(du -sh /data/production | cut -f1)"
echo "Restored: $(du -sh /restore-test | cut -f1)"

# Database consistency check after restore
pg_restore --list backup.dump | wc -l  # Count objects in dump
psql -c "SELECT schemaname, tablename FROM pg_tables WHERE schemaname='public';" restored_db
步骤 5:检测备份中的勒索软件痕迹

在信任备份用于恢复之前,扫描勒索软件指标:

# Check for common ransomware file extensions
find /restore-test -type f \( \
  -name "*.encrypted" -o -name "*.locked" -o -name "*.crypt" \
  -o -name "*.ransom" -o -name "*.pay" -o -name "*.wncry" \
  -o -name "*.cerber" -o -name "*.locky" -o -name "*.zepto" \
\) -print

# Check for ransom notes
find /restore-test -type f \( \
  -name "README_TO_DECRYPT*" -o -name "HOW_TO_RECOVER*" \
  -o -name "DECRYPT_INSTRUCTIONS*" -o -name "HELP_DECRYPT*" \
\) -print

# Check file entropy (high entropy = possible encryption)
# Files with entropy > 7.9 out of 8.0 are likely encrypted
python agent.py --entropy-scan /restore-test
步骤 6:自动化并调度验证
# cron-based validation schedule
# Run nightly after backup window
0 4 * * * /opt/backup-validator/agent.py --validate-latest --notify-on-failure
# Weekly full restore test
0 6 * * 0 /opt/backup-validator/agent.py --full-restore-test --config /etc/backup-validator/config.json

关键概念

术语定义
哈希清单包含数据集中每个文件加密哈希(SHA-256)的文件,用作完整性基线
位腐存储介质上逐渐发生的数据损坏,会静默改变文件内容
不可变备份在定义的保留期内无法修改或删除的备份
恢复测试将数据从备份恢复到隔离环境以验证可恢复性的过程
文件熵文件内容随机性的度量;加密文件的熵接近 8.0 bits/byte
3-2-1 规则保留 3 份数据副本,存储在 2 种不同介质类型上,其中 1 份为异地副本
备份链完整备份和增量备份的序列,必须全部完好才能恢复

工具与系统

工具用途
Restic加密、去重的备份,内置完整性验证
BorgBackup带归档验证的去重备份
Rclone带校验和验证的云存储同步
AWS S3 Object Lock符合 WORM 合规要求的不可变备份存储
Azure Immutable Blob用于合规的防篡改备份存储
sha256sum用于文件完整性的标准哈希计算
pg_restorePostgreSQL 备份验证和恢复测试

常见陷阱

  • 从不测试恢复:最常见的故障模式。从未恢复过的备份只是未经检验的假设。
  • 只检查归档完整性,不检查数据完整性:有效的 tar.gz 可能包含损坏的文件内容。始终对单个文件进行哈希。
  • 信任最后一次备份而不扫描勒索软件:如果感染早于备份,备份可能包含加密文件。
  • 忽略增量链完整性:一个损坏的增量备份就可能破坏整个恢复链。
  • 验证失败时没有告警:备份验证必须通过告警进行监控,而不能只是静默记录日志。
  • 使用 MD5 进行完整性验证:MD5 在密码学上已被攻破。使用 SHA-256 或 SHA-3 进行完整性验证。

参考资料

  • NIST SP 800-184:网络安全事件恢复指南
  • NIST CSF 2.0 RC.RP-03:备份完整性验证
  • CIS Controls v8:控制项 11 - 数据恢复
  • CISA 勒索软件指南:https://www.cisa.gov/stopransomware

评论

支持 Markdown