使用 Bro IDS 和 Intel Critical Stack 分析網路活動
愈來愈多的網路攻擊迫使企業將網路活動控制作為其安全策略的一部分。
入侵檢測系統(Intrusion Detection Systems,IDS)被設計用於幫助企業保護網路基礎設施。但是一款商業化 IDS 通常價值不菲,對於一些小企業來說這可能是一筆相當大的財務負擔。
幸運的是,還有一些開源的 IDS 可供使用。它們提供的可修改外掛可用來動態掃描網路和檢測來自網路的入侵。
本文會向大家展示一份我們使用 Bro IDS 和 Intel Critical Stack 分析網路活動的研究報告,從結果中將可以看到這些系統在實時檢測網路入侵方面表現得相當不錯。
目錄:
研究目標
研究方法
軟體概覽
工作流測試
資料視覺化
清空資料庫
在真實網路中部署監控系統
安裝與配置元件指南
總結
參考
研究目標
本次研究的目標為使用開源工具搭建一個高效的網路入侵分析環境。
我們選擇了 Bro IDS 作為監測工具,它可以收集一個企業內部所有的網路活動資訊並生成大量的日誌記錄,不過這些資料如果不經過分離或者視覺化,系統管理員是很難進行分析的。因此,為了方便進一步的網路入侵分析,我們需要定義出哪些日誌所對應的網路活動是可疑的,以及如何將這些資料視覺化為表格形式。
研究方法
在研究中,我們希望用最少的元件搭建一套監控系統。首先測試環境中執行該系統獲得結果,然後對這些結果進行分析,最後對在真實網路環境中的部署提供參考。
監控系統包含以下部分:
產生網路活動的監控物件
網路入侵檢測系統
分析並視覺化資料的系統
支撐以上操作的作業系統
軟體概覽
監測系統實際所用軟體如下:
入侵檢測系統:Bro Network Security Monitor](https://www.bro.org/) 和 {Intel Critical Stack。
資料視覺化:ELK Stack,其中包含了 Elasticsearch、Logstash 和 Kibana。
作業系統:Ubuntu 16.04 虛擬機器,配置為閘道器。
工作流測試
我們通過以下方式對監控系統進行測試:
一個客戶端向網際網路傳送請求,這樣目標就產生了網路活動。
Bro 使用 tcpdump 分析 enp0s8(eth1) 介面的網路情況並利用外掛將記錄儲存到日誌。
Elasticsearch 使用 Logstash 分析 Bro 日誌並將它們收集到本地資料庫中。
Kibana 從資料庫中提取資料並建立檢視。
資料視覺化
為了將網路資料視覺化為便於分析網路可疑活動的形式,我們使用了 Kibana。
我們將資料視覺化為以下圖表的形式:
The connections count per minute chart 展示了每分鐘的連線數。非正常活動的一個標誌是在非工作時段的連線數很多。
The top protocols chart 展示了網路上流量的型別和數量。
The top 10 talkers chart 展示了最活躍的主機,這些很可能是受感染主機。
The top 10 HTTP requests chart 展示了未經加密的請求,這些網站可能被惡意軟體所感染。
The top 10 remote ports chart 展示了請求數最多的10個遠端埠。如果某些埠每分鐘的連線數和請求數很多的話,很可能就是可疑的活動。
Bro log files 展示了 Bro 檔案中的記錄數目和 Bro IDS 的總體狀態。
The top 10 malware domains chart 包含了 Intel Critical Stack 提供的來自惡意軟體資料庫的提要資料。
清空資料庫
前文提到過,在正常操作過程中 Bro 會產生大量的日誌檔案。如果你的資料庫儲存空間很有限,你可以選擇在一個特定時間段清空資料庫。為了刪除不必要的資料,我們為 Logstash 使用了 Curator,並在 Crontab 中新增了一個日常任務來刪除舊的 ELK 資料。
關於哪個 Curator 選擇要清空的資料,請看下面 actionfile.yml 檔案的內容。
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:
在真實網路環境中部署該系統
經過分析實驗室環境下的測試結果,我們總結出在一個真實網路中部署該系統需要以下條件:
A switch with port mirroring
A server with 32+ GB RAM and 6–10 TB HDD
需要注意的是,所需的系統配置取決於網路服務提供商的頻寬。如果你有好幾個 1 Gbps 的通道,那麼你就得安裝高效能的網路裝置了。
安裝與配置指南
下面介紹如何安裝監控系統所需的元件並進行配置。
安裝 Bro IDS
配置虛擬機器
我們的研究中使用的虛擬機器有兩塊網路介面卡:第一塊用於廣域網連線,第二塊用於區域網連線。
注意,以下所有命令均需要 root 許可權。
首先安裝 DHCP 伺服器:
apt-get install isc-dhcp-server
然後進行配置。新增以下內容到 /etc/default/isc-dhcp-server 檔案中
INTERFACES="enp0s8"
開啟 /etc/sysctl.conf 檔案註釋掉
#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,這是為了在機器重啟後恢復 IP 表
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
在 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
WatchDog for Bro IDS
WatchDog 會在 Bro 崩潰之後的一段特定時間後自動啟動 Bro
crontab -e
# add: */5 * * * * /nsm/bro/bin/broctl cron
Intel Critical Stack
為了將 Intel Critical Stack 新增到 Bro IDS,你需要訪問 https://intel.criticalstack.com/,建立 sensor,訂閱 feeds,然後在安裝了 Bro IDS 的虛擬機器上面執行以下命令
curl https://packagecloud.io/install/repositories/criticalstack/critical-stack-intel/script.deb.sh | sudo bash
使用以下命令配置 sensor
apt-get install critical-stack-intel
critical-stack-intel api
為了接收 feeds 需要檢查並安裝更新
broctl check
broctl install
broctl restart
安裝 ELK
apt-get update
安裝 Java Development Kit
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 檔案中的路徑改為 log 檔案所在路徑。
然後為 Logstash 安裝 Filter Translate 外掛
cd /usr/share/logstash/bin/
logstash-plugin install logstash-filter-translate
systemctl restart logstash
配置 Kibana 視覺化
將以下 JSON (JavaScript Object Notation) 檔案匯入 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\"}}]}"
}
}
}
]
配置 Kibana 皮膚
下面的 JSON 檔案描述了圖表是以何種順序顯示在皮膚上的。
[
{
"_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 和 Critical Stack Agent 來進行網路監控和資料收集的指南。最後我們解釋瞭如何使用 ELK Stack 來視覺化資料和生成圖表。
參考
https://en.wikipedia.org/wiki/Intrusion_detection_system
https://www.bro.org/
https://intel.criticalstack.com/
https://www.elastic.co/
示例下載:
visualizations.zip
dashboard.zip
原文連結:[翻譯]使用 Bro IDS 和 Intel Critical Stack 分析網路活動
本文由看雪翻譯小組 hesir 編譯,來源Dev's blog
轉載請註明來自看雪論壇
相關文章
- 網路分析利器:在 Ubuntu 16.04 上安裝 Bro2023-10-29Ubuntu
- APT30-網路間諜活動分析2020-08-19APT
- 使用Java和Elastic Stack進行日誌分析2024-07-20JavaAST
- 【深度分析】烏克蘭戰爭背後的網路攻擊和情報活動2022-03-04
- 免費企業網路入侵檢測工具(IDS)2017-08-28
- Intel:網際網路一分鐘2012-05-03Intel
- [微博活動]《Wireshark網路分析就這麼簡單》轉發贈書2014-12-01
- 網際網路CPU想挑戰Intel (轉)2008-05-19Intel
- Vector和Stack原始碼分析/List集合的總結2016-11-21原始碼
- 活動效果分析1——活動流程2020-02-18
- 網路空間中的秘密行動、Say活動和情報競賽2022-09-29
- 網路安全周活動,走進某地海關2020-09-23
- 威脅情報:網路犯罪分子利用IPFS進行網路釣魚和惡意軟體活動2022-11-16
- 遊戲運營活動效果分析(六):新人直升活動分析2020-04-16遊戲
- 4種Kafka網路中斷和網路分割槽場景分析2022-07-08Kafka
- 網路安全公開資料集Maple-IDS,惡意流量檢測資料集開放使用!2024-08-31
- Proxyman Premium for Mac(網路除錯和分析工具)2023-09-19REMMac除錯
- GlobalWebIndex:東南亞使用者社交網路分析2019-09-23WebIndex
- Goalng使用ping命令檢測網路是否連通,分析網路故障2019-09-19Go
- 如何理解和使用膠囊網路2019-01-18
- 【資料集】Maple-IDS——網路安全惡意流量檢測資料集2024-07-15
- 遊戲運營活動效果分析(一):活動流程2020-03-23遊戲
- 最佳的七十五個網路分析和安全工具2017-11-07
- java基礎:Vector/Stack — 原始碼分析2019-01-07Java原始碼
- Kantar:2020上半年印刷和網路促銷活動都有所下降2020-09-24
- BI Intelligence:美國社交網路使用者報告 女性更青睞Facebook2015-02-07Intel
- Heap和Stack的區別2007-03-07
- 最常見網路和使用者體驗問題的根本原因分析2021-03-30
- 網路丟包分析2018-10-15
- 乙太網網路分析儀2022-11-16
- 一張網路卡:同時使用千兆和萬兆網路2020-04-28
- CS後門原始碼特徵分析與IDS入侵檢測2024-06-13原始碼特徵
- 網路安全周活動,走進某地海關係列二2020-09-24
- 使用 Elastic Stack 來監控和調優 Golang 應用程式2017-03-05ASTGolang
- 使用JavaScript和網路資訊API進行自適應網路服務2018-10-09JavaScriptAPI
- 加速大資料分析和機器學習- Ziya Ma ( Intel Corp )2016-07-26大資料機器學習Intel
- [譯] 基於 Python 的圖論和網路分析2019-03-19Python圖論
- 使用tcpdump+wireshark抓包分析網路資料包2018-12-16TCP