溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何使用Elasticsearch與TheHive構(gòu)建開源安全應(yīng)急響應(yīng)平臺

發(fā)布時間:2021-12-10 14:42:20 來源:億速云 閱讀:378 作者:小新 欄目:網(wǎng)絡(luò)安全

這篇文章主要介紹了如何使用Elasticsearch與TheHive構(gòu)建開源安全應(yīng)急響應(yīng)平臺,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

概述

通過開源軟件可以構(gòu)建一個安全應(yīng)急響應(yīng)平臺,該平臺可以進行日志整合、告警生成、IoC 豐富與事件管理。

如何使用Elasticsearch與TheHive構(gòu)建開源安全應(yīng)急響應(yīng)平臺

在上面的流程圖中,作為 HIDS 的 Wazuh 將數(shù)據(jù)發(fā)送回 Wazuh Manager 與 Elasticsearch。ElastAlert 觀測到新事件并在 TheHive 中相應(yīng)生成告警。然后通過 Cortex 與 MISP 查詢額外信息豐富該事件,之后自動關(guān)閉該事件或提交給分析師。

請注意,系統(tǒng)中的任何端點服務(wù)或者可以生成日志傳送給 Elasticsearch 的 Agent 都可以被替代。該套系統(tǒng)的好處在于絕大多數(shù)的組件都可以替換。

Wazuh

Wazuh 是一個開源安全監(jiān)控解決方案,用于收集、分析主機安全數(shù)據(jù)。Wazuh 是 OSSEC 項目的分支。Wazuh 組件與 Elasticsearch 和 Kibana 的整合度很高,可以用來執(zhí)行許多與安全相關(guān)的任務(wù),如日志分析、Rootkit 檢測、監(jiān)聽端口檢測、文件完整性檢測等。

Elasticsearch

Elasticsearch 將充當(dāng)整個系統(tǒng)的日志存儲庫。Elasticsearch 非常強大,具備很多功能。常與 Logstash(日志收集)和 Kibana(可視化)結(jié)合使用。Elasticsearch 為所有類型的數(shù)據(jù)存儲都提供了一個強大的平臺。

ElastAlert

ElastAlert 是由 Yelp 發(fā)起的項目,為 Elasticsearch 提供告警機制。ElastAlert 通過 REST API 查詢 Elasticsearch 并有多個輸出來匹配告警。

TheHive

TheHive 是一個可擴展的、開源、免費安全應(yīng)急響應(yīng)平臺,旨在讓任何安全從業(yè)人員能夠輕松地處理安全事件,并快速地采取行動。本質(zhì)上講 TheHive 是一個告警管理平臺,用于管理全部事件告警。

Cortex

Cortex 與 TheHive 是一個團隊開發(fā)的產(chǎn)品。Cortex 使用分析器獲取日志中有關(guān)指標(biāo)信息的其他數(shù)據(jù)。允許在第三方服務(wù)中查詢 IP、URL 與文件哈希等指標(biāo),并將第三方返回的結(jié)果作為附加信息豐富告警事件。

MISP

MISP 是 CIRCL 維護的開源威脅情報共享平臺,其 Feed 可以是某個組織提供的付費訂閱,也可以是社區(qū)維護的開源訂閱,這也是數(shù)據(jù)豐富的主要來源。

Elasticsearch 安裝

首先部署 Elasticsearch 集群,系統(tǒng)使用 Ubuntu 16.04(文章使用虛擬機安裝,DHCP 為該虛擬機預(yù)留了地址,確保其始終使用相同的 IP 地址)。

作者提供了 Vagrantfile 幫助配置構(gòu)建 Elasticsearch 虛擬機。

ELK 安裝

注意:TheHive 正在進行一些后端重構(gòu),這會導(dǎo)致設(shè)置復(fù)雜化。TheHive 背后的開發(fā)團隊認為 Elasticsearch 已經(jīng)不再滿足它們的需求了,4.0 版本后將在后端使用 GraphDB。當(dāng)前穩(wěn)定版本 3.2.1 版本以及我們在此使用的 beta 版本 3.3.0 都是用 Elasticsearch 5.6 作為后端。因此,在虛擬機中需要部署 Elasticsearch、Logstash 和 Kibana 6.6.1 作為日志存儲倉庫,另一個 Elasticsearch 5.6.15 部署在 TheHive 虛擬機中作為后端。

