惡意代碼的英文是Malicious Code, 它是一種違背目標系統安全策略的程序代碼,會造成目標系統信息泄露、資源濫用,破壞系統的完整性及可用性。惡意代碼生存技術包括:
反跟蹤技術
惡意代碼靠采用反跟蹤技術來提高自身的偽裝能力和防破譯能力,使檢測與清除惡意代碼的難度大大增加。反跟蹤技術大致可以分為兩大類:反動態跟蹤技術和反靜態分析技術。
加密技術
加密技術是惡意代碼進行自我保護的手段之一,再配合反跟蹤技術的使用,讓分析者不能正常調試和閱讀惡意代碼,無法獲得惡意代碼的工作原理,自然也不能抽取特征串。從加密的內容上劃分,加密手段有 種,即信息加密、數據加密和程序代碼加密。
模糊變換技術
惡意代碼每感染一個客體對象時都會利用模糊變換技術使潛入宿主程序的代碼不盡相同。盡管是同一種惡意代碼,但仍會具有多個不同樣本,幾乎不存在穩定的代碼,只采用基于特征的檢測工具一般無法有效識別它們。隨著這類惡意代碼的增多,不但使病毒檢測和防御軟件的編寫難度加大,還會使反病毒軟件的誤報率增加。
自動生產技術
普通病毒能夠利用“多態性發生器”編譯成具有多態性的病毒。多態變換引擎能夠讓程序代碼本身產生改變,但卻可以保持原有功能。例如保加利亞的 “Dark Avenger”, 變換引擎每產生一個惡意代碼,其程序體都會發生變化,反惡意代碼軟件若只是采用基千特征的掃描技術,則無法檢測和清除這種惡意代碼。
變形技術
在惡意代碼的查殺過程中,多數殺毒廠商通過提取惡意代碼特征值的方式對惡意代碼進行分辨。這種基千特征碼的病毒查殺技術的致命缺點是需要 個特征代碼庫,同時這個庫中的代碼要具有固定性。病毒設計者利用這一漏洞,設計出具體同 功能不同特征碼的惡意代碼。這種變換惡意代碼特征碼的技術稱為變形技術。
三線程技術
惡意代碼中應用 線程技術是為了防止惡意代碼被外部操作停止運行。 線程技術的工作原理是一個惡意代碼進程同時開啟了三個線程,其中一個為負責遠程控制工作的主線程,另外兩個為用來監視線程負責檢查惡意代碼程序是否被刪除或被停止自啟動的監視線程和守護線程。注入其他可執行文件內的守護線程,同步于惡意代碼進程。只要進程被停止,它就會重新啟動該進程,同時向主線程提供必要的數據,這樣就使得惡意代碼可以待續運行。“中國黑客”就是采用這種技術的惡意代碼。
進程注入技術
在系統啟動時操作系統的系統服務和網絡服務一般能夠自動加載。惡意代碼程序為了實現隱藏和啟動的目的,把自身嵌入與這些服務有關的進程中。這類惡意代碼只需要安裝一次,就能被服務加載到系統中運行,并且可以一直處千活躍狀態。如 Windows 下的大部分關鍵服務程序能夠被 “WinEggDropShell” 注入
通信隱藏技術
實現惡意代碼的通信隱藏技術一般有四類:端口定制技術、端口復用技術、通信加密技術、隱蔽通道技術。