Onion-Zeek-RITA:改善网络的可见性和检测C2活动

来源:https://www.linuxincluded.com/onion-zeek-rita/

摘要

信息安全产业预计在未来几年将超过1000亿美元。尽管投入了大量资金,但违规事件仍然占据着新闻头条。尽管尽了最大的努力,所有将敌人拒之门外的企图最终都失败了。与此同时,攻击者在被破坏的系统和网络上停留的时间仍然高得荒谬。传统的防御措施在检测破坏后的活动方面存在不足,即使在适当配置和监控的情况下也是如此。预防仍然是首要任务,但每一个安全计划也必须包括在最初的破坏之后寻找威胁。高价格通常伴随着高质量的解决方案,但是像Security Onion、Zeek (Bro)和RITA这样的工具只需要一点时间和技巧。有了这些免费的工具,组织可以有效地检测高级威胁,包括真实世界的命令和控制框架。

1. 介绍

识别漏洞的平均时间(MTTI),通常被称为停顿时间,被定义为“恶意攻击进入您的网络和被发现之间的时间”(Mallon, 2017)。测量MTTI的方法因不同的报告机构而异。即便如此,普遍的共识是,停顿时间基本上保持不变,甚至逐年减少。改进总是受欢迎的,然而,波耐蒙研究所2017年的数据泄露报告显示,攻击者平均停顿时间超过190天(波耐蒙研究所,2018)。

如果攻击者没有办法与受攻击的主机进行交互,那么渗入网络的意义就很小。在大多数情况下,受感染的主机与命令和控制服务器或C2通信。C2通道是受损系统和攻击者的C2服务器之间的通信管道。受到攻击的主机定期与C2服务器进行检查,以执行下一个攻击者定向的任务。这些指令可能包括范围广泛的恶意活动,如勒索软件、窃取数据或拒绝服务(DoS)。为了避免触发任何警报,攻击者试图绕过传统的防御来获得一个系统立足点。毫不奇怪,随着长时间的等待,44%的威胁没有被标准工具检测到(Crowd Research Partners, 2017)。安全运营中心(SOCs)也认为新的未知威胁难以检测(图1)。

Onion-Zeek-RITA:改善网络的可见性和检测C2活动_第1张图片
图1:检测和停留时间来源——2017威胁狩猎报告

有几个因素促成了这些统计数字。首先,组织错误地将安全性视为需要解决的问题。相反,应该将安全性标识为一个过程,而不是目的地。即使有无穷无尽的安全预算,组织也无法实现完全的安全。投资于有意义的预防总是会提高安全性,但零攻击表面是一个不可能实现的目标。此外,如果一个组织用理想的解决方案来满足它的需求,那么安全性就是一个递减的回报。因此,对一个不成熟的安全程序的少量投资可能会显著地改善组织的安全状况,而对一个成熟的安全程序的相同投资可能产生的影响很小。

攻击并不是完全可以预防的,但在预防失败的地方,检测就占了上风。预防通常是插入数据中心的另一个“黑盒”,承诺结束安全问题。检测也有类似的看法,尽管程度较轻。事实上,他们都不符合“先定后忘”的模式。适当的检测需要人员和持续改进的过程,即,敏锐的结果需要敏锐的个人。吉姆·柯林斯在他的书《从优秀到卓越》中对这一谬论做了最好的描述,他说:“轻率地依赖技术是一种负债”(第159页)。这一概念在信息安全方面也没有什么不同。信息安全领域甚至可能需要更多的人才来有效地运行更多的工具,从而使这一想法更加复杂。从根本上说,产品能够而且应该增加人才,而不是取代人才。这一概念与传统的管理哲学相反,传统的管理哲学认为产品成本是抵消或减少全职员工(FTEs)的理由。

另一个导致检测和高停顿时间统计的因素是缺少日志记录。日志记录应该被认为是增强可见性和检测的重要组成部分。相反,由于日志记录与合规性需求保持一致,因此它常常被认为是负面的。合规并不等于安全。同样,仅使用日志并不能提高安全性。如果不进行跟踪,无数的已记录的安全事件几乎没有任何好处。只有通过记录、仔细分析收集的数据,然后采取行动,才能提高安全性。如果进行了适当的检查,日志记录具有实际的好处,而且远远不止是管理标准的一个复选框。

