如何:如何使用Bro进行威胁情报分析

来源:https://blog.apnic.net/2017/03/13/analyze-threat-intel-bro/

无论你是从事IT安全还是网络工作,你都可能听说过,或者甚至有过处理过IoT DDoS和Mirai僵尸网络事件的经验。有很多恶意设备在不断地尝试扫描你的网络,telnet/ssh到你的网络设备,或创建一些GRE会话与你的路由器相连。

有一些开源工具可以用作基于网络的入侵检测系统(IDS)或分析框架,其中之一是Bro网络安全监控器(Bro)。Bro强大的分析引擎使其擅长于高性能的网络监视、协议分析和实时应用层状态信息。在本文中,我将解释如何部署Bro来监视和分析威胁情报,以便调整安全设备。

1、安装Bro

对于安装,我使用64位的Ubuntu 14.04.4 LTS。

# uname -a

Linux bro-sensor 4.2.0-27-generic #32~14.04.1-Ubuntu SMP

Fri Jan 22 15:32:26 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

在安装Bro之前,确保有一些依赖项存在。

# sudo apt-get install cmake make gcc g++ flex bison libpcap-dev libssl-dev

python-dev swig zlib1g-dev swig libgoogle-perftools-dev

我们将从源代码安装Bro。下载源代码:

# sudo wget https://www.bro.org/downloads/bro-2.5.tar.gz

# sudo mkdir -p /opt/nsm/bro

# sudo tar -zxvf bro-2.5.tar.gz

# sudo cd bro-2.5

# sudo ./configure --prefix=/opt/nsm/bro

# sudo make

# sudo make install

导出路径环境变量:

# sudo export PATH=/opt/nsm/bro/bin:$PATH

启动Bro服务:

# sudo /opt/nsm/bro/bin/broctl deploy

检查Bro是否正常运行:

# sudo /opt/nsm/bro/bin/broctl status

Name         Type       Host          Status    Pid    Started

bro          standalone localhost     running   1366   01 Feb 13:41:06

你会在/opt/nsm/bro/logs/current中看到一堆日志文件,这取决于bro是如何捕获所有包的。

您可以跟踪conn.log文件并实时观察Bro日志流:

# sudo tail -f /opt/nsm/bro/logs/current/conn.log

2 、添加威胁情报

CriticalStack的Intel Feed是一个为Bro提供的免费Intel市场。一旦你创建了一个免费的帐户,登录并创建一个“收集”和至少一个“传感器”下的收集。订阅与您的网络相关的提要。现在有超过100个订阅源可以订阅。如果一切都完成了,您的仪表板将看起来像这样:


如何:如何使用Bro进行威胁情报分析_第1张图片

记下API关键字,您需要将critical - stackintel与Bro集成在一起。

在Bro服务器中,安装critical-stack-intel:

# sudo curl

https://packagecloud.io/install/repositories/criticalstack/critical-stack-

intel/script.deb.sh | sudo bash

# apt-get install critical-stack-intel

# critical-stack-intel api YOUR-API-KEY-GOES-HERE

检查、安装和重启Bro:

# broctl check

# broctl install

# broctl restart

使用" critical - stack- intel "的命令来显示激活的威胁情报提要

# critical-stack-intel list


如何:如何使用Bro进行威胁情报分析_第2张图片

根据传感器的位置,它可能已经看到了恶意流量。 Critical Stack Intel客户端可能已经报告恶意活动到兄弟的intel.log文件。在我们的示例中,文件将位于/opt/nsm/bro/logs/current文件夹中。

我们的传感器准备好了,可以接收所有的日志。您可以从cli解析这些日志,但我发现它不友好/舒适。接下来,我们将包括ELK堆栈(ElasticSearch、Logstash和Kibana),以分析这些日志以获得关于网络流量的信息。

3、将ELK堆栈与Bro集成在一起

ELK stack是一个非常好的数据可视化工具。你可以在ElasticSearch、Logstash和Kibana网站上找到安装过程。当您的ELK堆栈已就绪,则该整合Bro:

# cd /etc/logstash/conf.d/

# sudo wget https://raw.githubusercontent.com/fakrul/bro-elk/master/bro-conn_log.conf

# sudo wget https://raw.githubusercontent.com/fakrul/bro-elk/master/bro-dns_log.conf

# sudo wget https://raw.githubusercontent.com/fakrul/bro-elk/master/bro-files_log.conf

# sudo wget https://raw.githubusercontent.com/fakrul/bro-elk/master/bro-http_log.conf

# sudo wget https://raw.githubusercontent.com/fakrul/bro-elk/master/bro-intel_log.conf

# sudo wget https://raw.githubusercontent.com/fakrul/bro-elk/master/bro-notice_log.conf

# sudo wget https://raw.githubusercontent.com/fakrul/bro-elk/master/bro-ssh_log.conf

# sudo wget https://raw.githubusercontent.com/fakrul/bro-elk/master/bro-ssl_log.conf

# sudo wget https://raw.githubusercontent.com/fakrul/bro-elk/master/bro-tunnel_log.conf

# sudo wget https://raw.githubusercontent.com/fakrul/bro-elk/master/bro-weird_log.conf

# sudo wget https://raw.githubusercontent.com/fakrul/bro-elk/master/bro-x509_log.conf

configs从https://github.com/vicgc/logstash-dfir和https://github.com/timmolter/logstash-dfir派生,并进行了修改以满足我的安装需求。这些configs使用logstash-filter-translate插件——下面的命令将为您安装它:

# cd /usr/share/logstash/bin/

# sudo logstash-plugin install logstash-filter-translate

运行以下命令检查是否一切正常:

# sudo -u logstash /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d --debug

如果一切正常,重新启动logstash服务:

# sudo initctl restart logstash

访问在端口5601上运行的Kibana接口(http://localhost:5601/)。

如何:如何使用Bro进行威胁情报分析_第3张图片

现在您可以从这个接口搜索特定事件。您甚至可以拥有特定的过滤器,并通过创建图形来可视化它们。


如何:如何使用Bro进行威胁情报分析_第4张图片


你所得到的数据大多是广播和单播,最终会发送到传感器。接下来要做的是放置一些被动或主动的LAN tap,或者做一个端口镜像,来获得广播域中的所有数据。这种分析让您真正了解您的网络,您可以使用这些数据来微调您的安全设备

你可能感兴趣的:(如何:如何使用Bro进行威胁情报分析)