备端防勒索场景,如何理解“只读”?
有的人会问只读场景下数据还能顺利同步到备端吗?本文结合CDP,聊一聊对于“只读”的理解。
其实上述提问的本质是在特定语境下对“只读”模式的理解存在偏差,通常我们认为只读等于完全不能写入任何数据,以很多权威报告的PDF文件只读模式为例,我们无法对它做任何修改(包括删除覆盖写入等)、拷贝、甚至无法打印,这种只读我们称之为绝对只读,相似的还有U盘物理只读锁。
但区别于绝对只读模式,灾备场景中的只读更加灵活,其本质是保护旧数据不被篡改,同时不影响新数据持续同步,即允许新增、禁止篡改。因此通常指的是基于版本的写保护,即在禁止覆盖/修改/删除已同步的历史数据的前提下,允许按时间顺序追加新同步的数据的“定向只读”。
这种“定向只读”的实现,不是靠硬件物理锁死硬盘,而是靠软件层的权限设计和文件系统优化,平衡数据持续同步与历史数据防篡改的需求具体有两种常见方式:
基于版本化存储的只读
灾备端采用日志式文件系统(如 ZFS、XFS)或对象存储,新同步的数据不会覆盖旧数据,而是以增量版本或快照的形式追加到存储中,每个版本都有独立的索引和写保护标记,只能被读取,不能被修改 / 删除。
例如医院于9:00同步患者 A 的病历初版(版本 1),9:30同步病历修改记录(版本 2),灾备端会同时保存版本1和版本2,且两个版本都处于只读状态(无法删除版本 1,也无法修改版本 2 的内容),但允许继续追加9:30后的新版本(版本 3、4等)。
灾备端存储账户被配置为最小权限,仅开放数据追加权限,但关闭文件修改权限、文件删除权限、目录删除权限。简单说:生产端只能往灾备端加新文件,但不能改里面已有的旧文件,也不能删里面的旧文件,更不能把整个文件夹清空。这种权限设计下,接收新数据和保护旧数据完全不冲突。
以CDP为例,单向 CDP(持续数据保护)的核心目标是“实时记录生产端数据的每一次变更,留存所有历史版本,确保任何时候都能恢复到干净状态”,而定向只读的灾备端设计,恰好匹配这两个需求:
1.持续同步新数据:单向 CDP 需要秒级/分钟级同步生产端的变更,如果灾备端用绝对只读,新的同步数据根本无法存储,持续保护就成了空谈。而“定向只读”允许追加新数据,既能实时接收生产端的病历变更,又能完整记录每一次修改的轨迹,符合医疗数据可追溯的合规要求。
2.防勒索、防篡改:勒索病毒对灾备端的威胁,本质是篡改或删除已同步的干净数据,比如加密灾备端的历史病历,或删除早期版本,让医院无法恢复。而定向只读禁止修改 / 删除旧数据,相当于给所有历史版本加了保护锁:
即使生产端被勒索病毒攻击,病毒若想通过反向通道污染灾备端,也无法加密已同步的历史病历; 病毒若想伪装成新同步数据覆盖旧数据,也会失败(新数据只能追加为新版本,不能覆盖旧版本); 最终,灾备端始终留存未被加密的历史版本,医院只需恢复到攻击前的版本,就能正常使用电子病历。


