最常见的攻击类型之一是在完全受人尊敬的进程下的树中产生恶意进程。 可执行文件的路径可能很可疑:恶意软件通常使用 AppData 或 Temp 文件夹,这对于合法程序来说并不常见。 公平地说,值得一提的是,一些自动更新实用程序是在AppData中执行的,因此仅检查启动位置不足以确认该程序是恶意的。
合法性的另一个因素是加密签名:许多原始程序都由供应商签名。 您可以利用没有签名的事实作为识别可疑启动项的方法。 但话又说回来,有恶意软件使用被盗的证书来对自己进行签名。
您还可以检查 MD5 或 SHA256 加密哈希值,这可能对应于一些之前检测到的恶意软件。 您可以通过查看程序中的签名来执行静态分析(使用 Yara 规则或防病毒产品)。 还有动态分析(在某些安全环境中运行程序并监视其行为)和逆向工程。
恶意进程的迹象可能有很多。 在这篇文章中我们将告诉您如何在Windows中启用相关事件的审核,我们将分析内置规则所依赖的标志
当程序启动时,它被加载到计算机的内存中。 可执行文件包含计算机指令和支持库(例如*.dll)。 当进程已经运行时,它可以创建额外的线程。 线程允许进程同时执行不同的指令集。 恶意代码渗透内存并运行的方式有很多种,让我们看一下其中的一些。
启动恶意进程的最简单方法是强制用户直接启动它(例如,从电子邮件附件),然后在每次打开计算机时使用 RunOnce 键启动它。 这还包括“无文件”恶意软件,它将 PowerShell 脚本存储在基于触发器执行的注册表项中。 在这种情况下,PowerShell脚本是恶意代码。
显式运行恶意软件的问题在于它是一种易于检测的已知方法。 有些恶意软件会做更聪明的事情,例如使用另一个进程开始在内存中执行。 因此,一个进程可以通过运行特定的计算机指令并指定要运行的可执行文件(.exe)来创建另一个进程。
可以使用完整路径(例如,C:Windowssystem32cmd.exe)或部分路径(例如,cmd.exe)指定该文件。 如果原始进程不安全,就会允许非法程序运行。 攻击可能如下所示:进程在未指定完整路径的情况下启动 cmd.exe,攻击者将其 cmd.exe 放置在某个位置,以便该进程在合法进程之前启动它。 一旦恶意软件运行,它可以反过来启动合法程序(例如C:Windowssystem32cmd.exe),从而使原始程序继续正常运行。
先前攻击的一种变体是将 DLL 注入到合法进程中。 当进程启动时,它会查找并加载扩展其功能的库。 使用 DLL 注入,攻击者可以创建一个与合法库具有相同名称和 API 的恶意库。 该程序加载一个恶意库,然后加载一个合法库,并根据需要调用它来执行操作。 恶意库开始充当好库的代理。
将恶意代码放入内存的另一种方法是将其插入到已经运行的不安全进程中。 进程从各种来源接收输入 - 从网络或文件读取。 他们通常会执行检查以确保输入合法。 但有些进程在执行指令时没有适当的保护。 在此攻击中,磁盘上不存在包含恶意代码的库或可执行文件。 一切都与被利用的进程一起存储在内存中。
现在让我们看看在 Windows 中启用此类事件收集的方法以及 InTrust 中实现针对此类威胁的保护的规则。 首先,我们通过 InTrust 管理控制台激活它。
该规则使用 Windows 操作系统的进程跟踪功能。 不幸的是,实现此类事件的收集还远非显而易见。 您需要更改 3 种不同的组策略设置:
计算机配置 > 策略 > Windows 设置 > 安全设置 > 本地策略 > 审核策略 > 审核进程跟踪
计算机配置 > 策略 > Windows 设置 > 安全设置 > 高级审核策略配置 > 审核策略 > 详细跟踪 > 审核进程创建
计算机配置 > 策略 > 管理模板 > 系统 > 审核进程创建 > 在进程创建事件中包含命令行
启用后,InTrust 规则允许您检测表现出可疑行为的先前未知的威胁。 例如,您可以识别
在其操作链中,Dridex 使用 schtasks.exe 创建计划任务。 从命令行使用此特定实用程序被认为是非常可疑的行为;使用指向用户文件夹的参数或使用类似于“net view”或“whoami”命令的参数启动 svchost.exe 看起来很相似。 这是相应的片段
detection:
selection1:
CommandLine: '*svchost.exe C:Users\*Desktop\*'
selection2:
ParentImage: '*svchost.exe*'
CommandLine:
- '*whoami.exe /all'
- '*net.exe view'
condition: 1 of them
在 InTrust 中,所有可疑行为都包含在一条规则中,因为大多数这些行为并不特定于特定威胁,而是复杂的可疑行为,并且 99% 的情况都用于不完全崇高的目的。 该行动列表包括但不限于:
- 从不寻常的位置运行的进程,例如用户临时文件夹。
- 具有可疑继承的众所周知的系统进程 - 某些威胁可能会尝试使用系统进程的名称来保持不被发现。
- 当管理工具(例如 cmd 或 PsExec)使用本地系统凭据或可疑继承时,会出现可疑的执行。
- 可疑的卷影复制操作是勒索软件病毒在加密系统之前的常见行为;它们会杀死备份:
— 通过 vssadmin.exe;
- 通过 WMI。 - 整个注册表配置单元的注册转储。
- 使用 at.exe 等命令远程启动进程时恶意代码的水平移动。
- 使用 net.exe 的可疑本地组操作和域操作。
- 使用 netsh.exe 的可疑防火墙活动。
- 可疑的 ACL 操纵。
- 使用 BITS 进行数据泄露。
- WMI 的可疑操作。
- 可疑的脚本命令。
- 尝试转储安全系统文件。
组合规则非常适合检测 RUYK、LockerGoga 和其他勒索软件、恶意软件和网络犯罪工具包等威胁。 该规则已由供应商在生产环境中进行测试,以最大限度地减少误报。 得益于 SIGMA 项目,这些指标中的大多数都会产生最少数量的噪音事件。
因为在 InTrust 中,这是一个监控规则,您可以执行响应脚本作为对威胁的反应。 您可以使用内置脚本之一或创建自己的脚本,InTrust 将自动分发它。
此外,您还可以检查所有与事件相关的遥测:PowerShell 脚本、流程执行、计划任务操作、WMI 管理活动,并在安全事件期间使用它们进行事后分析。
InTrust 还有数百条其他规则,其中一些:
- 检测 PowerShell 降级攻击是指有人故意使用旧版本的 PowerShell,因为…… 在旧版本中,无法审核正在发生的事情。
- 高权限登录检测是指属于某个特权组(例如域管理员)成员的帐户意外或由于安全事件登录到工作站。
InTrust 允许您以预定义的检测和反应规则的形式使用最佳安全实践。 如果您认为某些内容应该以不同的方式工作,您可以制作自己的规则副本并根据需要进行配置。 您可以通过以下方式提交进行试点或获取具有临时许可证的分发包的申请:
订阅我们的
阅读我们有关信息安全的其他文章: