惡意代碼簡介
概述
類型
二進制代碼、腳本語言、宏語言等
表現形式
病毒、蠕蟲、後門、木馬、勒索軟件、僵屍網絡、流氓軟件、啓動器、下載器、內核嵌套等
平臺
dos、windows、linux、mac os
傳播方式
移動介質(U盤、移動硬盤、光盤)
利用U盤自動播放功能(win默認開啓自動播放)
DLL劫持(例如lpk.dll)
文件
文件感染
軟件捆綁(強制安裝、默認安裝)
網絡傳播
釣魚郵件
即時通信
共享目錄(勒索軟件感染共享目錄下文件)
網絡下載
ftp下載惡意文件
P2P下載
漏洞
系統漏洞(示例:windows快捷方式漏洞:震網病毒Stuxnet)
軟件漏洞
協議漏洞(示例:SMB協議:WananCry勒索軟件)
服務漏洞(示例:IIS服務:紅色代碼)
感染依附性
不感染依附型病毒(後門)
不感染獨立型病毒(單純的木馬)
感染依附型病毒(傳統計算機病毒)
感染獨立型病毒(蠕蟲)
實現技術
加載方式
註冊表啓動
Run鍵
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
RunOnce鍵
RunServicesOnce鍵
RunServices鍵
RunOnceEx鍵
load鍵
Winlogon鍵
系統服務
惡意代碼將本身登記爲系統服務,並設定啓動方式爲自動,系統啓動時,惡意代碼被當成系統服務啓動從而實現加載
優點:隱蔽性強,權限較高
隨文件執行
感染
捆綁
修改文件關聯、配置文件(修改win.ini、system.ini、autorun.ini等文件、將啓動程序配置爲惡意軟件,利用文件加載順序優先本目錄後環境變量目錄)
BootKit
經過感染MBR(磁盤主引導記錄),實現繞過內核檢查和啓動隱身,即內核劫持。不依靠文件載體,完整存在於註冊表,依靠bootkit在操做系統啓動時執行,穿透了安全產品以文件爲檢測對象的機制,也穿透了相關基於白名單和可信計算的解決方案
開始菜單中的啓動項
當前用戶
C:\Documents and Settings\用戶名\[開始]菜單\程序\啓動
C:\Users\Current user\AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup
全部用戶
C:\Documents and Settings\All Users\[開始]菜單\程序\啓動
C:\Users\All Users\AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup
計劃任務
優勢:隱蔽性好、觸發設置靈活
隱藏技術
進程隱藏
進程迷惑
1.假裝系統進程(System1.exe/Kernel.exe/Svch0st.exe/Svchosts.exe/Windows.exe)
2.同名不一樣路徑的進程
進程注入(優點:無進程、隱蔽性強、清除難度大)
1.DLL注入
2.直接注入
進程替換
1.可執行文件重寫到一個運行進程的內存空間、將惡意代碼假裝成一個合法進程、不會產生DLL注入崩潰的危險。惡意代碼得到進程相同特權級。
APC注入
1.windows異步過程調用(APC)
網絡隱藏
端口複用
重複利用系統網絡打開的端口傳送數據、能夠欺騙防火牆、少開端口
反向連接
惡意代碼(被控端)主動鏈接控制端
系統隱藏
隱藏文件、隱藏後綴
流文件隱藏
Hook技術(系統鉤子)
鉤子機制容許應用程序截獲處理windows消息或特定事件
在目標窗口處理消息前處理它
步驟:
設置系統鉤子,Hook文件及進程操做API
添加須要過濾得文件或進程
自我保護
進程守護
檢測對抗
反動態調試
校驗和,發現調試(動態調試:下斷點、單步進行、更改了源程序、校驗和改變)
觸發異常(動態調試:調試器接管異常、而不是本來的惡意代碼本身處理異常)
檢測運行環境(虛擬機(序列號、網卡、磁盤等)、沙箱、調試器、盤符)
檢測標誌位(PEB結構中有字段表示是否被調試狀態)
反靜態調試
加殼(對惡意代碼可執行二進制程序壓縮,使其執行流程變化)
加密(隨着加密密鑰的變化,惡意代碼會產生不一樣的表現形式,提高了抗靜態分析能力)
代碼混淆(經過插入僞指令、混淆程序數據和控制流等方法,防止靜態分析和檢測)
惡意代碼分析技術
靜態分析基礎技術:PE工具介紹、hash、VT多引擎掃描、字符串
動態行爲分析技術:動態監測工具(沙箱、進程監視)使用、常見惡意代碼行爲
靜態分析高級技術:X86彙編指令、IDA使用
動態分析高級技術:OllyDbg、Windbg使用、對抗動態反調試
經驗
惡意代碼分析不陷入細節、帶着目標去分析、關注特定功能、主要功能的危害、進入細節前判斷是否有必要
不一樣類型樣本使用不一樣工具