雖然我總結(jié)了安裝步驟,但是如果需要進一步了解細節(jié)可以查看安裝指南。

# 首先安裝 Java,選擇使用 OpenJDK 安裝
sudo apt-get install openjdk-8-jre
# 添加密鑰與倉庫
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
sudo apt-get update
# 為了防止更新破壞 SearchGuard,選擇安裝固定版本的 Elasticsearch
apt-cache policy elasticsearch
sudo apt-get install elasticsearch=6.6.1 logstash=1:6.6.1-1 kibana=6.6.1
# 阻止軟件更新
sudo apt-mark hold elasticsearch logstash kibana
# 將 Elasticsearch、Logstash 和 Kibana 設(shè)置為自啟動
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
sudo systemctl enable logstash.service
sudo systemctl enable kibana.service
# 未來確定好兼容性,可以進行升級
sudo apt-mark unhold elasticsearch

優(yōu)化

默認情況下,Elasticsearch 依賴的 Java 堆的大小為 1 GB??梢酝ㄟ^修改 /etc/elasticsearch/jvm.options 中的 Xms1g 與 Xmx1g 參數(shù),將其增加到總內(nèi)存的 50-80%。我的虛擬機只有 4GB 內(nèi)存,所以我保留了默認值。

編輯配置文件 /etc/elasticsearch/elasticsearch.yml

取消 cluster.name 和 node.name 的注釋,并設(shè)置為不同的名字

設(shè)置 bootstrap.memory_lock 為 True

設(shè)置 network.host 為 0.0.0.0

設(shè)置 discovery.type 為 single-node

編輯服務(wù) sudo systemctl edit elasticsearch.service

[Service]
LimitMEMLOCK=infinity

然后繼續(xù)執(zhí)行:

# 重新加載
sudo systemctl daemon-reload

# 重新啟動
sudo systemctl start elasticsearch.service

# 檢查確保 Elasticsearch 可用
curl http://localhost:9200/_cat/health

應(yīng)該可以看到類似的響應(yīng):

1551641374 19:29:34 demo-cluster green 1 1 0 0 0 0 0 0 - 100.0%

Kibana

編輯 Kibana 的配置文件:sudo nano /etc/kibana/kibana.yml

設(shè)置 Kibana 來響應(yīng)外部接口:server.host: 0.0.0.0

啟動服務(wù):sudo systemctl start kibana.service

打開瀏覽器:http://<IP-OF-VM>:5601 應(yīng)該可以看到 Kibana 控制臺

Logstash

按照如下命令執(zhí)行:

sudo apt install logstash
sudo systemctl enable logstash.service
sudo systemctl daemon-reload

注意:此時 Logstash 沒有運行。

Wazuh 安裝

這部分將講述如何安裝 Wazuh Manager,并將 Wazuh 與 Elasticsearch 進行集成。

使用 Wazuh 的 Agent 及其規(guī)則集來識別端點的行為并生成告警。這些告警從 Wazuh 的 Agent 轉(zhuǎn)發(fā)到 Wazuh Manager 寫入 /var/ossec/logs/alerts/alerts.json。Filebeat 的服務(wù)不斷監(jiān)視該文件的更改,然后轉(zhuǎn)發(fā)給 Elasticsearch。

Wazuh Manager

# 為 Wazuh 倉庫安裝 GPG 密鑰
curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | apt-key add -

# 添加倉庫
echo "deb https://packages.wazuh.com/3.x/apt/ stable main" | tee -a /etc/apt/sources.list.d/wazuh.list

# 升級
sudo apt update

# 安裝
sudo apt install wazuh-manager

詳情請參見官方文檔

Wazuh API

Wazuh API 是連接 Kibana 所必需的。Wazuh API 的默認賬戶密碼是 foo/bar,如果想要變更可以查閱文檔。

# 安裝 NodeJS
sudo curl -sL https://deb.nodesource.com/setup_8.x | bash -
sudo apt install nodejs

# 安裝 Wazuh API
sudo apt install wazuh-api

# 取消自動更新
sudo apt-mark hold wazuh-manager
sudo apt-mark hold wazuh-api

Filebeat

curl -s https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -  
sudo echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | tee /etc/apt/sources.list.d/elastic-6.x.list  
sudo apt update  
sudo apt install filebeat=6.6.1

首先安裝 Filebeat:

# 取消自動更新
sudo apt-mark hold filebeat

# 下載 Filebeat 配置文件
sudo curl -so /etc/filebeat/filebeat.yml https://raw.githubusercontent.com/wazuh/wazuh/3.8/extensions/filebeat/filebeat.yml

# 編輯配置文件
sudo nano /etc/filebeat/filebeat.yml

在末尾的 YOUR_ELASTIC_SERVER_IP 部分替換為 Elasticsearch 6.6.1 服務(wù)器的真實 IP。

啟動 Filebeat 服務(wù):

sudo systemctl daemon-reload
sudo systemctl enable filebeat.service
sudo systemctl start filebeat.service

加載 Wazuh 模版

為 Elasticsearch 加載 Wazuh 模板。在 Elasticsearch 主機上運行此命令:curl https://raw.githubusercontent.com/wazuh/wazuh/3.8/extensions/elasticsearch/wazuh-elastic6-template-alerts.json | curl -X PUT "http://localhost:9200/_template/wazuh" -H 'Content-Type: application/json' -d @-

加載 Logstash 配置

下載用于 Wazuh 遠程安裝的 Logstash 配置文件,在 Elasticsearch 主機上運行此命令:curl -so /etc/logstash/conf.d/01-wazuh.conf https://raw.githubusercontent.com/wazuh/wazuh/3.8/extensions/logstash/01-wazuh-remote.conf

確保使用新配置文件運行 Logstash 服務(wù):sudo systemctl restart logstash.service

安裝 Kibana

首先嘗試運行 Wazuh 文檔中提供的命令:sudo -u kibana NODE_OPTIONS="--max-old-space-size=3072" /usr/share/kibana/bin/kibana-plugin install https://packages.wazuh.com/wazuhapp/wazuhapp-3.8.2_6.6.1.zip

如果發(fā)現(xiàn)錯誤:

Plugin installation was unsuccessful due to error "Command failed: /usr/share/kibana/node/bin/node /usr/share/kibana/src/cli --env.name=production --optimize.useBundleCache=false --server.autoListen=false --plugins.initialize=false
Browserslist: caniuse-lite is outdated. Please run next command `npm update caniuse-lite browserslist`

之所以運行命令 npm update caniuse-lite browserslist 產(chǎn)生錯誤,是因為本機尚未安裝 Node。

卸載了插件并在沒有 NODE 選項的情況下運行命令:sudo -u kibana /usr/share/kibana/bin/kibana-plugin install https://packages.wazuh.com/wazuhapp/wazuhapp-3.8.2_6.6.1.zip。此時安裝將會成功,然后重新啟動。

安裝 Wazuh Agent

根據(jù)你自己的系統(tǒng)情況按照說明進行安裝,本文在 Linux 上進行安裝。

安裝后,需要在 ossec.conf 中編輯 Wazuh Manager 的 IP 地址。Debian 的 Agent 安裝在 /var/ossec,編輯 sudo nano /var/ossec/etc/ossec.conf 改變 MANAGER_IP 即可。

Agent 注冊

我們使用簡單的,不安全的方法注冊 Agent:

在 Manager 上,運行以下命令啟動注冊服務(wù):/var/ossec/bin/ossec-authd

在 Agent 上,使用 Manager 的 IP 地址運行 agent-auth 程序

對于 Linux 來說:/var/ossec/bin/agent-auth -m <MANAGER_IP_ADDRESS>

對于 Windows 來說:C:\Program Files (x86)\ossec-agent\agent-auth.exe -m <MANAGER_IP_ADDRESS>

應(yīng)該可以看到如下輸出:

INFO: No authentication password provided.
INFO: Connected to xxx.xxx.xxx.xxx:1515
INFO: Using agent name as: xxxxxxx
INFO: Send request to manager. Waiting for reply.
INFO: Received response with agent key
INFO: Valid key created. Finished.
INFO: Connection closed.

Wazuh 儀表盤

此時連接到 Kibana,就會在左側(cè)工具欄中發(fā)現(xiàn) Wazuh 的圖標(biāo),點擊此按鈕跳轉(zhuǎn)到配置 API 的頁面:

Username: foo
Password: bar
Server: http://<WAZUH_Server_IP> 
API Port: 55000

