日誌分析 開源碼 資安 Python 非結構化資料

開源LogonTracer視覺化過濾 再用系統事件檢視器細察

二刀流Windows日誌分析 精準掌握資安蛛絲馬跡

本文將透過LogonTracer這套開放原始碼的分析程式,以圖形化方式將Windows系統日誌檔進行分析,說明如何查找出重要的事件ID與可疑帳號,找尋問題發生所在。冀望能讓讀者透過本文的分析,得以快速上手日誌檔之分析。

 

隨著資通網路日益發達,資通安全(Information Security)儼然成為當今重要議題。身處大量資訊的數位年代,每天都有著大量的資料流動於網際網路中。無論是電腦、手機或IoT設備皆會產生日誌檔,日誌檔內會記錄所有對電腦設備的操作,欲查找事件的真相,必須從日誌檔中找到資訊安全事件所留下的蛛絲馬跡。

也因此,日誌檔儼然成為資通安全管理重要的一環,對於日誌檔之概念應當熟悉其架構。

在本文中,將介紹現今最常見Windows系統的事件檢視器及「LogonTracer」日誌檔分析軟體,分析兩者間的優勢與劣勢。並且,為了使大家能快速進入日誌檔的世界,本文也將使用LogonTracer進行實作,協助了解日誌檔的解讀與分析方法。

認識日誌檔

日誌檔為記錄電腦及網路操作之紀錄的檔案,通常包含系統時間、事件、登出入紀錄等系統上之行為記錄,這些紀錄會由系統或相關軟體自動產生,若系統發生故障或異常,日誌檔就是最重要的參考資料。對於網管人員,可以依據日誌檔記錄內容,修正任何異常活動;對於分析人員,可以依據日誌檔紀錄分析,找尋主機中潛在問題之所在;對於資安人員,能夠依據日誌檔異常記錄找出攻擊手法。

由於Windows為目前最廣為使用的系統,在此就以Windows為例,讓大家更認識Windows日誌檔。首先,說明Windows日誌檔路徑位置及日誌檔類型,介紹Windows主要存在的五種紀錄檔案的類型,包括應用程式(Application Events)、安全性(Security Events)、設定(Setup Events)、系統(System Events)、轉送的事件(Forwarded Events)等,說明如下:

Windows日誌檔(以Windows 10為例)

若要查看Windows日誌檔,可透過Windows「事件檢視器」查看。在Windows系統中,在左下角的Windows圖示上按下滑鼠右鍵,其中就有【事件檢視器】選項可以點選啟動,如圖1所示。

圖1  事件檢視器程式。

日誌檔類型

Windows系統中的日誌可分為「應用程式」、「安全性」、「Setup」、「系統」、「Forwarded Events」,分述如下:

應用程式

應用程式日誌檔如圖2所示,透過點選Windows紀錄中的「應用程式」,即可檢視紀錄操作系統產生的事件,主要包含驅動程序、系統組件和應用軟體的失敗,以及數據遺失錯誤等。其主要記錄應用程式或執行程式事件之紀錄,並依事件的類型作為事件紀錄的等級,可分為「錯誤」、「警告」及「資訊」。「錯誤」指的是最嚴重的問題,如資料遺失、程式發生非預期的錯誤,「警告」的嚴重等級次高,主要是可能會發生的問題事件,而「資訊」指的是程式、驅動程式或服務的正常操作訊息。

圖2  事件檢視器—應用程式紀錄。

安全性

安全日誌檔如圖3所示,透過點選Windows紀錄中的「安全性」,即可檢視紀錄系統的安全稽核事件,包含各種類型的登錄日誌、與主機連線日誌、進程追蹤日誌、特權使用、帳號管理、策略變更、系統事件。安全日誌也是調查中最常使用的日誌檔,在預設值中,安全日誌是沒有開啟的,可以將安全日誌檔開啟,以便日後需要時使用。其主要包含使用者登入系統成功或失敗的事件,這些事件稱為「稽核(audits)」。

圖3  事件檢視器—安全性紀錄。

Setup(設定)

設定日誌檔如圖4所示,透過點選Windows紀錄中的「設定」,即可檢視相關的日誌訊息,主要包含網路封包的使用狀態。其主要記錄網域控制站的電腦,例如封包KB 4506998已順利變更為已安裝狀態。

圖4  事件檢視器—設定紀錄。

系統

系統日誌檔如圖5所示,透過點選Windows紀錄中的系統,即可檢視系統日誌檔中產生的事件,主要包含驅動程式、系統組件和應用軟體的崩潰以及數據遺失錯誤等。其主要記錄Windows與Windows系統服務之事件,區分為「錯誤」、「警告」以及「資訊」。

