下面是我結合網上論壇以及個人的一些想法針對日志分析溯源的個人理解
現階段大部分企業都會上日志審計設備,在配上流量分光,還有各類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的使用率上。挖礦病毒執行后需要連接挖礦池,這里肯定是有外連的。挖礦病毒在運行時,因占用大量系統資源,造成系統卡頓后容易被察覺,所以會使用偽裝成系統文件、無文件持久化等技術保護自身。
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的運行命令
四、寫報告時注意的點
1、不一定惡意IP的請求就是攻擊行為
2、相同的payload在不同的IP請求,可以將其劃分同一人
3、部分IP的請求量較低,但存在惡意行為,可能為真實IP(具體可從漏掃成功的地方去跟蹤)
4、日志中并無同一地理位置的兩個IP同一一個時間區間出現,大概率是可以說是同一人所為
5、查詢大量IP,發現威脅情報大多是撞庫攻擊。這些地址可能不是來自攻擊團隊,而是來自互聯網上的掃描
6丶有些挖礦病毒的程序里面不會直接連接,而是通過加載器的方式加載一串加密代碼來連接挖礦池,不要因為查殺不到病毒就判斷服務器是安全的。
五、總結
我了解的日志流量分析溯源是比較有規章順序的一套流程,從取證到溯源,但是針對于目前我們流量日志分析的方式,我感覺還是有很多局限性的,有很多的特征以及排查都是需要登錄到服務器才能更有效快速的解決發現問題,這個也是出于客戶環境的原因,對于流量分析溯源人員的權限問題也是對溯源工作的。
更多關于“網絡安全培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學,課程大綱緊跟企業需求,更科學更嚴謹,每年培養泛IT人才近2萬人。不論你是零基礎還是想提升,都可以找到適合的班型,千鋒教育隨時歡迎你來試聽。