适合:个人开发、小规模团队里「备份是有在做,但这样真的够吗?」的人。这里不讲攻击步骤,只讲怎么做出一定能还原的备份。
本站的视角:「云同步」不是备份
一个常见的误解是「我同步到 OneDrive/Google 云端硬盘了,所以已经备份了」。不对。同步是复制当前状态的机制,所以误删的文件、被勒索软件加密的文件,都会原样复制到另一边。
备份需要能回到之前的状态:能恢复旧版本的多版本管理,以及事后无法被覆写的不可变副本。同步很方便,但单独使用时,一边坏了两边都坏。请把它当作与备份完全不同的角色。
为什么「有做备份」还不够
需要备份,是因为丢数据的原因又多、又会同时发生。硬件故障、误操作删除、被盗与灾害,还有勒索软件。只有一道防线,挡不住来自另一个方向的事故。
尤其是勒索软件,会主动搜索备份本身并加密它。和数据放在同一处的备份,会在同一起事故中受损。这是漏洞应对中「保持可恢复的状态」(→ 漏洞应对实务)最基本的形式。
基本形态:3-2-1(+离线/不可变)
3 — 3 份副本
原件+2 份复制。坏掉 1 份,还能靠另外 2 份还原。
2 — 2 种介质
例如:内置硬盘+外接 SSD,或者 NAS+云。不要全放在同一个盒子里。
1 — 1 份异地
放在另一个地方(云/另一处场所)。火灾、被盗、水灾不会一次全毁。
+ 1 份离线/不可变
不长期连接,或无法覆写。始终保留 1 份勒索软件加密不了的副本。
怎么做(按顺序补齐)
先盘点「丢了会麻烦的东西」
按 3-2-1 来布置
至少让 1 份离线/不可变
自动化(手动坚持不了)
定期做恢复测试
勒索软件也会盯上备份
现在的勒索软件不只加密主数据,还会加密它能找到的任何已连接的备份目标(NAS、外接盘、已挂载的云)。所以如果只有一直连着的备份,它会和其他数据一起被加密。
最有效的防御是:至少保留 1 份离线(物理断开)或不可变(在一定期间内禁止覆写、删除)的副本。有没有这一份,决定了你是付赎金还是不付。
只有云同步
- 误删、加密也会原样同步过去
- 回不到旧版本
- 长期连接,也会被勒索软件加密
- 从没确认过能不能还原
3-2-1+不可变+恢复测试
- 多版本管理能恢复干净的旧副本
- 离线/不可变副本与勒索软件隔离
- 地点和介质的冗余,不会全部丢失
- 定期测试确认确实能还原
按环境:自带什么,还要补什么
下面列出常见环境自带的机制、能否回到旧版本,以及针对勒索软件还要补充什么。
| 环境 | 自带机制 | 能否回到旧版本 | 要补充的 |
|---|---|---|---|
| Windows | 文件历史记录(保存到外接硬盘或网络位置) | 能(文件资源管理器中的「还原以前的版本」) | 备份完成后拔掉目标硬盘。在别处再放一份 |
| Windows(Windows 备份应用) | 把桌面、文档等文件夹同步到 OneDrive | 取决于 OneDrive 的功能 | 底层是同步,所以另外保留文件历史记录或外部副本 |
| Mac | 时间机器 | 能(过去 24 小时每小时、过去一个月每日、更早每周) | 在另一个地方再放一块备份磁盘,不时轮换 |
| iPhone | iCloud 云备份(接通电源、连接 Wi-Fi 且锁屏时自动进行) | 用于恢复整台设备 | 重要的照片和文档也在电脑或外接硬盘上保留一份 |
| OneDrive | 同步 | Microsoft 365 订阅者可用「还原 OneDrive」回到过去 30 天内的某个时间点 | 在同步之外保留 1 份离线副本 |
| Google 云端硬盘 | 同步 | 非 Google 格式文件可通过「管理版本」回退;旧版本可能在 30 天后或新版本达到 100 个时被删除 | 对需要的版本使用「永久保留」,再加 1 份离线副本 |
| 服务器 / VPS | 备份工具(restic 等)和独立的保存目标 | 能(从工具的快照恢复) | 让生产服务器无法删除保存目标中的备份(S3 对象锁定等) |
| 共享虚拟主机 | 服务商的自动备份 | 只能在服务商的保留期内 | 定期把数据从服务商那里另行拷出来(到自己的电脑或云) |
「要补充的」这一列,就是把 3-2-1 剩下部分补齐的工作。几乎没有哪个环境只靠自带机制就能做到 3-2-1 加离线副本。
如何检查自己的环境
为了摆脱「应该在备份吧」的状态,请按顺序检查以下几点。每一步只查看你自己的设备和账户上的设置。
查看最后一次成功备份的时间
- Windows:打开控制面板中的「文件历史记录」,确认它已开启、使用的是哪块硬盘、上次复制文件的时间。
- Mac:在 系统设置 → 通用 → 时间机器 中查看最近一次备份的时间。在终端中,
tmutil latestbackup显示最近一次备份,tmutil destinationinfo显示备份目标(某些设置下终端需要「完全磁盘访问权限」)。 - iPhone:设置 →[你的名字]→ iCloud → iCloud 云备份,会显示上次备份的日期和时间。
- 服务器:使用 restic 时,
restic snapshots会列出快照及其日期。
如果日期停在几天前,那就是第一件要修的事。
确认备份目标不是一直连着的
检查外接硬盘或 NAS 是否一直插着、一直作为驱动器可见。在服务器上,通过权限设置确认生产服务器上存放的凭据不能同时删除备份。使用 S3 时,还要确认目标存储桶是否启用了对象锁定(Object Lock)。
确认云端能回退
OneDrive:查看 设置 → 选项 下是否出现「还原 OneDrive」(适用于 Microsoft 365 订阅者)。Google 云端硬盘:右键单击文件,看「管理版本」里是否列出旧版本。两者都有保留期限,所以要回到更早的时间点,需要另一种方式。
实际恢复一样东西(恢复测试)
挑一个重要文件,恢复到另一个位置,然后打开它。Windows 上右键单击文件夹,选择「还原以前的版本」;Mac 上从时间机器恢复。服务器上则恢复到另一个目录并检查内容;使用 restic 时,可以用 restic check --read-data-subset=5% 之类的命令读回部分已存数据进行校验。数据库则恢复到另一个数据库,确认能启动。
记录结果和所用时间
记下日期、恢复了什么、花了多长时间。这样就能大致知道完整恢复需要几个小时,下次测试时也能注意到变化。
常见错误及修正方法
- 外接硬盘一直插着:对勒索软件来说,连着的硬盘只是又一个可以加密的地方。每次备份完就拔掉,或者两块硬盘轮换,让一块始终断开。
- 把同步当成备份:Windows 备份应用的文件夹备份,底层是 OneDrive 同步。另外保留一份能保存旧版本的备份。
- 备份控制台和生产环境用同一个密码:生产环境被攻陷时,备份也会被删掉。使用不同的密码,并开启多因素认证。
- 没有关注失败提醒:备份停了也没人发现。开启失败通知,并每月检查一次最后备份时间。
- 恢复所需的东西只放在备份里面:加密密码和恢复密钥要存放在备份以外的地方(→ 如何选择密码管理器)。
- 离线副本只做了一次就再也没更新:只能恢复到做那份副本时的状态。按固定周期(例如每月)更新它。
公开案例:保住的是一份断开连接的旧副本
关于 2021 年 10 月鹤町立半田医院(英文)遭受勒索软件攻击一事,专家委员会报告(2022 年 6 月公布)就备份有如下记载:
- 备份服务器在已确认被加密的服务器名单中
- 截至 2018 年一直离线保存的备份数据未受影响,可以用于恢复
- 攻击发生约两个月后,于 2022 年 1 月 4 日恢复正常门诊
连着的备份和生产环境一起被攻击;断开的副本保住了。但那份副本已经是好几年前的了。离线副本只有在定期更新、可恢复的时间点保持较新时,才能发挥全部作用。
本站是怎么做的
本站把数据和文档自动地、放到另一个地方、保留多个版本地备份,并同时采用「能设计成可重建的就设计成可重建」的思路。比如可以机械地重新生成的数据(抓取的 feed、索引),就以能够重建为前提来持有,而不是依赖备份,这是「从源头减轻备份负担」的做法。在此之上,对无法替代的东西(文章正文、配置)做冗余保存,并把始终保持可恢复的状态当作运维的前提。
更换已停止支持的设备时(→ Windows 10 支持终止的话题),之所以能安心迁移,也是因为有能还原的备份。请不要只把备份当成其他对策都失效时的手段,而要把它当作事故应对的前提条件。
接下来读
- NAS案例:针对运行过时DSM的Synology NAS的勒索软件攻击,以及如何更新
- 基础:安全最低限度清单(Tier 3=检测、恢复)
- 实务:漏洞应对实务(保持可恢复的状态)
- 相关:Windows 10 支持终止的风险与迁移
- 保管:密码与机密的安全保管
- 案例:KADOKAWA / Niconico 勒索软件事件(2024)(停摆数月,业务连续性的教训)
- 服务商被攻破时:虚拟主机服务商被攻破时该怎么办(说明为什么唯一的备份不能只放在该服务商内部)
- 大阪公立大学勒索软件攻击(承包商云存储中的个人数据泄露已确认)
参考资料
- CISA 等,"#StopRansomware Guide"(保留离线、加密的备份并定期测试恢复):cisa.gov
- 鹤町立半田医院,关于计算机病毒事件的专家委员会调查报告(2022 年 6 月,日文):handa-hospital.jp
- Microsoft 支持,"Backup and restore with File History":support.microsoft.com
- Microsoft 支持,"Back up your folders with OneDrive":support.microsoft.com
- Microsoft 支持,"Restore your OneDrive":support.microsoft.com
- Google 云端硬盘帮助,"Check activity & file versions":support.google.com
- Apple 支持,"Back up your Mac with Time Machine":support.apple.com
- Apple 支持,"How to back up your iPhone with iCloud":support.apple.com
- AWS 文档,"Locking objects with Object Lock":docs.aws.amazon.com
- restic 文档,"Working with repositories"(snapshots / check):restic.readthedocs.io