保存 API 配置,然后點擊跳轉(zhuǎn)到 Overview 頁面。點擊頁面頂端的 Agent 即可查看 ID 為 001 的 Agent,即之前注冊好的主機。它顯示為 Active 狀態(tài)即視為正常,否則可能需要在 Agent 上確保更改 MANAGER_IP 成功并重啟 Agent 的服務(wù)。

如何使用Elasticsearch與TheHive構(gòu)建開源安全應(yīng)急響應(yīng)平臺

測試

在 Kibana 中,深入到 Management > Elasticsearch > Index Management 應(yīng)該可以看到名為 wazuh-monitoring-3.x 的索引。然后轉(zhuǎn)到 Management > Kibana > Index Patterns,如果還沒有定義默認索引模式,點擊 wazuh-monitoring,然后點擊右上角的星號將其設(shè)為默認值。

點擊 Discover 查看已創(chuàng)建的事件,可能暫時還沒有。返回 Elasticsearch Index Management 頁面,等待名為 wazuh-alerts 的索引出現(xiàn)。我們試圖通過生成告警讓其出現(xiàn)。

作為測試,轉(zhuǎn)到另一個主機并嘗試使用虛假的用戶通過 SSH 登錄主機:ssh fakeuser@<wazuh_agent_IP>。這將會觸發(fā)主機的 auth.log 出現(xiàn)無效的登錄嘗試,這將被 Wazuh Agent 獲取,在新創(chuàng)建的 wazuh-alerts 索引中生成新條目?,F(xiàn)在,我們就得到了一個存儲告警的倉庫。

MISP 部署

部署 MISP 可以允許 Cortex 或者任何能夠發(fā)起簡單 REST 請求的程序查詢威脅指標(biāo),如 IP 地址、URL 與文件哈希。MISP 可以自主添加訂閱與查詢的源,返回的信息取決于訂閱源提供的數(shù)據(jù),而且訂閱源之間的差異很大。有些只是提供了數(shù)據(jù)列表,有些提供了大量額外的信息。

將 MISP 通過 Docker 進行部署相比通過源碼安裝容易得多,哈佛安全小組提供了一個示例。請注意:如果將其部署到生產(chǎn)環(huán)境中,應(yīng)該使用 build.sh,這樣就可以在構(gòu)建之前更改默認的 MySQL 密碼與 MISP_FQDN。

初始化 MISP 數(shù)據(jù)庫:docker run -it --rm -v /docker/misp-db:/var/lib/mysql harvarditsecurity/misp /init-db。這可以啟動容器,運行腳本使用必要的數(shù)據(jù)庫文件填充 misp-db 目錄,最后刪除容器。如果查看 misp-db 目錄,可以發(fā)現(xiàn)已經(jīng)新增了文件。

生成 SSL 證書

如果不生成 SSL 證書,Cortex 就不能請求 MISP,按照如下命令生成證書:sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /docker/certs/misp.key -out /docker/certs/misp.crt,如果沒有特殊要求,可以接受所有默認選項。

運行容器

docker run -it -d \
    -p 443:443 \
    -p 80:80 \
    -p 3306:3306 \
    -v /docker/certs:/etc/ssl/private \
    -v /docker/misp-db:/var/lib/mysql \
    harvarditsecurity/misp

打開瀏覽器訪問 https://localhost,使用 admin@admin.testadmin 作為用戶名與密碼。系統(tǒng)會要求更改密碼,新的密碼至少包含 12 個字符,其中包含大寫字母和特殊字符。

配置 MISP

在 Administration > Server Settings 與 Maintenance > MISP Settings 中設(shè)置 MISP.live 為 TRUE、MISP.disable_emailing 為 TRUE。

在 Sync Actions > List Feeds 的列表中選擇訂閱源進行訂閱。我選了 malwaredomainlist,選中復(fù)選框然后點擊頂部的 Enable Feed 就可以了。在列表中可以看到該訂閱源,點擊向下箭頭就可以拉取所有事件,可以在 Administration > Jobs 處查看正在執(zhí)行的任務(wù)。

點擊放大鏡圖標(biāo),可以顯示 IP 的列表,復(fù)制其中任意一個,之后會用到。

如何使用Elasticsearch與TheHive構(gòu)建開源安全應(yīng)急響應(yīng)平臺

Postman

我們使用 Postman 來測試 API,在 File > Settings 中將 SSL certificate verification 設(shè)為 OFF。

