DetectionEdge 安裝說明手冊V2.3 - secbuzzer/DetectionEdge GitHub Wiki

1. 硬體需求

硬體配備需求依不同目的而有所差異,若只想測試基本功能,可以使用個人版進行安裝驗證,若在較大的場域中測試,則硬體依場域需求或流量大小而有所變更,其最基本的配備建議如下:

個人測試:

  • OS:Ubuntu 18.04.4 UP Server 英文版
  • CPU:2.0 GHz 64-bit processor, dual core (or two virtual CPUs)
  • MEM:10G UP
  • HDD:80G UP

場域測試:

  • OS:Ubuntu 18.04.4 UP Server 英文版
  • CPU:2.2 GHz 64-bit processor, 8 core
  • MEM:32G UP
  • HDD:2T ~ 4T

確認項目:

  • 確認OS是否有支援SSH,未支援者可執行以下指令進行安裝
sudo apt-get install openssh-server
  • 確認時間/時區是否正確 (請設置台灣時區)
  • 請確認OS系統屬於 乾淨 的狀態,並沒有安裝其他工具,例如:Docker、Elasticsearch、Fluentd、Grafana等,ESM的安裝程式皆會自動安裝這些工具

2. 系統安裝說明 (Offline)

離線安裝版步驟請參考下列說明:(即安裝階段不需網路連線)

2.1 事前準備

  1. 請先下載離線安裝包,並使用自己習慣的傳輸工具將檔案傳輸至Ubuntu OS中,例如:Linux SCP指令、FTP軟體

在此以scp指令為例:(以下為示意圖,若檔案有版本號的話指令請自行調整)

images/install_10_off.png

  1. 確定鏡像流量已有導入至ESM主機中,可透過vnstat及tcpdump檢測是否已有完成導入鏡像.

  2. 進入Ubuntu中,因安裝過程需使用 root 權限,請先進行帳號的切換

sudo su

images/install_01.png

2.2 解壓縮離線安裝包

將離線安裝包進行解壓縮,指令如下:

tar zxvf SecBuzzerESM_XXX.tgz (XXX代表版本號,現在不一定會附)

images/install_11_off.png

2.3 移動到 opt 目錄下

將整個解壓縮出來之SecBuzzerESM目錄,移至 opt 目錄下

mv SecBuzzerESM /opt/

images/install_12_off.png

2.4 查閱網卡名稱

請執行以下指令查看網卡名稱,並記住該網卡名稱(Interface),後續需於組態檔中設置

ifconfig

images/install_04.png

2.5 設定 SecBuzzerESM.env

這小節將會進行系統相關設定的說明,分別說明如下:首先,請進入 SecBuzzerESM.env 組態檔進行設置,此處是以 nano 編輯器為例,可自行使用習慣的編輯器進行編輯

cd /opt/SecBuzzerESM
nano SecBuzzerESM.env

SecBuzzerESM.env 包含的設定參數如下所示,將一一說明其設定方法與代表意義

# === Elasticsearch === 
ES_VOLUME_PATH=/opt/Logs/ES/volume
ES_MEM=1024m
# === Fluentd ===
FLUENTD_LOG_PATH=/opt/Logs/Fluentd/Logs
FLUENTD_BUFFER_PATH=/opt/Logs/Buffers
# === Suricata ===
SURICATA_LOG_PATH=/opt/Logs/Suricata
IF_NAME=
HOME_NET=
# === Grafana ===
GF_SMTP=false
GF_SMTP_HOST=smtp.gmail.com:465
GF_SMTP_FROM_ADDRESS=
GF_SMTP_USER=
GF_SMTP_PASSWORD=
# === WEB ===
WEB_IF_NAME=
API_KEY_VALUE=
ORG_3_CODE=
# === Flow Scan & NMAP Scan ===
FLOWSCAN_SOURCEIP=
FLOWSCAN_DESTIP=
FLOWSCAN_TOTALCOUNT=1000
NMAPSCAN_IP=
# === DEV ===
DEV_MODE=True (該參數只會出現在開發版,正式版假如有的話也請移去)

編輯完成後輸入 Ctrl+X 存檔 (以nano編輯器為例)

2.5.1 Elasticsearch

  • ES_VOLUME_PATH

Elasticsearch Volume 存放位置,即資料保存處,建議保持預設

  • ES_MEM

設定 Elasticsearch 記憶體上限,預設值為 1024m (個人版適用),基本的配置原則為總記憶體的一半,但不超過32G,例如:系統總記憶體若為32G,則記憶體可設置16g,若總記憶體為64G,則可設置31g (不超過32G)

註:記憶體單位建議用小寫,例如:mg


2.5.2 Fluentd

  • FLUENTD_LOG_PATH

Fluentd 收容資料時所存放的位置,建議保持預設值

  • FLUENTD_BUFFER_PATH

Fluentd Buffer 存放位置,建議保持預設值


2.5.3 Suricata

  • SURICATA_LOG_PATH

Suricata 當偵測到告警時,會將告警資料輸出至 eve.json 存放,此參數為設置 eve.json 的存放路徑,建議保持預設值

  • IF_NAME

Suricata 監控的網卡,即透過該網卡來監控網路流量,進而偵測異常行為,因每位使用者的環境不同,所以網卡Interface會相異,此欄位必需修改

註:取得網卡Interface的方法請參閱 2.4 節之說明

  • HOME_NET

設定監控的IP或網段,每個IP、網段可使用逗號區隔,支援的格式與範例如下:

HOME_NET=10.0.0.1,192.168.0.1/24,172.16.1.1/24