圖5  事件檢視器—系統紀錄。

Forwarded Event(轉送的事件)

Windows系統可將事件轉送到特定主機進行分析,若未有進行相關設定,這部分的日誌應該會是空白,若無轉送的事件,通常不會使用到此紀錄檔,所以是比較少使用到的,如圖6所示。

圖6  事件檢視器—轉送的事件紀錄。

日誌檔的事件ID

對於Windows事件日誌分析,不同的Event ID代表了不同的意義。舉例說明常見的安全事件,例如4624代表登入成功、4625代表登入失敗、4634代表登出成功。

由於Windows系統的事件檢視器,可以發現事關系統的「安全性」紀錄檔都有數萬筆以上的資料,若要以人工方式一一查看,幾乎是不可能的任務。僅管紀錄檔也能另存為CSV檔逗號分隔值(Comma-Separated Values,CSV),有時也稱為字元分隔值,但面對數萬筆的紀錄也足以令人卻步。因此,若能採用視覺化圖形顯示方式先進行分析,再就重點詳加追查,才是事半功倍的方法,故在此採用LogonTracer這套軟體進行日誌檔案分析。

LogonTracer簡介

接下來,採用Windows的「安全性」日誌檔與LogonTracer工具進行實作。LogonTracer是一個視覺化事件日誌分析工具,此工具是基於Python所撰寫的開源工具,並使用Neo4j(圖形數據庫管理系統)為資料庫,用於分析Windows事件登入日誌的視覺化介面工具,此工具會將登入事件的主機名稱與帳戶名稱用圖形化表示並且對應其關聯,使得IT人員得以一目了然其全貌。

首先介紹LogonTracer(以v1.5.4為例)的安裝方式,然後實際演示其介面操作,並藉由實際情境展示LogonTracer如何分析登入事件,以及如何透過圖形顯示與檢視日誌檔中所記錄的事件。

安裝LogonTracer