2. 基本检测

信息安全中一个常见的误解是攻击者只需要找到一个漏洞就可以成功,而防御者需要确保没有漏洞。此声明仅在防御者不寻找重大安全事件时有效。如果错过了与安全相关的事件,那么它要么是一个安全盲点,要么是大量假阳性事件中的一个相关事件。不管什么原因,攻击者只需要在防御者没有积极监视的情况下找到一种方法。即使最基本的预防工具也可以增加检测工作,但是,问题是大多数系统管理员没有查看这些工具或与安全相关的活动的日志。

一种这样的预防工具是具有适当配置的出口过滤的防火墙。当攻击者试图在阻塞的端口上进行出站通信时,出口过滤可以生成日志。尽管攻击者或恶意软件可能最终找到一个打开的端口,但恶意软件可能在最初的攻击期间测试几个出站端口。在下面的图2中,恶意软件在试图与外部C2服务器通信时触发了多个防火墙块。本例中的恶意软件通过端口443 (HTTPS流量使用的标准端口)进行通信。防火墙阻止了这种通信,因为这个环境使用了web代理。因此,安全的web流量通过一个完全不同的端口与代理通信。简单地说,这个特定的恶意软件没有代理意识。

Onion-Zeek-RITA:改善网络的可见性和检测C2活动_第2张图片
Figure 2: Firewall egress blocks

将安全事件与来自其他基本预防工具(如端点保护)的警报关联起来可以显著增强环境的总体安全性。在这方面,端点保护的价值被低估了,相反,它被认为是一种自动化的、一次性配置的安全工具。许多管理员认为,如果端点保护阻止了恶意软件的执行,那么它的作用就结束了。端点保护可以提供更多信息,端点通知甚至可以指示攻击正在进行。与出口阻塞类似,攻击者可能会多次尝试绕过端点保护或在成功之前禁用端点保护。没有对缺省C2配置进行任何修改,图3中的攻击就失败了,因为端点保护阻止了它的执行。初始攻击失败后,攻击者可以修改C2配置以绕过已知的端点保护签名。

Onion-Zeek-RITA:改善网络的可见性和检测C2活动_第3张图片
Figure 3: Windows Defender detecting a default PoshC2 payload

3.更先进的工具

如前所述,即使是标准的预防工具也可以丰富检测能力。然而,在大多数情况下,这些技术只适用于普通的恶意软件或不熟悉环境的攻击者。来自传统防御的数据的价值是不可否认的,但更老练的攻击者和恶意软件可以轻而易举地绕过这些防御。一个安全意识很强的组织需要的工具和技术要超出基于签名的防御能力。

增强安全事件检测的一个工具是security Onion。从发行版的网站上可以看到,“Security Onion是一个用于入侵检测、企业安全监控和日志管理的免费开源Linux发行版”(Security Onion, 2018)。安全洋葱本质上是一个网络安全监视器(NSM),在一个简单的部署包中具有广泛的功能。安装说明和最新的ISO映像在安全洋葱GitHub页面(安装,2018年)。安全洋葱的功能包括包捕获、入侵检测、日志记录和许多分析工具。一旦集成到一个环境中,该工具就成为了威胁搜索和流量分析的“瑞士军刀”。有许多方法可以将数据放入安全洋葱中,但是本研究主要关注日志收集和完整的数据包捕获。Elastic Stack(以前是ELK Stack或Elasticsearch、Logstash和Kibana)和Zeek(以前是Bro)与其他安全洋葱工具一起分析收集的数据。

RITA (Real Intelligence Threat Analysis)是一个默认不与Security Onion一起安装的工具,被添加到实验室设置中。在安全洋葱GitHub页面指南的帮助下,RITA的安装非常简单(RITA, 2018)。RITA是一个使用Zeek日志的威胁搜索框架。接着,RITA使用统计分析和k-means聚类算法来帮助查找日志中的破坏指标。该框架擅长于识别网络异常,如长连接和信标活动。信标模块使用离散快速傅里叶变换(DFFT)分析连接日志。DFFT可以识别连接频率来显示通信发生的频率(Strand, 2015)。这种类型的流量分析非常有用,即使对流量进行了加密。