在 MISP 中,在 Administration > List Users 中拷貝用戶的身份密鑰。在 Postman 中設(shè)置 Header 中的三個字段:

Accept application/json
Contect-Type application/json
Authorization <API_Key>

將用戶的身份密鑰粘貼到 Authorization 字段中。

如何使用Elasticsearch與TheHive構(gòu)建開源安全應(yīng)急響應(yīng)平臺

在頂部將 REST 命令從 GET 改為 POST,API 設(shè)置為: https://localhost/attributes/restSearch。

換到 Body 選項卡,點擊 Raw 按鈕并粘貼以下 JSON,將值替換為之前復(fù)制的 IP 地址:

{
    "returnFormat": "json",
    "value": "8.8.8.8"
}

應(yīng)該會接收到以下響應(yīng):

{
    "response": {
        "Attribute": [
            {
                "id": "15",
                "event_id": "1",
                "object_id": "0",
                "object_relation": null,
                "category": "Network activity",
                "type": "ip-dst",
                "to_ids": false,
                "uuid": "5c8550db-5314-4538-a0d8-0146ac110002",
                "timestamp": "1552240859",
                "distribution": "0",
                "sharing_group_id": "0",
                "comment": "",
                "deleted": false,
                "disable_correlation": false,
                "value": "23.253.130.80",
                "Event": {
                    "org_id": "1",
                    "distribution": "0",
                    "id": "1",
                    "info": "malwaredomainlist feed",
                    "orgc_id": "1",
                    "uuid": "5c8550db-2d90-425f-9bc5-0146ac110002"
                }
            }
        ]
    }
}

此時,MISP 現(xiàn)在已經(jīng)可以響應(yīng)查詢請求,為 Cortex 的加入做好了準(zhǔn)備。返回訂閱列表可以添加更多訂閱源,在 Administration > Scheduled Tasks 中可以將 fetch_feeds 設(shè)置為 24 并點擊 Update All 就可以配置好定時拉取任務(wù)。

TheHive & Cortex

這篇文章部署的 TheHive 3.3.0 RC5 與 Cortex stable v2.1.2,而 TheHive 4.1 版本(預(yù)計在 2019 年第二季度發(fā)布)后將取消 Elasticsearch 作為后端,轉(zhuǎn)而使用 GraphDB。

注:后續(xù)使用 3.3.0 穩(wěn)定版安裝也可以正常使用。

安裝 TheHive & Elasticsearch 5.6

# 添加倉庫與密鑰
echo 'deb https://dl.bintray.com/thehive-project/debian-beta any main' | sudo tee -a /etc/apt/sources.list.d/thehive-project.list
echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
curl https://raw.githubusercontent.com/TheHive-Project/TheHive/master/PGP-PUBLIC-KEY | sudo apt-key add -

# 更新并安裝需要的 Java
sudo apt-get update
sudo apt-get install openjdk-8-jre

# 安裝 Elasticsearch 5.6.15,這是倉庫中最新的版本
sudo apt-get install elasticsearch

# 修改配置文件
sudo nano /etc/elasticsearch/elasticsearch.yml

cluster.name: hive
bootstrap.memory_lock: true
discovery.type: single-node

# 設(shè)置服務(wù)自啟動
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch

# 檢查響應(yīng)
curl http://localhost:9200

# 如果安裝成功繼續(xù)安裝 TheHive
sudo apt-get install thehive=3.3.0-0.1RC5

# 阻止版本更新
apt-mark hold elasticsearch thehive

# 編輯配置文件
sudo nano /etc/thehive/application.conf

# 取消注釋,并更改密碼
#play.http.secret.key

# 設(shè)置服務(wù)自啟動
sudo systemctl daemon-reload
sudo systemctl enable thehive
sudo systemctl start thehive

打開瀏覽器,查看網(wǎng)站:http://<TheHiveIP>:9000,應(yīng)該可以看到數(shù)據(jù)庫更新消息:

如何使用Elasticsearch與TheHive構(gòu)建開源安全應(yīng)急響應(yīng)平臺

點擊 Update Database,如果沒有看到上面的消息而是看到了登錄框,意味著與 Elasticsearch 的連接中斷了,請檢測日志 \var\log\thehive。

更新完成后,仍然有機會為管理員賬戶更改用戶名與密碼。還可以檢查 Elasticsearch 名為 the_hive_14 的索引:curl http://127.0.0.1:9200/_cat/indices?v

