流量分析與日誌溯源的個人理解

Azjj98發表於2020-12-09

下面是我結合網上論壇以及個人的一些想法針對日誌分析溯源的個人理解

現階段大部分企業都會上日誌審計裝置,在配上流量分光,還有各類IDS、WAF等裝置日誌,對安全溯源分析十分方便,但在日常工作中,免不了要直接看伺服器相關請求日誌的情況,這個時候就需要我們自身具備日誌分析的能力了。
 

一、日誌分析流程


1、統計
    首先需要對資料進行處理,如請求IP統計,訪問地址統計,HTTP狀態碼統計等,這些資料統計可以使用excel或者python指令碼,如果手頭有各類工具那就更容易統計了。
2、威脅發現
關鍵字過濾:
直接查詢在請求中攜帶的關鍵字,如script、select、from、echo、bash、.sh等
檢視異常請求:
4XX請求、5XX請求
行為分析:
由於日誌大概率不會記錄post請求體,所以在post請求包體中的攻擊往往很難發現,這個時候就需要我們對特定的IP進行行為檢視,如查詢IP的威脅情報,某個IP登入了多個賬號等等
3、報告撰寫
在報告中我們重點要體現某個IP或者某些IP的攻擊畫像,確定這些IP的攻擊行為,以便最終確定是否來著同一撥攻擊,還是網際網路上的肉雞日常掃描。
ps excel中的資料透視表功能是真的香,誰用誰知道。
 

二、在日誌中看到的行為分析   


1、惡意IP請求帶有多個身份操作
可以看到上述日誌中,某IP對登入了郵件並進行了相關操作,可以看到其登入了不同的賬戶,那麼這個時候怎麼判斷其是正常的請求還是惡意請求呢?


(1)、威脅情報,查詢請求IP相關的威脅情報資訊,如果是惡意IP那麼大概率就有可能是惡意訪問了
(2)、觀察請求中的UA標識,如果UA標識一樣,那麼是惡意訪問的概率就又增加了

(3)、觀察這個IP前的一些請求行為,你就可能發現來著不同IP的登入請求,惡意攻擊前的撞庫攻擊,這時基本就可以坐實了
(4)、聯絡相關人員看該IP是否歸屬自己(太麻煩,一般不會用),可以在二次確認時使用。
2、非正常請求

正常業務邏輯不會傳送的請求,這些可以通過關鍵詞快速查詢過濾
3、掃描行為

通過過濾404請求和GET等,可以發現某些IP的目錄掃描探測行為,同時在通過IP去過濾狀態碼是200的請求,可以發現一些安全隱患。
4、重要介面

可以根據自己的業務型別,對一些敏感介面地址進行查詢,觀察其訪問行為。
5、掃描器特徵請求
wvs、acunetix、test、appscan、nessus、webreaver、sqlmap、bxss.me等

bess.me是awvs其中一個XSS掃描外掛的地址。部分掃描器帶有固定的特徵值,需要平時積累發現。
6、關鍵詞查詢
select、sleep、echo、bash、down、passwd等

使用這些敏感的關鍵字也能迅速定位攻擊請求,上圖就是使用sqlmap跑注入所產生的日誌
7、一些特徵性的請求

sqlmap的WAF探測請求

8、同源分析(對於個人能力要求比較高)
惡意程式碼分析是檢測和防範惡意程式碼的重要基礎。在反病毒領域的實際應用中,除了分析惡意程式碼的各種外部表現,還關心惡意程式碼在同源演化方面的內在特性,包括惡意程式碼從何而來、如何發展變化以及相互之間的關係等。
目前僅有少量專門針對惡意程式碼同源與演化分析技術的研究。
對惡意程式進行反彙編之後,從命令序列、字串序列提取出一段特徵碼作為特徵,提取篩選出相同的特徵碼,挑選一些加密演算法程式碼作為特徵碼,可以使用Bindiff來比較已有樣本相似的程式碼片段,找到相似度較高且不是系統API的函式。
優先選取Blocks數較多、匹配指令數較多的函式,降低誤報的機率,分析時。除此之外,也可以使用一些自動化提取yara規則的工具可以使用,
比如yargen:https://github.com/Neo23x0/yarGen
提取出來的惡意程式的特徵碼,可以在VT上進行關聯,來追蹤相似攻擊元件。
Virustotal的使用
VirusTotal,是一個提供免費的可疑檔案分析服務的網站,可以通過多種反病毒引擎掃描檔案使用多種反病毒引擎對您所上傳的檔案進行檢測,以判斷檔案是否被病毒,蠕蟲,木馬,以及各類惡意軟體感染。
VirusTotal每15分鐘更新一次病毒資料庫,可以實時提供最新的反病毒引擎以檢測出大部分可能的威脅。
同時可以篩選出相同的特徵碼片段樣本,在搜尋框搜尋之後可以對比往期相關樣本本的活躍,開啟詳細資訊可以檢視是什麼組織開發並使用的攻擊元件,通過這種方式可以關聯出該組織所使用的攻擊元件。
最後將yara規則新增到hunting中,一旦virustotal捕獲到新的樣本符合這條規則,就會立刻通知我們。

