启动或运行键注册表修改编辑

识别运行键或启动键注册表修改。为了在重启和其他系统中断后存活,攻击者会修改注册表中的运行键或利用启动文件夹项作为持久性形式。

规则类型: eql

规则索引:

  • logs-endpoint.events.registry-*

严重性: 低

风险评分: 21

: 5m 运行一次

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

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

参考: 无

标签:

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

版本: 111

规则作者:

  • Elastic

规则许可证: Elastic License v2

调查指南编辑

分类和分析

调查启动或运行键注册表修改

攻击者可以通过使用注册表运行键引用程序来实现持久性。在注册表中添加运行键条目将导致在用户登录时执行引用的程序。这些程序将在用户的上下文中执行,并将具有该帐户的权限。此规则通过监视一系列注册表运行键来查找此行为。

注意: 此调查指南使用 Elastic Stack 版本 8.5.0 中引入的 Osquery Markdown 插件。较旧的 Elastic Stack 版本将在本指南中显示未呈现的 Markdown。

可能的调查步骤

  • 调查未知进程的进程执行链(父进程树)。检查其可执行文件以了解流行程度、它们是否位于预期位置,以及它们是否已使用有效的数字签名进行签名。
  • 调查过去 48 小时内与用户/主机关联的其他警报。
  • 验证此活动是否与计划的补丁、更新、网络管理员活动或合法软件安装无关。
  • 通过查看主机之间类似事件的发生情况,评估此行为在环境中的流行程度。
  • 检查主机是否存在表明可疑活动的派生工件。
  • 使用私有沙箱分析系统分析进程可执行文件。
  • 观察并收集有关沙箱和警报主题主机中以下活动的信息。
  • 尝试联系外部域和地址。
  • 使用 Elastic Defend 网络事件通过进程的 process.entity_id 过滤来确定目标进程联系的域和地址。
  • 检查 DNS 缓存中是否存在可疑或异常条目。
  • !{osquery{"label":"Osquery - 检索 DNS 缓存","query":"SELECT * FROM dns_cache"}}
  • 使用 Elastic Defend 注册表事件检查进程树中相关进程访问、修改或创建的注册表键。
  • 检查主机服务中是否存在可疑或异常条目。
  • !{osquery{"label":"Osquery - 检索所有服务","query":"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services"}}
  • !{osquery{"label":"Osquery - 检索在用户帐户上运行的服务","query":"SELECT description, display_name, name, path, pid, service_type, start_type, status, user_account FROM services WHERE\nNOT (user_account LIKE %LocalSystem OR user_account LIKE %LocalService OR user_account LIKE %NetworkService OR\nuser_account == null)\n"}}
  • !{osquery{"label":"Osquery - 检索使用 VirusTotal 链接的未签名服务可执行文件","query":"SELECT concat(https://www.virustotal.com/gui/file/, sha1) AS VtLink, name, description, start_type, status, pid,\nservices.path FROM services JOIN authenticode ON services.path = authenticode.path OR services.module_path =\nauthenticode.path JOIN hash ON services.path = hash.path WHERE authenticode.result != trusted\n"}}
  • 使用 PowerShell Get-FileHash cmdlet 检索文件的 SHA-256 哈希值,并在 VirusTotal、Hybrid-Analysis、CISCO Talos、Any.run 等资源中搜索这些哈希值的存在和声誉。
  • 调查可能遭到入侵的帐户。分析师可以通过搜索注册表修改后到目标主机的登录事件(例如 4624)来做到这一点。

误报分析

  • 将合法程序添加到注册表运行键的可能性很高。此活动可能是基于新软件安装、补丁或任何类型的网络管理员相关活动。在进行进一步调查之前,请验证此活动是否属于良性活动。

相关规则

  • 可疑启动外壳程序文件夹修改 - c8b150f0-0164-475b-a75e-74b47800a9ff
  • 启动目录中的持久性脚本 - f7c4dc5a-a58d-491d-9f14-9b66507121c0
  • 通过未签名进程实现启动文件夹持久性 - 2fba96c0-ade5-4bce-b92f-a5df2509da3f
  • 可疑进程的启动持久性 - 440e2db4-bc7f-4c96-a068-65b78da59bde

响应和补救

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

规则查询编辑

