日志易
作者日志易·2021-11-29 11:56
其它·日志易

场景解析|利用流量日志查找Malware Beaconing,掌握威胁狩猎密码,轻松应对恶意软件

字数 2747阅读 953评论 0赞 1
背景介绍

此威胁狩猎模型主要作用是发现源自网络的Beaconing。

在恶意软件的世界中,Beaconing是一种从受感染的主机向攻击者控制的主机发送简短和定期通讯的做法,以传达受感染主机恶意软件处于活动状态、正常运行并准备好接收指令等相关信息。

Beaconing通常来自受感染的内部企业主机(例如Bots或Zombies),并发送到企业网络外部的命令和控制服务器(Command & Control Server)。这种Phone Home的通信允许僵尸网络管理员自动追踪、管理和控制数十万受感染的主机。

当我们面对恶意软件的时候,为什么不直接寻找恶意软件本身,而将Beaconing作为检测的依据呢?

那是因为随着技术的增长,恶意软件并不总是那么容易被找到。恶意软件的作者知道防病毒、反恶意软件和端点保护是如何运作的,所以复杂的恶意软件很容易逃避各类检测。作者可以围绕它们进行设计,甚至在开始执行任何嘈杂的活动或在受感染的主机上写入任何文件之前,能够检查到是否存在这些防御机制。

因此,仅检查机器上的恶意软件是不够的,我们还需要从网络层面上寻找恶意软件感染的迹象。

Beaconing是僵尸网络或点对点恶意软件感染的其中一个与网络相关的迹象。通常恶意软件在主机上立足后,它会迅速确定主机环境并与命令和控制服务器(Command & Control Server)取得联系。然后,C2服务器会决定向受感染主机传输或者安装什么样的内容。

计算工作流

下图展示了此检测模型的整体流程:

  1. 采集原始日志

本模型通过 日志易SIEM安全大数据分析平台 接入数据源为NTA的流量日志,未经处理的数据如下图所示。

  1. 筛选数据流向

上文提到的Beaconing通常来自受感染的内部企业主机,并发送到企业网络外部的命令和控制(C&C)服务器,所以本模型关注源地址为內网IP、目的地址为外网IP的流量(Internal IP --> External IP)。

在模型使用过程中,可通过 日志易SPL(Search Processing Language) 中的Lookup函数对内网网段作出筛选。

  1. 数据处理-时间数据

由于此模型需要计算时间间隔等数据,时间戳字段不便于运算,故需把时间戳转化为以秒为单位的数值。转化思路为,如时间戳时间为10:12:14.321,则转换为秒的公式为

  1. 数据处理-时间重构

在时间转化完毕后,我们需要对数据进行重整,展示出同一源IP对同一目的IP的所有通讯时间,将时间排序,为后续计算时间间隔作准备,同时展示两个IP之间的连接次数conn_cnt。

  1. 时间间隔计算

使用脚本计算出同一源IP对同一目的IP所有相邻通讯的时间间隔。

  1. 利用阀值进行过滤

在得到所有时间间隔之后,我们需要定义异常场景的筛选条件,并以此作为告警条件。根据Beaconing的特性以及其它参考,定义以下两条:

a) 连接总次数阀值

连接总次数指的是同一源地址至同一目的地址所发生通讯的总次数。通过与这个值对比可以将通讯次数较少的事件过滤掉,降低误报,提高模型的实用性。

此处设定当连接总次数阀值=20,当conn_cnt>20时为有效事件。

b)Beaconing百分比阀值

Beaconing百分比指的是同一源地址至同一目的地址之间的通讯存在Beaconing的可能性。利用这个值进行筛选可以有效提高告警的精度。

此处设定Beaconing百分比阀值为30,当Beaconing百分比大于30为有效事件。 Beaconing百分比计算公式为:

Note: 阀值的设定需要和时间框架关联,此模型使用的时间框架为 24小时 ;另外阀值的设定应根据环境或告警的真实情况作出调整。

  1. 验证告警

根据阀值筛选结果,由安全分析人员验证可疑事件,如确认存在Beaconing以及恶意软件,标示主机失陷并进行响应。

SPL语句

搜索结果如下图所示:

根据上图结果,可解读为:

源IP地址(192...)与目的IP地址(239...)在时间框架内共发生35次通讯,通讯时间分别为time列中的数值,difftime中为两次相邻通讯的时间间隔,在众多时间间隔中,重复次数最多的时间间隔出现2次,经计算后,Beaconing百分比数值为5.714%,远小于阀值,表示源IP与目的IP之间不存在可疑Beaconing。

应用与讨论

在应用此检测模型时,需要考虑下列事项以避免无效的检测:

  • 在检测时,结果可能包含已知设备供应商的合法Beaconing流量,例如与Windows更新相关的流向Microsoft的流量、流向设备制造供应商的流量,或任何其他配置为按预定时间间隔启动网络连接的合法应用程序。
    在模型使用初期,安全分析人员需要根据历史事件分析了解基线,使用IP地址白名单来过滤此类合法IP以减少大量的误报,提高检测精准度。
  • 由于检测会根据重复最多的时间间隔发出告警,但攻击者也可以添加抖动或随机性,使各个网络连接之间的时间间隔值看起来有所不同,并使Beaconing百分比阀值的匹配失效,从而绕过此检测。
    为应对此问题,安全分析人员可以使用基线分析和数据集的其他参数,推导出额外的阀值进行更精准的匹配,提高效能。

    总结

    此规则模型研究了使用时间间隔检测Beaconing的技术,以及如何在日志易SIEM安全大数据分析平台中使用SPL语句实现它。

检测的逻辑涉及从加载原始日志到进行各种数据转换,最后根据配置的阀值告警的各个阶段。由于未经处理的日志数据非常庞大,查找可操作的事件总是具有挑战性,面对庞大的数据规模,如果分析师不借助有效的模型,难以进行进一步操作去发现恶意的通讯流量。

通过上文提到的规则模型,我们可以找到从内网到不受信任的公共目的地的类似Beaconing的流量模式,并直接调查结果。

对此模型的研究将持续进行,主要内容为 与PCR等模型关联使用的可行性与方法 ,敬请期待。

References:

  1. https:// techcommunity.microsoft.com /t5/azure-sentinel/detect-network-beaconing-via-intra-request-time-delta-patterns/ba-p/779586
  2. https://www. blackhillsinfosec.com/d etecting-malware-beacons-with-zeek-and-rita/
  3. https:// github.com/ThreatHuntin gProject/ThreatHunting/blob/master/hunts/beacon_detection_via_intra_request_time_deltas.md

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

1

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广