註:每個IP或網段間不要空格、亦不需加雙引號或單引號


2.5.4 Grafana (已停止)

ESM已內建Grafana視覺化儀表板,以下設定參數為用來設置通知告警的信箱資訊。

註:目前尚未開通此功能,設置可先略過

  • GF_SMTP

SMTP 功能是否開啟, 開啟填 true

  • GF_SMTP_HOST

SMTP Server 設定, 預設為 Google

  • GF_SMTP_FROM_ADDRESS

發出 E-mail 時使用的地址

  • GF_SMTP_USER

SMTP 帳號

  • GF_SMTP_PASSWORD

SMTP 密碼


2.5.5 WEB

  • WEB_IF_NAME

在規則觸發後,ESM會將告警資訊拋轉至雲端,因此需設置一網卡來進行傳送,此網卡在個人主機測試時,可能會與 Suricata的參數IF_NAME 相同,但在實際場域上運行時,通常會設置二張不同的網卡,IF_NAME 負責網路流量的導入(Port Mirror),另一張WEB_IF_NAME 負責本機對外的資料傳送,此欄位必填

  • API_KEY_VALUE

從ESM網站上取得的 API KEY,請參考以下說明,此欄位必填

  • ORG_3_CODE

從 ESM 網站上取得單位代碼,請參考以下說明,此欄位必填

欲取得API KEY以及單位代碼,需先登入ESM網站,並由網頁右上角功能選單的取得API Key進入,即可取得相關資訊

images/install_05.png


2.5.6 Flow Scan & NMAP Scan (已停止)

  • FLOWSCAN_SOURCEIP

流量掃描下,欲撈取的來源IP資料,假如要撈取IP: 192.168.70.24下的整個70網段資料,就放: 192.168.70.0/24

程式碼內預設192.168.70.0/24,若IP與該組織網段設定不一樣會抓不到對應的資料,也就無法產生欲撈取的來源IP資料

  • FLOWSCAN_DESTIP

流量掃描下,欲撈取的目的地IP資料,假如要撈取IP: 192.168.70.24下的整個70網段資料,就放: 192.168.70.0/24

程式碼內預設192.168.70.0/24,若IP與該組織網段設定不一樣會抓不到對應的資料,也就無法產生欲撈取的來源IP資料

  • FLOWSCAN_TOTALCOUNT

流量掃描下,欲撈取的總數目,預設是1000筆

  • NMAPSCAN_IP

NMAP掃描下,欲撈取的IP資料,假如要撈取IP: 192.168.70.24下的整個70網段資料,就放: 192.168.70.0/24

程式碼內預設192.168.70.2,若IP與該組織網段設定不一樣會抓不到對應的資料,也就無法產生欲撈取的IP資料


2.5.7 DEV

  • DEV_MODE=True

用來標識開發版與正式版之參數,目前此參數只會出現在開發版,如果要連線正式版的話請移去此參數

2.6 安裝 SecBuzzerESM

經組態檔設定後,即可正式進行安裝作業,請執行以下指令:

cd /opt/SecBuzzerESM
source Offline_Install.sh

註:可在指令前加一個 time 指令,自動計算安裝時間:time source Offline_Install.sh

images/install_13_off.png

2.6.2 安裝 監控程式 (選擇性)

/bin/bash MonitorAgent.sh

image/install_15.png

回報下面三個欄位資料,範例如上圖

Hostname=
TLSPSKIdentity=
TLSPSKKey=

2.7 執行 SecBuzzerESM

安裝完成後,請進行系統的啟動

cd /opt/SecBuzzerESM
./compose.sh up # 啟動 ESM

若在執行ESM的過程中,有遇到臨時不可解之問題,可以搭配「關閉ESM」或「重啟ESM」指令來進行修復

./compose.sh down # 關閉 ESM (可搭配啟動指令重啟)
./compose.sh down && ./compose.sh up # 重啟 ESM

images/install_07.png

2.7.1 驗証 ESM 是否正常

docker ps -a

若啟動不正常則STATUS欄位會顯示restart或是exit,正常情況會顯示該Container已經啟動多久時間

images/install_08.png

2.7.2 驗証 Elasticsearch 是否正常運作

可以透過連線至Elasticsearch(ES)的方式,來確認ES是否正常運作

  • 連線至ES Head(查看ES狀態的工具):http://your_ip:19100
  • 再由ES Head連線至ES查看:http://your_ip:19200

如下圖所示:

images/install_09.png

2.8 Troubleshooting

2.8.1 查看系統版本

ESM的版本記錄存放於HISTORY.md中,可以用catmore指令來查看

cd /opt/SecBuzzerESM
cat HISTORY.md # 或 more HISTORY.md

images/install_14.png

2.8.2 防火牆設定

ESM在運行的階段,需要將告警上傳至雲端,或者進行程式、偵測規則的更新,因此,若在場域中有防火牆的防護,則需要開啟以下幾個網址,以利ESM正常的運作:(階為HTTS,所需之Port為443)

  1. api.esm.secbuzzer.co port 80 and 443
  2. api.hub.secbuzzer.co port 80 and 443
  3. api.esm.secbuzzer.ai poer 80 and 443
  4. host-monitor.secbuzzer.co port 30051
  5. host-monitor.secbuzzer.ai port 30051

2.8.3 網頁重新導向太多次

若發生網頁「重新導向太多次」的問題,則可以是場域內有設置Proxy,此時請準備場域對外連線的IP,並聯絡ESM工程人員進行白名單的設置