练习概述

你是一位安全运营分析师,所在公司已实现 Microsoft Sentinel。 你需要了解如何使用 Microsoft Sentinel 检测和缓解威胁。 将数据源连接到 Microsoft Sentinel 后,可以创建自定义分析规则来帮助发现环境中的威胁和异常行为。

威胁搜寻查询支持并授权 SOC 分析师在潜在攻击发生时或发生之前主动对其进行监视和调查。 在 Microsoft Sentinel 中搜寻允许使用类似于分析规则的查询来审核环境是否存在潜在的恶意活动,同时允许分析师根据需要将结果升级为事件。 有时,搜寻威胁可能需要超出分析(热)层保留期的数据,这时可以使用搜索/还原作业等功能来确保 SOC 具有所需的数据。

练习说明

任务 1 - 执行模拟权限升级攻击

在此任务中,你将对 VM1 Azure 虚拟机执行模拟攻击。

  1. 在 Microsoft Edge 浏览器中,导航到 Azure 门户 (https://portal.azure.com )。

  2. 在“搜索”栏中键入“虚拟机”,然后选择“虚拟机”。

  3. 选择 VM1 虚拟机。

  4. 在左侧导航菜单中,展开“操作”部分,然后选择“运行命令”。

  5. 在“运行命令”窗格中,选择 RunPowerShellScript

  6. 在“PowerShell 脚本”框中,清除以前的任何命令,然后复制并运行这些命令以模拟管理员帐户的创建。 请记住,在上一行后按 Enter:

     net user theusernametoadd /add
     net user theusernametoadd ThePassword1!
     net localgroup administrators theusernametoadd /add
    
  7. 监视“输出”部分以验证命令是否已成功完成。

任务 2:创建 KQL 搜寻查询

在此任务中,你将创建一个搜索查询并将结果加入书签。

  1. 使用以下密码以管理员身份登录到 WIN1 虚拟机:Pa55w.rd

  2. 在 Microsoft Edge 浏览器中,导航到 Azure 门户 (https://portal.azure.com )。

  3. 在“登录”对话框中,复制粘贴实验室托管提供者提供的租户电子邮件帐户,然后选择“下一步” 。

  4. 在“输入密码”对话框中,复制粘贴实验室托管提供者提供的租户密码,然后选择“登录” 。

  5. 在 Azure 门户的搜索栏中,键入“Sentinel”,然后选择“Microsoft Sentinel”。

  6. 选择 Microsoft Sentinel 工作区。

  7. 选择“日志”

  8. 在“新查询 1”空间输入并运行以下“KQL 语句”:

    重要提示: 你可能需要首先将 KQL 查询粘贴到记事本,然后从此处复制到“新建查询 1”日志窗口以避免任何错误。

     search "administrators" 
     | summarize count() by $table
    

    注意:显示事件的结果可能需要长达 5 分钟的时间。 请等到它完成。

  9. 结果可能会显示不同表中的事件,但在我们的案例中,我们想要调查 SecurityEvent 表。 我们查找的 EventID 和 Event 为“4732 - 成员已添加到启用了安全性的本地组”。 通过此操作,我们将确定将成员添加到特权组。 运行以下 KQL 查询以确认:

     SecurityEvent 
     | where EventID == 4732
     | where TargetAccount == "Builtin\\Administrators"
    
  10. 展开该行以查看与记录相关的所有列。 不会显示添加为管理员的帐户的用户名。 问题在于未存储该用户名,我们具有的是安全标识符 (SID)。 运行以下 KQL,将 SID 与添加到 Administrators 组的用户名匹配:

     SecurityEvent 
     | where EventID == 4732
     | where TargetAccount == "Builtin\\Administrators"
     | extend Acct = MemberSid, MachId = SourceComputerId  
     | join kind=leftouter (
         SecurityEvent 
         | summarize count() by TargetSid, SourceComputerId, TargetUserName 
         | project Acct1 = TargetSid, MachId1 = SourceComputerId, UserName1 = TargetUserName) on $left.MachId == $right.MachId1, $left.Acct == $right.Acct1
    
  11. 扩展行以显示生成的列,在上一行中,我们在 KQL 查询投影的 UserName1 列下看到了添加的用户的名称 。 请务必尽可能多地提供关于警报的上下文,为安全操作分析师提供帮助。 这包括投影在调查关系图中使用的实体。 运行以下查询:

     SecurityEvent 
     | where EventID == 4732
     | where TargetAccount == "Builtin\\Administrators"
     | extend Acct = MemberSid, MachId = SourceComputerId  
     | join kind=leftouter (
         SecurityEvent 
         | summarize count() by TargetSid, SourceComputerId, TargetUserName 
         | project Acct1 = TargetSid, MachId1 = SourceComputerId, UserName1 = TargetUserName) on $left.MachId == $right.MachId1, $left.Acct == $right.Acct1
     | extend timestamp = TimeGenerated, HostCustomEntity = Computer, AccountCustomEntity = UserName1
    
  12. 你现在有一个不错的检测规则,接下来请在“日志”窗口中,选择命令栏中的“+ 新建预警规则”,然后选择“创建 Microsoft Sentinel 警报” 。 提示:可能需要从命令栏中选择省略号 (…) 按钮。

  13. 这会启动“分析规则向导”。 在“常规”选项卡中,键入以下内容:

    设置
    名称 SecurityEvents 本地管理员用户添加操作
    说明 添加到本地管理员组的用户
    策略 特权提升
    Severity
  14. 选择“下一页:设置规则逻辑 >”按钮

  15. 在“设置规则逻辑”选项卡上,“规则查询”应已填充 KQL 查询,以及“警报增强 - 实体映射”下的实体**

    实体 标识符 数据字段
    帐户 FullName AccountCustomEntity
    主机 主机名 HostCustomEntity
  16. 如果未为“主机”实体选择“主机名”,请从下拉列表中选择它,并使用上表中的参数填充字段**

  17. 对于“查询计划”,设置以下项:

    设置
    运行查询的时间间隔 5 分钟
    查找上次的数据 1 天

    注意: 我们特意针对同一数据生成了多个事件。 这样,实验室就可使用这些警报。

  18. 将其余选项保留为默认值。 选择“下一页:事件设置 >”按钮

  19. 对于“事件设置”选项卡,保留默认值并选择“下一页: “下一步: 自动响应 >”按钮。

    1. 在“自动响应”选项卡上,选择“下一步: 查看并创建 >”按钮。
  1. 在“查看并创建”选项卡上,选择“创建”按钮以新建计划分析规则。