莆田企业 NAS 共享目录被加密后,先断网保现场,再判断加密落在卷层还是文件层;快照还在就回滚,被删则靠元数据重建。

NAS 上的共享目录被加密后,为什么第一步是断网而不是重启

因为重启会主动触发一连串写操作,把唯一可用的原始现场覆盖掉。NAS 开机时要做文件系统一致性检查、快照保留策略清理、索引与缩略图重建、套件日志滚动,这些后台任务都会往存储池里写数据。对被加密的卷来说,每写一次,原本还留在空闲块里的旧数据就少一分。断网不是为了让系统停下来休息,而是为了让磁盘保持「加密刚结束」那一刻的状态。

断网的具体动作有顺序。先拔掉网线或关掉交换机上对应的端口,让 SMB 和 NFS 会话中断,加密进程无法继续遍历没走完的目录;再停掉对外发布的端口映射,避免攻击者回来做二次加密;但不要直接断电关机,异常断电会让卷进入需要修复的状态,修复过程本身就是写操作。然后进入管理界面把受影响的共享目录设为只读,导出系统日志与登录记录,记录发现时间、加密文件后缀、勒索说明文件名,以及每块硬盘的槽位和序列号。

有三件事在现成上绝对不能做。第一,不要删除被加密的文件来腾空间,加密文件本身可能是判断变种的依据,删除还可能导致目录项被回收。第二,不要在这台设备上挂载备份盘去比对,一旦备份也被加密,等于把最后一份好数据交出去。第三,不要反复重启试图让系统自己好起来,共享目录加密绝大多数是外部写入造成的,重启不会让文件变回明文。

怎么判断加密发生在卷层还是文件层

判断依据是文件系统还能不能被识别,而不是终端用户看到的报错文字。如果打开共享目录还能看到原来的文件夹层级和文件名,只是每个文件都打不开、后缀被改成奇怪字符,说明文件系统本身是完好的,加密只发生在文件内容层,这种情况的处置空间最大,因为目录树、文件名、创建时间、文件大小这些信息都还在,可以直接按目录盘点清单、按类型批量处理。

如果管理界面直接提示存储空间损毁、卷无法挂载,或者日志里出现文件系统层的错误,说明攻击者动的是卷本身。Btrfs 卷被改写后典型报错是无法挂载、日志出现树块校验失败的提示;ext4 卷则是超级块或块组描述符读不出来,挂载时报文件系统类型无法识别。这一层损坏比文件加密严重得多,因为索引没了,文件名和目录层级一起丢失,只能先重建文件系统元数据再去捞文件。

还有一种最容易被误判的中间状态:文件大小几乎没变,目录结构完整,但打开就是乱码。这是只加密了文件头部若干字节的快速加密手法,剩下的数据往往还是明文。这类文件的价值恰恰在于「没有全被覆盖」,判断方法是取一个样本文件看头部是否被整段替换、正文区域是否还有可读的原始结构。所有判断都应该在一块只读镜像上做,先把每块盘做成镜像并写保护,再在镜像上比对超级块特征,原盘只负责提供一次读取,之后不再通电写入。

群晖和威联通的快照为什么经常一个都没剩

因为快照能省空间,却不等于不可删除的副本。群晖的 Btrfs 快照与威联通的快照都属于同一台设备上的元数据引用,只要能用管理员账号登录管理界面,就能在快照管理里把整个共享文件夹的历史快照删掉。攻击者拿到弱口令、或者设备管理端口直接暴露在公网之后,动手顺序通常就是先登进去删快照,再投放加密程序。所以「我们有开快照」这句话,在真正出事时经常变成「快照一个都不在了」。

第二个原因跟攻击无关,是保留策略。群晖的快照保留支持按小时、按天、按周分层,最小快照间隔为 5 分钟,这是官方 Snapshot Replication 文档写明的粒度,但保留的总份数是有限的。一个共享目录如果只留 24 个每小时快照,可回滚窗口就只有一天;如果按智能保留压缩旧快照,超出保留策略的历史点会被系统自动删掉,不留痕迹。这属于产品公开的设计行为,不是故障。

真正能抗住勒索的是三类东西:不可变快照,也就是在保留期内连管理员都删不掉的快照,是否支持取决于机型、系统版本与文件系统,需要按官方文档逐一核实;异地复制的第二份副本,且副本端不能用同一套账号密码;以及定期离线归档的介质。这三者的共同点是「攻击者用同一个账号进不去、删不掉」,只做本机快照达不到这个效果。

快照被删以后,Btrfs 元数据还能恢复出什么

能恢复出目录结构和一部分数据块,前提是加密之后没有把盘写满。Btrfs 是写时复制文件系统,元数据以树的形式组织,包含根树、文件系统树、扩展树和校验树。删除一个快照,本质上只是删掉了指向旧根节点的引用,旧根指向的那些数据块在被新数据覆盖之前仍然留在盘上。用 btrfs-progs 里的根节点扫描工具可以在盘上找出残留的旧树根候选,再用导出工具按旧根把文件连路径一起导出来。

