Quantcast
Channel: CodeSection,代码区,网络安全 - CodeSec
Viewing all articles
Browse latest Browse all 12749

【技术分享】使用Flare、Elastic Stack、IDS检测恶意软件通信的“beaconing”

$
0
0
【技术分享】使用Flare、Elastic Stack、IDS检测恶意软件通信的“beaconing”

2017-06-19 12:11:34

阅读:401次
点赞(0)
收藏
来源: austintaylor.io





【技术分享】使用Flare、Elastic Stack、IDS检测恶意软件通信的“beaconing”

作者:myswsun





【技术分享】使用Flare、Elastic Stack、IDS检测恶意软件通信的“beaconing”

译者:myswsun

预估稿费:170RMB

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿


0x00 前言

在一些恶意软件的变种感染计算机之后,它会定期连接它的C&C服务器。这种行为称为“beaconing”。

【技术分享】使用Flare、Elastic Stack、IDS检测恶意软件通信的“beaconing”

【技术分享】使用Flare、Elastic Stack、IDS检测恶意软件通信的“beaconing”

在Lockheed Martin Killchain(kali中自带有这款工具)中,Beaconing将发生于攻击者或APT对目标采取行动之前。

然而,这种行为很难检测到。Beaconing能在任何时间发生,且频繁改变。另外,网络通信没有完美的时间间隔,或者恶意软件可能添加干扰来阻止观察间隔。(例如每30秒)

有些定期通信是合法的,例如时间同步和软件更新。

Flare是一个免费开源的恶意分析框架,旨在尽可能简单的辨别恶意行为(例如网络中的C&C Beaconing)。


0x01 入门

在我们开始之前,你需要有下面的东西。


【技术分享】使用Flare、Elastic Stack、IDS检测恶意软件通信的“beaconing”

本文假设你有一个网络监控系统,能输出到Elastic Stack(以前叫ELK)。如果你对网络监控感兴趣,可以参考我的博文“为企业、小办公室或家庭构建监控系统”。

我们将使用SELKS 4.0,但是Flare是模块化设计,可以和安全洋葱或者任何运行Snort, Bro, Suricata的系统一起协作。在Elastic Stack(ES)中的流数据是Flare用来确定Beacon的。

另外,你需要安装Flare。(gihub上有指导)


0x02 构建一个隧道

根据你的elasticsearch的配置,你可能需要构建SSH隧道来让你的计算机和你的elasticsearch节点通信。

例如,如果你的计算机IP地址是192.168.1.150,你的elasticsearch节点是192.168.1.2,你可以在你的本地计算机打开9200端口。


【技术分享】使用Flare、Elastic Stack、IDS检测恶意软件通信的“beaconing”

在终端运行以下命令验证你的连接:


【技术分享】使用Flare、Elastic Stack、IDS检测恶意软件通信的“beaconing”

你将会收到elasticsearch的回应。


【技术分享】使用Flare、Elastic Stack、IDS检测恶意软件通信的“beaconing”

一旦能连接,就可以运行Flare。


0x03 配置Flare


【技术分享】使用Flare、Elastic Stack、IDS检测恶意软件通信的“beaconing”

在你安装Flare之后,在你的路径下应该有一个flare_beacon的二进制文件。这个文件是参数和配置文件。

在配置目录中,有一些.ini文件。包括selk4.ini,它是SELKS 4.0的预配置文件。一定要针对你环境的修改配置。

我增加了一些注释来解释每个字段。


【技术分享】使用Flare、Elastic Stack、IDS检测恶意软件通信的“beaconing”

像min_occur, min_interval, and min_percent是可以调节的。值越大,结果输出越少。

更多信息参考flare_beacon –h。


0x04 发现Beacon

注意我们已经安装并配置好了flare,现在我们准备在我们的网络中寻找Beacon。

我使用下面命令每60秒生成了一个HTTP流量请求:


【技术分享】使用Flare、Elastic Stack、IDS检测恶意软件通信的“beaconing”

在这种场景中,我们认为我们被感染的终端发信号给C&C服务器。

被感染的IP:192.168.0.53——>C&C服务器:160.153.76.129

让我们在flare中发现它!


【技术分享】使用Flare、Elastic Stack、IDS检测恶意软件通信的“beaconing”

如果一切就绪,你应该能看见下面类似的输出:


【技术分享】使用Flare、Elastic Stack、IDS检测恶意软件通信的“beaconing”

注意:Flare使用你配置文件中指定的资源,如果没有正确的配置将是你的计算机卡死。计算机资源与你的网络大小成正比。网络越大,需要的计算资源越多。

下面是flare运行期间我的计算机资源的截图。


【技术分享】使用Flare、Elastic Stack、IDS检测恶意软件通信的“beaconing”

