隐藏的宝藏:ETW的入侵检测(第1部分)

本文讲的是隐藏的宝藏:ETW的入侵检测(第1部分),现如今防御者所面临的信息不对称问题已经越来越凸显,特别是随着内存中的攻击和有针对性的恶意软件的出现,防御者已经不能仅仅依靠Windows默认提供的事件日志来进行防御了,因为攻击者可能会使用进程空当来将其代码隐藏在一个看似良性的进程中,并切Command&Control流量通过DNS路由保持隐藏。

在通过Office 365红队练习我们的事件响应功能后,我们开始研究Windows安全事件日志之外的备用数据源。我们意识到,虽然我们可以看到一个可疑过程,但我们不知道这个进程查询了哪些域,或者发送到端点的数据量有哪些。此外,我们发现PowerShell.exe的实例是一个对手可以执行任意数量的未知命令的黑洞,因此我们需要比安全事件日志所能提供的更多信息。

挑战是什么?

想象一下这种情况:在查看事件日志时,你发现4688 Process Start事件有一个未知可执行文件—bad.exe:

不幸的是,当你使用此可疑进程研究机器时,bad.exe已经不再位于磁盘或任何位置。这时候你就会发现仅使用Windows安全事件日志中可用的内容,除了4688 Process Start事件中的上述内容之外,你可以获得的信息非常少。

关于bad.exe的哪些信息在检测和威胁评估中最有用?我们可能主要对以下三个问题感兴趣:

· 谁干的?比如用户名;
· 他们做了什么?比如过程 - 如果使用过程中挖空/注射,这可能会导致出现误导;
· 他们在哪里发送数据?比如目标网络地址和域名;

考虑到这些问题,我们想要了解的信息可能如下所示:

· 进程执行什么DNS查找?
· 该进程连接到哪个IP地址?
· 流程传输了多少数据?
· 过程“指向”哪里?即进程是否与Command&Control基础架构通信?
· 加载了哪些DLL的进程?
· 过程是否在其他进程中创建线程?
· 该进程执行什么WMI操作?
· 进程调用了什么PowerShell函数?

要收集这种类型的数据,你可能需要内核驱动程序或某种hooking机制。幸运的是,Windows提供了现有的数据源,可以帮助我们回答这些题为ETW或Windows事件跟踪的问题。

ETW救援

Windows事件跟踪(ETW)是Windows 2000以后在Windows中可用的跟踪技术。它最初旨在帮助Microsoft工程师调试操作系统,例如性能测量和电源管理跟踪。很多Windows的工程师都会使用ETW进行性能测试和组件跟踪。

ETW可能和你遇到的其他跟踪技术并没有显着差异。一个组件(例如PowerShell)注册一个提供者,它会发出一个或多个类型的事件。每个事件都有一个描述事件有效载荷中包含的数据类型的模式。事件可能包含字符串,整数,浮点数,布尔值,甚至二进制数据。

要使用ETW提供者的事件,用户需要首先创建跟踪会话。每个跟踪会话可以消耗一个或多个提供者。在注册跟踪会话的提供者之后,用户必须注册一个可以处理来自任何提供者的任何事件的回调。当用户准备启用跟踪会话时,很重要的一点是要注意通过启动跟踪会话,用户将调用线程向ETW子系统提供泵送事件。

事件的流程如下图所示:

ETW的形状

为了更好地了解什么是ETW事件,我们将使用一个名为Microsoft Message Analyzer的工具。该工具允许你订阅操作系统上可用的ETW跟踪,并在事件进入时检查事件。

以下是注册PowerShell提供程序后Message Analyzer的主窗口:

在中心,我们看到一系列的事件与总结:

当我们选择其中一个事件时,就像上面突出显示的那些事件,我们在下半部分会得到一个详细的视图:

