练习 - 监视数据库

已完成

假设你收到来自公司安全管理员的警报。 在你的网络上检测到潜在的安全漏洞。 未经授权的个人可能通过恶意活动访问了你的数据库。 如何进行跟踪?

你知道需要主动监视数据库是否存在可疑活动。 你能做些什么来不仅了解数据库中发生的情况,还能防止恶意活动的发生?

Azure SQL 数据库具有内置功能,可帮助你跟踪数据库中发生的情况。 如果确定存在恶意活动,它可以监视并向你发出警报。

Azure SQL 数据库审核

通过启用审核功能,可以存储在数据库上执行的操作供以后进行检查,或使用自动化工具来分析这些操作。 审核还可用于进行合规性管理,或了解数据库的使用方式。 此外,若要在 Azure SQL 数据库中使用 Azure 威胁检测,则也需要审核。

可使用 SQL 数据库审核来:

  • 保留 选定事件的审核痕迹。 可以定义要审核的数据库操作的类别。
  • 报告 数据库活动。 可以使用预配置的报告和仪表板快速开始使用活动和事件报告。
  • 分析报告。 可以查找可疑事件、异常活动和趋势。

审核日志会写入你指定的 Azure Blob 存储帐户中的追加 Blob。 审核策略可以应用在服务器级别或数据库级别。 启用后,可以使用 Azure 门户查看日志,或者将其发送到 Log Analytics 或事件中心进行进一步处理和分析。

审核实践

最佳做法是避免同时启用服务器 blob 审核和数据库 blob 审核,除非:

  • 需要对特定数据库使用不同的存储帐户或保留期。
  • 对于与服务器上其他数据库不同的特定数据库,应审核事件类型或类别。 例如,可能拥有仅需要针对特定数据库进行审核的表插入。

否则,我们建议你仅启用服务器级 blob 审核,并对所有数据库禁用数据库级审核。

按照以下步骤在系统上设置审核。

  1. 使用激活沙盒时所用的同一帐户登录到 Azure 门户

  2. 在门户顶部的搜索栏中,搜索你的服务器,然后在门户中选择该服务器。 将 NNNNN 替换为服务器名称中的数字。

  3. 在左侧菜单窗格的“安全”下,选择“审核”

  4. 默认已禁用审核。 若要在数据库服务器上启用它,请将“启用 Azure AQL 审核”切换为“打开”

  5. 选择“打开”按钮后,选择“存储”复选框。

  6. 选择订阅。

  7. 可以选择现有存储帐户或创建新的存储帐户来存储审核信息。 必须将“存储帐户”配置为使用服务器所在的同一区域。

    本例中将会定义新的存储帐户。 在“存储帐户”下,选择“新建”。 此时会显示“创建存储帐户”窗格。 命名存储帐户 <server-name>auditing,将 <server-name> 替换为有逻辑的服务器名称。

  8. 保留其余选项的默认设置,然后选择“确定”。 回到“存储设置”窗格,保留默认设置,然后选择“确定”

  9. 选择“保存”以保存更改并在数据库服务器上启用审核

现在,可生成一些审核记录并查看预期内容。

  1. ApplicationUser 用户身份重新登录到数据库。

    sqlcmd -S tcp:[server-name].database.windows.net,1433 -d marketplaceDb -U 'ApplicationUser' -P '[password]' -N -l 30
    
  2. 运行以下查询。

    SELECT FirstName, LastName, EmailAddress, Phone FROM SalesLT.Customer;
    GO
    
  3. 返回到 Azure 门户,在 SQL 服务器上的左侧菜单窗格中选择“SQL 数据库”,然后选择“市场”数据库

  4. 在“商城”数据库的左侧菜单窗格中的“安全”下,选择“审核”

  5. 由于你启用了服务器级别的审核,此处应会显示已启用。 选择顶部菜单栏中的“查看审核日志”,来查看日志

  6. 使用“ApplicationUser”的“主体名称”和“已完成批”的“事件类型”,应该能看到一个或多个审核记录。 其中一个应包含执行的查询的详细信息。 可能还会看到其他事件,例如身份验证失败和身份验证成功。 选择任何记录,查看该事件的完整详细信息。

屏幕截图显示了审核日志中的示例事件。

