5 月 12 日西班牙一家电信公司首次发现了勒索病毒 WannaCry,随后落网的「大鱼」包括英国国家健康服务中心、中国石油天然气集团公司和雷诺公司等。只经过了一个周日,WannaCry 就传播到了 150 多个国家的近 20 万台电脑。

勒索软件 WannaCry 的肆虐的速度之快和广度之大,可以说重新「教育」了普通用户对勒索病毒的认识:运用极难破解(目前只存在理论可能)的 AES 算法,将目标电脑上的文件进行加密,要求用户交纳「赎金」来换取解密文件的密钥。而这次 WannaCry 侵染了理论上防卫更周全的政商机构的计算机,让每一个普通用户没有了侥幸心理。如果下一次还有类似的勒索病毒出现(几乎是大概率事件),中招的就是你。

病毒出现一天后的扩散情况 图片来源 © intel.malwaretech.com

而作为一个依赖计算机进行生产的普通用户,除了及时安装系统更新和安全补丁来降低中毒的风险。自己动手进行文件备份无疑是一个更彻底的解决方式,毕竟勒索病毒「撕票」后的损失就是文件无法取回。如果有完善的文件备份,勒索病毒的毫无威胁了。

但对于一份重要文件,应该备份多少份,又应该将备份文件存放在哪里,才能最大限度的提高恢复文件的可能性呢?这时,「3-2-1 原则」就能用来指导我们进行备份。

何谓「3-2-1 原则」

相比个人电脑层面,「3-2-1 原则」早已被用来指导商业公司的数据备份。香港生产力促进局就在 官网 就介绍过它,来指导企业免受勒索软件的困扰。

运用「3-2-1 原则」的目的则是,一旦遭遇文件损坏,及时的将文件恢复过来。所谓「3-2-1 原则」,是指在进行文件备份时:

  • 3:存储 3 份完整文件,一份原件加上两份拷贝。
  • 2:将文件起码保持在两种不同的介质上。
  • 1:将一份拷贝保存在异地。

所谓的「介质」,是指内置硬盘、外置硬盘、光盘或者 U 盘等不同的存储介质。最常见的是原件保存在内置硬盘,此时将两份拷贝分别存到两块不同的外接硬盘,就算达成了第二条(当然同时也达成了第一条)。

将一份拷贝放在原件和另一份拷贝不同的地点。例如办公室和家里。有一种情况是原文件是光盘或者 U 盘,而你在同一块硬盘上(例如内置硬盘)不同的文件夹内放了两份拷贝。虽然达成了第一二条要求,但是不能达成第三条,因为两份拷贝都会被放在异地或者没有异地拷贝。

看到这么多条条框框,不免有些怕麻烦。把文件忘云盘2 一放,若是本地丢失了(或者被勒索软件锁住),从云盘把文件取回就可以了,这不就等同于「3-2-1 原则」想实现的备份效果了吗?但即使先不去考虑网络条件下的传输速度,造成的上传下载大型文件(例如 Time Machine 的整机备份)的效率不稳定。如果是云盘服务商宕机或者服务器上文件被毁,或者服务商要关闭服务,你所谓的备份也不存在了。所以,放在云盘的文件,只能被视为一份普通的拷贝文件,而不能说这是一次备份行为。

那么我们费了这么大功夫,「3-2-1 原则」真的是有效的备份方式吗?

为什么「3-2-1 原则」是有效的

要讲清楚「3-2-1 原则」为什么是有效的,不妨先理一理都有哪些损坏文件的可能性。

除了前文所说的勒索软件,常见的还有硬盘故障导致(无论内置还是外置)突然的无法读取文件,因为电脑病毒造成的直接毁坏,自然灾害或者盗窃造成的设备遗失或者损坏,当然还有人为原因,无论是无意的误删还是有意的销毁。

可能的失去数据的原因

三份拷贝的意义在于降低所有拷贝同时被毁的可能性。如果我们假设一份拷贝被损坏的可能性是 1/100,那么三份一起被毁的可能性就是 1/1000000,约等于你连续 20 次猜对掷硬币后的正反面这一事件的可能性。