标有“ContextInfo”,“UserData”和“Payload”的前三个项目都是此事件的属性。我们可以看到“类型”列描述了所有这些都是字符串。如果我们选择其中一个属性,我们可以看到该属性的内容:

这是一个包含主机应用程序(“powershell.exe”),命令名称(“invoke-mimikatz”)和调用它的用户(“REDMOND  zbrown”)的结构化字符串blob。

每个ETW提供者都可以使用自己独特的模式发送事件。除了唯一的模式,每个事件还有一些标准属性 – EventId,ProcessId,ThreadId,TimeStamp,ProviderId等等。这些属性对于所有ETW事件都是常见的。

如果你想了解更多有关使用Message Analyzer检查ETW事件的信息,可以参阅本指南。

ETW 可视性

ETW可以提供对大多数核心Windows子系统的可见性,包括:

· 网络活动
· 流程创建/终止
· 线程创建/终止
· 内存分配
· DLL加载/卸载
· PowerShell方法调用
· DNS解析(缓存和热)
· 防火墙活动
· WMI活动
· WinINet请求/响应头
· 还有更多的...

在Windows 10中,有超过1000个提供者。如果你好奇你的Windows版本上提供哪些提供程序,则可以运行以下命令:

        logman查询提供者> providers.txt

随着所有这些数据成熟,你可以假设我们可以简单地将这些ETW提供者打开,并立即开始从增加的信息中受益。然而,ETW仍然是一个调试流,但也因此输出了真正大量的数据。这就像从消防水带中喝水一样:

想象一下,你可以尝试将此数据发送到您的SIEM:

· 每个进程中的每个DLL加载
· 每个进程中的每个线程创建
· 每个进程从每个端点开始

如果我们以原始形式发送数据,可能无法有效地使用数据。要使用这个新的数据源,我们需要一些方法来过滤和/或汇总数据。

在ETW的下一篇博客文章中,我们将讨论如何以编程方式来消耗ETW,过滤投入以及如何对上述我们概述的那些问题进行解答。

原文发布时间为:2017年4月13日

本文作者:Change

本文来自合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。

原文链接

时间: 2024-08-24 05:38:36

隐藏的宝藏:ETW的入侵检测(第1部分)的相关文章

植入式攻击入侵检测解决方案

植入式攻击入侵检测解决方案 http://netkiller.github.io/journal/security.implants.html Mr. Neo Chen (陈景峰), netkiller, BG7NYT 中国广东省深圳市龙华新区民治街道溪山美地518131+86 13113668890+86 755 29812080<netkiller@msn.com> 版权 2014 http://netkiller.github.io 版权声明 转载请与作者联系,转载时请务必标明文章原始出

Symantec防病毒防火墙以及入侵检测方案

集成客户端安全产品需求 对IT基础设施威胁的复杂性正在不断增加.诸如Nimda和红色代码等混合型威胁,将病毒.蠕虫.特洛伊木马以及(或)恶意代码的特征同利用服务器和互联网漏洞的方法相结合,启动.发送和传播攻击.为了防御这些威胁,网络管理员正在企业网范围的客户端上部署防病毒和防火墙等单点产品,同时还包括越来越多的连接到企业LAN或WAN的远程客户端. 采用来自不同厂商的多种单点产品使得全面防护变为一项极为复杂甚至根本不可能的任务,因为跨厂商的互操作性问题往往会存在漏洞,从而使威胁乘虚而入危及安全性

Java Web中的入侵检测及简单实现

web 在Java Web应用程中,特别是网站开发中,我们有时候需要为应用程序增加一个入侵检测程序来防止恶意刷新的功能,防止非法用户不断的往Web应用中重复发送数据.当然,入侵检测可以用很多方法实现,包括软件.硬件防火墙,入侵检测的策略也很多.在这里我们主要介绍的是Java Web应用程序中通过软件的方式实现简单的入侵检测及防御. 该方法的实现原理很简单,就是用户访问Web系统时记录每个用户的信息,然后进行对照,并根据设定的策略(比如:1秒钟刷新页面10次)判断用户是否属于恶意刷新. 我们的入侵

