组件对象模型劫持

编辑

识别通过注册表修改进行的组件对象模型 (COM) 劫持。攻击者可能会通过执行由劫持的 COM 对象引用触发的恶意内容来建立持久性。

规则类型: eql

规则索引:

  • logs-endpoint.events.registry-*

严重性: 中等

风险评分: 47

每隔: 5m 运行

搜索索引自: now-9m (日期数学格式,另请参阅 额外回溯时间)

每次执行的最大告警数: 100

参考:

标签:

  • 域:端点
  • 操作系统:Windows
  • 用例:威胁检测
  • 战术:持久性
  • 战术:防御规避
  • 战术:权限提升
  • 资源:调查指南
  • 数据源:Elastic Endgame
  • 数据源:Elastic Defend

版本: 114

规则作者:

  • Elastic

规则许可证: Elastic License v2

调查指南

编辑

分类和分析

调查组件对象模型劫持

攻击者可以通过劫持 COM 引用和关系来插入可以代替合法软件执行的恶意代码,作为持久化的一种手段。

可能的调查步骤

  • 调查未知进程的进程执行链(父进程树)。检查其可执行文件是否存在、它们是否位于预期位置以及它们是否已使用有效的数字签名进行签名。
  • 确定执行该操作的用户帐户以及该帐户是否应该执行此类操作。
  • 调查过去 48 小时内与该用户/主机关联的其他告警。
  • 通过查找主机之间的类似事件来评估此行为在环境中是否普遍存在。
  • 检索注册表中引用的文件并确定它是否为恶意文件
  • 使用私有沙盒恶意软件分析系统执行分析。
  • 观察并收集以下活动的信息
  • 尝试联系外部域和地址。
  • 文件和注册表访问、修改和创建活动。
  • 服务创建和启动活动。
  • 计划任务创建。
  • 使用 PowerShell Get-FileHash cmdlet 获取文件的 SHA-256 哈希值。
  • 在 VirusTotal、Hybrid-Analysis、CISCO Talos、Any.run 等资源中搜索哈希的存在和信誉。

误报分析

  • 某些 Microsoft 可执行文件将引用 LocalServer32 注册表键值以获取外部 COM 对象的位置。

响应和修复

  • 根据分类结果启动事件响应流程。
  • 隔离相关主机以防止进一步的入侵后行为。
  • 如果分类确定了恶意软件,请在环境中搜索其他受感染的主机。
  • 实施临时网络规则、程序和分段以包含恶意软件。
  • 停止可疑进程。
  • 立即阻止已识别的入侵指标 (IoC)。
  • 检查受影响的系统是否存在其他恶意软件后门,例如反向 shell、反向代理或攻击者可能用来重新感染系统的下载器。
  • 删除并在分类期间识别的恶意工件。
  • 调查攻击者入侵或使用的系统上的凭据泄露,以确保识别所有受损帐户。重置这些帐户和其他可能受损的凭据(例如电子邮件、业务系统和 Web 服务)的密码。
  • 运行完整的反恶意软件扫描。这可能会显示系统中留下的其他工件、持久机制和恶意软件组件。
  • 确定攻击者滥用的初始载体,并采取措施防止通过同一载体重新感染。
  • 使用事件响应数据更新日志记录和审计策略,以提高平均检测时间 (MTTD) 和平均响应时间 (MTTR)。

设置

编辑

设置

如果在版本 <8.2 的非 elastic-agent 索引(例如 beats)上启用 EQL 规则,则事件将不会定义 event.ingested,并且直到版本 8.2 才添加了 EQL 规则的默认回退。因此,为了使此规则有效,用户需要添加一个自定义摄取管道来将 event.ingested 填充到 @timestamp。有关添加自定义摄取管道的更多详细信息,请参阅 - https://elastic.ac.cn/guide/en/fleet/current/data-streams-pipeline-tutorial.html

规则查询

编辑
registry where host.os.type == "windows" and event.type == "change" and
  /* not necessary but good for filtering privileged installations */
  user.domain != "NT AUTHORITY" and process.executable != null and
  (
    (
      registry.path : "HK*\\InprocServer32\\" and
      registry.data.strings: ("scrobj.dll", "?:\\*\\scrobj.dll") and
      not registry.path : "*\\{06290BD*-48AA-11D2-8432-006008C3FBFC}\\*"
    ) or

    (
      registry.path : "HKLM\\*\\InProcServer32\\*" and
        registry.data.strings : ("*\\Users\\*", "*\\ProgramData\\*")
    ) or

    /* in general COM Registry changes on Users Hive is less noisy and worth alerting */
    (
      registry.path : (
        "HKEY_USERS\\*\\InprocServer32\\",
        "HKEY_USERS\\*\\LocalServer32\\",
        "HKEY_USERS\\*\\DelegateExecute",
        "HKEY_USERS\\*\\TreatAs\\",
        "HKEY_USERS\\*\\ScriptletURL*"
      )
    )
  ) and

      not  (
            process.code_signature.trusted == true and
            process.code_signature.subject_name in
                         ("Island Technology Inc.", "Google LLC", "Grammarly, Inc.", "Dropbox, Inc", "REFINITIV US LLC", "HP Inc.",
                          "Citrix Systems, Inc.", "Adobe Inc.", "Veeam Software Group GmbH", "Zhuhai Kingsoft Office Software Co., Ltd.",
                          "Oracle America, Inc.")
        ) and

  /* excludes Microsoft signed noisy processes */
  not
  (
    process.name : ("OneDrive.exe", "OneDriveSetup.exe", "FileSyncConfig.exe", "Teams.exe", "MicrosoftEdgeUpdate.exe", "msrdcw.exe", "MicrosoftEdgeUpdateComRegisterShell64.exe") and
    process.code_signature.trusted == true and process.code_signature.subject_name in ("Microsoft Windows", "Microsoft Corporation")
  ) and

  not process.executable :
                  ("?:\\Program Files (x86)\\*.exe",
                   "?:\\Program Files\\*.exe",
                   "?:\\Windows\\System32\\svchost.exe",
                   "?:\\Windows\\System32\\msiexec.exe",
                   "?:\\Windows\\SysWOW64\\regsvr32.exe",
                   "?:\\Windows\\System32\\regsvr32.exe",
                   "?:\\Windows\\System32\\DriverStore\\FileRepository\\*.exe",
                   "?:\\ProgramData\\Microsoft\\Windows Defender\\Platform\\*\\MsMpEng.exe")

框架: MITRE ATT&CKTM