registry where host.os.type == "windows" and registry.data.strings != null and
 registry.path : (
     /* Machine Hive */
     "HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\*",
     "HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce\\*",
     "HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\RunOnceEx\\*",
     "HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer\\Run\\*",
     "HKLM\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\Shell\\*",
     /* Users Hive */
     "HKEY_USERS\\*\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\*",
     "HKEY_USERS\\*\\Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce\\*",
     "HKEY_USERS\\*\\Software\\Microsoft\\Windows\\CurrentVersion\\RunOnceEx\\*",
     "HKEY_USERS\\*\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer\\Run\\*",
     "HKEY_USERS\\*\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\Shell\\*"
     ) and
  /* add common legitimate changes without being too restrictive as this is one of the most abused AESPs */
  not registry.data.strings : "ctfmon.exe /n" and
  not (registry.value : "Application Restart #*" and process.name : "csrss.exe") and
  not user.id : ("S-1-5-18", "S-1-5-19", "S-1-5-20") and
  not registry.data.strings : ("?:\\Program Files\\*.exe", "?:\\Program Files (x86)\\*.exe") and
  not process.executable : ("?:\\Windows\\System32\\msiexec.exe", "?:\\Windows\\SysWOW64\\msiexec.exe") and
  not (
    /* Logitech G Hub */
    (
      process.code_signature.trusted == true and process.code_signature.subject_name == "Logitech Inc" and
      (
        process.name : "lghub_agent.exe" and registry.data.strings : (
          "\"?:\\Program Files\\LGHUB\\lghub.exe\" --background",
          "\"?:\\Program Files\\LGHUB\\system_tray\\lghub_system_tray.exe\" --minimized"
        )
      ) or
      (
        process.name : "LogiBolt.exe" and registry.data.strings : (
          "?:\\Program Files\\Logi\\LogiBolt\\LogiBolt.exe --startup",
          "?:\\Users\\*\\AppData\\Local\\Logi\\LogiBolt\\LogiBolt.exe --startup"
        )
      )
    ) or

    /* Google Drive File Stream, Chrome, and Google Update */
    (
      process.code_signature.trusted == true and process.code_signature.subject_name == "Google LLC" and
      (
        process.name : "GoogleDriveFS.exe" and registry.data.strings : (
        "\"?:\\Program Files\\Google\\Drive File Stream\\*\\GoogleDriveFS.exe\" --startup_mode"
        ) or

        process.name : "chrome.exe" and registry.data.strings : (
          "\"?:\\Program Files\\Google\\Chrome\\Application\\chrome.exe\" --no-startup-window /prefetch:5",
          "\"?:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe\" --no-startup-window /prefetch:5"
        ) or

        process.name : "GoogleUpdate.exe" and registry.data.strings : (
          "\"?:\\Users\\*\\AppData\\Local\\Google\\Update\\*\\GoogleUpdateCore.exe\""
        )
      )
    ) or

    /* MS Programs */
    (
      process.code_signature.trusted == true and process.code_signature.subject_name in ("Microsoft Windows", "Microsoft Corporation") and
      (
        process.name : "msedge.exe" and registry.data.strings : (
          "\"?:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe\" --no-startup-window --win-session-start /prefetch:5",
          "\"C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe\" --win-session-start",
          "\"C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe\" --no-startup-window --win-session-start"
        ) or

        process.name : ("Update.exe", "Teams.exe") and registry.data.strings : (
          "?:\\Users\\*\\AppData\\Local\\Microsoft\\Teams\\Update.exe --processStart \"Teams.exe\" --process-start-args \"--system-initiated\"",
          "?:\\ProgramData\\*\\Microsoft\\Teams\\Update.exe --processStart \"Teams.exe\" --process-start-args \"--system-initiated\""
        ) or

        process.name : "OneDriveStandaloneUpdater.exe" and registry.data.strings : (
          "?:\\Users\\*\\AppData\\Local\\Microsoft\\OneDrive\\*\\Microsoft.SharePoint.exe"
        ) or

        process.name : "OneDriveSetup.exe" and
          registry.data.strings : (
            "?:\\Windows\\system32\\cmd.exe /q /c * \"?:\\Users\\*\\AppData\\Local\\Microsoft\\OneDrive\\*\"",
            "?:\\Program Files (x86)\\Microsoft OneDrive\\OneDrive.exe /background*",
            "\"?:\\Program Files (x86)\\Microsoft OneDrive\\OneDrive.exe\" /background*",
            "?:\\Program Files\\Microsoft OneDrive\\OneDrive.exe /background *",
            "?:\\Users\\*\\AppData\\Local\\Microsoft\\OneDrive\\??.???.????.????\\Microsoft.SharePoint.exe"
          ) or

        process.name : "OneDrive.exe" and registry.data.strings : (
          "\"?:\\Program Files\\Microsoft OneDrive\\OneDrive.exe\" /background",
          "\"?:\\Program Files (x86)\\Microsoft OneDrive\\OneDrive.exe\" /background",
          "\"?:\\Users\\*\\AppData\\Local\\Microsoft\\OneDrive\\OneDrive.exe\" /background"
        ) or

        process.name : "Microsoft.SharePoint.exe" and registry.data.strings : (
          "?:\\Users\\*\\AppData\\Local\\Microsoft\\OneDrive\\??.???.????.????\\Microsoft.SharePoint.exe"
        ) or

        process.name : "MicrosoftEdgeUpdate.exe" and registry.data.strings : (
          "\"?:\\Users\\Expedient\\AppData\\Local\\Microsoft\\EdgeUpdate\\*\\MicrosoftEdgeUpdateCore.exe\""
        ) or

        process.executable : "?:\\Program Files (x86)\\Microsoft\\EdgeWebView\\Application\\*\\Installer\\setup.exe" and
        registry.data.strings : (
          "\"?:\\Program Files (x86)\\Microsoft\\EdgeWebView\\Application\\*\\Installer\\setup.exe\" --msedgewebview --delete-old-versions --system-level --verbose-logging --on-logon"
        )
      )
    ) or

    /* Slack */
    (
      process.code_signature.trusted == true and process.code_signature.subject_name in (
       "Slack Technologies, Inc.", "Slack Technologies, LLC"
      ) and process.name : "slack.exe" and registry.data.strings : (
        "\"?:\\Users\\*\\AppData\\Local\\slack\\slack.exe\" --process-start-args --startup",
        "\"?:\\ProgramData\\*\\slack\\slack.exe\" --process-start-args --startup",
        "\"?:\\Program Files\\Slack\\slack.exe\" --process-start-args --startup"
      )
    ) or

    /* Cisco */
    (
      process.code_signature.trusted == true and process.code_signature.subject_name in ("Cisco WebEx LLC", "Cisco Systems, Inc.") and
      (
        process.name : "WebexHost.exe" and registry.data.strings : (
          "\"?:\\Users\\*\\AppData\\Local\\WebEx\\WebexHost.exe\" /daemon /runFrom=autorun"
        )
      ) or
      (
        process.name : "CiscoJabber.exe" and registry.data.strings : (
          "\"?:\\Program Files (x86)\\Cisco Systems\\Cisco Jabber\\CiscoJabber.exe\" /min"
        )
      )
    ) or

    /* Loom */
    (
      process.code_signature.trusted == true and process.code_signature.subject_name == "Loom, Inc." and
      process.name : "Loom.exe" and registry.data.strings : (
        "?:\\Users\\*\\AppData\\Local\\Programs\\Loom\\Loom.exe --process-start-args \"--loomHidden\""
      )
    ) or

    /* Adobe */
    (
      process.code_signature.trusted == true and process.code_signature.subject_name == "Adobe Inc." and
      process.name : ("Acrobat.exe", "FlashUtil32_*_Plugin.exe") and registry.data.strings : (
        "\"?:\\Program Files\\Adobe\\Acrobat DC\\Acrobat\\AdobeCollabSync.exe\"",
        "\"?:\\Program Files (x86)\\Adobe\\Acrobat DC\\Acrobat\\AdobeCollabSync.exe\"",
        "?:\\WINDOWS\\SysWOW64\\Macromed\\Flash\\FlashUtil32_*_Plugin.exe -update plugin"
      )
    ) or

    /* CCleaner */
    (
      process.code_signature.trusted == true and process.code_signature.subject_name == "PIRIFORM SOFTWARE LIMITED" and
      process.name : ("CCleanerBrowser.exe", "CCleaner64.exe") and registry.data.strings : (
        "\"C:\\Program Files (x86)\\CCleaner Browser\\Application\\CCleanerBrowser.exe\" --check-run=src=logon --auto-launch-at-startup --profile-directory=\"Default\"",
        "\"C:\\Program Files\\CCleaner\\CCleaner64.exe\" /MONITOR"
      )
    ) or

    /* Opera */
    (
      process.code_signature.trusted == true and process.code_signature.subject_name == "Opera Norway AS" and
      process.name : "opera.exe" and registry.data.strings : (
        "?:\\Users\\*\\AppData\\Local\\Programs\\Opera\\launcher.exe",
        "?:\\Users\\*\\AppData\\Local\\Programs\\Opera GX\\launcher.exe"
      )
    ) or

    /* Avast */
    (
      process.code_signature.trusted == true and process.code_signature.subject_name == "Avast Software s.r.o." and
      process.name : "AvastBrowser.exe" and registry.data.strings : (
        "\"?:\\Users\\*\\AppData\\Local\\AVAST Software\\Browser\\Application\\AvastBrowser.exe\" --check-run=src=logon --auto-launch-at-startup*",
        "\"?:\\Program Files (x86)\\AVAST Software\\Browser\\Application\\AvastBrowser.exe\" --check-run=src=logon --auto-launch-at-startup*",
        ""
      )
    ) or

    /* Grammarly */
    (
      process.code_signature.trusted == true and process.code_signature.subject_name == "Grammarly, Inc." and
      process.name : "GrammarlyInstaller.exe" and registry.data.strings : (
        "?:\\Users\\*\\AppData\\Local\\Grammarly\\DesktopIntegrations\\Grammarly.Desktop.exe"
      )
    )
  )

框架: MITRE ATT&CKTM