RITA的另一个重要特性是能够将收集到的旧数据与新发现的黑名单IP地址和url进行比较。例如,受影响的系统以前可能与基于internet的IP地址通信。上周,由于该IP地址被认为是良性的,所以没有触发警报。然而,本周,同一个IP地址出现在5个不同的威胁情报源上,因为它被用于僵尸网络活动和传播恶意软件。结合安全洋葱和Zeek, RITA是一个有效的威胁搜索工具。

4. 实验室设置

这个测试的实验室环境位于一个独立于所有生产流量的网络段上。最终用户系统是一个干净的Windows 10专业安装与最新的Windows更新应用。安全洋葱分发版安装在具有两个网络接口的物理服务器上。一个网络接口用于系统管理和访问用于查询的web接口。安全洋葱服务器上的第二个接口仅用于完整的包捕获。包捕获是通过托管交换机上的端口镜像配置的。端口镜像复制了从终端用户系统到安全洋葱上的包捕获接口的所有通信。Security Onion还通过syslog接收了防火墙日志,以潜在地帮助处理事件相关性。下图4显示了一般的实验室配置,包括已安装的应用程序和主要组件。该图像还描述了最终用户相对于攻击者和internet的相对位置。

Onion-Zeek-RITA:改善网络的可见性和检测C2活动_第4张图片
Figure 4: Lab network diagram

网络分段确保了外部活动不会污染收集到的数据。分段不可避免地使检测更容易,但在引入C2流量之前,熟悉环境被证明是有价值的第一步。与标准的生产环境类似,理解“正常”对于识别异常活动和异常行为至关重要。这段观察期也允许时间来确保必要的安全洋葱正常工作。

5.  post设置

Zeek立即开始分析捕获的网络数据包并生成活动数据。除了提供简单的聚合数据,如SSL和HTTP连接计数(图5),Security Onion还提供域名频率分析。尽管这个特性没有被用于在实验室环境中检测这些C2通道,恶意软件通常使用随机生成的域名。然后,恶意软件将在预先确定的日期和时间更改为一个新的随机名称。在搜索这类活动时,域频率分析功能非常有用。如图6所示,使用此方法很容易识别随机域名。

Onion-Zeek-RITA:改善网络的可见性和检测C2活动_第5张图片
Figure 5: HTTP log count


Onion-Zeek-RITA:改善网络的可见性和检测C2活动_第6张图片
Figure 6: Domain name frequency analysis

总体目标是确定这些更先进的检测工具是否能够有效地识别被广泛认为在传统防御机制失效时难以检测的恶意软件。PoshC2和PowerShell帝国都是PowerShell开发框架。Windows操作系统内置了PowerShell,这两个框架都广泛地依赖于它。通过使用PowerShell,检测会有一些问题,因为这些框架“生活在陆地上”,对于C2s中的任何一个都不需要额外的软件组件。

PoshC2和PowerShell帝国都使用了许多技术来帮助躲避检测。一种规避的方法是对所有网络通信进行加密。加密使得在线检测更加困难,因为网络流量是不可读的。因此,在Snort或Suricata等标准入侵检测系统(IDS)中发现的许多签名从未触发。另外,这两个框架在默认情况下都使用了jitter。Jitter随机化受害主机与C2服务器通信的间隔。与每三分钟通信不同的是,系统可以在2分34秒后进行通信,然后在下一次通信时进行4分1秒的通信。

这些C2框架可以使用加密,尽管攻击者可能无法从证书颁发机构配置有效的SSL证书。默认情况下,这两种攻击框架都使用自签名证书。尽管Zeek无法解密通信流,但它可以相对容易地发现这种活动。在Zeek通知中,在“SSL::Invalid_Server_Cert”通知类型下很容易识别自签名的服务器证书。Zeek还将显示“SSL证书验证失败(无法获得本地颁发者证书)”消息,以进一步解释证书无效的原因。

Onion-Zeek-RITA:改善网络的可见性和检测C2活动_第7张图片