如果忘記了管理員的賬戶與密碼,請刪除此索引重新開始。

安裝 Cortex

注:安裝 Cortex 3.0.0-RC1 會遇到一些問題,安裝 Cortex 2.1.3 則不會遇到。

在 TheHive 主機上安裝 Cortex:

sudo apt-get install cortex=2.1.3-1
sudo apt-mark hold cortex

安裝 Cortex 有一些依賴需要先安裝:

sudo apt-get install -y --no-install-recommends python-pip python2.7-dev python3-pip python3-dev ssdeep libfuzzy-dev libfuzzy2 libimage-exiftool-perl libmagic1 build-essential git libssl-dev
sudo pip install -U pip setuptools && sudo pip3 install -U pip setuptools

安裝 Cortex Analyzer

從 GitHub 拉取源代碼,為每個 Analyzer 單獨安裝 requirements.txt 的依賴:

cd /etc/cortex
git clone https://github.com/TheHive-Project/Cortex-Analyzers

本文的下載位置在:/etc/cortex

# 更改文件夾權(quán)限
chown -R root:cortex Cortex-Analyzers

# 為所有 Analyzer 安裝依賴(兩行作為一條命令執(zhí)行)
for I in $(find Cortex-Analyzers -name 'requirements.txt'); do sudo -H pip2 install -r $I; done && \
for I in $(find Cortex-Analyzers -name 'requirements.txt'); do sudo -H pip3 install -r $I || true; done

安裝依賴不可避免地會出現(xiàn)一些錯誤,解決此類辦法的好方法是挑選要安裝哪些 Analyzer 防止依賴沖突。修改 Cortex 的配置文件 application.conf 指向 Cortex-Analyzers 目錄:sudo nano /etc/cortex/application.conf。取消注釋 #play.http.secret.key,并更改密碼。找到 ## ANALYZERS 的位置,將其改為 /etc/cortex/Cortex-Analyzers/analyzers。

啟動 Cortex:

sudo systemctl enable cortex
sudo systemctl start cortex

打開瀏覽器檢查安裝是否成功:http://<TheHiveIP>:9001。更新數(shù)據(jù)庫并創(chuàng)建管理員用戶登錄,就像安裝 TheHive 時做的那樣。

如何使用Elasticsearch與TheHive構(gòu)建開源安全應(yīng)急響應(yīng)平臺

Cortex 中規(guī)定必須在組織賬戶下登錄才能啟用、管理 Analyzer,否則只能創(chuàng)建組織與用戶。

點擊 +Add Organization 創(chuàng)建一個新組織,切換到 Users 標(biāo)簽頁點擊 +Add User 創(chuàng)建一個新用戶,并且將新用戶分配給創(chuàng)建的組織并分配 OrgAdmin 角色。保存后,點擊 New Password 為剛創(chuàng)建的用戶設(shè)置密碼,按回車鍵保存。然后注銷賬戶,用新用戶登錄。點擊頂部的 Organization 標(biāo)簽頁,點擊 Analyzers 子選項卡,而不是頂部藍色的 Analyzers 選項卡。如果 Cortex 配置正確,應(yīng)該可以看到 Analyzers,按照我的配置安裝了 113 個可用的 Analyzer。

可以啟用以下幾個 Analyzer,接受默認配置:

Abuse_Finder_2_0
CyberCrime-Tracker_1_0
Cyberprotect_ThreatScore_1_0
DShield_lookup_1_0
MISP_2_0
URLhaus_2_0
Urlscan_io_Search_0_1_0

除了 MISP 之外,這些都不需要 API 密鑰或者進行進一步的配置。 點擊 Users 子選項卡并創(chuàng)建一個新用戶和 TheHive 集成。該用戶應(yīng)該分配 read & analyze 角色,這次可以不用為其設(shè)置密碼,點擊 Create API Key 并且拷貝該密鑰。

點擊頁面頂端的 +New Analysis

不用管 TLP 與 PAP

更改數(shù)據(jù)類型為 IP

添加 8.8.8.8

選中你啟用的 Analyzer 旁邊的框

點擊開始

如何使用Elasticsearch與TheHive構(gòu)建開源安全應(yīng)急響應(yīng)平臺

