加密后的数据库,第一件事不是恢复而是保住现场:不重装、不初始化、不反复重启,把密文文件、日志与卷影副本原样留存。

泉州鞋服企业的 ERP 数据库为什么容易被一次加密到底

鞋服行业的 ERP 有三个特点会放大风险:数据库与打版、工艺、库存几套系统共用一台数据库服务器;生产和仓库的多台终端长期持有数据库直连账号;服务器与备份常在同一个域内、同一套管理员凭据下。这三件事叠加,攻击者只要拿到一个运维账号,就能同时动到生产库和备份。加密动作本身是分钟级的,真正决定损失的是加密范围有多宽。

从公开披露的勒索攻击链看,入口多为钓鱼邮件附件、暴露在公网的远程桌面、以及弱口令的 VPN 账号。攻击者进入后通常先做横向探测,找出数据库服务器、备份服务器和文件服务器,再统一投放加密程序。这个先后顺序说明,防守重点不是「数据库会不会被加密」,而是「加密到数据库的那一刻,是否还有一份不在这套凭据范围内的副本」。

数据库被加密后,现场第一反应该做什么

第一反应应当是断网隔离与现场封存,而不是尝试修复。继续运行的风险是三重的:加密进程可能仍在后台遍历剩余文件;数据库服务反复重启会覆盖临时文件与日志;杀毒软件自动清理可能删除残留的加密程序和运行记录,而这些恰恰是判断加密范围与加密方式的依据。

  • 先断网再断电,顺序不能反,避免关机过程中仍有远程指令下发。
  • 把服务器、磁盘阵列、备份介质、移动硬盘逐一登记在册,标注发现时间与原始状态。
  • 保留一份加密说明文件与文件后缀样本。勒索家族通常会在每个目录留下说明文件,后缀名是判断家族的直接线索。
  • 不在原始磁盘上做任何写操作,包括「扫描修复」「磁盘检查」「碎片整理」。

怎么判断是数据库文件被加密还是整个卷被加密

判断依据是文件分布与文件头,而不是报错信息。整个卷被加密时,同一目录下的数据库文件、日志文件、备份文件、甚至图片和文档会一起变成同一个新后缀,文件大小多数保持不变;只有数据库文件被加密时,同目录其他类型的文件往往完好,说明攻击者按扩展名筛选了目标。

再看文件头。用十六进制方式打开文件前若干字节:正常的 SQL Server 数据文件第一页是页头结构,开头有可识别的页标识;被完整加密的文件开头通常是随机字节,或整段被替换成同一段固定内容。有些家族为了压缩加密耗时,只覆盖文件头部的若干 KB、或按块抽样加密,这类文件的中间部分仍保留原始页结构,这也是之后页级提取能够成立的前提。具体覆盖了哪些区段,取决于加密家族与其配置,没有通用结论。

为什么加密后的数据库文件不能直接附加回 SQL Server

因为 SQL Server 附加数据库时会校验文件头与页结构,头部被改写后附加必然失败,而失败过程中的写回动作有污染原始文件的风险。常见报错分两类:「文件头不是有效的数据库页」指向头部校验不通过;「数据库无法打开、文件正在使用」多半只是占用或权限问题。两类报错的处理路径完全不同,混在一起反复试只会浪费现场。

还有一个更隐蔽的坑:单用户抢救模式与紧急模式都要求数据库能完成基本挂载,头部已损坏时这些命令同样跑不起来。正确做法是先把原始文件完整复制成镜像,在镜像副本上操作,原始磁盘保持只读。工程上常说的「先做镜像再动手」,指的就是这一步。

页级提取是怎么从密文文件里取出可用记录

思路是把数据库文件当成一堆固定大小的页来处理,而不是当成一个完整数据库。SQL Server 的页大小是 8 KB,每页有自己的页头,页头记录页类型、页号等结构信息,表的数据行按行偏移数组存放在页体内。只要页头和行结构没被破坏,就可以逐页读取、按系统表重建表结构,再把行数据导出来。

  • 页扫描:按 8 KB 步长遍历文件,用页头特征筛出结构完整的页,同时标记被加密覆盖的位置。
  • 结构重建:从系统基表页还原表定义、列类型和索引关系;系统表页缺失时,按数据页里的行结构反推。
  • 提取与清洗:把行数据写入中间表,剔除页内残留的碎片行与被覆盖的残缺行。
  • 初步核对:用行数、主键连续性、关键字段取值范围做一致性检查。

页级提取的边界要说清楚:它只能救回结构完好的页,被整体覆盖的页无法凭空还原;没有系统表页时,表名和列名可能只能按顺序推断;图片、工艺文件这类大字段跨页存储,缺页时通常只能取到残片。所以提取结果一般是「可用的业务数据」,而不是「完好的数据库」。

恢复出来的 ERP 数据要做哪三项校验才算可用

三项校验分别是结构校验、业务校验和账实校验,缺一项都不能算恢复完成。结构校验看数据库能否正常挂载、索引能否重建、约束是否完整;业务校验看期初余额、期末库存、应收应付能否对上;账实校验是把系统里的库存数量与仓库实物、或与外部台账抽样比对。

实操建议按这个顺序走:先在恢复库里跑一遍完整性检查,把报错的表和列全部列出来;再让财务与仓库各抽一批单据核对;最后做一次月度结账试算。结账能不能跑通,往往比任何单项检查更能说明数据是否可用,因为它把期初、发生额、余额三条链路一次性串了起来。

还有一个容易忽略的点:加密发生前的在途单据、未过账凭证,以及加密期间的业务流水,通常需要人工补录。补录范围应在恢复开始前就与业务部门确认,避免恢复完成后反复返工。补录结束后要把时间边界写进交接说明,否则下一次对账还会出现差额。

平时怎么让 ERP 数据在下次加密中还有退路

退路的核心是副本的独立性,而不是备份的频率。一份与生产共用域账号、长期在线、随时可被覆盖的备份,在勒索攻击中与没有备份差别不大。可落地的做法有三条:备份账号与生产账号分离;至少保留一份离线或不可变副本;定期做抽样恢复,而不是只看作业日志上的「成功」。

对鞋服企业这类业务连续性要求高的场景,还要额外确认两件事:数据库日志备份是否真的按计划在跑(不少企业只做完整备份,日志链早已断裂),以及备份文件是否与生产库落在同一台存储上。这两件事都不需要额外预算,但决定了出事时能回到哪个时间点。

常见问题

数据库被加密后,能不能用备份直接还原

取决于备份是否生成于加密发生之前、且备份介质没有被同一套凭据访问过。先看备份文件的后缀与文件头是否正常,再到隔离环境里试还原一次,不要在生产服务器上直接覆盖还原。

文件后缀变成陌生字符,是不是就没救了

不是。后缀只说明文件被哪个家族处理过,能否恢复取决于内容被覆盖的范围。头部被覆盖但页结构完整的文件,仍有页级提取的空间;页结构被大面积覆盖时,可救回的比例会明显下降。具体能取回多少,需要在镜像副本上实际扫描后才能判断。

能不能用通用解密工具直接解开

不存在可公开获取的通用解密工具。勒索加密使用的密钥由攻击者一侧生成,没有密钥就无法逆向还原;宣称能通用解密的工具,多数本身就是二次加密或窃取数据的程序。

送修或远程评估需要提供哪些材料

需要原始磁盘或完整镜像、加密说明文件样本、数据库版本与排序规则,以及业务上的关键表清单。材料越完整,结构重建与业务核对就越快。技术咨询可联系 0592-8061158 或 32518962@qq.com。