启动或运行键注册表修改
编辑启动或运行键注册表修改
编辑识别运行键或启动键注册表修改。为了在重启和其他系统中断后继续存在,攻击者会修改注册表中的运行键,或利用启动文件夹项作为一种持久性机制。
规则类型: eql
规则索引:
- logs-endpoint.events.registry-*
严重性: 低
风险评分: 21
每隔: 5 分钟
搜索索引自: now-9m (日期数学格式,另见 额外回溯时间
)
每次执行的最大告警数: 100
参考资料:
标签:
- 领域:端点
- 操作系统:Windows
- 用例:威胁检测
- 战术:持久性
- 资源:调查指南
- 数据源:Elastic Endgame
- 数据源:Elastic Defend
版本: 113
规则作者:
- 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)来做到这一点。
误报分析
- 很有可能将良性合法程序添加到注册表运行键中。此活动可能是基于新的软件安装、补丁或任何类型的网络管理员相关活动。在进行进一步调查之前,请验证此活动是否为良性。
相关规则
- 可疑启动 Shell 文件夹修改 - c8b150f0-0164-475b-a75e-74b47800a9ff
- 启动目录中的持久脚本 - f7c4dc5a-a58d-491d-9f14-9b66507121c0
- 通过未签名进程实现启动文件夹持久性 - 2fba96c0-ade5-4bce-b92f-a5df2509da3f
- 可疑进程的启动持久性 - 440e2db4-bc7f-4c96-a068-65b78da59bde
响应和补救
- 根据分类结果启动事件响应流程。
- 隔离相关主机以防止进一步的入侵后行为。
- 如果分类识别出恶意软件,请在环境中搜索其他受感染的主机。
- 实施临时网络规则、程序和分段以包含恶意软件。
- 停止可疑进程。
- 立即阻止已识别的入侵指标 (IoC)。
- 检查受影响的系统是否存在其他恶意软件后门,例如反向 shell、反向代理或攻击者可能用来重新感染系统的 dropper。
- 删除并阻止在分类期间识别的恶意工件。
- 调查受感染系统或攻击者使用的系统上的凭据泄露,以确保识别所有受感染的帐户。重置这些帐户以及其他可能受感染的凭据(例如电子邮件、业务系统和 Web 服务)的密码。
- 运行完整的反恶意软件扫描。这可能会发现系统中留下的其他工件、持久性机制和恶意软件组件。
- 确定攻击者滥用的初始媒介,并采取措施防止通过相同媒介再次感染。
- 使用事件响应数据更新日志记录和审计策略,以提高平均检测时间 (MTTD) 和平均响应时间 (MTTR)。
规则查询
编辑registry where host.os.type == "windows" and event.type == "change" and registry.data.strings != null and registry.hive : ("HKEY_USERS", "HKLM") 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
-
战术
- 名称:持久性
- ID:TA0003
- 参考网址:https://attack.mitre.org/tactics/TA0003/
-
技术
- 名称:启动或登录自动启动执行
- ID:T1547
- 参考网址:https://attack.mitre.org/techniques/T1547/
-
子技术
- 名称:注册表运行键/启动文件夹
- ID:T1547.001
- 参考网址:https://attack.mitre.org/techniques/T1547/001/