这些操作在数据库服务器级别配置审核。 审核适用于服务器上的所有数据库。 也可以配置数据库级别的审核。

看看使用这些日志来提高数据库安全性的另一个功能。

Azure SQL 数据库的高级数据安全

高级数据安全 (ADS) 提供一组高级 SQL 安全功能,包括数据发现和分类、漏洞评估和高级威胁防护。

  • 数据发现和分类(当前处于预览状态)提供内置于 Azure SQL 数据库的功能,可用于发现、分类、标记和保护数据库中的敏感数据。 它可用于直观查看数据库分类状态,以及跟踪对数据库内和其边界外的敏感数据的访问。
  • 漏洞评估是一项易于配置的服务,可以发现、跟踪并帮助修正潜在的数据库漏洞。 它可直观查看安全状态,包括解决安全问题的可操作步骤,并可加强数据库的防御工事。
  • 高级威胁防护检测异常活动,指出尝试访问或利用数据库的行为异常且可能有害。 它不断监视数据库的可疑活动,并针对潜在漏洞、SQL 注入攻击和异常数据库访问模式提供即时的安全警报。 高级威胁防护警报提供可疑活动的详细信息,并建议如何调查和缓解威胁。

安装和配置

在数据库上启用 ADS。 ADS 是服务器级设置,因此可从这里开始。

  1. 返回 Azure 门户,转到 SQL Server。 在页面顶部的搜索栏中,搜索 _<server-name>,然后选择该服务器。

  2. 在左侧菜单窗格中,选择“Microsoft Defender for Cloud”。

  3. 选择“启用 Microsoft Defender for SQL”。

  4. 选择“在订阅级别启用”消息旁边的“配置”。 此时将显示“服务器设置”窗格

  5. “定期扫描”默认开启。 触发每周扫描时,扫描结果摘要将发送到你提供的电子邮件地址。 在本例中请禁用此项。 默认情况下启用“此外,还向管理员和订阅所有者发送电子邮件通知”,以向服务管理员发送威胁。 选择顶部的“保存”,保存设置。

  6. 在“高级威胁防护设置”下,选择“添加联系人详细信息...”以“打开 Defender for Cloud 电子邮件通知”窗格。 在这里,可以选择将漏洞评估和高级威胁防护的通知电子邮件要送达的地址定义为以分号分隔的电子邮件地址列表。 默认情况下启用“此外,还向管理员和订阅所有者发送电子邮件通知”,以向服务管理员发送威胁

  7. 还可以选择“启用审核....”,以打开“Azure SQL 审核”

  8. 选择“保存”应用所做的更改。

检测到漏洞时,将会收到电子邮件通知。 该电子邮件将概述发生的情况以及要执行的操作。

屏幕截图显示了来自 Microsoft Defender for Cloud 的通知警告示例。

数据发现和分类

  1. 转到商城数据库。 在 Azure 门户顶部的搜索栏中,搜索市场,然后选择该数据库。

  2. 在左侧菜单窗格的“安全性”下,选择“数据发现和分类”

“分类”选项卡显示表中需要保护的列。 某些列可能包含敏感信息,或者在不同的国家或区域可能被视为机密信息。

显示“数据发现和分类”窗格中的“分类”选项卡的屏幕截图。

如果任何列需要配置保护,将显示一条消息。 此消息的格式类似于带分类建议的 15 列。 可以选中文本以查看建议。

通过选择列旁边的复选标记来选择要分类的列,或选中架构标头左侧的复选框。 选择“接受选定的建议”按钮可应用分类建议。

接下来,编辑这些列,然后定义数据库的信息类型和敏感度标签。 选择“保存”,保存更改。

成功管理建议后,应不会列出任何活动建议。

安全漏洞

在左侧菜单窗格中,选择“Microsoft Defender for Cloud”。

“建议”部分列出数据库的配置问题和相关的风险。

选择一条建议。 建议窗格上会显示风险级别、所适用的数据库、漏洞说明,以及用于修复问题的建议修正等详细信息。 应用补救措施来解决一个或多个问题。 确保解决所有漏洞。

安全事件和警报

此部分将显示检测到的威胁列表。

遵照建议解决任何问题。 对于 SQL 注入警告等问题,可以查看查询,并回溯到该查询在代码中的执行位置。 找到后,应重新编写代码,以防该问题再次发生。