当用户访问一个网站时,他们的浏览器向他们访问的web服务器提供一个签名。这个签名称为用户代理字符串,它帮助服务器确定相关内容和客户机功能。C2 通道可能会欺骗这个字符串,试图混入正常的流量(见附录A)。但在许多情况下,用户代理字符串与C2的默认值没有变化。与其他C2缺省值非常相似,查找缺省用户代理字符串对查找非常有帮助。组织可以通过指定一个可接受的浏览器类型来进一步区别于C2用户代理字符串。此外,组织可以为整个组织使用自定义用户代理字符串。自定义用户代理字符串可以通过组策略推出,以方便管理(Set Chrome, 2018)。狩猎团队可以很容易地搜索非标准或不允许的用户代理字符串,因为C2可能不知道这些站点范围的策略。

Onion-Zeek-RITA:改善网络的可见性和检测C2活动_第8张图片
Figure 8: C2 unchanged user agent strings

域名频率、自定义用户代理字符串和无效的SSL证书测试可以用于大多数攻击。然而,如果用于高针对性的攻击,这些分析方法可能会失败。通过额外的时间和计划,一个老练的攻击者可以采取额外的措施来防止C2检测。使用来自受信任的证书颁发机构的SSL证书可以清除任何与SSL相关的证书错误;即使是Let 's Encrypt提供的免费SSL证书也可以满足这种需求。有效的SSL证书进一步将加密的C2流量与其他加密的流量混合在一起。自定义C2配置还可以绕过标准端点保护和入侵检测签名。PowerShell帝国C2的默认设置是众所周知的,防御者可以调整他们的系统来寻找这个活动(Long, 2017)。但是,如果这些C2通道配置了非标准选项,该怎么办?先进的检测工具还能帮助检测这些C2通道吗?

6. C2流量分析

这两个PowerShell C2框架有许多相似之处。令人惊讶的是,它们也有几个不同的特点。最显著的区别是他们流量的基本方式。这种差异导致了两种不同的狩猎方法。

一个区别是PowerShell帝国为其C2通信打开和关闭TCP连接。因此,信标通信流不断增加源端口。PowerShell帝国允许更改信标的登录页面,尽管这不会改变网络角度的分析。根据源和目标IP地址过滤流量后,信标活动很容易识别。在下面的图9中,源端口每隔5秒增加一个信标。如果主机之间存在额外的C2活动或其他TCP通信,则源端口的更改不太一致。

Onion-Zeek-RITA:改善网络的可见性和检测C2活动_第9张图片

如果系统的初始IP地址未知,另一种查找PowerShell帝国信标活动的技术是通过Zeek连接数据。不断地打开和关闭TCP连接会通过源和目标IP地址创建过多的连接。除非信标通过C2通道积极地传输数据,否则连接大小也将保持不变,如图10所示。


Onion-Zeek-RITA:改善网络的可见性和检测C2活动_第10张图片

另一个寻找PowerShell帝国信标活动的方法是和RITA一起。在从Zeek数据创建数据集(参见附录B)之后,RITA使用不同的方法成功地识别了C2活动。第一个命令显示数据集中访问次数最多的url。由于连接数量过多,三个访问最多的url都与PowerShell帝国C2活动相关(图11)。图12中的RITA命令show-beacons提供了一个分数,该分数指示所分析的流量是否处于信标状态的可能性。为了提高可读性,RITA还可以输出为HTML格式(图13)。


Onion-Zeek-RITA:改善网络的可见性和检测C2活动_第11张图片

与PowerShell帝国中打开和关闭TCP连接不同,PoshC2打开一个TCP连接并保持连接打开。因此,所有信标通信都在同一个源端口上通信。“信标”显示为单个TCP连接。如果端点能够捕获流量,则活动很容易识别。在下面图14所示的Wireshark捕获中,所有信标都使用源端口1653和ACKs进行通信。一旦连接关闭,活动将显示在Zeek连接日志中(图15)。

Onion-Zeek-RITA:改善网络的可见性和检测C2活动_第12张图片


打开的连接会给一些工具带来问题,因为Zeek在TCP连接关闭之前不会写入连接日志。因此,任何依赖于连接日志的工具都不能执行分析,因为它不知道连接的存在。显示数据包捕获工具capME给出一个错误,说明“第二个ES查询没有找到这个ID”,如图16所示。幸运的是,有Zeek插件来帮助检测这些长连接,尽管这些脚本和包在默认情况下没有安装(长连接,2017)。