入侵检测与网络审计产品的关系

入侵检测与网络审计产品是孪生兄弟吗? 入侵检测系统(IDS)是网络安全监控的重要工具,是网络"街道"上的巡警,时刻关注着网络的异常行为:网络审计是用户行为的记录,是网络"大楼"内的录像机,记录各种行为的过程,作为将来审核"你"的证据. 我们常见的楼宇监控,在保安值班室内有一个大电视墙,工作人员实时在看的,属于IDS类型,监控系统需要人的实时参与,发现异常,及时报警.处理.公共场合内银行的ATM机前有录像系统,属于审计类型的产品,当需要查看是谁在什

入侵检测技术综述

入侵检测技术综述 1.什么是入侵检测,为什么需要入侵检测? 1.1 为什么需要入侵检测 1.1. 1黑客攻击日益猖獗,防范问题日趋严峻 随着计算机技术的发展,在计算机上处理业务已由基于单机的数学运算.文件处理,基于简单连结的内部网络的内部业务处理.办公自动化等发展到基于企业复杂的内部网.企业外部网.全球互联网的企业级计算机处理系统和世界范围内的信息共享和业务处理.在信息处理能力提高的同时,系统的连结能力也在不断的提高.但在连结信息能力.流通能力提高的同时,基于网络连接的安全问题也日益突出: ●

snort+base搭建IDS入侵检测系统

Snort是美国Sourcefire公司开发的发布在GPL v2下的IDS(Intrusion Detection System)软件 Snort有 三种工作模式:嗅探器.数据包记录器.网络入侵检测系统模式.嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上.数据包记录器模式把数 据包记录到硬盘上.网路入侵检测模式分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作.网络入侵检测系统模式是最复杂的,而且是可 配置的. Snort可以用来监测各种数据包如端口扫描等之外

在Java Web中的入侵检测及简单实现

一.简介 在Java Web应用程中,特别是网站开发中,我们有时候需要为应用程序增加一个入侵检测程序来防止恶意刷新的功能,防止非法用户不断的往Web应用中重复发送数据.当然,入侵检测可以用很多方法实现,包括软件.硬件防火墙,入侵检测的策略也很多.在这里我们主要介绍的是Java Web应用程序中通过软件的方式实现简单的入侵检测及防御. 该方法的实现原理很简单,就是用户访问Web系统时记录每个用户的信息,然后进行对照,并根据设定的策略(比如:1秒钟刷新页面10次)判断用户是否属于恶意刷新. 我们的入

无线入侵检测系统

现在随着黑客技术的提高,无线局域网 (WLANs)受到越来越多的威胁.配置无线基站(WAPs)的失误导致会话劫持以及拒绝服务攻击(Dos)都象瘟疫一般影响着无线局域网的安全.无线网络不但因为基于传统有线网络TCP/IP架构而受到攻击,还有可能受到基于电气和电子工程师协会(IEEE)发行802.11标准本身的安全问题而受到威胁.为了更好的检测和防御这些潜在的威胁,无线局域网也使用了一种入侵检测系统(IDS)来解决这个问题.以至于没有配置入侵检测系统的组织机构也开始考虑配置IDS的解决方案.这篇文章

入侵检测工具之RKHunter &amp; AIDE

一.入侵检测工具rkhunter 1.rkhunter是Linux系统平台下的一款开源入侵检测工具,具有非常全面的扫描范围. rootkit hunter功能: 检测易受攻击的文件: 检测隐藏文件: 检测重要文件的权限: 检测系统端口号: 2.安装rkhunter 下载:http://sourceforge.net/projects/rkhunter 1 2 3 4 5 tar zxvf rkhunter-1.4.0.tar.gz cd rkhunter-1.4.0 ./installer.sh