真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

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

我們擁有十余年網(wǎng)頁設(shè)計(jì)和網(wǎng)站建設(shè)經(jīng)驗(yàn),從網(wǎng)站策劃到網(wǎng)站制作,我們的網(wǎng)頁設(shè)計(jì)師為您提供的解決方案。為企業(yè)提供網(wǎng)站制作、做網(wǎng)站、微信開發(fā)、成都微信小程序、手機(jī)網(wǎng)站開發(fā)、成都h5網(wǎng)站建設(shè)、等業(yè)務(wù)。無論您有什么樣的網(wǎng)站設(shè)計(jì)或者設(shè)計(jì)方案要求,我們都將富于創(chuàng)造性的提供專業(yè)設(shè)計(jì)服務(wù)并滿足您的需求。

概述

通過開源軟件可以構(gòu)建一個(gè)安全應(yīng)急響應(yīng)平臺,該平臺可以進(jìn)行日志整合、告警生成、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)中的任何端點(diǎn)服務(wù)或者可以生成日志傳送給 Elasticsearch 的 Agent 都可以被替代。該套系統(tǒng)的好處在于絕大多數(shù)的組件都可以替換。

Wazuh

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

Elasticsearch

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

ElastAlert

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

TheHive

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

Cortex

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

MISP

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

Elasticsearch 安裝

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

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

ELK 安裝

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

雖然我總結(jié)了安裝步驟,但是如果需要進(jìn)一步了解細(xì)節(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
# 未來確定好兼容性,可以進(jìn)行升級
sudo apt-mark unhold elasticsearch

優(yōu)化

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

編輯配置文件 /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://:5601 應(yīng)該可以看到 Kibana 控制臺

Logstash

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

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

注意:此時(shí) Logstash 沒有運(yùn)行。

Wazuh 安裝

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

使用 Wazuh 的 Agent 及其規(guī)則集來識別端點(diǎn)的行為并生成告警。這些告警從 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 的默認(rèn)賬戶密碼是 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ù)器的真實(shí) IP。

啟動 Filebeat 服務(wù):

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

加載 Wazuh 模版

為 Elasticsearch 加載 Wazuh 模板。在 Elasticsearch 主機(jī)上運(yùn)行此命令: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 遠(yuǎn)程安裝的 Logstash 配置文件,在 Elasticsearch 主機(jī)上運(yùn)行此命令:curl -so /etc/logstash/conf.d/01-wazuh.conf https://raw.githubusercontent.com/wazuh/wazuh/3.8/extensions/logstash/01-wazuh-remote.conf

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

安裝 Kibana

首先嘗試運(yùn)行 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)錯(cuò)誤:

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`

之所以運(yùn)行命令 npm update caniuse-lite browserslist 產(chǎn)生錯(cuò)誤,是因?yàn)楸緳C(jī)尚未安裝 Node。

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

安裝 Wazuh Agent

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

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

Agent 注冊

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

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

在 Agent 上,使用 Manager 的 IP 地址運(yùn)行 agent-auth 程序

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

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

應(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 儀表盤

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

Username: foo
Password: bar
Server: http:// 
API Port: 55000

保存 API 配置,然后點(diǎn)擊跳轉(zhuǎn)到 Overview 頁面。點(diǎn)擊頁面頂端的 Agent 即可查看 ID 為 001 的 Agent,即之前注冊好的主機(jī)。它顯示為 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,如果還沒有定義默認(rèn)索引模式,點(diǎn)擊 wazuh-monitoring,然后點(diǎn)擊右上角的星號將其設(shè)為默認(rèn)值。

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

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

MISP 部署

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

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

初始化 MISP 數(shù)據(jù)庫:docker run -it --rm -v /docker/misp-db:/var/lib/mysql harvarditsecurity/misp /init-db。這可以啟動容器,運(yùn)行腳本使用必要的數(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,如果沒有特殊要求,可以接受所有默認(rèn)選項(xiàng)。

運(yùn)行容器

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 個(gè)字符,其中包含大寫字母和特殊字符。

配置 MISP

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

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

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

如何使用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 中的三個(gè)字段:

Accept application/json
Contect-Type application/json
Authorization 

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

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

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

換到 Body 選項(xiàng)卡,點(diǎn)擊 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"
                }
            }
        ]
    }
}

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

TheHive & Cortex

這篇文章部署的 TheHive 3.3.0 RC5 與 Cortex stable v2.1.2,而 TheHive 4.1 版本(預(yù)計(jì)在 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://:9000,應(yīng)該可以看到數(shù)據(jù)庫更新消息:

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

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

更新完成后,仍然有機(jī)會為管理員賬戶更改用戶名與密碼。還可以檢查 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 主機(jī)上安裝 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 拉取源代碼,為每個(gè) Analyzer 單獨(dú)安裝 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)一些錯(cuò)誤,解決此類辦法的好方法是挑選要安裝哪些 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://:9001。更新數(shù)據(jù)庫并創(chuàng)建管理員用戶登錄,就像安裝 TheHive 時(shí)做的那樣。

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

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

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

可以啟用以下幾個(gè) Analyzer,接受默認(rèn)配置:

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 密鑰或者進(jìn)行進(jìn)一步的配置。 點(diǎn)擊 Users 子選項(xiàng)卡并創(chuàng)建一個(gè)新用戶和 TheHive 集成。該用戶應(yīng)該分配 read & analyze 角色,這次可以不用為其設(shè)置密碼,點(diǎn)擊 Create API Key 并且拷貝該密鑰。

點(diǎn)擊頁面頂端的 +New Analysis

不用管 TLP 與 PAP

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

添加 8.8.8.8

選中你啟用的 Analyzer 旁邊的框

點(diǎn)擊開始

如何使用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ù)器,兩個(gè)服務(wù)再次啟動的時(shí)候就可以使用了。在 TheHive 點(diǎn)擊 +New Case 測試 Cortex:

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

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

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

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

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

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

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

導(dǎo)入報(bào)告模版

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

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

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

啟用 MISP

在 MISP 的頁面上點(diǎn)擊 Administration > Add User:

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

將用戶添加到 ORGNAME 組織

分配角色 user

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

拷貝用戶 API 密鑰

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

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

URL = https://

key = AuthKey from MISP user you created

cert_check: False

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

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

ElastAlert

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

sudo apt install python-pip
pip install elastalert

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

配置 ElastAlert

創(chuàng)建一個(gè)目錄來存儲配置和規(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

運(yùn)行 elastalert-create-index 在 Elasticsearch 中創(chuàng)建必要的索引。可以得到以下結(jié)果:

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

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

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

每條規(guī)則定義要執(zhí)行的查詢,觸發(fā)匹配的參數(shù)與每個(gè)匹配觸發(fā)的告警列表。本文中創(chuàng)建一個(gè)規(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: 

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 好像并不起作用。只能使用單個(gè)字段名('{match[srcip]}')。

我們需要修改 Logstash 主機(jī)上的 01-wazuh.conf 配置文件來解決這個(gè)問題。在 Logstash 主機(jī)上修改 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 進(jìn)行驗(yàn)證。在 Kibana 頁面中選擇 Management > Kibana > Index Patterns,選擇 wazuh-alerts 索引模式,點(diǎn)擊 Refresh 啟用新字段:

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

# 運(yùn)行 ElastAlert
elastalert --verbose --config ~/elastalert/config.yaml

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

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

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)平臺

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

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

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

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


本文題目:如何使用Elasticsearch與TheHive構(gòu)建開源安全應(yīng)急響應(yīng)平臺
鏈接分享:http://weahome.cn/article/pdihsj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部