导语:本文提供了一份使用免费Bro IDS和Intel Critical Stack分析网络活动的研究详细报告。
越来越多的网络攻击迫使企业将其网络活动作为安全策略的一部分加以控制。
众多供应商已经设计了多种入侵检测系统(IDS)来帮助企业保护网络基础设施。但是,由于商业IDS通常需要花费数千美元,因此该软件对于小型企业而言可能是经济上的负担。幸运的是,开源IDS也可以很有效地达成目的。他们提供可修改的插件,可以动态扫描网络并确保检测来自互联网的入侵。
在本文中,我们提供了一份使用免费Bro IDS和Intel Critical Stack分析网络活动的研究的详细报告。研究证明了这些系统实时检测网络入侵者的有效性。此外,我们还使用ELK Stack来可视化仅对网络入侵分析有用的数据。本文对安全管理员和正在寻找检测网络入侵和可疑活动的替代方案的DevSecOps非常有用。
一、研究目标
本研究的目标是使用开源工具的组合来建立一个有效的网络入侵分析环境。
作为主要的监测工具,我们选择了Bro IDS,它是一种有效的开源解决方案,可收集有关企业内所有网络活动的信息。同时,它会生成大量的日志,这些日志没有过滤或可视化,因而系统管理员很难开展分析。因此,我们需要定义哪些网络活动的日志可能指示可疑活动,以及如何便利的可视化这些数据以便于进一步网络入侵分析。
二、途径
我们想要构建一个组件数量最少的监控系统。
在测试环境中运行系统并获取结果后,我们将调查这些结果,并为系统在真实网络环境中的部署提供建议。
我们测试的监控系统包含以下组件:
· 主机——生成网络活动的监视对象
· 网络入侵检测系统IDS——对主机流量进行分布式分析的软件
· 分析和可视化数据的系统
· 在物理硬件上运行的操作系统(OS),用于运行IDS的操作系统以及R数据分析和可视化工具
我们在包含多个虚拟机(复制企业环境)的测试实验室中进行了所有实验:
三、软件简介
为构建监测系统,我们选择了以下软件:
· IDS: Bro Network Security Monitor 和Intel Critical Stack
· 数据可视化: ELK Stack, 由Elasticsearch, Logstash和Kibana组成
· OS: Ubuntu 16.04 虚拟机,配置为internet 网关
什么是Bro IDS?
Bro Network Security Monitor是一种Unix风格的入侵检测系统,可监控网络流量并检测入侵和异常活动。
Bro通过提取其应用层语义来解析网络流量。之后,它通过执行面向事件的Bro IDS协议分析器来检测入侵,将当前流量与潜在的有害模式进行比较。作为这一分析的结果,Bro可以通过查找特定签名或根据事件和特定条件自定义攻击来检测网络攻击。
该系统还可用于检测异常活动,例如多个主机与某些服务的连接或失败的连接尝试模式。
请记住,Bro不是干涉网络活动的内联IDS。Bro与网络活动并行进行分析,并在发生攻击或未经授权的访问时发送警报(如果配置正确)。
为什么我们使用其他软件?
Intel Critical Stack是对Bro IDS的补充,它拥有检测恶意软件网站的签名。我们安装了Intel Critical Stack以及Bro IDS,然后收集了互联网使用情况的数据,并将这些数据发送到Intel Critical Stack数据库。因此,我们配置了Bro和Critical Stack Agent以便了解访问了哪些恶意网站。
ELK Stack由三个产品(Elasticsearch,Logstash和Kibana)组成,是收集、归一化、存储、可视化和分析由Bro IDS生成的日志数据所必需的。网络监控的结果写在不同的日志中,管理员并不一定总能理解这些日志。因此,我们使用ELK Stack来显示图表数据,便于进行分析和制定决策。
我们使用的所有软件都是公开的。
四、测试流程
我们通过以下方式对监测系统进行了测试:
1. 客户向互联网发送请求。由此,主机生成网络活动。
2. Bro使用tcpdump分析来自enp0s8 (eth1)接口的流量,并使用其插件(包括Intel Critical Stack)在日志中分配记录。
3. Elasticsearch使用Logstash分析Bro日志并将其收集到本地数据库中。
4. Kibana从数据库中提取数据并构建模式。
五、数据可视化
为了以最方便的方式分析网络数据,我们选择了Kibana,它可以清楚地揭示网络中的可疑活动。
我们选择了以下图表来显示数据:
Connections Count per Minute Chart
Connections count per minute chart显示每分钟连接总数。非工作时间内连接数量的增加可能是活动异常的标志。
Top Protocols Chart
Top protocols chart显示了通过网络传输的流量和流量类型。
Top 10 Talkers Chart
Top 10 talkers chart显示了最有可能被感染的电脑。
Top 10 HTTP Requests Chart
Top 10 HTTP requests chart显示没有加密的请求,因此这些网站可能会感染恶意软件。
Top 10 Remote Ports Chart
Top 10 remote ports chart显示请求数量最多的端口。到一些端口的连接和请求数量每分钟不断增加可能表明可疑活动。
Bro Log Files
Bro log files显示Bro文件中的记录数量以及Bro IDS的整体状态。
Top 10 Malware Domains Chart
Top 10 malware domains chart包含Intel Critical Stack提供的恶意软件数据库的源数据。
六、数据库清理
如上所述,在正常操作过程中,Bro产生大量的日志文件。
但是,如果数据库存储空间有限,则可以在指定的时间段内清理它们。为了删除不必要的数据,使用Logstash中的Curator并将每日任务添加到Crontab以删除旧的ELK数据。
以下是actionfile.yml的内容,根据该内容,Curator选择数据进行清理。
0 1 * * * curator /root/actionfile.yml actionfile.yml: actions: 1: action: delete_indices description: >- options: ignore_empty_list: True timeout_override: continue_if_exception: False disable_action: False filters: - filtertype: pattern kind: prefix value: logstash- exclude: - filtertype: age source: name direction: older timestring: '%Y.%m.%d' unit: days unit_count: 30 exclude:
七、在真实网络上部署系统
在分析实验室环境下的测试结果之后,我们得出结论,将系统部署在真实的网络上需要以下几点:
· 具有端口镜像的交换机
· 具有32+ GB RAM和6-10 TB硬盘的服务器
请注意,需要的系统配置取决于网络服务提供商的带宽。如果有几个1 Gbps的通道,则需要安装Arista,Cisco,Myricom或类似的高性能网络设备。
八、安装和配置组件的指南
1.安装Bro IDS
配置虚拟机
在研究中,我们使用了一个带有两块网卡的虚拟机:一个用于互联网连接,另一个用于Intranet连接。
要执行以下所有命令,需要root(超级用户)权限。从安装DHCP服务器开始:
apt-get install isc-dhcp-server
执行以下操作来配置它: |
添加
INTERFACES="enp0s8"
打开文件/etc/sysctl.conf 并注释掉到文件/etc/default/isc-dhcp-server
#net.ipv4.ip_forward=1
执行以下命令
sysctl -p /etc/sysctl.conf
在文件 /etc/network/interfaces中,需要指定以下内容:
auto lo iface lo inet loopback auto enp0s8 iface enp0s8 inet static address 10.10.0.1 netmask 255.255.255.0
配置路由
配置路由以便连接到内部网的计算机可以访问互联网。从打开防火墙开始:
ufw enable
然后运行rc-local。在计算机重启后恢复iptables规则是必要的。
systemctl enable rc-local.service
打开文件 /etc/rc.local并添加
/sbin/iptables-restore < /etc/iptables/rules.v4
然后运行以下命令:
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE iptables -A FORWARD -i enp0s8 -o enp0s3 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -i enp0s8 -o enp0s3 -j ACCEPT iptables -A INPUT -p tcp --dport 5601 -j ACCEPT iptables -A INPUT -p udp --dport 5601 -j ACCEPT iptables-save > /etc/iptables/rules.v4
接下来,将DHCP服务器配置为自动接收IP地址。打开文件/etc/dhcp/dhcpd.conf并添加以下内容:
subnet 10.10.0.0 netmask 255.255.255.0 { range 10.10.0.50 10.10.0.150; option broadcast-address 10.10.0.255; option routers 10.10.0.1; option domain-name-servers 10.10.0.1, 8.8.8.8; }
安装Bro所依赖的库
为使Bro正常运行,需要安装某些应用程序。因此运行以下命令:
apt-get install cmake make gcc g++ flex bison libpcap-dev libgeoip-dev libssl-dev python-dev zlib1g-dev libmagic-dev swig libgoogle-perftools-dev mkdir -p /nsm/bro
安装Bro IDS
要安装Bro IDS,请运行以下命令:
cd ~
下载Bro IDS:
wget https://www.bro.org/downloads/release/bro-2.4.1.tar.gz
解压:
tar -xvzf bro-2.4.1.tar.gz cd bro-2.4.1
配置安装文件并安装Bro IDS:
./configure --prefix=/nsm/bro make make install export PATH=/nsm/bro/bin:$PATH
配置Bro IDS
要配置Bro IDS,请指定将在node.cfg文件中监控网络流量的接口:
nano /nsm/bro/etc/node.cfg
指定应该监视哪个子网络在networks.cfg:
nano /nsm/bro/etc/networks.cfg
启动Bro IDS
要启动Bro,请运行以下命令:
/nsm/bro/bin/broctl install exit
编辑rc.local:
sudo nano /etc/rc.local
加上
/nsm/bro/bin/broctl start
然后重新启动虚拟机
shutdown -r now
Bro IDS的WatchDog
WatchDog会在指定的时间段后自动启动Bro以防崩溃:
crontab -e # add: */5 * * * * /nsm/bro/bin/broctl cron
Intel Critical Stack
为了将Intel Critical Stack添加到Bro IDS,需要访问https://intel.criticalstack.com/, 创建传感器并订阅feed。之后,在安装了Bro IDS的虚拟机上运行以下命令:
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>
检查并安装接收到的更新:
broctl check broctl install broctl restart
2.安装ELK
apt-get update
安装Java开发工具包:
apt-get install -y openjdk-8-jdk apt-get install -y wget apt-transport-https wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elk.list apt-get update
安装ElasticSearch:
apt-get install -y elasticsearch systemctl enable elasticsearch systemctl start elasticsearch
安装Logstash:
apt-get install -y logstash systemctl start logstash systemctl enable logstash
安装并配置Kibana:
apt-get install -y kibana nano /etc/kibana/kibana.yml server.host: "0.0.0.0" systemctl restart kibana systemctl enable kibana
使用以下命令配置Logstash:
cd /etc/logstash/conf.d/ wget https://raw.githubusercontent.com/fakrul/bro-elk/master/bro-conn_log.conf wget https://raw.githubusercontent.com/fakrul/bro-elk/master/bro-dns_log.conf wget https://raw.githubusercontent.com/fakrul/bro-elk/master/bro-files_log.conf wget https://raw.githubusercontent.com/fakrul/bro-elk/master/bro-http_log.conf wget https://raw.githubusercontent.com/fakrul/bro-elk/master/bro-intel_log.conf wget https://raw.githubusercontent.com/fakrul/bro-elk/master/bro-notice_log.conf wget https://raw.githubusercontent.com/fakrul/bro-elk/master/bro-ssh_log.conf wget https://raw.githubusercontent.com/fakrul/bro-elk/master/bro-ssl_log.conf wget https://raw.githubusercontent.com/fakrul/bro-elk/master/bro-tunnel_log.conf wget https://raw.githubusercontent.com/fakrul/bro-elk/master/bro-weird_log.conf wget https://raw.githubusercontent.com/fakrul/bro-elk/master/bro-x509_log.conf
注:在conf文件中更改日志文件的路径。
然后安装Logstash的Filter Translate插件:
cd /usr/share/logstash/bin/ logstash-plugin install logstash-filter-translate systemctl restart logstash
3.配置Kibana可视化
将以下JSON文件导入到Kibana中,获取之前提到的可视化可疑网络活动的图表。
[ { "_id": "AWHWhw9vuiCz3jvXS1Sb", "_type": "visualization", "_source": { "title": "TOP 10 REMOTE PORTS", "visState": "{\"title\":\"TOP 10 REMOTE PORTS\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"type\":\"table\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"id_resp_port.keyword\",\"exclude\":\"0\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Remote Port\"}}],\"listeners\":{}}", "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", "description": "", "version": 1, "kibanaSavedObjectMeta": { "searchSourceJSON": "{\"index\":\"AWHWHTYfuiCz3jvXGox0\",\"query\":{\"match_all\":{}},\"filter\":[{\"meta\":{\"index\":\"AWHWHTYfuiCz3jvXGox0\",\"negate\":false,\"disabled\":false,\"alias\":null,\"type\":\"phrase\",\"key\":\"type.keyword\",\"value\":\"bro-conn_log\"},\"query\":{\"match\":{\"type.keyword\":{\"query\":\"bro-conn_log\",\"type\":\"phrase\"}}},\"$state\":{\"store\":\"appState\"}}]}" } } }, { "_id": "AWHXprt1uiCz3jvX3lHz", "_type": "visualization", "_source": { "title": "TOP 10 MALWARE DOMAINS", "visState": "{\"title\":\"TOP 10 MALWARE DOMAINS\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":false,\"totalFunc\":\"sum\",\"type\":\"table\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"seen.node.keyword\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Malware Domains\"}}],\"listeners\":{}}", "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", "description": "", "version": 1, "kibanaSavedObjectMeta": { "searchSourceJSON": "{\"index\":\"AWHWHTYfuiCz3jvXGox0\",\"query\":{\"match_all\":{}},\"filter\":[]}" } } }, { "_id": "AWHWRzB1uiCz3jvXLjB9", "_type": "visualization", "_source": { "title": "TOP PROTOCOLS", "visState": "{\"title\":\"TOP PROTOCOLS\",\"type\":\"pie\",\"params\":{\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":false,\"type\":\"pie\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"proto.keyword\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Protocol\"}}],\"listeners\":{}}", "uiStateJSON": "{}", "description": "", "version": 1, "kibanaSavedObjectMeta": { "searchSourceJSON": "{\"index\":\"AWHWHTYfuiCz3jvXGox0\",\"query\":{\"match_all\":{}},\"filter\":[{\"meta\":{\"index\":\"AWHWHTYfuiCz3jvXGox0\",\"negate\":false,\"disabled\":false,\"alias\":null,\"type\":\"phrase\",\"key\":\"type.keyword\",\"value\":\"bro-conn_log\"},\"query\":{\"match\":{\"type.keyword\":{\"query\":\"bro-conn_log\",\"type\":\"phrase\"}}},\"$state\":{\"store\":\"appState\"}}]}" } } }, { "_id": "AWHWq6wBuiCz3jvXXqYo", "_type": "visualization", "_source": { "title": "BRO LOGS", "visState": "{\"title\":\"BRO LOGS\",\"type\":\"table\",\"params\":{\"perPage\":3,\"showMeticsAtAllLevels\":false,\"showPartialRows\":false,\"showTotal\":true,\"sort\":{\"columnIndex\":null,\"direction\":null},\"totalFunc\":\"sum\",\"type\":\"table\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"# OF RECORDS\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"type.keyword\",\"include\":\"\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"LOG FILES\"}}],\"listeners\":{}}", "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", "description": "", "version": 1, "kibanaSavedObjectMeta": { "searchSourceJSON": "{\"index\":\"AWHWHTYfuiCz3jvXGox0\",\"query\":{\"match_all\":{}},\"filter\":[{\"meta\":{\"index\":\"AWHWHTYfuiCz3jvXGox0\",\"type\":\"phrases\",\"key\":\"type\",\"value\":\"bro-conn_log, bro-http_log, bro-intel_log\",\"params\":[\"bro-conn_log\",\"bro-http_log\",\"bro-intel_log\"],\"negate\":false,\"disabled\":false,\"alias\":null},\"query\":{\"bool\":{\"should\":[{\"match_phrase\":{\"type\":\"bro-conn_log\"}},{\"match_phrase\":{\"type\":\"bro-http_log\"}},{\"match_phrase\":{\"type\":\"bro-intel_log\"}}],\"minimum_should_match\":1}},\"$state\":{\"store\":\"appState\"}}]}" } } }, { "_id": "AWHWTDyouiCz3jvXMHmd", "_type": "visualization", "_source": { "title": "TOP 10 TALKERS", "visState": "{\"title\":\"TOP 10 TALKERS\",\"type\":\"histogram\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"},\"valueAxis\":\"ValueAxis-1\"},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":false,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":0},\"title\":{\"text\":\"\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"normal\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"type\":\"histogram\",\"orderBucketsBySum\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"id_orig_host.keyword\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"Host\"}}],\"listeners\":{}}", "uiStateJSON": "{}", "description": "", "version": 1, "kibanaSavedObjectMeta": { "searchSourceJSON": "{\"index\":\"AWHWHTYfuiCz3jvXGox0\",\"query\":{\"match_all\":{}},\"filter\":[{\"meta\":{\"index\":\"AWHWHTYfuiCz3jvXGox0\",\"negate\":false,\"disabled\":false,\"alias\":null,\"type\":\"phrase\",\"key\":\"type.keyword\",\"value\":\"bro-conn_log\"},\"query\":{\"match\":{\"type.keyword\":{\"query\":\"bro-conn_log\",\"type\":\"phrase\"}}},\"$state\":{\"store\":\"appState\"}}]}" } } }, { "_id": "AWHWRA0BuiCz3jvXLG2E", "_type": "visualization", "_source": { "title": "CONNECTIONS COUNT PER MINUTE", "visState": "{\"title\":\"CONNECTIONS COUNT PER MINUTE\",\"type\":\"line\",\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"show\":true,\"truncate\":0},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"@timestamp per minute\"},\"type\":\"category\"}],\"grid\":{\"categoryLines\":true,\"style\":{\"color\":\"#eee\"},\"valueAxis\":\"ValueAxis-1\"},\"legendPosition\":\"top\",\"seriesParams\":[{\"show\":true,\"mode\":\"normal\",\"type\":\"line\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"data\":{\"id\":\"3\",\"label\":\"Count\"},\"valueAxis\":\"ValueAxis-1\"}],\"times\":[],\"type\":\"line\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"aggs\":[{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"@timestamp\",\"interval\":\"m\",\"customInterval\":\"2h\",\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}}],\"listeners\":{}}", "uiStateJSON": "{}", "description": "", "version": 1, "kibanaSavedObjectMeta": { "searchSourceJSON": "{\"index\":\"AWHWHTYfuiCz3jvXGox0\",\"query\":{\"match_all\":{}},\"filter\":[{\"meta\":{\"index\":\"AWHWHTYfuiCz3jvXGox0\",\"negate\":false,\"disabled\":false,\"alias\":null,\"type\":\"phrase\",\"key\":\"type.keyword\",\"value\":\"bro-conn_log\"},\"query\":{\"match\":{\"type.keyword\":{\"query\":\"bro-conn_log\",\"type\":\"phrase\"}}},\"$state\":{\"store\":\"appState\"}}]}" } } }, { "_id": "AWHWefVTuiCz3jvXRbLT", "_type": "visualization", "_source": { "title": "TOP 10 HTTP REQUESTS", "visState": "{\"title\":\"TOP 10 HTTP REQUESTS\",\"type\":\"histogram\",\"params\":{\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"},\"valueAxis\":\"ValueAxis-1\"},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":false,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":0,\"filter\":false},\"title\":{\"text\":\"\"}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"normal\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"type\":\"histogram\",\"orderBucketsBySum\":false},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"referrer.keyword\",\"exclude\":\"-\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"customLabel\":\"HTTP Host\"}}],\"listeners\":{}}", "uiStateJSON": "{}", "description": "", "version": 1, "kibanaSavedObjectMeta": { "searchSourceJSON": "{\"index\":\"AWHWHTYfuiCz3jvXGox0\",\"query\":{\"match_all\":{}},\"filter\":[{\"meta\":{\"index\":\"AWHWHTYfuiCz3jvXGox0\",\"negate\":false,\"disabled\":false,\"alias\":null,\"type\":\"phrase\",\"key\":\"type.keyword\",\"value\":\"bro-http_log\"},\"query\":{\"match\":{\"type.keyword\":{\"query\":\"bro-http_log\",\"type\":\"phrase\"}}},\"$state\":{\"store\":\"appState\"}}]}" } } } ]
4. 配置Kibana仪表板
[ { "_id": "AWHXaEbeuiCz3jvXvitY", "_type": "dashboard", "_source": { "title": "Statistics Dashboard", "hits": 0, "description": "", "panelsJSON": "[{\"col\":1,\"id\":\"AWHWRA0BuiCz3jvXLG2E\",\"panelIndex\":1,\"row\":1,\"size_x\":12,\"size_y\":3,\"type\":\"visualization\"},{\"col\":1,\"id\":\"AWHWRzB1uiCz3jvXLjB9\",\"panelIndex\":2,\"row\":4,\"size_x\":4,\"size_y\":3,\"type\":\"visualization\"},{\"col\":5,\"id\":\"AWHWTDyouiCz3jvXMHmd\",\"panelIndex\":3,\"row\":4,\"size_x\":4,\"size_y\":3,\"type\":\"visualization\"},{\"col\":9,\"id\":\"AWHWefVTuiCz3jvXRbLT\",\"panelIndex\":4,\"row\":4,\"size_x\":4,\"size_y\":3,\"type\":\"visualization\"},{\"col\":1,\"id\":\"AWHWhw9vuiCz3jvXS1Sb\",\"panelIndex\":5,\"row\":7,\"size_x\":4,\"size_y\":5,\"type\":\"visualization\"},{\"col\":5,\"id\":\"AWHWq6wBuiCz3jvXXqYo\",\"panelIndex\":6,\"row\":7,\"size_x\":4,\"size_y\":5,\"type\":\"visualization\"},{\"col\":9,\"id\":\"AWHXprt1uiCz3jvX3lHz\",\"panelIndex\":7,\"row\":7,\"size_x\":4,\"size_y\":5,\"type\":\"visualization\"}]", "optionsJSON": "{\"darkTheme\":false}", "uiStateJSON": "{\"P-5\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"P-6\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"P-7\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}}", "version": 1, "timeRestore": false, "kibanaSavedObjectMeta": { "searchSourceJSON": "{\"filter\":[{\"query\":{\"match_all\":{}}}],\"highlightAll\":true,\"version\":true}" } } } ]
万事俱备,开始监控网络吧!
九、总结
本文描述了使用开源工具分析网络活动的方法,特别是通过集成BRO IDS和Intel Critical Stack。
这种方法对于检测受感染的计算机是有效的,并且除了劳动力成本之外不需要小企业的其他投入。
此外,还提供了关于如何配置Bro和Intel Critical Stack进行网络监控和数据收集的建议。最后,解释了如何使用ELK Stack来显示数据和解释图表。
参考
https://en.wikipedia.org/wiki/Intrusion_detection_system