前幾篇文章介紹了怎麼透過 Kibana 加入 APM、Logs、Metircs 到 Elasticsearch 中,這篇文章會是 Kibana 介面上的最後一片拼圖 Security 的部分,主要是加入安全相關的事件監控數據,可以說是一套 Elastic Stack 的 SIEM。
點選下圖箭頭就可以開始加入資料
SIEM
SIEM 彙整並監控各種伺服器的日誌、網路安全資訊,像是防火牆、網路流量、路由器的紀錄等等,然後產生報表,SIEM 架構可以簡單分成三個部分:
- Beats(connector): 事件收集器
- Kibana + Elasticsearch(logger management): 日誌管理系統
- Kibana(correlation): 事件關連分析平台
Beats
Beats 可以安裝在 server 上協助傳送資訊到 Elasticsearch 或 Logstash,除了這次要用到的 以外還有一堆很厲害的 beat 系列工具,這次跟安全事件相關的有 Winlogbeat、Auditbeat、Packetbeat,這次只有安裝前面兩個。
使用 Beats 的步驟也很簡單,跟之前介紹得差不多,就是
- 下載後解壓縮
- 設定相關配置檔 (
${XXX}beat.yml
) - 啟動 (
./${XXX}beat.exe -e
) - 需要常駐在背景跑才需要註冊服務。
- 到 kibana Dashboard 查看 Dashboard
Winlogbeat 安裝後的 Dashboard: 紀錄事件
Auditbeat 安裝後的 Dashboard: 紀錄執行了哪些程式
Elastic Endpoint Security
這個功能目前還在 Beta 中,分成兩方面去做 Endpoint Security
- 威脅偵測 Exploits
- 對手威脅行為偵測 Adversary Behavior Detection
使用上也是按照官方文件進行安裝,然後進行 elastic-agent.yml
的配置,不過預設的配置檔看起來是給 linunx 用的,這個部分就沒測試,不過介面看起來相關規則都可以進一步新增,官方目前也有提供一些預設的規則範例可以參考。
可以新增偵測的相關規則
威脅偵測 Exploits
威脅是能夠被偵測或被預防,Elastic Endpoint Security 的 Sensor 會使用 DBI (dynamic binary instrumentation),因為程式大部分都是 Build 過的也看不到原始碼,DBI 是透過在執行的 binary 中即時注入程式碼來分析程式行為的方法,常見的框架是 Pin、DynamoRIO、Frida,Elastic Endpoint Security 的 Sensor 偵測出底下幾種類別的威脅:
- 漏洞 (Exploits): 漏洞防範的規則預設會被應用在瀏覽器、MS Office、Adobe Reader、Java
- Critical API: 監控是否有被執行
- Header Protection: PE header 是不是有被嘗試讀取
- Macro Protection: MS Office 是否嘗試執行 VBA Macro
- Return Heap: Heap 記憶體內容是否有被嘗試 return
- Return Oriented Programming (ROP) Chain: 是否嘗試執行被保護的 function
- Shellcode Threats: 偵測是否有 thread 的開始位置不在目前模組中
- Stack Memory: 是否嘗試修改 Stack 分頁檔
- Stack Pivot: 是否有 thread stack 被攔截
- UNC Path: Universal Name Convention (UNC) 路徑是否有被使用
- 惡意程式 (Malware): 會透過機器學習算出來的分數來預防
- 黑名單 (Blacklist): 像是 andriod 預設無法安裝不是 Google Market 的 APK
- 直接用副檔名排除,像是 .dll 等
- 憑證存取 (Credential Access): 是否有被嘗試存取任何憑證
- 特權提升 (Privilege Escalation): 是否有偷用額外的權限
- 處理程序注入 (Process Injection): 不用執行檔案靠漏洞就可以把想執行的程式植入,像是 SQL Injection?
- 勒索軟體 (Ransomware)
對手威脅行為偵測 Adversary Behavior Detection
至於怎麼找出並對手的威脅行為,MITRE 有提出 ATT&CK 這套資安框架,透過這套框架找出對手可能的戰略、戰術、流程,也能協助 EDR (Endpoint Detection and Response) 工具的評估與測試。
- A(Adversarial): 對抗性的攻擊者
- T(Tactics): 戰略
- T(Technical): 技術手法
- CK(Common knowledge): 通用的知識庫
ATT&CK 的核心概念在把常見的威脅的行為分成
- 階段
- 活動
主要會有以下的幾個大階段與行為:
- 入侵初期(Initial Access)
- 持續潛伏(Persistence): 嘗試維持自己在重開機之後仍能存活
- 執行(Execution): 嘗試執行惡意程式
- 權限提升(Privilege Escalation): 嘗試得到更高權限,像是 root 或是 admin
- 防禦逃脫(Defense Evasion): 嘗試躲過掃描
- 憑證存取(Credential Access): 嘗試存取密碼及憑證
- 發現(Discovery): 嘗試了解系統環境
- 橫向移動(Lateral Movement): 邊移動邊在尋找最終攻擊目標
- 收集(Collection): 是否有常識蒐集資料的行為
- 命令與控制(Command and Control): 是否嘗試控制還原系統
- 滲出(Exfiltration): 嘗試偷資料
- 衝擊(Impact):試圖控制、中斷、摧毀系統與資料
喜歡這篇文章,請幫忙拍拍手喔 🤣