Onion-Zeek-RITA:改善网络的可见性和检测C2活动_第13张图片


如果连接关闭,查找长连接就变得有些琐碎了。如下面的图17所示,带有“最大持续时间”列的Kibana查询允许根据连接时间进行排序。由于只有一个TCP连接,RITA没有显式地将活动标识为信标(参见附录C),但是,RITA的show-long-connections功能非常适合查找这种类型的C2活动。


Onion-Zeek-RITA:改善网络的可见性和检测C2活动_第14张图片

7. 潜在问题

许多工具确定了在PowerShell帝国中发现的信标活动。例如,即使攻击者增加信标间隔,RITA无疑仍然会找到C2活动。重要的是要记住,在信标间隔足够高的情况下,RITA可能需要大量的数据——几天、几周、几个月收集的数据——才能确定信标活动。这种更改可能会降低C2对攻击者的有用性,除非维护对未来活动的访问是主要关注点。此外,如果PowerShell帝国间歇性地进入休眠状态,则可以避免后台发生的一些统计分析。

PoshC2使用HTTP/2进行通信,如图18所示。与其他HTTP/2流量类似,这会打开一个TCP连接,所有后续通信都发生在初始连接上。除了开放连接的问题之外,HTTP/2是一个二进制协议,而不是以前的标准HTTP 1.1中所发现的纯文本协议。因此,HTTP/2本身就不是人类可读的(HTTP/2 FAQ, 2018)。这些变化加上TLS协议1.3版本(Fruhlinger, 2018)的安全改进,可能会使SOC分析师的角色变得更加困难,即使是最老练的专业人士。


Onion-Zeek-RITA:改善网络的可见性和检测C2活动_第15张图片

在实验室中甚至在生产网络中识别与PoshC2相关的HTTP/2流量可能不会太难。然而,全球向HTTP/2的转变无疑将使检测更加困难。分析师或搜索团队可以调查少量的长连接,但随着更多连接转向新标准,这种做法是不可行的。此外,对C2配置的微小更改可能会妨碍定位长TCP数据流的能力。这些更改可以帮助C2流量与标准HTTP/2流量融合。与PowerShell Empire C2类似,攻击者可能会选择在最初的破坏之后对系统保持低调。如果与PoshC2中已经内置的 turtle特性相结合,对信标间隔和抖动的修改也会扼杀狩猎团队的工作。

8.  结论

尽管经常被忽略,但基本的安全工具可以增强对C2活动的检测。尽管这些工具很有用,但它们本身并不能保证环境的安全。安全洋葱和Zeek擅长聚合、显示和关联网络数据。RITA通过提供完全不同的分析级别进一步增强了这些功能。这些工具可以补充当前的防御工具集。更重要的是,这些在熟练防守者手中免费可用的工具可以显著提高蓝队获胜的几率。

攻击者改变了他们的战术,却发现防守者比他们领先一步。防御者发现攻击者已经把战斗转移到一个新的前线,他们的防御能力才有所提高。攻击者通常可以通过避免常见错误和配置默认值来逃避检测。不过,即使是最老练的对手,成功侦测的核心原则也没有改变。Security Onion、Zeek和RITA可以增强分析连接数量、连接长度和数据量的能力。因此,即使狩猎活动已经发生了巨大的变化,这些相同的原则对现在和未来的狩猎仍然至关重要。

在这些工具中发现的功能成为每个组织保持安全的新基线只是时间问题。即使这样,也没有一种安全工具是万能的,这些工具的组合不应该被误认为是万能药。了解这些工具如何工作以及它们如何帮助检测真实世界中的命令和控制非常重要。也许同样重要的是了解它们的局限性,例如差距在哪里仍然存在,甚至在哪里可能出现新的差距。攻击者和防御者之间的猫捉老鼠的游戏将继续下去。违规行为无疑还会继续。防御者必须跟上当前的趋势、工具集,并遵循不断变化的最佳实践来保护我们最重视的数据。

你可能感兴趣的:(Onion-Zeek-RITA:改善网络的可见性和检测C2活动)