您当前的位置:首页 > 解决方案

取证工作: SysTools SQL Log Analyzer, 完整的 SQL Server 日志取证分析

时间:2024-06-17 10:54:53

天津鸿萌科贸发展有限公司是 Systools 系列软件的授权代理商。

SysTools SQL Log Analyzer 是 Systools 取证工具系列之一,用于调查 SQL Server 事务日志,以对数据库篡改进行取证分析。

什么是 SQL Server 事务日志?

在深入研究 SQL 事务日志取证之前,让我们先看看 T-log 文件的真实情况。就像许多其他 RDBMS 一样,MS SQL Server 也遵循“预写日志记录”方法。这意味着所有事务在提交之前都写入日志文件,并保存对数据库所做的所有更改的记录。在 SQL 取证工作之前,用户需要知道,从逻辑上讲,事务日志被分类为几个较小的部分,称为 VLF 或虚拟日志文件。

每个 SQL 数据库都使用多个 VLF,每个 VLF 的最小大小必须为 512 KB。日志中虚拟文件的大小和数量会随着日志大小的变化而变化。当一个日志文件填充了事务详细信息时,事务将写入下一个可用文件。在这里,我们将仅对这些文件进行 SQL Server 取证。MDF(主数据库文件)不包括在这里。

基本上,日志文件以循环形式表示,因此,如果一个文件达到其最大限制,则它从起点重新开始。SQL Server 使用截断过程来标记文件末尾或日志文件的任何未使用部分,以便可以使用它来存储信息。如果知道正确的技术,用户不难执行 SQL 事务日志取证。

  • 支持事务复制:日志读取器代理非常仔细地监视数据库事务日志,以便进行事务复制。
  • 恢复到故障点:数据库可以恢复到确切的故障点,它恢复了数据库的完整备份和数据库的差异备份。
  • 恢复单个交易:在数据库引擎发生故障的情况下,日志记录有助于回滚在未完成事务期间完成的单个事务和修改。
  • 恢复未完成的事务:由于 SQL Server 中的故障,某些事务未完成。因此,当 SQL Server 启动时,可以回滚这些事务和修改。这样做是为了确保数据库的完整性。
  • 数据库镜像和日志传送:在日志传送中,主数据库的活动日志文件由主服务器发送到多个位置。在数据库镜像中,主体服务器用于将所有记录立即发送到镜像服务器。

取证分析工作原理 SQL Server 中的日志

每当 SQL Server 被告知在结构化查询语言语法编写的查询的帮助下执行某些操作时,SQL Server 的内部查询优化器都会检查查询、执行查询并从磁盘中检索所需的信息。在检索查询的情况下,数据库将通过网络流式传输到请求客户端。但是,使用修改查询,它会修改内存中的数据页。用户必须注意这一点,以便仔细执行 SQL Server 取证。

它不会将这些修改直接写入磁盘。因此,SQL Server 的作用是将逻辑事务条目写入文件扩展名为 .ldf 的事务日志文件中,所有事务记录都将在其中执行。 最终,几秒钟后,SQL Server 决定将修改后的页面写出到磁盘。执行此操作时,它会导航回事务日志并“检查”事务,该事务进行了修改。

这意味着更改已完成并已写入磁盘。因此,在执行 SQL Server 恢复时,它会直接进入事务日志搜索未完成的事务或尚未取消的事务. SQL Server 会从日志中读取这些事务,然后重新执行它们并快速将受影响的数据库页写入磁盘。在 SQL 事务日志取证中,这是需要了解的一个关键方面。

分析 SQL 日志文件的默认位置

打开 SQL Server Management Studio,然后右键单击数据库。选择“属性”

在新提示的窗口中,单击“文件”菜单,它将显示数据库文件的保存位置以及保存的名称

事务日志的手动取证调查:使用 fn_dblog() 函数

fn_dblog() 函数也称为 DBCC 命令,是 MS SQL Server 的各种未记录函数之一。它可以查看当前数据库的事务日志文件的活动部分中的事务日志记录。fn_dblog() 需要传递以下参数:

  • 起始日志序列号 (LSN)。用户指定 NULL时,将返回从日志开头开始的所有内容。
  • 结束日志序列号。用户指定 NULL时,将返回直到日志末尾的所有内容。

fn_dblog() 相当简单,下面是使用此函数从事务日志中获取信息的方法:

SELECT * FROM fn_dblog(NULL, NULL)

现在,fn_dblog 将返回所有交易详细信息,选择要分析的交易。事务结果包括当前 LSN、已执行操作、事务 ID、父事务 ID、时间、事务名称和事务 SID。

事务日志的自动化取证调查:SQL Log Analyzer Tool

SQL Log Analyzer Tool 是一款专业且功能强大的实用程序,用于以安全的方式读取和分析 SQL 日志文件的事务。它对 SQL 日志文件事务进行取证分析并执行 LDF 文件恢复。

此外,该工具还显示 LDF 文件中执行的所有活动的预览,以及交易名称,登录名,时间,表名和查询。有了这个,人们可以阅读和分析所有事务,如插入、删除、更新等。该软件支持 Datetime2、datetimeoffset、sql_varient、geometry 和 geography 数据类型。

它能够快速扫描、查看 LDF 文件并自动定位关联的 Master 数据库文件。该工具允许从 Live 数据库中获取和显示记录。如果数据库处于简单恢复模式,则用户可以恢复已删除的记录。该工具最好的方面是它可以在联机和离线 SQL 数据库环境中运行,并支持 SQL Server
2017/2016/2014/2012/2008/2005 的 .ldf 文件。简而言之,它可以非常轻松地处理 SQL Server 取证任务。

使用 SysTools SQL Log Analyzer 取证分析 SQL Server 事务日志的步骤

1. 启动 SysTools SQL Log Analyzer 工具,然后单击“打开”以添加 .ldf 文件。

2.该工具提供了两个选项来添加文件:在线数据库选项和离线数据库选项。如果选择了在线数据库选项,则可以通过单击下拉列表来选择服务器名称。选择身份验证模式。点击下拉箭头选择数据库,然后单击“确定”。

3.软件将开始扫描 LDF 文件,扫描成功完成后将弹出向导。点击 OK 按钮。

4.工具显示交易预览。选择所需的表以预览和分析相应的操作日志条目。它根据登录名、时间、表名和事务名对交易进行排序。单击“导出”按钮。

5.您可以应用导出过滤器、日期过滤器以导出特定日期范围的交易记录。可以选择将数据库导出为 SQL 数据库或 csv。单击“导出”以保存记录。

结论

以上我们学习了 SQL 事务日志取证策略。该文章包含了如何对 SQL Server 事务日志进行取证调查的完整信息,包括其位置和工作过程。其中介绍了两种不同的方法来检查 SQL Server 事务日志的详细信息。

fn_dblog 功能有助于检测所有已执行的交易。但是,手动方法相对复杂、冗长且耗时,SysTools SQL Log Analyzer 专业解决方案则是获得足够结果的最安全的解决方案之一。