Published 5月 12, 2024 by Kevin

Help net security:Nemesis:一個攻擊性的數據豐富化和分析管道

 Help net security發佈了一篇Nemesis:一個攻擊性的數據豐富化和分析管道

Nemesis是一個攻擊性的數據豐富化和分析管道,旨在幫助攻擊者在進行安全評估時處理和利用各種數據。Nemesis基於Kubernetes和Docker的微服務架構,可以實現數據的自動化、結構化和半結構化存儲、儀表板交互和命令控制框架的集成。Nemesis的目標是自動化一些重複性的任務,提升攻擊者的分析能力和知識共享,並創建一個包含盡可能多的操作數據的數據庫,以指導未來的研究和促進攻擊性的數據分析。

Nemesis不僅僅是一個日誌聚合的方案,而是一個統一所有攻擊性數據的處理和分析平台。Nemesis的主要功能如下:

  • 自動化一些重複性的任務,例如文件存儲挖掘、權限提升、數據保護應用程序接口(DPAPI)濫用等。
  • 提升攻擊者的分析能力和知識共享,例如通過儀表板展示數據的關聯性、可視化和搜索功能,以及通過命令控制框架的集成實現數據的即時反饋和操作。
  • 創建一個包含盡可能多的操作數據的數據庫,例如文件、密碼、證書、網絡流量、域信息、用戶信息、事件日誌等,並將這些數據存儲在Elasticsearch和PostgreSQL中,以實現半結構化和結構化的查詢和分析。

架構

Nemesis的架構基於Kubernetes和Docker的微服務,可以實現數據的分布式處理和存儲。Nemesis的主要組件如下:

  • Nemesis API:一個用Flask實現的RESTful API,負責接收和驗證數據,並將數據發送到消息隊列。
  • 消息隊列:一個用RabbitMQ實現的消息隊列,負責將數據分發到不同的微服務。
  • 微服務:一系列用Python實現的微服務,負責對數據進行不同的處理和豐富化,例如解壓縮、解密、解析、提取、轉換、匹配、標記等。
  • 數據庫:一個用Elasticsearch實現的半結構化數據庫,負責存儲和索引數據,並提供全文搜索和聚合功能;一個用PostgreSQL實現的結構化數據庫,負責存儲和查詢數據,並提供關聯性和完整性保證。
  • 儀表板:一個用Kibana實現的儀表板,負責展示和交互數據,並提供可視化和分析功能。
  • 命令控制框架:一些用Python實現的連接器,負責與不同的命令控制框架進行通信,並將數據發送到Nemesis API。

數據

Nemesis可以處理和利用多種類型的數據,包括文件、密碼、證書、網絡流量、域信息、用戶信息、事件日誌等。Nemesis定義了一個統一的數據模型,稱為操作數據記錄(ODR),用於描述數據的屬性和關聯性。ODR包括以下幾種數據類型:

  • File:表示一個文件,包括文件名、大小、哈希值、內容、類型、元數據等。
  • Password:表示一個密碼,包括明文、密文、算法、鹽值、用戶名、域名等。
  • Certificate:表示一個證書,包括公鑰、私鑰、序列號、有效期、主體、發行者等。
  • Network:表示一個網絡流量,包括源地址、目的地址、源端口、目的端口、協議、內容、方向等。
  • Domain:表示一個域,包括域名、SID、控制器、信任、組織單位、組、用戶等。
  • User:表示一個用戶,包括用戶名、SID、域名、全名、電子郵件、電話、地址、組、權限等。
  • Event:表示一個事件日誌,包括事件ID、事件類型、事件源、事件目的、事件時間、事件描述等。

Nemesis可以通過兩種方式獲取數據:主動推送和被動拉取。主動推送是指攻擊者通過命令控制框架或其他工具將數據發送到Nemesis API,Nemesis API將驗證數據的格式和有效性,並將數據發送到消息隊列。被動拉取是指Nemesis通過微服務從外部來源獲取數據,例如從網絡抓包、從網站爬取、從數據庫查詢等,並將數據發送到消息隊列。

Nemesis是一個攻擊性的數據豐富化和分析管道,可以幫助攻擊者在進行安全評估時處理和利用各種數據。Nemesis的優勢在於它可以實現數據的自動化、結構化和半結構化存儲、儀表板交互和命令控制框架的集成。Nemesis的目標是自動化一些重複性的任務,提升

詳情請看:

Nemesis: Open-source offensive data enrichment and analytic pipeline

      edit