《Applied Sciences》:Forensic Recoverability of Deleted Records Under Database Shrink in Microsoft SQL Server 2025: A Version-Comparative Experimental Study
编辑推荐:
摘要:数据库是刑事调查中数字证据的关键存储载体,删除数据的可恢复性是取证成功与否的决定性因素。Microsoft SQL Server作为最广泛部署的关系型数据库管理系统(RDBMS)之一,已有多项取证研究探讨不同采集方法下删除记录在物理数据库文件中的留存情况
摘要:数据库是刑事调查中数字证据的关键存储载体,删除数据的可恢复性是取证成功与否的决定性因素。Microsoft SQL Server作为最广泛部署的关系型数据库管理系统(RDBMS)之一,已有多项取证研究探讨不同采集方法下删除记录在物理数据库文件中的留存情况。既往研究以SQL Server 2008和2017建立参照基线,证明数据库收缩(Database Shrink)操作会引发版本特异性和方法特异性行为:在SQL Server 2017中应用收缩后进行逻辑采集(Logical Collection)时,未分配空间(unallocated space)中的删除数据会被完全初始化(initialized)致使无法恢复——该现象在SQL Server 2008中未出现,两种版本下的物理采集(Physical Collection)中亦未出现。随着近十年来最重要的架构更新版本SQL Server 2025发布,上述取证行为是否在新版本中延续尚属未知。研究人员在受控SQL Server 2025环境中复现文献中的实验设计,采用相同删除场景(无条件DELETE命令)、相同两种取证采集方法(逻辑采集与物理采集)及相同收缩条件。结果表明SQL Server 2025未重现SQL Server 2017中观察到的版本特异性初始化行为:四种实验条件下,数据页未分配空间(unallocated page space)中的删除数据残留均可恢复,说明收缩操作与逻辑采集机制之间的交互作用发生了根本性改变。该可恢复性具双重属性:既有利于取证人员保留删除证据,同时从安全与隐私角度构成数据擦除风险——删除记录未被可靠清除。本研究为当代SQL Server环境下的数字取证人员提供更新的取证指导,特别有助于仅有嫌疑人提供的逻辑备份(.bak)且存在删除记录情形下的采集方法选择。
论文解读:Microsoft SQL Server 2025中数据库收缩(Database Shrink)下删除记录的法医可恢复性的版本对比实验研究
一、研究背景与意义
在数字法医调查(Digital Forensic Investigation)中,关系型数据库管理系统(RDBMS,Relational Database Management System)常作为犯罪证据的核心存储库,嫌疑人往往通过DELETE命令删除涉案记录以销毁证据。Microsoft SQL Server被企业及公共部门广泛采用,其删除数据残留(data residue)的可恢复性直接影响案件侦办。既往SQL Server取证研究多依赖事务日志(Transaction Log,.ldf文件)重建删除记录,但当日志被截断(truncate)、缺失或使用了最小化日志的TRUNCATE操作时该方法失效。为此,学界提出直接检查物理数据文件(.mdf文件)中未分配页空间(unallocated page space)的残留字节进行 carving恢复,并由Shin等人的研究证实DELETE、TRUNCATE TABLE及DROP三种删除操作均会在数据页未分配区域留下可恢复残留。Shin进一步在SQL Server 2008与2017中引入证据采集方式(逻辑备份采集 vs 物理文件拷贝采集)与数据库收缩(Database Shrink,通过DBCC SHRINKDATABASE或DBCC SHRINKFILE执行)作为变量,发现关键版本差异:SQL Server 2017在执行收缩后做逻辑采集(BACKUP DATABASE生成.bak),会使未分配空间中删除数据被全零初始化(zero-initialized)导致不可恢复,而SQL Server 2008及两版本的物理采集均未出现此现象。SQL Server 2025是自2016版以来架构变动最大的版本,引入新的存储引擎优化,收缩操作与逻辑采集引擎交互是否仍保持2017版行为尚无实验验证。本文由研究人员复现Shin 2018年实验协议,唯一变量替换为SQL Server 2025,检验"2017版收缩致逻辑采集中删除数据初始化行为是否延续"(H1)与"SQL Server 2025架构变更消除或修改该初始化效应"(H2)两个竞争性假设,并与2008、2017版基线对照,为数字取证实践更新指导依据。本文发表于《Applied Sciences》。
二、主要关键技术方法
研究人员采用单变量对照实验设计,以SQL Server 2025为测试平台,参照Shin 2018基准实验保留完全一致参数:建库ForensicTestDB及表CustomerInfo(含INT主键、NVARCHAR、VARCHAR、BIT列),插入20条记录;执行无条件DELETE FROM CustomerInfo;部分条件执行DBCC SHRINKDATABASE('ForensicTestDB', 0);分别通过BACKUP DATABASE生成.bak(逻辑采集/Logical Collection)及停服DETACH后拷贝.mdf/.ldf(物理采集/Physical Collection)获取证据;使用DBCC IND查看页分配状态,DBCC PAGE(…, 格式2)以十六进制转储模式检视数据页未分配区域残留;通过SHA?512校验文件完整性;四组条件组合为:逻辑采集无收缩、逻辑采集有收缩、物理采集无收缩、物理采集有收缩;以SQL Server 2008与2017结果引自文献基线作跨版本比对。
三、研究结果
6.1. Baseline Confirmation: SQL Server 2008 and 2017 Results(基线确认:SQL Server 2008与2017结果)
引自文献[2]:SQL Server 2008所有条件下未分配删除数据残留均保留,可恢复;SQL Server 2017仅在"逻辑采集+收缩"条件下未分配删除数据被初始化归零,不可恢复,其余条件可恢复。此为对照基线。
6.2. SQL Server 2025 Results(SQL Server 2025结果)
6.2.1. Logical Collection Without Shrink (Condition 1)(无收缩逻辑采集)
DELETE后直接逻辑备份,页分配信息保留、行偏移数组(row offset array)清零、未分配区域存在删除数据残留,确认可恢复,与2008及2017相应基线一致。
6.2.2. Logical Collection with Shrink (Condition 3)(有收缩逻辑采集——核心条件)
DELETE后执行DBCC SHRINKDATABASE再逻辑备份。结果显示页分配信息未被初始化(与2008近似而与2017不同),行偏移数组清零,未分配区域删除数据残留依然存在,确认可恢复。此与SQL Server 2017中同条件结果截然相反——2017版该条件下残留被初始化不可恢复,SQL Server 2025未出现初始化。且SHRINKDATABASE报告因空闲空间不足未进行实际页重定位(page relocation),说明2017版的初始化效应关联于备份引擎(Backup Engine)处理逻辑而非物理页移动。此为研究主要发现,支持H2假设。
6.2.3. Physical Collection Without Shrink (Condition 2)(无收缩物理采集)
DETACH后拷贝.mdf/.ldf,未分配删除数据残留存在,可恢复,与基线一致。
6.2.4. Physical Collection with Shrink (Condition 4)(有收缩物理采集)
DELETE后收缩再DETACH拷贝,未分配删除数据残留存在,可恢复,印证物理采集无论版本或收缩与否均保留残留。
四、讨论与结论
研究人员经四组条件实验确认假设H2成立——SQL Server 2017特有的"逻辑采集+收缩→未分配删除数据初始化"行为未在SQL Server 2025中出现,SQL Server 2025在所有采集方式与收缩组合下未分配删除数据残留均可恢复,行为回归SQL Server 2008模式。该变化源于SQL Server 2025备份引擎或存储引擎内部处理逻辑修订,具体机制需引擎级IO路径插桩验证超出页级取证范畴,但反取证(anti?forensic)意义上收缩操作已不再能作为针对逻辑采集的有效证据销毁手段。
研究结论译为:本研究表明SQL Server 2025未延续SQL Server 2017中数据库收缩后在逻辑采集中初始化未分配删除数据的版本特异性取证行为。四种实验条件下未分配删除数据残留均保留且可恢复,说明SQL Server 2025的取证行为已回归与SQL Server 2008一致的形态,2017年版所观察到的初始化效应系该版本特有实现特征且已于新版中被移除或修改。对取证调查人员的实际意义为:SQL Server 2025环境下通过逻辑备份与物理采集两种方式均可实现删除数据恢复,收缩操作在此版本中不再构成针对逻辑采集的有效反取证工具。