三丶對於挖礦病毒我想說的幾個點

針對於我們大批量伺服器的日誌分析工作,可能會碰到比較多的挖礦病毒,現在的挖礦病毒種類多,載入方式多,這裡簡單總結幾個點

1丶挖礦病毒是怎麼進入到伺服器的

大多數挖礦病毒進入到伺服器都是不是特意針對性的,一般都是利用現成的攻擊包程式,對網路上所有的IP地址進行掃描攻擊,然後在目標機器執行自己構造好的攻擊載荷,就可達到快速傳播木馬的目的,由於挖礦木馬的特點是利用快速控制大量肉雞組建挖礦網路進行計算,而不需要選取特定的目標,所以大多數的挖礦病毒都是批量進行的,通過一些常用的web漏洞,系統漏洞,弱口令,還有一些比較少見的0day,Nday,以及檔案捆綁,下載器等等。

2丶挖礦病毒的特徵

一般伺服器感染到挖礦病毒後,伺服器會超負荷運轉,主要表現在CPU的使用率上。挖礦病毒執行後需要連線挖礦池,這裡肯定是有外連的。挖礦病毒在執行時,因佔用大量系統資源,造成系統卡頓後容易被察覺,所以會使用偽裝成系統檔案、無檔案持久化等技術保護自身。

挖礦病毒的套路特徵參考文章:

https://zhuanlan.zhihu.com/p/164557943

3丶針對無檔案落地的powershell馬

之前碰到過一些沒有檔案落地,通過在Powershell中嵌入PE檔案載入的形式,達到執行“無檔案”形式挖礦攻擊。挖礦木馬執行方式沒有檔案落地,直接在Powershell.exe程式中執行,這種注入“白程式”執行的方式可能造成難以檢測和清除惡意程式碼。在感染機器上安裝計劃任務,通過計劃任務啟動Powershell攻擊模組(無檔案落地),Powershell攻擊模組包含利用 “永恆之藍”漏洞攻擊、弱口令爆破+WMIC、 Pass the hash攻擊程式碼。在攻陷的機器上執行Payload安裝計劃任務,上傳檔案到啟動目錄,相應的Payload執行後繼續進行下一輪感染。

在windows下檢視某個執行程式(或程式)的命令列引數
使用下面的命令:

wmic process get caption,commandline /value

如果想查詢某一個程式的命令列引數,使用下列方式:

wmic process where caption=”xxx.exe” get caption,commandline /value

這樣就可以得到程式的可執行檔案位置等資訊。

這樣可以檢視powershell的執行命令

下面這個是我之前碰到的一個powershell挖礦馬

https://blog.csdn.net/weixin_44578334/article/details/107438038


四、寫報告時注意的點 

1、不一定惡意IP的請求就是攻擊行為
2、相同的payload在不同的IP請求,可以將其劃分同一人
3、部分IP的請求量較低,但存在惡意行為,可能為真實IP(具體可從漏掃成功的地方去跟蹤)
4、日誌中並無同一地理位置的兩個IP同一一個時間區間出現,大概率是可以說是同一人所為
5、查詢大量IP,發現威脅情報大多是撞庫攻擊。這些地址可能不是來自攻擊團隊,而是來自網際網路上的掃描

6丶有些挖礦病毒的程式裡面不會直接連線,而是通過載入器的方式載入一串加密程式碼來連線挖礦池,不要因為查殺不到病毒就判斷伺服器是安全的。

五丶總結

我瞭解的日誌流量分析溯源是比較有規章順序的一套流程,從取證到溯源,但是針對於目前我們流量日誌分析的方式,我感覺還是有很多侷限性的,有很多的特徵以及排查都是需要登入到伺服器才能更有效快速的解決發現問題,這個也是出於客戶環境的原因,對於流量分析溯源人員的許可權問題也是對溯源工作的

相關文章