所以「快照被删、文件被加密」这种组合,通常能抢救两类东西。一类是完整的目录树与文件名,因为目录项保存在元数据里,与文件内容是否被加密无关;另一类是加密前生成、之后没被覆盖的数据块,对只加密了文件头的样本,从旧根导出的文件很可能还是可用的。这也解释了为什么同样的故障,有的能整理出完整目录清单,有的只剩一堆乱码文件名,差别就在加密之后业务还写了多少数据。

不能承诺的部分要说清楚。如果加密程序之后又跑过大量写入、日志滚动、索引重建,旧根指向的块已被复用,导出的目录结构会出现断链,只能按文件类型去捞零散内容;ext4 卷没有这层树结构,只能依赖目录项和 inode 残留,恢复的完整度明显更低。究竟能导出多少,必须在一块只读镜像上跑完盘点才能给出清单,事前给百分比没有意义。

操作上有两条硬红线。不要在原盘上执行 Btrfs 的检查修复命令,也不要跑数据平衡,这两类操作都会改写元数据,btrfs-progs 的文档本身也提示强制修复可能造成比原故障更大的破坏;ext4 上同理,不要带自动修复参数去跑文件系统检查。所有尝试都在镜像副本上进行,原盘保留到最后一步做比对。

导出来的文件怎么验收,以及怎么防住下一次

验收看三层,缺一层都不算完成。第一层是数量,把导出清单与加密前的共享目录台账按部门、按类型逐项对,缺失项要标明是元数据断链还是数据块已被覆盖。第二层是结构,目录层级、文件名、修改时间是否还原,业务部门能不能凭路径直接认领自己的文件。第三层是内容,抽样打开验证,数据库文件要做一致性检查,压缩包要能完整解压,Office 文档要看内嵌对象是否还在。文件系统校验和通过只证明块没坏,不证明业务可用,这两件事必须分开报告。

防下一次的重点不是买更贵的设备,而是把三件事拆开。第一,管理端口不对公网开放,远程访问走加密隧道,管理员账号全部开两步验证,这是公开的通用建议,也是绝大多数 NAS 被入侵的入口。第二,共享目录按部门拆权限,让勒索进程用普通账号跑不满全部目录,同时把备份写入账号与日常使用账号彻底分开。第三,每季度做一次恢复演练,真的从副本里恢复一个目录出来看能不能打开,只检查「备份任务成功」的绿灯不算演练。

介质已经停止写入的企业,可以把硬盘编号后寄修,也可以就现场条件协商上门,具体按设备类型和现场情况确定。咨询电话 0592-8061158,邮箱 32518962@qq.com。送修前请保留原盘与日志,不要在设备上再做任何写操作。

常见问题

群晖的共享文件夹被加密,但快照还在,能直接回滚吗?

可以尝试回滚,但要先确认三件事:快照是否完整、回滚会不会覆盖掉可能需要取证的现场、回滚之后共享目录里的其他正常文件是否会退回旧版本。正确做法是先把当前卷做只读镜像留档,再在管理界面用快照恢复单个共享文件夹,而不是整卷回滚。若快照里已经含有加密文件,说明加密在快照生成之前就开始了,回滚意义不大。

把被加密的文件删掉,是不是就能腾出空间给恢复用?

不建议。加密文件本身是判断家族与加密方式的依据,删掉之后既失去比对样本,也可能触发目录项回收,让本已脆弱的元数据更难还原。腾空间应该用另一块盘承接导出结果,而不是在原卷上做删除。若空间确实紧张,先把镜像落到大容量介质上再操作。

Btrfs 卷提示损毁,还能在管理界面点修复吗

不建议在原始卷上点修复。管理界面的修复动作会往卷里写元数据,一旦判断方向错了,原本还能读出的旧树根会被覆盖。正确顺序是先在只读镜像上评估:能不能挂载为只读、旧树根还有几个、目录项是否完整,评估完再决定是导出数据还是重建卷。原卷保留到数据导出确认之后。

只加密了文件头的文件,把头部截掉是不是就恢复了

不是。这类快速加密通常替换了文件的前若干字节,正文可能仍是明文,但文件格式内部有偏移表:Office 文档的目录结构、数据库文件的页头、压缩包的索引都依赖固定位置,直接截掉头部会让整个文件的结构错位。可行路径是按具体格式重建头部与偏移,属于逐类型的处理工作,不存在一个通用工具能批量还原。能否处理要按样本格式逐个判断。

备份也存在同一台 NAS 上,还有救吗

要看备份的形态。如果是同一存储池里的文件夹副本,通常与源数据一起被加密,价值很低;如果是独立存储池、外接盘或另一台设备上的副本,且攻击者没有拿到那台设备的账号,副本大概率仍可用。先确认副本所在的物理介质有没有被写入,再把它单独只读挂载检查,不要先挂回原设备。