将文件放在不同的媒介,则是为了降低因为某种原因对单一介质造成的损害。例如一次电路异常,很有可能毁掉你存放在内置硬盘里文件,但是放在外置硬盘里的拷贝就不受影响。最后再将一份拷贝放在其他地点,就能避免类似盗窃或者自然灾害(火灾水灾等)等造成的数据「团灭」。当然,如果遇上了地震等规模的自然灾害,我想数据安全就应该不是优先考虑的事情了。

实作!我如何运用「3-2-1 原则」来备份文件

除了我自有的一台 Macbook Pro, 还在学校办公室使用一台 Windows 台式电脑,所以我的需求就是完整备份我的 Mac 内所有资料和 PC 上属于我的项目文件,即 Macbook Pro 的内置硬盘和 PC 上的文件是第一份拷贝,内置硬盘为第一种媒介。

所谓「工欲善其事必先利其器,利其器,利其器,休息一下,利其器1 」,要备份自然要挑选趁手的软件。原始的复制粘贴实在效率太低,所幸无论是 macOS 和 Windows 两个系统本身,还是第三方软件,都有不少解决方案。而挑选的准则是:

  1. 能在不需要我每次备份都干预的情况,自动按时完成备份。
  2. 拷贝要有历史版本功能的。方便随时回溯到某一版本。

macOS 本身上有被誉为「为了这个功能买一台 Mac」的 Time Machine,在保持默认设定的情况下,用了一块外置硬盘群晖 NAS 进行内置硬盘的完整备份,两种媒介的要求就达成了。NAS 是在同一局域网内,就进行自动 Time Machine 备份,而外置硬盘也仅需我插入硬盘这个动作。NAS 放在家中,外置硬盘放在学校,实现了一份拷贝在异地。Time Machine 是可以随时进行文件回溯的。

存储位置和介质

PC 上则稍微麻烦一些。Windows 10 系统有备份功能,可以「使用文件历史记录进行备份」,将它和外置硬盘连接,选择自己的项目文件的文件夹。也实现了接近 Time Machine 的体验。但由于 NAS 被放在家中,所有是通过群晖 NAS 系统的 Cloud Station Backup 应用,可以自动备份文件的每一次修改。虽然不是完整的备份了整个系统,但是也算达成我的需求。

一些遗憾

当然我的实践也有漏洞。问题在于 macOS 的系统备份和 PC 上的文件备份都在 NAS 的一块硬盘上,而且没有加装第二块硬盘用来完整备份 NAS 中的主硬盘。一旦 NAS 中那块硬盘损坏,也就一次损坏了两份拷贝。虽然不是针对同一份文件,但也加大了风险。

其次是针对正在编辑的文稿,例如 Word 文档或者 CAD 的工程图,理想状态是定时自动保存,保证能回溯的每一次保存文件的时间点,毕竟这类文档是不断调整,说不定修改了个十几次,最后还是要用到第一版文件(懂这种痛的人自然懂)。但是 Time Machine 的最小间隔是一小时,那么如果内置硬盘发生意外,最好的结果也只是回溯到一小时内的最近备份。虽然不是文件全毁,但遇上了也会很恼人。而 Cloud Station Backup 理论上会保存每一次文件改动,但是受制于网络条件,显得不是那么可靠。

最后的小故事

众所周知,这次 WannaCry 的源自美国 NSA 泄露出的「永恒之蓝」漏洞利用工具。早在 2012 年,美国政府的 US-CERT(United States Computer Emergency Readiness Team )就写过一份报告,介绍了备份「3-2-1 原则」。很可惜,光看文章是不会解决任何实际问题的。

每当我问起身边的同学「为什么不把自己的重要文件备份一下」,哪怕只是把它们放在类似 Dropbox 的云盘里,得到的答案通常是:没必要吧。如果追问下去,才会吐露真言:太麻烦了。当我介绍 Time Machine 功能时(没错,朋友买 Mac 也是我安利的),会略微惊叹:这样就可以了?而过几日聊起这事,又发现在我眼皮底下完成第一次备份后,还是没有养成定期备份的习惯。

或许,我的这篇文章,更应该讲讲为什么要按时备份?