SQL Server中特定时间数据库篡改的取证分析

Microsoft SQL Server是最好的关系数据库管理系统,各种公司都使用它来维护其关键数据库。但是,在某些情况下 - 比如有人故意更改数据库 - 组织需要一种方法来跟踪数据库中最后修改的内容以及他们可以采取适当措施的时间。

需要帮助事务日志文件。实际上,T-Log文件是SQL Server数据库的一个非常重要的组件。因为它跟踪数据库中发生的所有事务以及每个事务完成的修改。实际上,它用于在系统故障情况下恢复整个数据库。除此之外,SQL事务日志文件是在特定时间对数据库篡改进行取证分析的唯一方法。

我们将描述经过验证的方法,这些方法可以列出时间以及从T-Log文件对数据库进行的修改。

用于特定时间数据库篡改的法医分析技术

最初,有两种方法可以从T-log文件中检索与数据库修改相关的信息。这里,两种解决方法都以详细的方式提到。

#Approach 1:使用未记录的函数fn_dblog

fn_dblog()位于SQL Server中用于取证目的的未记录函数列表下。因为它用于显示T-Log文件的内容。此信息包含有关在数据库中修改的内容的关键状态。

如何随时间查看数据库的变化

为了理解如何深入使用fn_dblog(),我们创建了一个名为Employee的表,并通过delete操作对其进行了修改。之后,在fn_dblog()的帮助下,我们将获得从事务日志上次修改表的时间。

  • 要查看表格的内容,请运行“选择”查询,如屏幕截图所示:

员工表

  • 之后,执行以下命令以从employee表中删除一行:

删除记录

  • 接下来,运行“选择”查询以再次查看已修改的表内容:

获取表数据

  • 现在,使用fn_dblog()函数查看删除时间。如果我们在函数中使用Null,那么所有日志记录都会显示在控制台上。为此,您必须执行以下SQL查询:

获取交易

  • 如果要查看更新,删除和插入等所有操作,请运行以下命令:

获取所有交易

与Fn_dblog()函数关联的后果

手动方式的问题在于它显示了相关操作(更新,删除)的时间,而不是整个SQL Server数据库中删除了哪个数据行和列。因此,用户无法确定哪些信息被准确删除。在下一技术中克服了该问题,其中用户可以容易地查看修改的内容并将其恢复。

#Approach 2:使用SysTools SQL Log Anaylzer工具进行T-Log文件的取证分析

SysTools SQL Log Analyzer是一个出色的实用程序,可以深入检查SQL Server的T-log文件并从中恢复数据。用户可以获取时间和日期,事务名称和查询等详细信息,并将修改后的数据导出回数据库。该工具适用于在线数据库和脱机数据库。要使用在线数据库,用户需要提供服务器名称和身份验证模式。另一方面,在离线模式下,需要LDF和MDF的确切位置。之后,选择数据库并进一步操作软件。

使用SysTools SQL Log Analyzer可以完成的任务

  • 深入扫描

该软件采用高级算法构建,可以深入检查事务日志文件。整个数据库保存在工具左侧面板中加载的T-log文件中。可以单击任何数据库以获取有关它的详细信息。

数据库篡改的取证分析

  • T-Log信息的详细视图

此工具为您提供有关带有时间戳的数据库中发生的最新更改的完整详细信息。由于这个原因,它最适合在特定时间进行数据库篡改的取证分析。以下信息是用户可以从软件获得的信息:

  • 交易,如插入,更新和删除
  • 登录名
  • 约会时间
  • SQL查询

当用户单击任何行时,表的完整数据将显示在底部详细窗格中:

排序数据库事务

  • 恢复修改后的数据

扫描后,可以将数据导出回数据库。您只需选择或取消选择要还原的事务。除此之外,您还可以应用日期过滤器,只有特定范围的数据库才能恢复。除此之外,还有三个导出数据库的选项,即SQL Server数据库SQL脚本CSV。此外,您可以自由选择目标,如创建新数据库导出到现有数据库

保存恢复的记录

将所有这些结合在一起

这就是SQL Server中特定时间对数据库篡改的取证分析。在这篇文章中,我们介绍了最好的两种方法,可以跟踪数据库中的修改事件以及时间。由于fn_dblog()的一些缺点,建议使用SysTools SQL Log Analyzer。这是查看数据库中所做的所有修改并将数据还原回SQL Server的好方法。

猜你喜欢

转载自blog.csdn.net/Tybyqi/article/details/85123850