修改 TheHive 的 application.conf 來指向 Cortex:sudo nano /etc/thehive/application.conf。滾動到底部,找到 #Cortex 部分,取消注釋 play.modules.enabled += connectors.cortex.CortexConnector

添加 API 密鑰與 URL:

play.modules.enabled += connectors.cortex.CortexConnector

cortex {
  "CORTEX-SERVER-ID" {
    url = "http://127.0.0.1:9001"
    key = "wrXichGSPy4xvjpWVdeQoNmoKn9Yxnsn"
  #  # HTTP client configuration (SSL and proxy)
  #  ws {}
  }
}

重啟服務(wù)器,兩個服務(wù)再次啟動的時候就可以使用了。在 TheHive 點擊 +New Case 測試 Cortex:

如何使用Elasticsearch與TheHive構(gòu)建開源安全應(yīng)急響應(yīng)平臺

給事件一個名稱與描述,然后打開這個事件,點擊 Observables 選項卡,點擊 +Add Observable 設(shè)置 Type = IP、Value = 1.1.1.1、Tag 為 test。只需要提供 tag 或者 description,不必二者都填。

如何使用Elasticsearch與TheHive構(gòu)建開源安全應(yīng)急響應(yīng)平臺

在 Observable 列表中點擊該 IP 地址,這將打開一個新選項卡,包含相關(guān)數(shù)據(jù),也可以在底部看到 Analyzer:

如何使用Elasticsearch與TheHive構(gòu)建開源安全應(yīng)急響應(yīng)平臺

點擊 Run All,如果返回 Cortex 將會看到 Analyzer 在 Job History 標(biāo)簽頁中運行?;氐?TheHive,現(xiàn)在 Analyzer 應(yīng)該有了最后分析的時間與日期。返回 Observables 選項卡并刷新頁面,應(yīng)該可以在 Observables 下看到一個標(biāo)簽列表:

如何使用Elasticsearch與TheHive構(gòu)建開源安全應(yīng)急響應(yīng)平臺

導(dǎo)入報告模版

在 https://dl.bintray.com/thehive-project/binary/report-templates.zip 下載報告模版包。使用管理員帳號登錄 TheHive,點擊 Admin > Report templates 選擇 Import templates,在其中選擇下載的包。

現(xiàn)在,在 Observables 中點擊最后分析時間時將會獲得包含分析結(jié)果的報告:

如何使用Elasticsearch與TheHive構(gòu)建開源安全應(yīng)急響應(yīng)平臺

啟用 MISP

在 MISP 的頁面上點擊 Administration > Add User:

給用戶分配一個電子郵件,cortex@admin.test

將用戶添加到 ORGNAME 組織

分配角色 user

取消底部所有復(fù)選框

拷貝用戶 API 密鑰

在 Cortex 的頁面上點擊 Organization > Analyzers,在搜索框中輸入 misp,然后啟用 MISP_2_0

為 MISP 服務(wù)器提供描述

URL = https://

key = AuthKey from MISP user you created

cert_check: False

現(xiàn)在回到 MISP 頁面,點擊 Sync Actions > List Feeds。找到其中一個訂閱源,然后點擊右側(cè)放大鏡,從列表中選擇一個 IP 并復(fù)制。

在 Cortex 中點擊 +New Analysis,添加 IP 的數(shù)據(jù)類型,然后粘貼復(fù)制的 IP 地址。選擇 MISP_2_0 的 Analyzer 運行。在 Job History 頁面點擊 View 將會看到復(fù)制的 IP 列表名與其他信息??梢栽?TheHive 中添加此 IP 為 Observables 進行測試?,F(xiàn)在已經(jīng)將 TheHive、MISP 與 Coretx 集成在了一起。

ElastAlert

最后一步是安裝 ElastAlert 從 Elasticsearch 中的事件中生成警報。ElastAlert 當(dāng)前版本要求 Python 2.7,本文安裝在了 Elasticsearch 主機上:

sudo apt install python-pip
pip install elastalert

安裝位置在:/home/username/.local/bin/elastalert,注:ElastAlert 也有 Docker 鏡像提供。

配置 ElastAlert

創(chuàng)建一個目錄來存儲配置和規(guī)則:mkdir -p ~/elastalert/rules??梢岳」_配置文件或者制作自己的配置文件,復(fù)制如下必要的設(shè)置,保存為 ~/elastalert/config.yaml