LogonTracer可以透過從Github(https://github.com/JPCERTCC/LogonTracer)下載安裝,或是採用Docker方式來使用。因為日誌分析並非經常要使用的程式,所以建議採用Docker(Docker是一種軟體平台,可快速地建立、測試和部署應用程式。Docker將軟體封裝到名為容器的標準化單位,其中包含程式庫、系統工具、程式碼和執行時間等執行軟體所需的所有項目),即可以不影響現有的系統,安裝上也較為容易。安裝過程可分為五大步驟,分述如下:

STEP 1:在Ubuntu Linux(與其他Linux發行版相比較好上手,也是目前最多人使用的Linux版本)上使用apt安裝Docker:

sudo apt-get install docker.io

STEP 2:接著將帳號加入Docker群組:

sudo usermod –aG docker 我的帳號

STEP 3:檢視帳號是否加入Docker群組,呈現綠色active (running)代表Docker status正常啟動,如圖7所示:

圖7  Docker status正常啟動。

service docker status

STEP 4:取得LogonTracer的對映,將jpcertcc/docker-logontracer的Docker映像pull:

docker pull jpcertcc/docker- logontracer

STEP 5:執行如下的指令,其中LTHOSTNAME值對應修改為本機IP或0.0.0.0,當出現Pull complete,顯示已成功掛載到本機中(圖8):

圖8  Docker執行LogonTracer。

docker run --detach --publish=7474:7474  --publish=7687:7687 --publish=8080:8080 -e LTHOSTNAME=10.0.2.15 jpcertcc/docker- logontracer

STEP 6:等到安裝成功之後,就可以開啟LogonTracer。

LogonTracer介面操作

LogonTracer介面可區分為「功能選項」、「使用者及其重要性的等級」、「篩選區」、「Timeline(時間軸)」,如圖9所示,其內容分述如下:

圖9  LogonTracer操作畫面。

功能選項

在LogonTracer介面左側,就是對日誌檔案進行分析的功能選項,功能選項區常用的功能包括:「All Users」(檢視所有使用者登入訊息)、「SYSTEM Privileges」(檢視管理員帳號戶登入訊息)、「RDP Logon」(檢視RDP遠端桌面登入訊息)、「Network Logon」(檢視網路登入訊息)、「Batch Logon」(檢視批次處理登入訊息)等。

使用者及其重要性的等級

在LogonTracer介面右側,顯示著使用者及其重要性的等級。對於此排名,LogonTracer會對事件日誌圖執行網路分析,並根據每個節點的「中心性」建立排名。中心性是指示每個節點與網路中心之接近度的索引。由於被攻擊帳號用於對許多主機執行登入嘗試,因此它們往往具有更高的中心性。因此,透過比較中心性,可以識別出可能受到影響的帳號和主機。

篩選區

在LogonTracer介面上側,就是日誌篩選過濾器,可以根據用戶名稱、主機名稱以及IP位址等對日誌進行篩選。

Timeline(時間軸)

如圖10所示,按時間順序顯示事件日誌,以使用者名稱及時間軸劃分,於時間軸介面顯示,用戶得以依照時間查看各使用者的操作順序。

圖10  LogonTracer Timeline開啟畫面。

情境案例分析

小融是任職於科技公司的資安工程師,某天上班的時候,發現公司重要的系統發生異常狀況,似乎曾被具有系統權限的管理者登入,於是小融將公司系統資通安全檢測分析。小融立即將主伺服器主機日誌備份,並且使用LogonTracer進行分析。

首先小融將主伺服器的系統日誌檔做備份,檔案格式為evtx格式,再將evtx系統日誌檔匯入LogonTracer軟體中,映入眼簾的是公司主機與帳號連線的視覺關聯圖,如圖11所示。

圖11  LogonTracer顯示出公司主機與帳號連線的視覺關聯圖。

接著對於可疑的部分使用細部的分析,其中對於每個節點,連結到主機(綠點)並帶有一行帳號訊息(紅∕藍)表示已使用主機登入,顏色區分如下:

‧紅色:SYSTEM許可權帳號

‧藍色:標準使用者帳號

‧綠色:主機∕IP位址

從中發現到紅色的帳號(chpbmis),也就是具有系統權限的帳號登入到數台的主機,依事件ID 4776與4624發現已成功登入主機pa-3020-1,如圖12所示。於是再到pa-3020-1的主機上查看chpbmis連線紀錄,發現來自另一名系統工程師阿明的電腦IP,於是他將阿明找來約談調查。在阿明主機的Windows安全日誌檔中竟然發現指派特殊權限給不知名的帳號,入侵者得以利用此特殊權限的帳號登入阿明的電腦,並利用阿明的電腦當跳板入侵其他的主機,如圖13所示。

圖12  具系統權限使用者連線狀況圖。
圖13  特殊權限已指派給新登入圖。

在檢驗阿明所使用的電腦後,發現阿明的電腦已遭到入侵,所管理的電腦被當成跳板入侵主伺服器主機,並遭到有心人士利用特殊權限登入(事件4672,Security Auditing),並遭到其修改其中的資料檔案到系統內,才導致這次的事件發生。幸好有日誌檔的紀錄,才能將問題追根溯源。

討論與分析

接著,說明Windows作業系統的事件檢視器與LogonTracer的優缺點,並指出何謂最佳運用。

Windows作業系統的事件檢視器與LogonTracer的優缺點

首先,Windows系統內建檢視器,無須另外進行安裝,雖然也有搜尋功能,但當日誌檔檔案龐大時,要進行分析相當不易,且分析所需要的人力及時間較多。

相對地,LogonTracer為視覺化日誌檔分析軟體,操作介面簡潔,能針對主機與帳號的登入與驗登進行分析,並以視覺化分析方式呈現,讓使用者可以快速掌握系統登入狀況。

惟LogonTracer在於解析日誌檔的時間相當久,且缺乏細節,所以在於查到可疑事件之後,還是要使用「事件檢視器」來檢視詳細的資訊。其兩者的優缺點分析,如表1所示。

最佳運用

在熟悉了Windows事件檢視器以及LogonTracer等視覺化的工具後,便能將其共同使用,先將海量資料運用LogonTracer視覺化過濾,接著運用Windows事件檢視器針對可疑的部位進行細節的逐步審查,並且將可疑的日誌檔紀錄進行分析。如此一來,便能夠發揮兩者工具的優點,進而更有效率地發掘問題之所在。

結語

鑑於資通訊網路的普及,資安事件日趨頻繁,要找出資安事件的問題,最重要的莫過於日誌檔的判讀。在本文中,先介紹Windows的系統日誌檔,運用「Windows事件檢視器」直接查詢電腦所有過去曾經使用及操作的紀錄,然後講述LogonTracer的安裝與基本使用方法,並透過LogonTracer的應用,讓日誌檔的判讀改以視覺化方式來分析,使其能有更深的能見度、更好的洞悉力以及更快速的疑難排解能力,將所有非結構化的資料轉成結構化的資料,以更快且更有效率的方式分析紀錄檔。

<本文作者:社團法人台灣E化資安分析管理協會(ESAM, https://www.esam.io/)國立屏東大學多媒體實驗室(Multimedia Lab)2018年創立,由楊政興教授率領成員們致力數位多媒體應用與研究,其領域包含但不限於互動媒體設計、多媒體安全、資料庫安全、數據分析及影像處理。>

 


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!