惡意代碼簡介

惡意代碼簡介

概述

類型

二進制代碼、腳本語言、宏語言等

表現形式

病毒、蠕蟲、後門、木馬、勒索軟件、僵屍網絡、流氓軟件、啓動器、下載器、內核嵌套等

平臺

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使用、對抗動態反調試

經驗

惡意代碼分析不陷入細節、帶着目標去分析、關注特定功能、主要功能的危害、進入細節前判斷是否有必要
不一樣類型樣本使用不一樣工具
相關文章
相關標籤/搜索