我的家庭网络大约有100个节点,大约花一分钟处理24小时的Beacon。


0x05 理解配置选项

-group:将结果分组,让我们看起来更容易识别异常。

-whois:通过ASN查询的关于IP的更多WHOIS信息

-focus_outbound:从目的IP中过滤我们的组播,私有和广播地址

-c:使用flare的配置

-html:以html文件输出结果

-csv:以CSV文件输出结果(不会分组)


0x06 分析结果

现在是有趣的部分,你可以分析结果了。

如果你使用上面的选项,你的输出看起来如下:


【技术分享】使用Flare、Elastic Stack、IDS检测恶意软件通信的“beaconing”

在其他的流量中,Flare确定了和C&C服务器的IP通信。你怎么才能区分这种行为呢?

首先理解输出字段是重要的。


0x07 输出字段

Bytes_toserver:从IP地址发送给服务器的所有的字节

Dest_degree:和相同目的地址通信的IP数量

Occurrences:被标识为Beaconing的次数

Percent:被标识为Beaconing的比例

Interval:Beacon的时间间隔(单位秒)

Flare的输出显示了192.168.0.53和160.153.76.129的80端口的通信,61秒的间隔。在节点之间的通信97%是定期的。结果还表明2个额外的内部节点交互到相同的目的IP(这种情况,是我测试了多台主机的连接)。

你也能看到相同的主机以相同的间隔通过google DNS查询DNS,这是因为我们的curl命令首先查找主机名,然后发出HTPP请求。

过滤知名的服务(如Google和Amazon)能缩小结果集合范围。然后你能寻找一个目的地单一但(请求)比例高的beaconing。

更大的网络有更多的活动,因此你最好输出结果到CSV文件中,可以充分利用Excel的功能。


【技术分享】使用Flare、Elastic Stack、IDS检测恶意软件通信的“beaconing”

0x08 调查结果

在你创建了要调查的流量的子集后,打开Kibana使你的结果可视化。

如果你使用SELKS,打开SN FLOW仪表盘,输入dest_ip作为过滤项。


【技术分享】使用Flare、Elastic Stack、IDS检测恶意软件通信的“beaconing”

根据时间序列,选择部分,Kibana将自动调整时间间隔。


【技术分享】使用Flare、Elastic Stack、IDS检测恶意软件通信的“beaconing”

现在,你能看到从我们的受感染的主机以60秒的间隔和C&C服务器通信。


【技术分享】使用Flare、Elastic Stack、IDS检测恶意软件通信的“beaconing”

可以转向HTTP仪表得到更多详细信息。

在流仪表盘中使用相同的dest_ip过滤。


【技术分享】使用Flare、Elastic Stack、IDS检测恶意软件通信的“beaconing”

【技术分享】使用Flare、Elastic Stack、IDS检测恶意软件通信的“beaconing”

【技术分享】使用Flare、Elastic Stack、IDS检测恶意软件通信的“beaconing”

HTTP仪表盘提供了流量的上下文信息。现在我们知道了一个MAC OSX主机和一个www.huntoperator.com网站通信。

这时,我们转到EveBox,通过点击关联流来查看横跨多个索引的网络流量。


【技术分享】使用Flare、Elastic Stack、IDS检测恶意软件通信的“beaconing”

似乎我们的C&C beacon也触发了警告。


【技术分享】使用Flare、Elastic Stack、IDS检测恶意软件通信的“beaconing”

深入挖掘警告,使我们能看到触发警告的payload,并确认被感染的主机使用curl向C&C节点发出GET请求。

另外,我们可以挖掘目的IP来观察它的日常。


【技术分享】使用Flare、Elastic Stack、IDS检测恶意软件通信的“beaconing”

EveBox能很好的帮助分析主机通信。


0x09 总结

使用Flare,你能在你的网络中确定定期的通信。在缩小结果范围后,你研究相互作用,并确定终端使用MAC OSX试图通过HTTP每60秒和huntoperator.com通信,在24小时内,发送了1.23MB流量并从位于Arizona 的Scottsdale的C&C服务器接收了12.70MB。



【技术分享】使用Flare、Elastic Stack、IDS检测恶意软件通信的“beaconing”
【技术分享】使用Flare、Elastic Stack、IDS检测恶意软件通信的“beaconing”
本文由 安全客 翻译,转载请注明“转自安全客”,并附上链接。
原文链接:http://www.austintaylor.io/detect/beaconing/intrusion/detection/system/command/control/flare/elastic/stack/2017/06/10/detect-beaconing-with-flare-elasticsearch-and-intrusion-detection-systems/

Viewing all articles
Browse latest Browse all 12749

Trending Articles