LogonTracer:視覺化事件日誌識別被攻擊賬戶
前言
事件日誌分析是安全事件調查中極其重要的一環。如果網路由Active Directory管理(以下稱為AD),則可以通過分析AD事件日誌來識別。對於此類調查,直接在AD事件檢視器中進行詳細分析十分的困難; 常見的方法是將日誌匯出為文字格式或將其匯入SIEM /日誌管理系統。但是,由於事件日誌的數量、體積可能很大,匯入時間受限於環境,這對分析師來說可能是一個難題。
JPCERT開發併發布了一個支援此類事件日誌分析的工具“LogonTracer”。本文介紹了它的工作原理以及如何使用。
事件日誌視覺化
LogonTracer將登入相關事件中的主機名(或IP地址)和帳戶名關聯起來,並將其視覺化。這樣,就可以看到哪個帳戶嘗試登陸以及登陸哪個主機。下圖是LogonTracer建立的視覺化圖表,顯示了一些IP地址和帳戶的關係。
對於每個節點,連結到主機(綠點)並帶有一行賬戶資訊(紅/藍)表示已使用主機登陸。
紅色 :SYSTEM許可權帳戶
藍色 :標準使用者帳戶
綠色 :主機/ IP地址
即使對於一個沒有詳細瞭解過事件日誌的新手,這種視覺化也使日誌分析變得簡單。
提取更多重要帳戶和主機
除了事件日誌視覺化之外,LogonTracer還能夠通過排名顯示可能的槓桿帳戶/主機。圖2是帳戶和主機的重要性等級的示例。
對於此排名,LogonTracer會對事件日誌圖執行網路分析,並根據每個節點的“中心性”建立排名。中心性是指示每個節點與網路中心的接近度的索引。為了計算中心性,應用了PageRank 演算法。在該演算法中,與許多其他節點連線的節點位於圖的中心,因此具有更高的中心性。
由於被攻擊帳戶用於對許多主機執行登入嘗試,因此它們往往具有更高的中心性。因此,通過比較中心性,可以識別可能受影響的帳戶/主機。
事件日誌的時間順序顯示
使用LogonTracer,還可以按時間順序顯示事件日誌。圖3顯示了時間序列中每個帳戶的事件日誌數。
通過檢查一段時間內的日誌數量,可以發現在短時間內或工作時間之外的未經授權的登入嘗試。
事件日誌的急劇增加會自動突出顯示。為了檢測異常登陸的計數增加,異常檢測模式主要應用了變換查詢器(詳情可檢視 ofollow" rel="nofollow,noindex" target="_blank">http://ieeexplore.ieee.org/document/1599387/ )。
如何安裝LogonTracer
該工具可以在GitHub上找到。您可以從以下網頁下載:
JPCERTCC GitHub – LogonTracer
https://github.com/JPCERTCC/LogonTracer
以下是有關如何使用LogonTracer的說明。該工具在Linux環境中進行了測試。
1. 獲取並安裝Neo4j社群版
從以下網站下載Neo4j社群版並安裝:
https://neo4j.com/download/other-releases/#releases
2. 下載LogonTracer
從以下網頁下載並將其部署在一個資料夾中。
https://github.com/JPCERTCC/LogonTracer
在LogonTracer的靜態資料夾中安裝Neo4j JavaScript驅動程式。
$ cd LogonTracer/static $ npm install neo4j-driver
4. 安裝Python模組
為LogonTracer安裝Python模組
$ pip install -r requirements.txt
*如果statsmodels安裝失敗,請先安裝numpy。
5. 執行Neo4j
通過GUI或命令列啟動Neo4j。
如何使用LogonTracer
使用以下選項啟動LogonTracer:
`` $ python3 logontracer.py -r -o [PORT] -u [USERNAME] -p [PASSWORD] -s [IP Address] ```
- -r:啟動Web伺服器 - -o:Web伺服器執行的埠號(例如:8080) - -u:Neo4j使用者名稱(預設為“neo4j”) - -p:Neo4j密碼 - -s:Web伺服器執行的地址(例如:localhost)
下面是執行LogonTracer的示例。
要訪問Web介面,請從瀏覽器轉到以下URL。(在此環境中,LogonTracer安裝在本地環境中並在埠8080上執行)。
*要匯入日誌,您可以上傳EVTX格式。
如何使用Docker映象
Docker Hub上提供了LogOnTracer的Docker映象。
https://hub.docker.com/r/jpcertcc/docker-logontracer/
如果使用Docker,可以通過以下命令啟動映像:
$ docker run \ --detach \ --publish=7474:7474 --publish=7687:7687 --publish=8080:8080 \ -e LTHOSTNAME=[IP Address] \ jpcertcc/docker-logontracer
LogonTracer可以分析的事件日誌和注意事項
研究表明,監控以下事件對於調查未經授權的登入是有效的。基於此,LogonTracer還可以顯示以下事件ID以進行視覺化:
事件ID 4624:登入成功
事件ID 4625:登入失敗
事件ID 4768:Kerberos身份驗證(TGT請求)
事件ID 4769:Kerberos身份驗證(ST請求)
事件ID 4776:NTLM身份驗證
事件ID 4672:許可權分配
由於並非所有上述事件ID都使用預設設定進行記錄,因此需要啟用稽核策略以保留此類日誌。我們建議啟用稽核策略。有關配置的詳細說明,請參閱LogonTracer的“自述檔案”,也可在GitHub上找到。
結語
雖然事件日誌分析在事件調查中至關重要,但如果您不知道要分析什麼以及從何處開始,則可能是一個耗時的過程。此工具通過視覺化帳戶和主機之間的關係提供簡單的事件日誌分析。我們希望您嘗試使用此工具來準備實際事件調查。
我們將盡快更新有關如何使用此工具進行實際分析的更多資訊。
謝謝你的閱讀。
*本文作者:PikuYoake,轉載請註明來自FreeBuf.COM