rules_folder: /home/username/elastalert/rules
run_every:
  minutes: 1
buffer_time:
  minutes: 15
es_host: x.x.x.x
es_port: 9200
use_ssl: False
writeback_index: elastalert_status
alert_time_limit:
  days: 2

運行 elastalert-create-index 在 Elasticsearch 中創(chuàng)建必要的索引??梢缘玫揭韵陆Y(jié)果:

Elastic Version:6
Mapping used for string:{'type': 'keyword'}
New index elastalert_status created
Done!

創(chuàng)建規(guī)則

在 TheHive 頁面中點擊 Admin > Users,創(chuàng)建一個名為 elastalert 的用戶,但不為其分配角色,并選中 elastalert。點擊 Create API Key 并拷貝 API 密鑰。TheHive 的管理指南指出:“為了更好地審計,一旦創(chuàng)建了用戶,就無法刪除該用戶,只能鎖定該賬戶”。

每條規(guī)則定義要執(zhí)行的查詢,觸發(fā)匹配的參數(shù)與每個匹配觸發(fā)的告警列表。本文中創(chuàng)建一個規(guī)則來識別失敗的 SSH 登錄,編輯規(guī)則文件 nano ~/elastalert/rules/failed_ssh_login.yaml

es_host: x.x.x.x
es_port: 9200
name: SSH Failed Login
type: frequency
index: wazuh-alerts-3.x-*
num_events: 2
timeframe:
    hours: 1
filter:
- term:
    rule.id: "5710"
alert: hivealerter
hive_connection:
  hive_host: http://x.x.x.x
  hive_port: 9000
  hive_apikey: <Paste API key for elastalert user here>

hive_alert_config:
  type: 'external'
  source: 'elastalert'
  description: '{rule[name]}'
  severity: 2
  tags: ['{rule[name]}', '{match[agent][ip]}', '{match[predecoder][program_name]}']
  tlp: 3
  status: 'New'
  follow: True

hive_observable_data_mapping:
    - ip: "{match[src_ip]}"

注意最后將 Observables 映射為 Types 的部分。盡管可以在標(biāo)簽字段使用嵌套的字段名({match[data][srcip]}),但對于 hive_observable_data_mapping 好像并不起作用。只能使用單個字段名('{match[srcip]}')。

我們需要修改 Logstash 主機上的 01-wazuh.conf 配置文件來解決這個問題。在 Logstash 主機上修改 01-wazuh.conf 文件 [data][srcip] 過濾器的部分,將 add_field => [ "@src_ip", "%{[data][srcip]}" ] 改為 add_field => [ "src_ip", "%{[data][srcip]}" ]。geoip 過濾器的部分,將 source => "@src_ip" 改為 source => "src_ip"。

現(xiàn)在日志中應(yīng)該已經(jīng)有了 src_ip 字段,可以通過 Kibana 進行驗證。在 Kibana 頁面中選擇 Management > Kibana > Index Patterns,選擇 wazuh-alerts 索引模式,點擊 Refresh 啟用新字段:

# 測試規(guī)則
elastalert-test-rule ~/elastalert/rules/failed_ssh_login.yaml

# 運行 ElastAlert
elastalert --verbose --config ~/elastalert/config.yaml

針對運行著 Wazuh Agent 的主機生成一些告警:連續(xù)運行三次以下命令:ssh invaliduser@serverip。

此時應(yīng)該可以看到 Kibana 中顯示了告警,ElastAlert 可以在下次運行時接收這些告警:

INFO:elastalert:Ran SSH Failed Login from 2019-03-31 18:21 UTC to 2019-04-02 15:01 UTC: 3 query hits (0 already seen), 1 matches, 1 alerts sent

在 TheHive 的 Alerts 下生成新告警:

如何使用Elasticsearch與TheHive構(gòu)建開源安全應(yīng)急響應(yīng)平臺

點擊右側(cè) Page 圖標(biāo)預(yù)覽告警,可以為其分配一個模版,然后導(dǎo)入它:

如何使用Elasticsearch與TheHive構(gòu)建開源安全應(yīng)急響應(yīng)平臺

這時已經(jīng)完成了全部任務(wù),Wazuh 生成的告警已經(jīng)能在 TheHive 中顯示為事件了。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何使用Elasticsearch與TheHive構(gòu)建開源安全應(yīng)急響應(yīng)平臺”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI