2017年11月21日 星期二

防毒軟體整體架構分析與免殺繞過 (六)

防毒軟體整體架構分析與免殺繞過 (六)

設定模組

這個模組幾乎每個防毒軟體都具備,因為人性化的要求,不然客戶不會購買。

他要調用的api一堆,但整體寫起來並不複雜,只要跟對應的接口全部接合即可。

1.時間
2.連線
3.基本指令
4.組態
5.掃描深度解毒處理
6.沙盒

---------------------------------------------------------------------------------

這六大項都是可直接寫入模組內

時間組態   掃描時間長短
連線組態   病毒樣本傳送及反間諜措施
基本指令   基本的開關機
掃描組態   掃描程度處理與解毒情況
沙盒組態   動態處理元件

--------------------------------------------------------------------------------

所有模組都說明完成


如果還有問題,請下面留言給本編。



防毒軟體整體架構分析與免殺繞過 (七)








防毒軟體整體架構分析與免殺繞過 (五)

防毒軟體整體架構分析與免殺繞過 (五)

網路模組

這篇其實很簡單,不用一下子就能理解。

這個模組用途很大,但是要調用的API比較少。

------------------------------------------------------------------------

他要調用的資源是偵測資源,全面的網路監測,包含一堆認證機制

他的偵測範圍是,電腦的任何軟體的任何對外連線,全面監控,為了保障安全才監控,並非取得個人資料。 (但在本小編眼中,市面上防毒大廠都會騙人,我完全不信任何一間房毒公司的產品)

再來就是他裡面含有通訊模組,這個小模組裡面都有跟該公司的通訊加密機制
不受任何干擾,這些加密都是極強的機制,非常不易被破解,保證跟公司的連線安全。

當然,如果這種加密機制被破解,那麼該防毒公司就要負起國際責任

內部還有一個就是更新模組,時間到了之後,或是伺服器發布更新後,防毒會收到更新要求,使用者就會注意到已經有新的定義檔可以更新,這時候就會呼叫到此模組開始執行更新。

-----------------------------------------------------------------------------------------

網路模組也要有反間諜的作用,當有間諜入侵,網路模組也要立刻反應,訊號必須阻斷。


下一篇繼續說明設定模組,這就不需要很強硬的技術了。


請各位多加關注~~



防毒軟體整體架構分析與免殺繞過 (六)







防毒軟體整體架構分析與免殺繞過 (四)

防毒軟體整體架構分析與免殺繞過 (四)

沙盒模組

沙盒模組應該各位都不陌生,大家都玩過虛擬機,那沙盒的定義就是虛擬機的意思。

把程式關進沙盒讓他執行。

市面上有名的VMware與VirtualBox,兩者都是能把作業系統關在內部讓他執行,本機電腦不受任何影響。

防毒的最後防線就是沙盒模組。

把逆向分析後的檔案,做最後一次的分析,丟入沙盒裡面執行,如果檔案企圖竄改作業系統的某些功能,或是收集個人資料,利用後門的連結,把資料往外傳送,那這時候防毒軟體就立刻執行殺毒。

----------------------------------------------------------------------------------------------

沙盒模組開始執行之前,會調用作業系統所有的API接口,讓檔案能夠去執行

經過完全分析完成執行檔所有內容之後,當防毒判斷為無害檔案,即會放行檔案正常執行。

有些是可以無檔案來繞過沙盒,利用網址當參數來傳遞指令,再用指令下載一些惡意的檔案,這些檔案看起來都是無害的,但是這都是繞過沙盒的辦法。

-----------------------------------------------------------------------------------------------

無檔案的惡意程序已經能夠開始量化,更讓分析師頭大。要解決可能要花很長的時間。



沙盒模組寫起來很困難,但是理解這個原理非常容易。


下一篇會說明網路模組,很簡單。


請各位多加關注~~



防毒軟體整體架構分析與免殺繞過 (五)








防毒軟體整體架構分析與免殺繞過 (三)

防毒軟體整體架構分析與免殺繞過 (三)

逆向分析模組

此模組可能具備了兩種及各家公司的獨門分析多種模式。

因此這個模組不只兩種模式。

1.動態分析

各位皆知,人工分析使用的就是ollydbg 或是x64dbg以及其他像是immunity debugger
這都是動態分析軟體,需要人工操作。

2.靜態分析

以不干擾原執行檔為前提進行反組譯逆向分析,像是IDA pro這種軟體,也是需要人為判斷
這樣就不會因為誤觸F9而讓他執行。比較安全的分析方式。

兩大分析模式,同樣都有一個共通點。

這個共通點核心就是,亂碼轉16進位(機械碼)機械碼再轉組合語言

--------------------------------------------------------------------------------------------

動態分析

把檔案用Ollydbg開啟,OD會載入執行檔內部的所有資料

Ollydbg的使用者介面
左上角的大視窗組合語言區塊是主程序Module的區塊,使用一般的記事本開啟,就是不可讀的亂碼。
右上角的區塊,就是運算暫存器的區塊,這邊是負責搬運位址數值傳遞訊號的地方。
左下角的是,他能觀察到目前程序在運作裡面的所有資訊以及他的相關的dump資訊
右下角的是堆疊,能在分析時候立刻看到他的資料位址資料狀態,這區塊能夠與右上角相互觀察程序動向。有新的改變時候,右上角能夠看出全部的資料流動狀態

當然,可以這麼說,左下角與右下角的區塊是互相吻合的。
只是右下角直接縮減龐大的16進位,並整合了資料dump資訊與組合語言暫存器資訊流動的目前狀態。

-------------------------------------------------------------------------------------------

靜態分析

IDA靜態分析工具,舉世皆知,他也是運用相同方式去做處理,他的module觀察方式跟OD不太相同,當然這個工具功能也比OD來得更強大。
具備了圖形化的分析方式,也具備了高級還原程式碼的工具,但不可能真的還原回原始碼。

更多的靜態分析,請各位自行上網搜尋。

--------------------------------------------------------------------------------------------

病毒分析師的工作

很多人都看過分析師的桌上有兩台到三台的桌上型電腦,他主要就是需要一邊觀察程式碼,一邊觀察所有資訊與對外網路的連線狀態。
再來就是觀察完病毒的反應後,開始進行反病毒的程式碼撰寫,這個過程,就是常常嘴上說的"一鍵修復"。
一般的分析師一天可以撰寫"大約100個左右"反病毒定義檔,所以一間防毒公司不只有少數幾個擔任分析師。因為外界的病毒太多太多了。

當然,要有一定程度的分析能力,才可以自行的去解決在遭受病毒侵害後的還原操作過程

當然,做這行業的薪水肯定是非常高的。

再寫完之後,會把提取出來的特徵碼丟到伺服器進行客戶端更新。

----------------------------------------------------------------------------------------------

******總而言之逆向模組就是那間公司的分析師的技術精華。******

逆向模組困難的原因其實是在分析的正確和技術,不僅要快速,耗能也要極小,技術也要夠高端。


這個逆向技術不是每間公司都一樣再次強調~  有好有壞,這是公司技術不同導致。



下一篇會繼續說明稍難的沙盒模組



請各位多加關注



防毒軟體整體架構分析與免殺繞過 (四)






防毒軟體整體架構分析與免殺繞過 (二)

防毒軟體整體架構與免殺繞過 (二)

掃描模組

偵測在電腦內部的所有槽數,進行讀取

各種各樣的檔案都會被掃描到,隱藏的檔案也一樣,包含捷徑檔

壓縮檔的掃描方式我認為滿有趣的。

掃描壓縮檔  前提-----------------------------------------
想當然各位都知道winrar與其他解壓縮軟體

一般的壓縮軟體可以把檔案解壓與加壓

防毒也不例外,但是他們公司有它們自己的作法

利用開源的解壓加壓技術去深入掃描,或是利用自己獨門的解壓技術去掃描。

-----------------------------------------------------------------

壓縮檔的掃描法(與逆向分析相關)

一個經過壓縮的檔案被防毒讀入
防毒使用自家獨門技術把檔案像解壓軟體一樣,把檔案打開
即可發現內部的檔案,在把裡面的檔案完全掃描過一次

分析過之後,發現到的惡意檔案,立即從內部強制移除

有些防毒是連根拔起,就是整個壓縮檔刪除

有些是保留其他正常無害的檔案

那麼可以保留正常的檔案這個防毒軟體,大概的做法就是
該檔案在壓縮檔內都有一定的格式,把壓縮檔用自家的類似16進位編輯程序去開啟

那當防毒判定了內部的某處16進位為某個惡意檔案,就把這段的16進位刪除,再做一些壓縮檔的屬性修改,讓使用者看起來感覺在壓縮檔裡面惡意檔案被刪除了,事實就是如此

但是一些經過加密的壓縮檔,拿給防毒掃描。防毒因為沒有加密的鑰匙,所以無法進行掃描及後續的拆解

---------------------------------------------------------------------------------------------------

掃描模組可以被分成很多個同樣的程序,進行掃描
此模組不僅可以掃描槽,也可以掃描到記憶體啟動區

每個電腦啟動都會經過BIOS調整以及載入開機必要的執行碼
這些都是防毒程式必要的掃瞄地方

一般使用者可能體會到掃描程序的資源占用電腦1%~5%
不要小看%數,因為這樣會讓使用者感覺電腦變得緩慢,必須要把原始碼重寫,甚至優化。

---------------------------------------------------------------------------------

原始碼的優化

如果會逆向分析的人,幾乎都知道堆疊是什麼。
變數運用的必須很少避免佔用到堆疊堆疊量一旦變大相對的參數必須運用的很多同時也必須考慮到是否會有緩衝溢出假設存在緩衝溢出那麼將會讓駭客有機會RCE(遠端執行任意指令)

定義檔在引入之後,需要開發者手動改寫,多餘的程式碼刪除,甚至改寫。這也就是自定義檔

優化主要的就是精簡、精簡、再精簡。

---------------------------------------------------------------------------------

掃描迴圈

迴圈不能寫死!!!

一旦寫了無窮迴圈,下場很慘!
不停的重複無止盡的跑,槽數因此當機。

迴圈的原本意義在於各個資料夾的探勘,寫死的話,會無限探勘,電腦資源隨之暴漲。

之後調用的API無法中斷,迴圈內的運算數字直線往上增加,最後緩衝溢出,電腦就崩潰了。

----------------------------------------------------------------------------------

光是優化就是要看開發者的頭腦了。

這就要靠底層與組合語言的交互運作來執行。



掃描模組,主要的功能就是迴圈。

掃描模組要理解其實不難,幾個觀念下手大概就知道如何運作了。



下一篇會講解比較難的逆向分析結構


其他比較難的就是只有逆向分析模組沙盒模組


請各位多加關注。



防毒軟體整體架構分析與免殺繞過 (三)





Ollydbg 2.01 繁體中文版

Ollydbg 2.01 繁體中文版 Ollydbg 2.01 繁體中文版下載: Mega:   https://mega.nz/#!I2Qy1aQD!-T5zO3PaANjBHU73I4NlkY8SHMxRptbBV8TpmeFt1fo GD: h...