使用Neo4j可視化Windows日誌
導語:大多數時候,這些都是以數據行的形式表示的,有時候我以看圖表。當我我看到BloodHound項目時,我感覺我的圖標形式顯示比較老舊。我想要同樣的視覺展示。
介紹
我花了很多時間在SIEM設備中找日誌。大多數時候,這些都是以數據行的形式表示的,有時候我以看圖表。當我我看到BloodHound項目時,我感覺我的圖標形式顯示比較老舊。我想要同樣的視覺展示。
在這篇文章中,我想介紹如何使用 Neo4j可視化一些Sysmon日誌。
入門
我快速的谷歌搜索,偶然發現這個的帖子,我學習了基礎知識。第一步是抓住Neo4j的免費社區版本,可以在這裏找到安裝完成後,您應該可以瀏覽http://127.0.0.1:7474/browser/訪問Neo4j DB,默認用戶/密碼為neo4j/neo4j,在您在首次登錄時更改密碼。
第二步是使用配置文件安裝Sysmon,在以前的文章中我介紹過Sysmon。
準備日誌
現在,已經配置好Sysmon及Neo4j的設置,我們需要將日誌轉換成可以導入Neo4j的格式。我使用以下的PowerShell腳本:
這個腳本創建一個CSV文件
Import-Module C:UsersAntonDownloadsGet-WinEventData.ps1 $File = "C:UsersAntonDesktoplogs.csv" Clear-Content "C:UsersAntonDesktoplogs.csv" Add-Content $File -Value Source","Destination","DestinationPort","Application`n -NoNewline $EventsID3 = Get-WinEvent -FilterHashtable @{logname="Microsoft-Windows-Sysmon/Operational";id=3} | Get-WinEventData | select EventDataSourceIp,EventDataDestinationIp,EventDataDestinationPort,EventDataImage foreach ($Event3 in $EventsID3) { $output = Write-Output $Event3.EventDataSourceIp","$Event3.EventDataDestinationIp","$Event3.EventDataDestinationPort","$Event3.EventDataImage`n Add-Content $File -Value $output -NoNewline }
為了簡單起見,我將文件放入C:Users<Name>DocumentsNeo4jdefault.graphdbimport目錄中
導入數據和Cypher查詢
現在有了我們所需格式的文件,打開Neo4j界面,並在輸入框中輸入以下命令:
load csv with headers from "file:///logs.csv" AS csvLine CREATE (source:address { address: csvLine.Source }) CREATE (destination:addressd { addressd: csvLine.Destination }) CREATE (DestinationPort:DestPort { destport: csvLine.DestinationPort }) CREATE (application:app { Application: csvLine.Application }) CREATE (source)-[:ConnectedTo]->(destination)-[:Using]->(application)-[:OnPort]->(DestinationPort)
第一行加載我們的CSV,
接下來的四個CREATE語句使我們的圖形元素的源地址,目的地址,目標端口和應用程序
最後一個CREATE語句構建我們的關系。在這種情況下,我想知道什麽源IP連接到什麽目的地IP以及什麽應用和目標端口。
點擊播放按鈕,你應該看到類似於以下內容:
現在我們可以找到感興趣的東西,點擊左側的數據庫圖標,然後點擊“關系類型”下的*圖標:
你現在應該看到的關系圖如下:
我們得到一個真正清晰的前端展示與什麽連接到我們的系統。在這種情況下,我們可以看到192.168.1.123連接到204.79.197.200,使用端口443上的IE。
實例測試
讓我們進一步了解一下如何使用它來分析一些惡意活動。
當然Neo4j和這種設置不會提醒你任何惡意的活動
我們可以編寫一個簡單的查詢來查看所有的PowerShell網絡連接:
給你一個結果列表
我們可以雙擊來擴展它。現在我們應該看到我們對PowerShell網絡活動的攻擊展示:
再次,我們可以清楚地看到192.168.1.123連接到151.101.124.133(Github),通過端口443使用PowerShell。
這顯然是一個簡化的例子,但我認為這將是一個超級便利的工具,以獲得一些額外的見解從你的日誌。我在這裏使用Sysmon,因為它提供了非常豐富的數據。
結語
使用Neo4j圖形數據庫,可以很方便的展示進行數據關聯。
如果數據量過大,您可以通過JSON的API與BloodHound一樣提供Neo4j數據庫。
使用Neo4j可視化Windows日誌