計算機(jī)病毒技術(shù)及其防御 課件 第3、4章-病毒分析平臺、計算機(jī)病毒誕生_第1頁
計算機(jī)病毒技術(shù)及其防御 課件 第3、4章-病毒分析平臺、計算機(jī)病毒誕生_第2頁
計算機(jī)病毒技術(shù)及其防御 課件 第3、4章-病毒分析平臺、計算機(jī)病毒誕生_第3頁
計算機(jī)病毒技術(shù)及其防御 課件 第3、4章-病毒分析平臺、計算機(jī)病毒誕生_第4頁
計算機(jī)病毒技術(shù)及其防御 課件 第3、4章-病毒分析平臺、計算機(jī)病毒誕生_第5頁
已閱讀5頁,還剩122頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

MalwarePrinciples&Prevention計算機(jī)病毒技術(shù)及其防御

ComputerVirusTechnology&ItsDefense所用教材第三章ChapterThreeComputerVirusAnalysisPlatform計算機(jī)病毒分析平臺前言PREFACE作為一種特殊的計算機(jī)程序,計算機(jī)病毒同樣具備普通程序所具有的雙重屬性:靜態(tài)代碼屬性和動態(tài)行為屬性。從靜態(tài)代碼的角度來看,計算機(jī)病毒是一種具有自我復(fù)制、感染影響其他文件的計算機(jī)程序;從動態(tài)行為的角度來看,計算機(jī)病毒在開啟執(zhí)行后會產(chǎn)生相應(yīng)的文件讀寫、注冊表讀寫、網(wǎng)絡(luò)連接、進(jìn)程加載等一系列與系統(tǒng)交互的相關(guān)動態(tài)行為。為了全面、準(zhǔn)確地了解計算機(jī)病毒,預(yù)測評估其危害性,繼而研發(fā)相應(yīng)的反病毒技術(shù),需要對其進(jìn)行全面、系統(tǒng)的分析。未經(jīng)審視分析的生活是無意義的。——古希臘·蘇格拉底1計算機(jī)病毒分析簡介目錄2計算機(jī)病毒靜態(tài)分析3計算機(jī)病毒動態(tài)分析4計算機(jī)病毒分析文檔1計算機(jī)病毒分析簡介計算機(jī)病毒簡介計算機(jī)病毒分析環(huán)境虛擬機(jī)環(huán)境創(chuàng)建計算機(jī)病毒的定義與屬性靜態(tài)代碼屬性動態(tài)行為屬性計算機(jī)病毒是一種具有自我復(fù)制、感染影響其他文件的計算機(jī)程序;計算機(jī)病毒在開啟執(zhí)行后會產(chǎn)生相應(yīng)的諸如文件讀寫、注冊表讀寫、網(wǎng)絡(luò)連接、進(jìn)程加載等一系列與系統(tǒng)交互的相關(guān)動態(tài)行為。計算機(jī)病毒(ComputerVirus)指編制者在計算機(jī)程序中插入的破壞計算機(jī)功能或者破壞數(shù)據(jù),影響計算機(jī)正常使用并且能夠自我復(fù)制的一組計算機(jī)指令或程序代碼?;A(chǔ)知識為什么需要全面分析計算機(jī)病毒?了解病毒獲得對計算機(jī)病毒更全面的認(rèn)知評估影響評估病毒入侵事件的危害性和影響研發(fā)反病毒技術(shù)助力長期的反病毒技術(shù)研發(fā)如何全面分析計算機(jī)病毒?靜態(tài)代碼分析動態(tài)行為監(jiān)視綜合分析結(jié)果提出方案在一個可控的虛擬環(huán)境中,使用相關(guān)靜態(tài)代碼分析軟件,對其進(jìn)行靜態(tài)代碼分析;在一個可控的虛擬環(huán)境中,使用相關(guān)的動態(tài)行為監(jiān)視工具軟件對病毒樣本啟動后執(zhí)行的動態(tài)操作進(jìn)行記錄;對比分析動態(tài)行為記錄和靜態(tài)代碼結(jié)果,洞悉其執(zhí)行邏輯、理解其運(yùn)行機(jī)理、評估其性質(zhì)及影響;最后,有針對性地提出殺滅清除方案。計算機(jī)病毒分析環(huán)境的要求由于計算機(jī)病毒的特殊性及可能因分析而導(dǎo)致的泄漏風(fēng)險,對于計算機(jī)病毒的分析需要搭建一個可控的虛擬環(huán)境,再在其中安裝相關(guān)的分析工具,從靜態(tài)代碼、動態(tài)行為兩方面去全面、系統(tǒng)分析計算機(jī)病毒。計算機(jī)病毒分析環(huán)境的組成系統(tǒng)環(huán)境分析工具虛擬機(jī)系統(tǒng)環(huán)境真實物理系統(tǒng)環(huán)境系統(tǒng)監(jiān)控軟件網(wǎng)絡(luò)監(jiān)控軟件系統(tǒng)分析軟件計算機(jī)病毒分析環(huán)境的組成--虛擬機(jī)系統(tǒng)環(huán)境虛擬機(jī)(VirtualMachine)是指通過軟件模擬的具有完整硬件系統(tǒng)功能的、運(yùn)行在一個完全隔離環(huán)境中的完整計算機(jī)系統(tǒng),即在當(dāng)前操作系統(tǒng)中虛擬出來的操作系統(tǒng)。通過虛擬機(jī),我們可以在一臺物理計算機(jī)上模擬多臺虛擬的計算機(jī),這些虛擬計算機(jī)所擁有的功能與我們的物理計算機(jī)幾乎沒有區(qū)別?;A(chǔ)知識

虛擬機(jī)系統(tǒng)環(huán)境Docker容器虛擬技術(shù)VMWare虛擬機(jī)VirtulBox虛擬機(jī)PowerShadow系統(tǒng)產(chǎn)品虛擬化原理功能特點(diǎn)計算機(jī)病毒分析環(huán)境的組成--虛擬機(jī)系統(tǒng)環(huán)境產(chǎn)品功能特點(diǎn)產(chǎn)品功能特點(diǎn)VMware虛擬機(jī)系統(tǒng)簡介VMWare是一家美國的虛擬軟件提供商,也是全球最為著名的虛擬機(jī)軟件公司,目前為EMC公司的全資子公司,成立于1998年。VMWare的產(chǎn)品包括:VMWareWorkstation、VMWarePlayer、VMWare服務(wù)器、VMWareESX服務(wù)器、VMWareESXi服務(wù)器、VMWare

vSphere、虛擬中心(VirtualCenter)等。VMware虛擬機(jī)系統(tǒng)簡介VMWare虛擬機(jī)是一個虛擬PC軟件,它使一臺物理主機(jī)同時運(yùn)行二個或更多Windows、DOS、LINUX系統(tǒng)。VMWare虛擬機(jī)上的系統(tǒng)切換就像標(biāo)準(zhǔn)Windows應(yīng)用程序切換那樣簡單。當(dāng)從GuestOS切換到HostOS屏幕之后,系統(tǒng)將自動保存GuestOS上運(yùn)行的所有任務(wù),以避免由于HostOS的崩潰,而損失GuestOS應(yīng)用程序中數(shù)據(jù)。而且每個操作系統(tǒng)都可以進(jìn)行虛擬的分區(qū)、配置而不影響真實硬盤的數(shù)據(jù),甚至可以通過網(wǎng)卡將幾臺虛擬機(jī)用網(wǎng)卡連接為一個局域網(wǎng),極其方便。VMware虛擬機(jī)原理VMware虛擬機(jī)系統(tǒng)簡介(1)不需要分區(qū)或重啟就能在同一臺PC上使用兩種以上的操作系統(tǒng);(2)完全隔離并且保護(hù)不同OS的操作環(huán)境以及所有安裝在OS上面的應(yīng)用軟件和資料;(3)不同的OS之間還能互動操作,包括網(wǎng)絡(luò)、周邊、文件分享以及復(fù)制粘貼功能;(4)有還原(Undo)功能;(5)能夠設(shè)定并且隨時修改操作系統(tǒng)的操作環(huán)境,如:內(nèi)存、磁盤空間、周邊設(shè)備等。VMware虛擬機(jī)功能VirtulBox虛擬機(jī)系統(tǒng)簡介2007年1月,InnoTek公司以GNU通用公共許可證(GPL)發(fā)布VirtualBox而成為自由軟件,并提供二進(jìn)制版本及開放源代碼版本的代碼。2008年2月,InnoTek公司為Sun公司并購。2010年1月,Oracle公司完成對Sun公司的收購后,VirtualBox被更名為OracleVMVirtualBox,是Oracle公司xVM虛擬化平臺技術(shù)的一部份。VirtualBox可使用戶在32位或64位Windows、Solaris及Linux操作系統(tǒng)上虛擬其它x86操作系統(tǒng)。用戶可以在VirtualBox上安裝并且運(yùn)行Solaris、Windows、DOS、Linux、OS/2Warp、OpenBSD及FreeBSD等系統(tǒng)作為客戶端操作系統(tǒng)。VirtulBox虛擬機(jī)系統(tǒng)簡介與同性質(zhì)的VMware及VirtualPC比較下,VirtualBox獨(dú)到之處包括遠(yuǎn)程桌面協(xié)議(RDP)、iSCSI及USB的支持,VirtualBox在客戶機(jī)操作系統(tǒng)上已可以支持USB2.0的硬件設(shè)備,不過要安裝VirtualboxExtensionPack。VirtulBox虛擬機(jī)系統(tǒng)簡介VirtulBox虛擬機(jī)功能(1)支持64位客戶端操作系統(tǒng),即使主機(jī)使用32位CPU。(2)支持SATA硬盤NCQ技術(shù)。(3)虛擬硬盤快照。(4)無縫視窗模式(須安裝客戶端驅(qū)動)。(5)能夠在主機(jī)端與客戶端共享剪貼板(須安裝客戶端驅(qū)動)。(6)在主機(jī)端與客戶端間創(chuàng)建共享文件夾(須安裝客戶端驅(qū)動)。(7)內(nèi)置遠(yuǎn)程桌面服務(wù)器。(8)支持VMwareVMDK磁盤文件及VirtualPCVHD磁盤文件格式。(9)3D虛擬化技術(shù)支持OpenGL(2.1版后支持)、Direct3D(3.0版后支持)、WDDM。(10)最多虛擬32顆CPU(3.0版后支持)。(11)支持VT-x與AMD-V硬件虛擬化技術(shù)。(12)iSCSI支持、USB與USB2.0支持。PowerShadow影子系統(tǒng)PowerShadow影子系統(tǒng),是北京堅果比特科技有限公司(EnsurebitSoftwareInc.)推出的安全防護(hù)軟件。PowerShadow影子系統(tǒng)簡介powershadow原理PowerShadow影子系統(tǒng)能實時生成在本機(jī)硬盤分區(qū)的一個影子,我們稱它為“影子模式”。影子模式和正常模式具有完全相同的結(jié)構(gòu)和功能,用戶可以在影子系統(tǒng)內(nèi)做任何在正常系統(tǒng)內(nèi)能做的一切事情。在正常模式和影子模式之間的實質(zhì)的差別是:一切在影子模式內(nèi)的操作,包括下載的那些文件,生成的文件資料或者更改的設(shè)定都會在退出影子模式時完全消失。影子模式可以絕對地保護(hù)電腦內(nèi)的所有數(shù)據(jù)并清除操作留下的任何痕跡。分析工具系統(tǒng)監(jiān)控工具網(wǎng)絡(luò)監(jiān)控工具系統(tǒng)分析工具XiaoMing計算機(jī)病毒分析環(huán)境的組成--分析工具程序行為監(jiān)控聯(lián)網(wǎng)行為監(jiān)控程序綜合分析計算機(jī)病毒分析環(huán)境的組成--分析工具名稱用途系統(tǒng)監(jiān)控軟件ProcessMonitor系統(tǒng)進(jìn)程監(jiān)視軟件,相當(dāng)于Filemon+Regmon,可監(jiān)控文件、注冊表、進(jìn)程等行為ProcessExplorer系統(tǒng)進(jìn)程監(jiān)視軟件,已經(jīng)并入ProcessMonitorRegshot注冊表快照比較工具網(wǎng)絡(luò)監(jiān)控工具TCPView端口和線程查看工具Wireshark網(wǎng)絡(luò)數(shù)據(jù)包捕獲與分析工具系統(tǒng)分析軟件Stud_PE查看和修改EXE、DLL等PE文件的可視化工具FinalRecovery數(shù)據(jù)恢復(fù)工具WinHex通用十六進(jìn)制編輯器,用于計算機(jī)取證、數(shù)據(jù)恢復(fù)、低級數(shù)據(jù)處理等IDAPro可編程、可擴(kuò)展的交互式多處理器反匯編程序WinDBGWindows系統(tǒng)中強(qiáng)大的內(nèi)核態(tài)調(diào)試工具計算機(jī)病毒靜態(tài)分析靜態(tài)分析簡介反病毒引擎掃描查找字符串加殼與混淆PE文件格式檢測鏈接庫與函數(shù)2計算機(jī)病毒靜態(tài)分析簡介定義目標(biāo)不執(zhí)行計算機(jī)病毒的情況下,對計算機(jī)病毒代碼和結(jié)構(gòu)進(jìn)行分析,以便理解其功能、發(fā)現(xiàn)其缺陷。靜態(tài)代碼分析側(cè)重于計算機(jī)病毒代碼指令與結(jié)構(gòu)功能的探究,是通過分析程序指令與結(jié)構(gòu)來確定功能的過程,旨在宏觀了解計算機(jī)病毒全貌與微觀理解計算機(jī)病毒指令結(jié)構(gòu)與功能?;A(chǔ)知識

計算機(jī)病毒靜態(tài)分析簡介主要工作分析方法可借助反病毒引擎掃描識別計算機(jī)病毒家族和變種名,通過逆向工程分析計算機(jī)病毒代碼模塊構(gòu)成、內(nèi)部數(shù)據(jù)結(jié)構(gòu)、關(guān)鍵控制流程等以理解計算機(jī)病毒內(nèi)在機(jī)理,并可提取相關(guān)特征碼用于計算機(jī)病毒檢測防御。反病毒引擎掃描、病毒數(shù)字指紋識別、字符串查尋、加殼與混淆檢測、鏈接庫及函數(shù)發(fā)現(xiàn)、PE文件格式分析、反匯編逆向分析等計算機(jī)病毒靜態(tài)分析方法--(1)反病毒引擎掃描反病毒引擎是一種計算機(jī)程序或算法,旨在檢測、分析和清除計算機(jī)系統(tǒng)中的惡意軟件、病毒、間諜軟件和其他惡意代碼。它是計算機(jī)安全軟件中的重要組成部分,當(dāng)計算機(jī)上的文件或程序被掃描時,反病毒引擎會根據(jù)其內(nèi)部的病毒定義數(shù)據(jù)庫進(jìn)行比對,以確認(rèn)是否存在已知的病毒或惡意代碼?;A(chǔ)知識

反病毒引擎掃描,是利用多種反病毒引擎來確認(rèn)計算機(jī)病毒樣本的惡意性。一般通過在線掃描站點(diǎn)上傳樣本文件,然后在線站點(diǎn)會調(diào)用多個反病毒引擎對上傳樣本進(jìn)行掃描,最終生成掃描評估報告,以幫助確定該樣本是否為計算機(jī)病毒樣本。計算機(jī)病毒靜態(tài)分析方法--(1)反病毒引擎掃描常用在線病毒掃描引擎1)VirusTotal2)VirSCAN3)微步在線云沙箱4)騰訊哈勃分析系統(tǒng)計算機(jī)病毒靜態(tài)分析方法--(1)反病毒引擎掃描一般在掃描完成后,會生成包括基本信息、關(guān)鍵行為、進(jìn)程行為、文件行為、網(wǎng)絡(luò)行為、注冊表行為及其他行為等在內(nèi)的病毒分析報告,有利于總體了解該病毒樣本文件的相關(guān)信息。VirusTotalVirusTotal不僅可掃描文件和URL,還可對網(wǎng)站、IP和域名進(jìn)行搜索分析。VirusTotal網(wǎng)址:/gui/home/uploadVirSCANVirSCAN支持任何文件,但文件大小限制在20MB以內(nèi);支持RAR或ZIP格式的自動解壓縮,但壓縮文件中不能包含超過20個文件。VirSCAN網(wǎng)址:https://www.virscan.org/微步在線云沙箱微步在線云沙箱不僅可分析文件,還可分析URL鏈接。如用郵箱注冊一個賬號,該賬號會保存所有的歷史分析記錄以便后續(xù)查詢。微步在線云沙箱網(wǎng)址:/騰訊哈勃分析系統(tǒng)騰訊哈勃分析系統(tǒng)支持多種文檔格式的分析,包括各種壓縮包、Office文檔、EXE可執(zhí)行文件等。該分析系統(tǒng)需要以QQ號登陸,最大支持30MB的文件上傳分析。騰訊哈勃分析系統(tǒng)網(wǎng)址:/字符串中包含很多與計算機(jī)病毒功能相關(guān)的重要提示信息,如輸出的消息、連接的URL、內(nèi)存地址、文件路徑、注冊表鍵值等。計算機(jī)病毒靜態(tài)分析方法--(2)查找字符串字符串定義:計算機(jī)病毒程序中的可打印字符序列。計算機(jī)病毒靜態(tài)分析方法--(2)查找字符串用于查尋字符串的工具很多,可使用微軟的SysinternalsSuite工具包中的Strings程序即可查尋計算機(jī)病毒樣本文件中的字符串。SysinternalsSuite工具包:/zh-cn/sysinternals/downloads/sysinternals-suite代碼混淆亦稱花指令,是將計算機(jī)程序的代碼,轉(zhuǎn)換成一種功能上等價,但是難于閱讀和理解的形式的行為,也是計算機(jī)病毒用以隱匿自身特征規(guī)避逆向分析的一種免殺技術(shù)。計算機(jī)病毒靜態(tài)分析方法--(3)加殼與混淆計算機(jī)病毒靜態(tài)分析方法--(3)加殼與混淆PEiD是一款用于檢測加殼或混淆的工具,在識別出加殼器后,再使用相應(yīng)的脫殼工具進(jìn)行脫殼處理,之后就可進(jìn)行正常的逆向分析。計算機(jī)病毒靜態(tài)分析方法--(4)PE文件格式檢測PE(PortableExecutable)文件格式,是Windows系統(tǒng)可執(zhí)行文件、對象代碼和DLL所使用的標(biāo)準(zhǔn)格式。PE文件格式其實是一種數(shù)據(jù)結(jié)構(gòu),包含代碼信息、應(yīng)用程序類型、所需庫函數(shù)與空間要求等信息。計算機(jī)病毒靜態(tài)分析方法--(4)PE文件格式檢測.text包含CPU的執(zhí)行指令,是唯一包含可執(zhí)行代碼的節(jié)。.data包含程序的全局?jǐn)?shù)據(jù)(本地數(shù)據(jù)不存儲于此)。.reloc包含用于重定位文件庫的信息。.rdata通常包含導(dǎo)入導(dǎo)出的函數(shù)信息,還可存儲程序中的其他只讀數(shù)據(jù)。.rsrc包含可執(zhí)行文件使用的資源,其中的內(nèi)容并不能執(zhí)行,例如圖標(biāo)、菜單項、字符串等。其他:計算機(jī)病毒靜態(tài)分析方法--(4)PE文件格式檢測用于PE文件格式分析的工具很多,如Stud_PE工具能詳細(xì)列出可執(zhí)行文件的PE文件頭信息。計算機(jī)病毒靜態(tài)分析方法--(5)鏈接庫與函數(shù)什么是鏈接庫?鏈接庫就是指將庫文件編譯后打包為一個二進(jìn)制文件,這些二進(jìn)制文件會在程序調(diào)用的時候加載到內(nèi)存中。實際上,一個或多個源文件編譯為目標(biāo)文件后,這個文件中所引用的外部的符號需要通過鏈接來找到這部分缺失的地址。使用鏈接庫函數(shù)的方法有哪些?(1)靜態(tài)鏈接(2)運(yùn)行時鏈接(3)動態(tài)鏈接基礎(chǔ)知識

靜態(tài)鏈接運(yùn)行時鏈接動態(tài)鏈接計算機(jī)病毒靜態(tài)分析方法--(5)鏈接庫與函數(shù)--鏈接方式原理:將整個鏈接庫復(fù)制到可執(zhí)行文件中,以便程序在沒有提供該鏈接庫的機(jī)器上仍能正常運(yùn)行。特點(diǎn):靜態(tài)鏈接方法會導(dǎo)致可執(zhí)行文件體積劇增,這對計算機(jī)病毒文件來說是難以接受的。因此,計算機(jī)病毒很少會采用靜態(tài)鏈接方法調(diào)用函數(shù)。運(yùn)行時鏈接動態(tài)鏈接計算機(jī)病毒靜態(tài)分析方法--(5)鏈接庫與函數(shù)--鏈接方式原理:在程序運(yùn)行后需要使用函數(shù)時才進(jìn)行鏈接,是一種按需鏈接的函數(shù)調(diào)用方法。特點(diǎn):該方法通常使用兩個函數(shù)LoadLibrary()和GetProcAddress()訪問所需鏈接庫中的函數(shù),具有動態(tài)靈活性,能使程序文件體積最小化,因而被計算機(jī)病毒廣泛采用。靜態(tài)鏈接動態(tài)鏈接運(yùn)行時鏈接靜態(tài)鏈接計算機(jī)病毒靜態(tài)分析方法--(5)鏈接庫與函數(shù)--鏈接方式原理:指在程序加載運(yùn)行時由操作系統(tǒng)將所需的鏈接庫函數(shù)復(fù)制到用戶程序空間,以便程序使用相關(guān)函數(shù)調(diào)用。特點(diǎn):該方法不會增加程序文件大小,但會增加程序運(yùn)行時內(nèi)存空間,部分計算機(jī)病毒也會采用這種方法調(diào)用函數(shù)。計算機(jī)病毒靜態(tài)分析方法--(5)鏈接庫與函數(shù)DependencyWalker工具(/)查詢計算機(jī)病毒樣本文件的鏈接庫函數(shù)列表及父子關(guān)系計算機(jī)病毒動態(tài)分析注冊表快照對比進(jìn)程監(jiān)控程序調(diào)試監(jiān)控3計算機(jī)病毒動態(tài)分析簡介病毒動態(tài)分析,是指在受控環(huán)境中真實運(yùn)行計算機(jī)病毒樣本,并通過相關(guān)工具監(jiān)控其進(jìn)程、文件、注冊表、網(wǎng)絡(luò)等多種行為,以更深入了解計算機(jī)病毒底層邏輯與內(nèi)在機(jī)理?;A(chǔ)知識

123注冊表快照進(jìn)程監(jiān)控程序調(diào)試監(jiān)控計算機(jī)病毒動態(tài)分析方法動態(tài)分析方法的三個關(guān)注點(diǎn):注冊表是什么?注冊表是Windows系統(tǒng)中的一個核心數(shù)據(jù)庫,其中存放著各種參數(shù),直接控制著Windows系統(tǒng)的啟動、硬件驅(qū)動程序的裝載以及Windows應(yīng)用程序的運(yùn)行,從而在整個系統(tǒng)中起著核心作用。計算機(jī)病毒動態(tài)分析方法--(1)注冊表快照比對注冊表結(jié)構(gòu)基礎(chǔ)知識

計算機(jī)病毒動態(tài)分析方法--(1)注冊表快照比對注冊表的五大根鍵Regshot工具可以保存計算機(jī)病毒運(yùn)行前后兩次注冊表快照,通過計算機(jī)病毒運(yùn)行前后的注冊表比對,能更快更準(zhǔn)確地確定具體的注冊表行為。對于計算機(jī)病毒而言,Windows系統(tǒng)注冊表是其絕佳的利用場所,可借此完成諸如隱匿自身、修改自啟動項、關(guān)聯(lián)程序等多種功能。計算機(jī)病毒動態(tài)分析方法--(1)注冊表快照比對進(jìn)程行為創(chuàng)建進(jìn)程;阻塞進(jìn)程;撤銷進(jìn)程;喚醒進(jìn)程等文件行為創(chuàng)建文件、復(fù)制文件、移動文件、讀寫文件、刪除文件等注冊表行為創(chuàng)建子鍵或主鍵,讀取子鍵或主鍵,修改子鍵或主鍵,刪除子鍵或主鍵等網(wǎng)絡(luò)行為信息探測行為(如端口和漏洞掃描)、信息欺騙行為(如ARP欺騙和IP劫持)、信息淹沒行為(如SYNFlood和DDOS攻擊)、信息偽傳遞行為(溢出攻擊、IMCP木馬、HTTP隧道木馬)計算機(jī)病毒動態(tài)分析方法--(2)進(jìn)程行為監(jiān)控進(jìn)程行為監(jiān)控就是對運(yùn)行后的計算機(jī)病毒進(jìn)行動態(tài)行為分析,包括進(jìn)程行為、文件行為、注冊表行為、網(wǎng)絡(luò)行為等。計算機(jī)病毒動態(tài)分析方法--(2)進(jìn)程行為監(jiān)控微軟SysinternalsSuite工具包提供了很多系統(tǒng)監(jiān)控工具,利用ProcessMonitor能全面監(jiān)控進(jìn)程或線程創(chuàng)建行為、文件讀寫行為、注冊表讀寫行為、網(wǎng)絡(luò)連接行為等,較好地完成計算機(jī)病毒動態(tài)行為分析。為什么要進(jìn)行程序調(diào)試監(jiān)控?前述的動態(tài)行為監(jiān)控只能了解計算機(jī)病毒的具體行為,如要了解計算機(jī)病毒在運(yùn)行時的CPU內(nèi)部狀態(tài)以及為何會有這種行為,則需要對其進(jìn)行動態(tài)程序調(diào)試。計算機(jī)病毒動態(tài)分析方法--(3)程序調(diào)試監(jiān)控程序調(diào)試監(jiān)控可以獲得什么?借助程序動態(tài)調(diào)試,可洞察計算機(jī)病毒在運(yùn)行過程中的行為以及產(chǎn)生該行為的原因,可查看并修改內(nèi)存地址的內(nèi)容、寄存器的內(nèi)容及函數(shù)參數(shù)信息。調(diào)試器的分類計算機(jī)病毒動態(tài)分析方法--(3)程序調(diào)試監(jiān)控源代碼調(diào)試器匯編調(diào)試器程序調(diào)試的兩種模式計算機(jī)病毒動態(tài)分析方法--(3)程序調(diào)試監(jiān)控(1)用戶模式在用戶模式下調(diào)試計算機(jī)病毒時,病毒程序與調(diào)試器處于相同的用戶模式。用戶態(tài)調(diào)試器通過操作系統(tǒng)提供的調(diào)試接口,在操作系統(tǒng)和用戶態(tài)程序之間針對用戶態(tài)程序進(jìn)行調(diào)試,常見的有各種開發(fā)環(huán)境如VC/Delphi自帶的調(diào)試器,OllyDbg等等;(2)內(nèi)核模式需在兩個系統(tǒng)上進(jìn)行:一個系統(tǒng)運(yùn)行計算機(jī)病毒,另一個系統(tǒng)運(yùn)行內(nèi)核調(diào)試器,并通過開啟操作系統(tǒng)的內(nèi)核調(diào)試功能將這兩個系統(tǒng)進(jìn)行連接。內(nèi)核態(tài)調(diào)試器直接工作在操作系統(tǒng)內(nèi)核一級,常見的有SoftICE、WinDbg、WDEB386和i386KD等等;用戶模式調(diào)試器--OllyDbgOllyDbg是一種具有可視化界面的32位匯編分析調(diào)試器,是一個新的動態(tài)追蹤工具,將IDA與SoftICE結(jié)合起來的思想,非常容易上手,同時還支持插件擴(kuò)展功能,己成為當(dāng)今最為流行的調(diào)試工具。反匯編窗口數(shù)據(jù)窗口信息窗口寄存器窗口堆棧窗口WinDbg調(diào)試器WinDbg是一個功能非常強(qiáng)大的調(diào)試器。它支持多種調(diào)試任務(wù),如用戶態(tài)調(diào)試、內(nèi)核態(tài)調(diào)試、轉(zhuǎn)儲文件調(diào)試和遠(yuǎn)程調(diào)試。與此同時WinDbg還具有很好的靈活性和可擴(kuò)展性。雖然是一個典型的GUI應(yīng)用程序,但是它的大多數(shù)調(diào)試功能還是以手工輸入命令的方式來工作的。加載被調(diào)試程序的兩種方式計算機(jī)病毒動態(tài)分析方法--(3)程序調(diào)試監(jiān)控(1)利用調(diào)試器啟動加載被調(diào)試程序。當(dāng)程序被加載后,會暫停于其入口點(diǎn),等待接受調(diào)試器命令;(2)附加調(diào)試器到已運(yùn)行的程序上。當(dāng)調(diào)試器被附加到運(yùn)行的程序后,該程序的所有線程暫停運(yùn)行,等待調(diào)試器命令。4計算機(jī)病毒分析文檔計算機(jī)病毒樣本分析登記文檔計算機(jī)病毒樣本分析結(jié)果登記文檔計算機(jī)病毒分析報告計算機(jī)病毒分析文檔簡介為詳盡、準(zhǔn)確地記錄計算機(jī)病毒分析實驗結(jié)果,在完成計算機(jī)病毒分析平臺搭建和相關(guān)分析軟件安裝調(diào)試后,需要設(shè)計兩類格式的計算機(jī)病毒樣本記錄文檔:計算機(jī)病毒樣本分析記錄文檔計算機(jī)病毒樣本分析結(jié)果記錄文檔計算機(jī)病毒分析文檔--(1)計算機(jī)病毒樣本分析登記文檔設(shè)計目的主要內(nèi)容(1)記載計算機(jī)病毒樣本的詳細(xì)情況;(2)便于事后對計算機(jī)病毒樣本的分析。樣本名稱、樣本日期、樣本大小、樣本編號、樣本來源等信息計算機(jī)病毒分析文檔--(2)計算機(jī)病毒樣本分析結(jié)果登記文檔(1)記錄計算機(jī)病毒樣本分析結(jié)果;(2)為后續(xù)的修復(fù)方案提供參考信息。設(shè)計目的建議approach第一部分-計算機(jī)病毒概述簡述該計算機(jī)病毒樣本的基本情況、感染情況和處理情況;計算機(jī)病毒分析文檔--(3)計算機(jī)病毒分析報告第二部分-計算機(jī)病毒行為預(yù)覽主要列舉出病毒名稱、病毒類型、病毒大小、傳播方式、相關(guān)文件、病毒具體行為、感染類型、開發(fā)工具、加殼類型等有關(guān)病毒行為情況;第三部分-計算機(jī)病毒概述提出對于該病毒感染的逆向清除方法的建議概述overview行為behavior計算機(jī)病毒分析文檔--(3)計算機(jī)病毒分析報告本章回顧Reviewofthischapter123測試環(huán)境搭建分析工具安裝與配置靜態(tài)分析計算機(jī)病毒樣本動態(tài)分析計算機(jī)病毒樣本結(jié)果處理與報告生成作業(yè)簡述計算機(jī)病毒分析平臺的搭建(虛擬環(huán)境、分析工具)。2.利用反病毒引擎掃描、查找字符串、加殼與混淆、PE文件格式檢測、鏈接庫與函數(shù)等方法分析計算機(jī)病毒樣本。3.Sysinternals實用工具下載https:///zh-cn/sysinternals/downloads/Deadline:2023-10-23Email:344248003@ThankYou惡

MalwarePrinciples&Prevention計算機(jī)病毒技術(shù)及其防御

ComputerVirusTechnology&ItsDefense第四章ChapterFourBirthofComputerViruses計算機(jī)病毒誕生前言PREFACE計算機(jī)病毒是網(wǎng)絡(luò)空間中一種可能的人工生命體,其本質(zhì)仍是程序員或程序設(shè)計團(tuán)隊在某種任務(wù)驅(qū)使下編寫的一種程序代碼。因此,計算機(jī)病毒的誕生受制于程序設(shè)計過程中的個人和團(tuán)隊、經(jīng)濟(jì)、政治、軍事等多重因素。從某種意義上說,計算機(jī)病毒的誕生是技術(shù)、人性、經(jīng)濟(jì)、政治、軍事等多重因素相互交織和不斷迭代的結(jié)果。本章將從程序設(shè)計生、軟件代碼復(fù)用、病毒生產(chǎn)機(jī)、ChatGPT生成病毒等方面探討計算機(jī)病毒的誕生。忽如一夜春風(fēng)來,千樹萬樹梨花開?!啤め瘏?計算機(jī)病毒簡介目錄2程序設(shè)計生成3代碼復(fù)用4病毒生產(chǎn)機(jī)5ChatGPT生成病毒1CHAPTER計算機(jī)病毒簡介計算機(jī)病毒定義計算機(jī)病毒誕生途徑忽如一夜春風(fēng)來,千樹萬樹梨花開。--唐?岑參計算機(jī)病毒定義與誕生途徑計算機(jī)病毒是網(wǎng)絡(luò)空間中的一種可能的人工生命體,但從本質(zhì)上說則是程序員或程序設(shè)計團(tuán)隊在某種任務(wù)驅(qū)使下的一種程序代碼。因此,計算機(jī)病毒的誕生將受制于程序設(shè)計過程中的個人與團(tuán)隊、經(jīng)濟(jì)、政治、軍事等多重因素。從某種意義上說,計算機(jī)病毒的誕生是技術(shù)、人性、經(jīng)濟(jì)、政治、軍事等多重因素的相互交織與不斷迭代的結(jié)果。本章將從程序設(shè)計、代碼復(fù)用、病毒生產(chǎn)機(jī)、ChatGPT生成病毒等方面探討計算機(jī)病毒誕生。代碼復(fù)用程序設(shè)計病毒生產(chǎn)機(jī)ChatGPT生成病毒程序設(shè)計生成編程心理學(xué)編程經(jīng)濟(jì)學(xué)2CHAPTER程序設(shè)計生成計算機(jī)病毒是一種程序代碼,而程序代碼的生成離不開程序設(shè)計(或編程)。程序設(shè)計作為一項特殊的智力活動,是程序員及其團(tuán)隊在某種任務(wù)驅(qū)使下的協(xié)作產(chǎn)物。作為程序設(shè)計(技術(shù))的產(chǎn)物,計算機(jī)病毒的誕生自然受到人性、經(jīng)濟(jì)、政治、軍事等多重因素影響。本節(jié)將從編程心理學(xué)、編程經(jīng)濟(jì)學(xué)等維度探討計算機(jī)病毒誕生。1.程序設(shè)計程序設(shè)計編程心理學(xué)編程經(jīng)濟(jì)學(xué)程序設(shè)計生成計算機(jī)病毒是程序員個人或團(tuán)隊合作的智慧結(jié)晶,其誕生必然涉及人的認(rèn)知心理、編程語言、軟件開發(fā)等多重因素。編程心理學(xué)就是從程序員視角探究計算機(jī)病毒誕生所涉及的軟件開發(fā)活動中人類認(rèn)知和協(xié)作的規(guī)律,以及心理學(xué)如何影響與協(xié)助軟件開發(fā)。編程心理學(xué)的結(jié)構(gòu)如右圖所示。2.編程心理學(xué)編程心理學(xué)(摘自AlanBlackwell的《編程心理學(xué)50年》)程序設(shè)計生成2.1認(rèn)知心理作為軟件開發(fā)中的程序員及其團(tuán)隊成員,多數(shù)人的編程行為或多或少會受其思維方式、生活習(xí)慣以及性格心理等因素影響。從個體的視角,多數(shù)程序員都有個人英雄主義傾向,自視甚高、傲視群倫乃至一意孤行、鋌而走險。1989年誕生的首款勒索病毒“AIDS病毒”(如右圖所示),為美國動物學(xué)家JosephPopp博士所設(shè)計編寫。該勒索病毒被裝載在軟盤中分發(fā)給1989年國際艾滋病大會的與會者,約有7000家研究機(jī)構(gòu)的系統(tǒng)被感染。它通過修改AUTOEXEC.BAT文件以監(jiān)控DOS系統(tǒng)開機(jī)次數(shù),當(dāng)系統(tǒng)第90次開機(jī)后,使用對稱密碼算法將C盤文件加密,并顯示具有威脅意味的“使用者授權(quán)合約(EULA)”來告知受害者,須給位于巴拿馬的郵政郵箱向PCCyborg公司寄送189美元贖金以恢復(fù)系統(tǒng)。盡管JosephPopp博士宣稱他計劃將收到的贖金捐贈給專注于艾滋病治療的研究機(jī)構(gòu),但后來還是被指控為非法集資而遭訴訟拘留。

誕生于1989年的首個勒索病毒“AIDS病毒”程序設(shè)計生成2.1認(rèn)知心理個人英雄主義在軟件開發(fā)的早期階段或許是可行的,但隨著應(yīng)用的擴(kuò)展及程序規(guī)模的增長,個人的局限性就逐漸顯現(xiàn),任何個體已很難單獨(dú)完成某項軟件開發(fā)任務(wù)。團(tuán)隊協(xié)作就是在此背景下產(chǎn)生。盡管軟件開發(fā)團(tuán)隊是受某項任務(wù)驅(qū)使,但其本質(zhì)上仍是人的因素。如果以人為本組建軟件開發(fā)團(tuán)隊,充分調(diào)動人的積極性,盡量發(fā)揮人的主觀能動性,那么這樣的團(tuán)隊將會所向披靡、戰(zhàn)無不勝,其所開發(fā)的產(chǎn)品將出類拔萃。2010年偷襲伊朗布什爾核電站設(shè)施的“震網(wǎng)(Stuxnet)病毒”,導(dǎo)致伊朗核設(shè)施的鈾濃縮設(shè)備損壞,嚴(yán)重打擊并滯后了伊朗核計劃。據(jù)分析,震網(wǎng)(Stuxnet)病毒為美國和以色列聯(lián)合開發(fā),用于攻擊伊朗的工業(yè)基礎(chǔ)設(shè)施,阻止伊朗核計劃。在該病毒被發(fā)現(xiàn)之前,已潛伏于伊朗核設(shè)施系統(tǒng)中長達(dá)5年之久。第一部分第二部分第三部分程序設(shè)計生成2.2編程語言計算機(jī)病毒是由程序員通過編程語言所編寫的程序代碼。從這個意義上說,任何編程語言都可用于編制計算機(jī)病毒。目前,編程語言種類繁多,用途各異,從計算機(jī)系統(tǒng)層次的角度可將編程語言劃分為3類:機(jī)器語言,匯編語言,高級語言。123機(jī)器語言匯編語言高級語言程序設(shè)計生成作為軟件開發(fā)中的程序員及其團(tuán)隊成員,多數(shù)人的編程行為或多或少會受其思維方式、生活習(xí)慣以及性格心理等因素影響從個體的視角,多數(shù)程序員都有個人英雄主義傾向,自視高、傲視群倫乃至一意孤行、鋌而走險。010203機(jī)器語言是計算機(jī)能直接識別的語言,無需翻譯,每一操作碼在計算機(jī)內(nèi)部都有相應(yīng)的電路來完成。機(jī)器語言使用的是絕對地址和絕對操作碼,是由“0”和“1”組成的二進(jìn)制數(shù)表示的一種指令序列。計算機(jī)發(fā)明之初,人們只能計算機(jī)的語言去命令計算機(jī)干這干那。向計算機(jī)每發(fā)出一條指令,就要寫出一串串由“0”和“1”組成的指令序列。機(jī)器語言的優(yōu)點(diǎn)是直接執(zhí)行,速度快,資源占用少。機(jī)器語言的缺點(diǎn)是指令難讀、難編、難記、可移植性差且易出錯。使用機(jī)器語言來編程無疑是繁瑣、繁重且痛苦的。為克服機(jī)器語言的上述局限性,人們引入一種替代方法:用助記符來代替操作碼,用符號代替地址。助記符是縮寫的英文字符,與操作碼的功能相對應(yīng);表示地址的符號即符號地址,由用戶根據(jù)需要來定。這種由助記符和符號組成的指令集合稱為匯編語言。匯編語言的源代碼必須經(jīng)過編譯、鏈接后才轉(zhuǎn)變?yōu)闄C(jī)器語言代碼,才能被計算機(jī)真正執(zhí)行。盡管匯編語言依賴于機(jī)器硬件,移植性欠佳,但其執(zhí)行效率頗高。針對計算機(jī)特定硬件而編制的匯編語言程序,能準(zhǔn)確發(fā)揮其硬件功能與特長,匯編程序精煉而質(zhì)高,目前仍是一種常用而強(qiáng)有力的軟件開發(fā)工具。不論是機(jī)器語言還是匯編語言,都是面向特定硬件的具體操作語言,因此機(jī)器依賴性大,且程序員須熟悉相關(guān)硬件結(jié)構(gòu)及其工作原理,這對非計算機(jī)專業(yè)人員是勉為其難,也不利于信息化推廣應(yīng)用。尋求一些與人類自然語言相接近且能為計算機(jī)所接受的語意確定、規(guī)則明確、自然直觀和通用易學(xué)的計算機(jī)語言,就勢在必行。這種與自然語言相近并為計算機(jī)所接受和執(zhí)行的計算機(jī)語言稱高級語言。高級語言是面向用戶的語言。無論何種類型的計算機(jī),只要安裝相應(yīng)的高級語言的編譯或解釋程序,都可使用該高級語言編程。程序設(shè)計生成2.2編程語言目前,編程語言種類繁多,據(jù)說有260多種,且仍有新的編程語言不斷出現(xiàn)。常用的編程語言主要有:C、C++、C#、Java、JavaScript、PHP、Python、Lisp、Haskell、Erlang、Ruby、Lua、MATLAB等等。PaulGraham認(rèn)為:編程語言是技術(shù)和宗教的混合物。言下之意就是程序員所用的編程語言與其宗教信仰存在一定程度的關(guān)聯(lián)性。有人試著整理過各大編程語言與宗教信仰的關(guān)系:C屬猶太教,Java屬天主教,C++屬伊斯蘭教,Lisp屬佛教禪宗,Haskell屬道教,Erlang屬印度教,Python屬自由派基督教,C#屬摩門教,Ruby屬新異教,Lua屬薩滿教等等。這提示,在進(jìn)行計算機(jī)病毒逆向分析時,通過找尋其源代碼所采用的編程語言,間接定位該病毒編程者的相關(guān)信息。程序設(shè)計生成2.3編程心理學(xué)研究機(jī)構(gòu)編程心理學(xué)興趣組PsychologyofProgrammingInterestGroup(PPIG)成立于1987年,旨在將來自不同社區(qū)的人們聚集在一起,探索編程心理學(xué)和心理學(xué)計算等方面的共同話題。該組織目前在全球約有300人,包括大學(xué)和行業(yè)的認(rèn)知科學(xué)家、心理學(xué)家、計算機(jī)科學(xué)家、軟件工程師、軟件開發(fā)人員、HCI和UX研究人員。每年舉辦一次年度國際論壇,探討編程、心理學(xué)、音樂之間的糾纏和共振此類熱門話題,旨在為快速傳播成果、想法和語言或范式工具開發(fā),以避免會議和期刊的長時間滯后。編程心理學(xué)興趣組PPIG的標(biāo)徽如圖所示。

PPIG組織的Logo程序設(shè)計生成2.3編程心理學(xué)研究機(jī)構(gòu)在編程系統(tǒng)用戶體驗的分析與設(shè)計上,編程心理學(xué)提供了最重要的方法工具---「認(rèn)知維度框架」(CognitiveDimensionsFramework)。它提煉出了13個和復(fù)雜信息認(rèn)知處理相關(guān)的維度,并將程序員的編程活動根據(jù)特點(diǎn)分成若干類型,然后分析不同活動在不同維度上需要的支持,并與系統(tǒng)實際提供的支持進(jìn)行比較,便可評估在特定編程語言及系統(tǒng)中進(jìn)行不同活動的順暢程度、愉悅程度等等體驗指標(biāo)。「認(rèn)知維度框架」為我們探討編程活動提供了一套科學(xué)的詞匯、語言、表達(dá)工具?!刚J(rèn)知維度框架」不光可以用來對已有系統(tǒng)的體驗做深度分析,還能在其指導(dǎo)下為未來的系統(tǒng)設(shè)計出體驗良好的方案——它既是一個分析工具,也是一個設(shè)計工具。程序設(shè)計生成3.編程經(jīng)濟(jì)學(xué)軟件開發(fā)(編程)不僅是一項涉及心理因素的智力活動,也是一項關(guān)乎經(jīng)濟(jì)利益的工程實踐。從計算機(jī)病毒誕生的視角來看,盡管軟件開發(fā)(編程)實踐經(jīng)歷了如下階段:個人作坊式編程→團(tuán)隊協(xié)作編程→黑客產(chǎn)業(yè)鏈→軟件工程經(jīng)濟(jì)學(xué),但每項軟件開發(fā)(編程)活動的背后,都有經(jīng)濟(jì)利益的影子在或明或暗地閃現(xiàn)。本節(jié)將探討經(jīng)濟(jì)利益因素在不同軟件開發(fā)(編程)階段對計算機(jī)病毒誕生的影響。第一階段個人作坊式編程第二階段團(tuán)隊協(xié)作編程第三階段黑客產(chǎn)業(yè)鏈第四階段軟件工程經(jīng)濟(jì)學(xué)程序設(shè)計生成3.1個人作坊式編程此時,軟件開發(fā)(編程)多出于個人愛好、對技術(shù)的熱忱與執(zhí)著,直接經(jīng)濟(jì)利益因素較少。如果說確有經(jīng)濟(jì)利益因素的話,可以這樣理解:編程者憑借高超精湛的技術(shù),開發(fā)出一款公眾樂于使用的免費(fèi)軟件而獲得贊譽(yù);后續(xù)不斷推陳出新、更新擴(kuò)展軟件捍衛(wèi)榮譽(yù)并通過積攢聲譽(yù),編程者間接獲取相關(guān)經(jīng)濟(jì)利益。從時間軸視角來看,在計算機(jī)病毒發(fā)展初期,計算機(jī)病毒都是從個人作坊式編程中誕生的,純粹出于編程者對病毒技術(shù)及其應(yīng)用的好奇與炫耀。公眾驚訝與驚嘆的眼神與表情,是計算機(jī)病毒編制者能收獲的最好榮譽(yù)與心理成就感。計算機(jī)體系結(jié)構(gòu)一直沿襲了馮?諾依曼的“存儲程序”體系結(jié)構(gòu),其核心思想是:將指導(dǎo)機(jī)器運(yùn)行的指令序列(程序)存儲在存儲器中,并使機(jī)器按照程序指令進(jìn)行有序運(yùn)行。在個人計算機(jī)(PersonalComputer,PC)誕生之前,計算機(jī)編程多由該領(lǐng)域?qū)<也捎脵C(jī)器語言完成。隨著個人計算機(jī)的普及,越來越多的編程技術(shù)愛好者開始涌入計算機(jī)編程領(lǐng)域,個人作坊式編程蔚然成風(fēng)。程序設(shè)計生成3.1個人作坊式編程1986年,首款計算機(jī)病毒---C-BRAIN病毒誕生于巴基斯坦巴斯特(Basit)和阿姆捷特(Amjad)兩兄弟共同經(jīng)營的個人計算機(jī)雜貨店。由于當(dāng)?shù)乇I拷軟件的風(fēng)氣非常盛行,為了防止出售的軟件被任意盜拷,他們開始學(xué)習(xí)編程并編寫了C-BRAIN病毒(防盜拷程序),且在其出售的軟件中加入了C-BRAIN病毒代碼。只要有人盜拷他們出售的軟件,C-BRAIN病毒就會發(fā)作,將盜拷者的剩余硬盤空間全部用垃圾數(shù)據(jù)填滿。首款計算機(jī)病毒---C-BRAIN病毒誕生C-BRAIN病毒設(shè)置在拷貝程序時觸發(fā),投入使用后就產(chǎn)生了效果,由于盜拷者的硬盤被直接填滿而無法繼續(xù)使用,一些人甚至親自登門道歉并請求修復(fù)他們的電腦。為了達(dá)到宣傳效果,兄弟倆還在C-BRAIN防盜拷程序中寫入了一段說明文字,包括其公司簡介、電話、地址等信息。然而,意料不到是,他們接到的多是從世界各地打來的譴責(zé)電話,痛斥其防盜拷程序破壞了計算機(jī)數(shù)據(jù)。巴基斯坦兄弟倆憑借個人對編程技術(shù)的愛好及其對盜拷軟件的阻擊,編程實現(xiàn)C-BRAIN病毒代碼。C-BRAIN病毒不僅是真實計算機(jī)系統(tǒng)中的首個計算機(jī)病毒,還是將計算機(jī)病毒應(yīng)用于打擊盜版軟件的首次嘗試。程序設(shè)計生成3.2團(tuán)隊協(xié)作編程巴基斯坦兄弟倆憑借個人對編程技術(shù)的愛好及其對盜拷軟件的阻擊,編程實現(xiàn)C-BRAIN病毒代碼。C-BRAIN病毒不僅是真實計算機(jī)系統(tǒng)中的首個計算機(jī)病毒,還是將計算機(jī)病毒應(yīng)用于打擊盜版軟件的首次嘗試。由于DOS操作系統(tǒng)固有的“640kB”內(nèi)存局限性,包括計算機(jī)病毒在內(nèi)的所有計算機(jī)程序,在DOS系統(tǒng)中注定會體積不大,否則將導(dǎo)致內(nèi)存占用過大而無法運(yùn)行。因此,那時的計算機(jī)病毒體積小、功能單一,個人作坊式編程完全能夠應(yīng)付。隨著Windows95操作系統(tǒng)出現(xiàn),原來DOS系統(tǒng)固有的局限已不復(fù)存在,每個進(jìn)程的可尋址的內(nèi)存空間多達(dá)4GB字節(jié)。進(jìn)程內(nèi)存空間的擴(kuò)展,給軟件功能的完善與擴(kuò)增提供了物質(zhì)條件,這從客觀上促進(jìn)了計算機(jī)病毒代碼行數(shù)的增長,提高了計算機(jī)病毒編程開發(fā)的難度與復(fù)雜度。單個程序員個人的力量畢竟有限,計算機(jī)病毒程序復(fù)雜度的提升促使有共同愛好的程序員抱團(tuán)組建開發(fā)團(tuán)隊。在開發(fā)團(tuán)隊中,每個程序員都各有分工,團(tuán)結(jié)協(xié)作共同完成某項特定計算機(jī)病毒程序。此后,各類以探討計算機(jī)病毒技術(shù)為組織相繼出現(xiàn),并建立其相關(guān)的BBS、電子雜志以及技術(shù)網(wǎng)站,例如,29A、Phraze、VxHeaven、WildList、Vx-underground、VirusShare等。在這些國際知名的計算機(jī)病毒研究團(tuán)隊中,29A無疑最具代表性。程序設(shè)計生成3.2團(tuán)隊協(xié)作編程29A病毒組織的名稱來源于十進(jìn)制數(shù)666(對應(yīng)的十六進(jìn)制數(shù)為29A),該組織成立的確切日期目前未知。在1995年4月,VirusBuster開始為其BBS公告板系統(tǒng)尋找專家,這也是最初的29A組織中的大多數(shù)成員開始接觸的時間。1995年底,有三個永久參與者M(jìn)isterSandman、VirusBuster和GordonShumway,開始分析病毒,尋找AV產(chǎn)品中的漏洞。1996年12月,該組織成員將其有關(guān)病毒新技術(shù)、病毒反匯編方法等研究發(fā)現(xiàn)編入第一期電子期刊29A-Ezine中。29A組織商定每年在圣地亞哥或馬德里開會大約三次,并不定期發(fā)行有關(guān)病毒新技術(shù)的電子期刊。29A病毒組織的發(fā)展29A成立后,逐漸聚集了當(dāng)時世界知名的病毒研究者,例如,Dos/Win16病毒編寫者Ginger和Rainbow,世界上第一個使用循環(huán)分區(qū)技巧的聯(lián)合病毒作者Orsam,世界上第一個XMS(擴(kuò)展內(nèi)存)交換病毒的發(fā)明者JohnGalt,世界上第一個使用線程局部存儲用作復(fù)制的病毒作者Shrug,世界上第一個使用VisualBisic5/6語言擴(kuò)展用作復(fù)制的病毒的作者OU812,世界上第一個本地可執(zhí)行的病毒的作者Chthon,世界上第一個使用進(jìn)程相互協(xié)作防止被中止的病毒的作者Gemini,世界上第一個使用多態(tài)SMTP報頭的病毒的作者JunkMail,世界上第一個能轉(zhuǎn)換任何數(shù)據(jù)文件到感染對象的病毒的作者Pretext,世界上第一個32/64位寄生EPO.NET病毒的作者Croissant,世界上第一個使用自身執(zhí)行的HTML病毒的作者JunktmaiL等等。程序設(shè)計生成3.2團(tuán)隊協(xié)作編程29A病毒組織的名稱來源于十進(jìn)制數(shù)666(對應(yīng)的十六進(jìn)制數(shù)為29A),該組織成立的確切日期目前未知。在1995年4月,VirusBuster開始為其BBS公告板系統(tǒng)尋找專家,這也是最初的29A組織中的大多數(shù)成員開始接觸的時間。1995年底,有三個永久參與者M(jìn)isterSandman、VirusBuster和GordonShumway,開始分析病毒,尋找AV產(chǎn)品中的漏洞。1996年12月,該組織成員將其有關(guān)病毒新技術(shù)、病毒反匯編方法等研究發(fā)現(xiàn)編入第一期電子期刊29A-Ezine中。29A組織商定每年在圣地亞哥或馬德里開會大約三次,并不定期發(fā)行有關(guān)病毒新技術(shù)的電子期刊。29A成立后,逐漸聚集了當(dāng)時世界知名的病毒研究者,例如,Dos/Win16病毒編寫者Ginger和Rainbow,世界上第一個使用循環(huán)分區(qū)技巧的聯(lián)合病毒作者Orsam,世界上第一個XMS(擴(kuò)展內(nèi)存)交換病毒的發(fā)明者JohnGalt,世界上第一個使用線程局部存儲用作復(fù)制的病毒作者Shrug,世界上第一個使用VisualBisic5/6語言擴(kuò)展用作復(fù)制的病毒的作者OU812,世界上第一個本地可執(zhí)行的病毒的作者Chthon,世界上第一個使用進(jìn)程相互協(xié)作防止被中止的病毒的作者Gemini,世界上第一個使用多態(tài)SMTP報頭的病毒的作者JunkMail,世界上第一個能轉(zhuǎn)換任何數(shù)據(jù)文件到感染對象的病毒的作者Pretext,世界上第一個32/64位寄生EPO.NET病毒的作者Croissant,世界上第一個使用自身執(zhí)行的HTML病毒的作者JunktmaiL等等。簡言之,團(tuán)隊協(xié)作編程模式至少從兩個層面推動了計算機(jī)病毒技術(shù)的極大發(fā)展:技術(shù)創(chuàng)新、團(tuán)隊管理。從技術(shù)創(chuàng)新層面來看,可謂“百花齊放,百家爭鳴”,是計算機(jī)病毒技術(shù)發(fā)展的黃金時代:各類病毒新技術(shù)層出不窮,實現(xiàn)方法多樣,構(gòu)思巧妙。從團(tuán)隊管理層面來看,已逐漸告別手工作坊式的粗放管理模式,開始嘗試中小型規(guī)模的公司管理模式,以分工合作方式開發(fā)功能繁多的復(fù)雜的計算機(jī)病毒程序。程序設(shè)計生成3.3黑客產(chǎn)業(yè)鏈29A病毒組織的名稱來源于十進(jìn)制數(shù)666(對應(yīng)的十六進(jìn)制數(shù)為29A),該組織成立的確切日期目前未知。在1995年4月,VirusBuster開始為其BBS公告板系統(tǒng)尋找專家,這也是最初的29A組織中的大多數(shù)成員開始接觸的時間。1995年底,有三個永久參與者M(jìn)isterSandman、VirusBuster和GordonShumway,開始分析病毒,尋找AV產(chǎn)品中的漏洞。1996年12月,該組織成員將其有關(guān)病毒新技術(shù)、病毒反匯編方法等研究發(fā)現(xiàn)編入第一期電子期刊29A-Ezine中。29A組織商定每年在圣地亞哥或馬德里開會大約三次,并不定期發(fā)行有關(guān)病毒新技術(shù)的電子期刊。29A成立后,逐漸聚集了當(dāng)時世界知名的病毒研究者,例如,Dos/Win16病毒編寫者Ginger和Rainbow,世界上第一個使用循環(huán)分區(qū)技巧的聯(lián)合病毒作者Orsam,世界上第一個XMS(擴(kuò)展內(nèi)存)交換病毒的發(fā)明者JohnGalt,世界上第一個使用線程局部存儲用作復(fù)制的病毒作者Shrug,世界上第一個使用VisualBisic5/6語言擴(kuò)展用作復(fù)制的病毒的作者OU812,世界上第一個本地可執(zhí)行的病毒的作者Chthon,世界上第一個使用進(jìn)程相互協(xié)作防止被中止的病毒的作者Gemini,世界上第一個使用多態(tài)SMTP報頭的病毒的作者JunkMail,世界上第一個能轉(zhuǎn)換任何數(shù)據(jù)文件到感染對象的病毒的作者Pretext,世界上第一個32/64位寄生EPO.NET病毒的作者Croissant,世界上第一個使用自身執(zhí)行的HTML病毒的作者JunktmaiL等等。1986年,首款計算機(jī)病毒---C-BRAIN病毒誕生于巴基斯坦巴斯特(Basit)和阿姆捷特(Amjad)兩兄弟共同經(jīng)營的個人計算機(jī)雜貨店。由于當(dāng)?shù)乇I拷軟件的風(fēng)氣非常盛行,為了防止出售的軟件被任意盜拷,他們開始學(xué)習(xí)編程并編寫了C-BRAIN病毒(防盜拷程序),且在其出售的軟件中加入了C-BRAIN病毒代碼。只要有人盜拷他們出售的軟件,C-BRAIN病毒就會發(fā)作,將盜拷者的“黑客”一詞來源于音譯“hacker”,最早出現(xiàn)于上世紀(jì)中葉的麻省理工學(xué)院(MIT),是指那些能夠用優(yōu)雅、機(jī)智或靈感的方式,使計算機(jī)高效工作的計算機(jī)專家。20世紀(jì)60年代,隨著一些計算機(jī)前沿成果從大學(xué)內(nèi)開放研究環(huán)境轉(zhuǎn)移到軍方的保密研究環(huán)境下,程序員們意識到共享代碼自由、技術(shù)實施自由以及程序設(shè)計合作精神的重要意義,于是便開始逐漸形成“分享、自由、免費(fèi)“的黑客精神和黑客倫理,分享自己的技術(shù)與研究成果,挑戰(zhàn)技術(shù)壁壘權(quán)威。剩余硬盤空間全部用垃圾數(shù)據(jù)填滿。首款計算機(jī)病毒---C-BRAIN病毒誕生C-BRAIN病毒設(shè)置在拷貝程序時觸發(fā),投入使用后就產(chǎn)生了效果,由于盜拷者的硬盤被直接填滿而無法繼續(xù)使用,一些人甚至親自登門道歉并請求修復(fù)他們的電腦。為了達(dá)到宣傳效果,兄弟倆還在C-BRAIN防盜拷程序中寫入了一段說明文字,包括其公司簡介、電話、地址等信息。然而,意料不到是,他們接到的多是從世界各地打來的譴責(zé)電話,痛斥其防盜拷程序破壞了計算機(jī)數(shù)據(jù)。黑客產(chǎn)業(yè)鏈發(fā)展010203“黑客”一詞來源于音譯“hacker”,最早出現(xiàn)于上世紀(jì)中葉的麻省理工學(xué)院(MIT),是指那些能夠用優(yōu)雅、機(jī)智或靈感的方式,使計算機(jī)高效工作的計算機(jī)專家。20世紀(jì)60年代,隨著一些計算機(jī)前沿成果從大學(xué)內(nèi)開放研究環(huán)境轉(zhuǎn)移到軍方的保密研究環(huán)境下,程序員們意識到共享代碼自由、技術(shù)實施自由以及程序設(shè)計合作精神的重要意義,于是便開始逐漸形成“分享、自由、免費(fèi)“的黑客精神和黑客倫理,分享自己的技術(shù)與研究成果,挑戰(zhàn)技術(shù)壁壘權(quán)威。隨著這種反叛精神逐步積累,加之20世紀(jì)70年代興起的鼓動著犯罪黑客的亞文化出現(xiàn),黑客們利用先進(jìn)技術(shù)潛入政府和企業(yè)等系統(tǒng)以達(dá)成獲利和破壞等目的,并創(chuàng)建技術(shù)援助計劃(TechnologyAssistancePlan,TAP)以及電子公告板系統(tǒng)(BulletinBoardSystem,bbs)用來傳播交流計算機(jī)技術(shù)乃至進(jìn)行盜版軟件的犯罪交易。而在隨著Internet技術(shù)、WIFI技術(shù)和筆記本電腦的迅速發(fā)展,在巨額利益驅(qū)動下,研究黑客技術(shù)的團(tuán)體開始壯大,黑客提供的產(chǎn)品和服務(wù)范圍不斷擴(kuò)大,黑客的攻擊分工也開始細(xì)化。為了提高利潤率和降低運(yùn)營風(fēng)險,黑客產(chǎn)業(yè)鏈開始逐漸成形且進(jìn)一步分化,提出了“惡意軟件即服務(wù)(MaaS)“的模式,將實質(zhì)的入侵攻擊行為轉(zhuǎn)移到價值鏈另一端的“客戶“身上。與合法軟件行業(yè)一樣,如今黑客產(chǎn)業(yè)鏈不僅由技術(shù)人員組成,還包括具有各種專業(yè)技能的人員,他們提供各種差異化服務(wù),如工程師,銷售人員,營銷人員,技術(shù)支持等,乃至一些黑客產(chǎn)業(yè)鏈下游所需的犯罪技能。例如,非技術(shù)人員通常會使用竊取得來的身份、信用卡或銀行帳戶來購買商品,從銀行帳戶中取款并洗錢。程序設(shè)計生成3.3黑客產(chǎn)業(yè)鏈29A成立后,逐漸聚集了當(dāng)時世界知名的病毒研究者,例如,Dos/Win16病毒編寫者Ginger和Rainbow,世界上第一個使用循環(huán)分區(qū)技巧的聯(lián)合病毒作者Orsam,世界上第一個XMS(擴(kuò)展內(nèi)存)交換病毒的發(fā)明者JohnGalt,世界上第一個使用線程局部存儲用作復(fù)制的病毒作者Shrug,世界上第一個使用VisualBisic5/6語言擴(kuò)展用作復(fù)制的病毒的作者OU812,世界上第一個本地可執(zhí)行的病毒的作者Chthon,世界上第一個使用進(jìn)程相互協(xié)作防止被中止的病毒的作者Gemini,世界上第一個使用多態(tài)SMTP報頭的病毒的作者JunkMail,世界上第一個能轉(zhuǎn)換任何數(shù)據(jù)文件到感染對象的病毒的作者Pretext,世界上第一個32/64位寄生EPO.NET病毒的作者Croissant,世界上第一個使用自身執(zhí)行的HTML病毒的作者JunktmaiL等等。宏觀分析客觀分析從宏觀上,黑客儼然已經(jīng)形成了“黑客培訓(xùn)→編寫病毒、漏洞發(fā)掘等工具開發(fā)→實施入侵、控制、竊密等行為→利用獲得的信息資源進(jìn)一步犯罪(如攻擊、敲詐、買賣信息等)→銷贓變現(xiàn)→洗錢等環(huán)節(jié)“的大致產(chǎn)業(yè)鏈。黑客產(chǎn)業(yè)鏈大致分為上中下游:(1)產(chǎn)業(yè)鏈上游的主要是技術(shù)開發(fā)產(chǎn)業(yè)部門,其中的“科研”人員進(jìn)行一些技術(shù)性研究工作,如研究開發(fā)惡意軟件、編寫病毒木馬、發(fā)現(xiàn)網(wǎng)絡(luò)漏洞等,這部分人一般擁有較高的技術(shù)水平,接近于狹義上的黑客。(2)產(chǎn)業(yè)鏈的中游主要是執(zhí)行產(chǎn)業(yè)部門,其中的“生產(chǎn)”人員實施諸如病毒傳播、信息竊取、網(wǎng)絡(luò)攻擊等行為。(3)產(chǎn)業(yè)鏈的下游是銷贓產(chǎn)業(yè)部門,其中的“銷售”人員,進(jìn)行諸如販賣木馬、病毒,販賣肉雞、販賣個人信息資料、洗錢等行為。在現(xiàn)實利益的驅(qū)使下,黑客產(chǎn)業(yè)鏈不斷復(fù)用、改良、組合各種計算機(jī)病毒工具,黑客們不斷精進(jìn)各自的技術(shù),并將大量的實踐結(jié)果反饋給此后的新型病毒開發(fā)和使用,這從客觀上促使了新型計算機(jī)病毒的誕生與快速發(fā)展。程序設(shè)計生成3.4軟件工程經(jīng)濟(jì)學(xué)010203在程序設(shè)計階段,尚無軟件概念,程序設(shè)計無明確分工(開發(fā)者和用戶)、追求節(jié)省空間和編程技巧,無文檔資料(除程序清單外),主要用于科學(xué)計算。在軟件設(shè)計階段,開始廣泛使用產(chǎn)品軟件(可購買),從而建立了軟件的概念。隨著計算機(jī)技術(shù)的發(fā)展和計算機(jī)應(yīng)用的日益普及,軟件系統(tǒng)的規(guī)模越來越龐大,高級編程語言層出不窮,應(yīng)用領(lǐng)域不斷拓寬,開發(fā)者和用戶有了明確的分工,社會對軟件的需求量劇增。但由于軟件開發(fā)技術(shù)沒有重大突破,軟件產(chǎn)品的質(zhì)量不高,生產(chǎn)效率低下,從而導(dǎo)致了“軟件危機(jī)”的產(chǎn)生。軟件設(shè)計階段軟件工程階段軟件是在程序設(shè)計發(fā)展到一定規(guī)模并且逐步商品化的過程中形成的,軟件開發(fā)經(jīng)歷了程序設(shè)計、軟件設(shè)計和軟件工程等階段的演變過程。自1970年起,由于“軟件危機(jī)”的產(chǎn)生,迫使人們不得不研究、改變軟件開發(fā)的技術(shù)手段和管理方法,軟件開發(fā)才進(jìn)入了軟件工程階段。軟件工程的發(fā)展過程不僅有著管理、組織的問題,也有經(jīng)濟(jì)問題。如軟件開發(fā)過程中成本和進(jìn)度估計往往不精確,軟件質(zhì)量與可靠性的概念十分可疑,如何來處理一些相互對立的軟件目標(biāo),如成本、工期、可靠性等,軟件測試究竟需要多長時間才能投放市場等等。程序設(shè)計階段程序設(shè)計生成3.4軟件工程經(jīng)濟(jì)學(xué)軟件工程經(jīng)濟(jì)學(xué)(SoftwareEngineeringEconomics,SEE)可理解為工程經(jīng)濟(jì)學(xué)與軟件工程的交叉學(xué)科。它是一門實現(xiàn)特定功能需求的軟件工程項目而提出的在技術(shù)方案、生產(chǎn)(開發(fā))過程、產(chǎn)品或服務(wù)等方面所作的經(jīng)濟(jì)分析與論證、計算與比較的系統(tǒng)方法論學(xué)科。軟件工程經(jīng)濟(jì)學(xué)的研究內(nèi)容大致包括:學(xué)科研究的對象、任務(wù)、特征、研究范圍和研究方法;軟件系統(tǒng)的內(nèi)部構(gòu)成要素和經(jīng)濟(jì)活動及其關(guān)聯(lián)分析,如投資、成本、利潤、效益、工期、效率、質(zhì)量及研制、開發(fā)、維護(hù)、管理活動及其關(guān)聯(lián)分析;軟件系統(tǒng)的組織結(jié)構(gòu)、管理決策及其與經(jīng)營活動的關(guān)系;軟件系統(tǒng)的物流、資金流、信息流的輸入與輸出及其對系統(tǒng)外部——國家、地區(qū)經(jīng)濟(jì)、社會、國防、人民生活的影響。從計算機(jī)病毒編程的角度來看,如以嚴(yán)格的軟件工程方法、遵循軟件工程經(jīng)濟(jì)學(xué)的各類管理規(guī)范,則團(tuán)隊開發(fā)目的、方向、分工、階段計劃、成本估算、收益方案等都更清晰,整個過程近乎井然有序,團(tuán)隊的效率會變高,制作出來的計算機(jī)病毒也更有目的性、更具針對性、更難對付。軟件代碼復(fù)用代碼復(fù)用低代碼3CHAPTER軟件代碼復(fù)用軟件代碼復(fù)用是指從現(xiàn)有的軟件中創(chuàng)建軟件,而不是從頭開始構(gòu)建軟件的過程。可被復(fù)用的工件類型并不局限于源代碼片段,還可包括設(shè)計結(jié)構(gòu)、模塊實現(xiàn)結(jié)構(gòu)、規(guī)范、文檔等等。軟件代碼復(fù)用這個概念于1968年北約軟件工程會議提出。這次會議集中討論了軟件危機(jī):如何以一種具有成本效益的可控方式開發(fā)可靠大型軟件的問題。隨著計算機(jī)應(yīng)用領(lǐng)域的迅速擴(kuò)大,軟件規(guī)模及復(fù)雜性的不斷提高,軟件供求矛盾反而益加明顯地暴露出來,提高生產(chǎn)率成了軟件產(chǎn)業(yè)的當(dāng)務(wù)之急。代碼復(fù)用低代碼軟件代碼復(fù)用定義與分類相關(guān)研究報告指出:一個軟件系統(tǒng)中約有40%-60%的代碼都曾在其它相似軟件系統(tǒng)中重復(fù)過。經(jīng)濟(jì)學(xué)家的分析也表明,軟件開發(fā)費(fèi)用是軟件規(guī)模的指數(shù)函數(shù)。顯然,若能使軟件規(guī)模減少一半,開發(fā)軟件費(fèi)用將會大大小于一半。因此,軟件代碼重用被認(rèn)為是克服軟件危機(jī)的一種有效手段。目前,軟件代碼復(fù)用可分為代碼復(fù)用和低代碼兩種范式,它們均能從加快開發(fā)速度、降低開發(fā)成本、提高開發(fā)效率等方面促進(jìn)包括計算機(jī)病毒在內(nèi)的軟件大力發(fā)展。軟件代碼復(fù)用1.1代碼復(fù)用程序代碼復(fù)用是軟件開發(fā)中的關(guān)鍵技術(shù),充分利用代碼復(fù)用技術(shù)不僅可以降低程序編寫成本,更重要的是可以提高程序執(zhí)行效率。代碼復(fù)用一直是軟件開發(fā)人員廣泛使用的一種高效的輔助開發(fā)手段,復(fù)用的對象包括:相似功能模塊,代碼片段以及應(yīng)用編程接口(ApplicationProgrammingInterface,API)等不同粒度的代碼單元。在傳統(tǒng)的代碼復(fù)用方式中,開發(fā)人員需要利用互聯(lián)網(wǎng)搜索引擎或企業(yè)代碼庫搜索等手段獲取特定領(lǐng)域的或與領(lǐng)域無關(guān)的可復(fù)用代碼單元,同時查找樣例代碼和文本解釋等幫助信息,在此基礎(chǔ)上選擇代碼單元,并完成修改和集成。軟件代碼復(fù)用1.1代碼復(fù)用代碼復(fù)用功能從復(fù)用的代碼功能來看,軟件開發(fā)人員的代碼復(fù)用對象包括特定領(lǐng)域的共性代碼單元以及與領(lǐng)域無關(guān)的通用代碼單元。前者的復(fù)用范圍局限在特定領(lǐng)域內(nèi),但與核心業(yè)務(wù)關(guān)系更密切,例如以代碼片段或功能模塊的形式出現(xiàn)的相似業(yè)務(wù)功能的代碼實現(xiàn)變體。后者的復(fù)用范圍更廣,但與核心業(yè)務(wù)關(guān)系較弱,如通用API及其使用模式,通用算法與功能實現(xiàn)等。從復(fù)用的代碼層級來看,軟件開發(fā)人員的代碼復(fù)用對象包括代碼片段級別和功能模塊級別。軟件開發(fā)人員經(jīng)常會實現(xiàn)相似或相同的功能,相應(yīng)的實現(xiàn)代碼也是相似的。這種代碼片段級別的復(fù)用行為在開源和企業(yè)軟件開發(fā)中十分普遍。在這種代碼復(fù)用中,開發(fā)人員經(jīng)常需要對所復(fù)用的代碼進(jìn)行定制化修改。此外,在功能模塊級別上,開發(fā)人員可能會通過代碼復(fù)制粘貼實現(xiàn)更大粒度的復(fù)用,其中隱含著對設(shè)計結(jié)構(gòu)的復(fù)用。代碼復(fù)用層級軟件代碼復(fù)用1.2計算機(jī)病毒代碼復(fù)用盡管計算機(jī)病毒的代碼重用可被基于簽名的檢測方法檢測出來,但卻可為攻擊者騰出時間執(zhí)行其它躲避檢測和提升攻擊效率的工作,從而開發(fā)出更危險的計算機(jī)病毒。攻擊者開發(fā)惡意軟件時重用代碼有多種原因:首先,這樣做可以節(jié)約時間;其次,復(fù)制拷貝代碼可以為開發(fā)人員騰出更多時間專注其它領(lǐng)域,例如逃避檢測,掩蓋歸因等;第三,在某些情況下,有時也許只有通過一種方法才能達(dá)到惡意目的,例如利用漏洞。計算機(jī)病毒作為一種軟件代碼實現(xiàn),同樣存在代碼復(fù)用現(xiàn)象。原來的計算機(jī)病毒樣本只包含一個或幾個源代碼文件,通常用一種語言編程,最多有幾千個SLOC(sourcelinesofcode)計數(shù)。隨著計算機(jī)病毒數(shù)量和復(fù)雜性的激增,病毒樣本通常包含跨越各種語言的數(shù)百個源代碼文件,總的SLOC計數(shù)為數(shù)十甚至數(shù)十萬。此外,F(xiàn)PC(function-pointcount)數(shù)也開始激增,每年大約增長13%。因此,可以認(rèn)為大多數(shù)計算機(jī)病毒不是從零開始開發(fā)的,而是使用之前編寫的代碼并根據(jù)攻擊者的需要稍作修改而成。軟件代碼復(fù)用1.2計算機(jī)病毒代碼復(fù)用在計算機(jī)病毒樣本數(shù)據(jù)集中發(fā)現(xiàn)了相當(dāng)多的代碼重用實例,其長度從幾行到幾千行的代碼都有。代碼復(fù)用的功能主要分為四種類型:代碼復(fù)用低代碼3.數(shù)據(jù)復(fù)用:有些復(fù)用不是代碼,而是出現(xiàn)在多個樣本中的數(shù)據(jù),如密碼數(shù)組、進(jìn)程名稱和IP地址。一個例子是W32.Rbot和W32.LoexBot中都有的頻繁密碼陣列。另一個例子是在W32.Hunatchab和W32.Branko中發(fā)現(xiàn)的字符串列表,其中包含與不同的商業(yè)防病毒軟件相關(guān)的進(jìn)程名稱,表明它們同樣地試圖禁用這些軟件。此外,一些樣本還共享包含IP地址的字符串,例如,Sasser蠕蟲和Dopebot僵尸網(wǎng)絡(luò)。2.核心組件:包括實現(xiàn)惡意功能的代碼,如用來初次感染的shellcodes、傳播例程、在受害者主機(jī)實現(xiàn)各種行為的代碼。例如,W32.Dopebot僵尸網(wǎng)絡(luò)包含利用CVE-2003-0533漏洞的shellcode,而同樣的shellcode在W32.Sasser蠕蟲中也有發(fā)現(xiàn)。1.功能:如解包例程、多態(tài)引擎和終止防病毒進(jìn)程的代碼等。這方面最明顯的例子之一是W32.Cairuh蠕蟲中包含的打包器,它與W32.Hexbot僵尸網(wǎng)絡(luò)共享。它的大小是22,709行,是在數(shù)據(jù)集中發(fā)現(xiàn)的最大代碼復(fù)用。另一個顯著的例子是Simile和Metaphor.1d病毒共享的變形引擎,由超過10,900行的匯編代碼組成。代碼復(fù)用功能4.數(shù)據(jù)結(jié)構(gòu)和相關(guān)函數(shù):例如那些需要與PE或ELF文件、流行的通信協(xié)議或操作系統(tǒng)內(nèi)核進(jìn)行交互的API。相關(guān)代碼復(fù)用由數(shù)據(jù)結(jié)構(gòu)庫和相關(guān)函數(shù)組成,用于操作系統(tǒng)和網(wǎng)絡(luò)工件,如可執(zhí)行文件格式(PE和ELF)和通信協(xié)議(TCP、HTTP)和服務(wù)(SMTP、DNS)。還有一些代碼復(fù)用,包括與Windows內(nèi)核交互所需的幾個API函數(shù)的頭文件,如W32.Remhead和W32.Rovnix共享的3054行長的代碼復(fù)用。軟件代碼復(fù)用1.2計算機(jī)病毒代碼復(fù)用2017年,土耳其安全研究人員出于教育的目的發(fā)布了兩款開源勒索軟件變種:EDA2和Hidden-Tear。攻擊者很快使用源代碼創(chuàng)建自己的勒索軟件,有RANSOM_CRYPTEAR、MagicRansomware和KaoTear。這些變種大多使用相同的基本加密過程,只對勒索信、命令與控制連接稍作修改,以及在某些情況下會修改傳播程序。這些表明計算機(jī)病毒代碼復(fù)用已成其快速誕生的主要途徑之一。圖

勒索軟件變種軟件代碼復(fù)用2.低代碼巴基斯坦兄弟倆憑借個人對編程技術(shù)的愛好及其對盜拷軟件的阻擊,編程實現(xiàn)C-BRAIN病毒代碼。C-BRAIN病毒不僅是真實計算機(jī)系統(tǒng)中的首個計算機(jī)病毒,還是將計算機(jī)病毒應(yīng)用于打擊盜版軟件的首次嘗試。低代碼(LowCode)是一種可視化的應(yīng)用開發(fā)方法,用較少的代碼、以較快的速度、較低的成本來交付應(yīng)用程序。低代碼是一套更高維和易用的可視化IDE開發(fā)平臺,基于圖形化拖拽、參數(shù)化配置等更為高效的方式,實現(xiàn)快速構(gòu)建、數(shù)據(jù)編排、連接生態(tài)、中臺服務(wù)?;诳梢暬湍P万?qū)動理念,結(jié)合最新的云原生與多端體驗技術(shù),低代碼能夠在合適的業(yè)務(wù)場景下實現(xiàn)大幅度的提效降本,為專業(yè)開發(fā)者提供了一種全新的高生產(chǎn)力開發(fā)范式(ParadigmShift)。另一方面,低代碼還能讓不懂代碼的業(yè)務(wù)人員成為所謂的平民開發(fā)者(CitizenDeveloper),彌補(bǔ)日益擴(kuò)大的專業(yè)人才缺口,同時促成業(yè)務(wù)與技術(shù)深度協(xié)作的終極敏捷形態(tài)(BizDevOps)??傊痛a開發(fā)平臺既能實現(xiàn)業(yè)務(wù)應(yīng)用的快速交付,又能降低業(yè)務(wù)應(yīng)用的開發(fā)成本,還能顯著降低開發(fā)人員的使用門檻。非專業(yè)開發(fā)者經(jīng)過簡單的IT基礎(chǔ)培訓(xùn)就能快速上崗,既能充分調(diào)動和利用企業(yè)現(xiàn)有的各方面人力資源,也能大幅降低對昂貴專業(yè)開發(fā)者資源的依賴。軟件代碼復(fù)用2.低代碼29A病毒組織的名稱來源于十進(jìn)制數(shù)666(對應(yīng)的十六進(jìn)制數(shù)為29A),該組織成立的確切日期目前未知。在1995年4月,VirusBuster開始為其BBS公告板系統(tǒng)尋找專家,這也是最初的29A組織中的大多數(shù)成員開始接觸的時間。1995年底,有三個永久參與者M(jìn)isterSandman、VirusBuster和GordonShumway,開始分析病毒,尋找AV產(chǎn)品中的漏洞。1996年12月,該組織成員將其有關(guān)病毒新技術(shù)、病毒反匯編方法等研究發(fā)現(xiàn)編入第一期電子期刊29A-Ezine中。29A組織商定每年在圣地亞哥或馬德里開會大約三次,并不定期發(fā)行有關(guān)病毒新技術(shù)的電子期刊。29A成立后,逐漸聚集了當(dāng)時世界知名的病毒研究者,例如,Dos/Win16病毒編寫者Ginger和Rainbow,世界上第一個使用循環(huán)分區(qū)技巧的聯(lián)合病毒作者Orsam,世界上第一個XMS(擴(kuò)展內(nèi)存)交換病毒的發(fā)明者JohnGalt,世界上第一個使用線程局部存儲用作復(fù)制的病毒作者Shrug,世界上第一個使用VisualBisic5/6語言擴(kuò)展用作復(fù)制的病毒的作者OU812,世界上第一個本地可執(zhí)行的病毒的作者Chthon,世界上第一個使用進(jìn)程相互協(xié)作防止被中止的病毒的作者Gemini,世界上第一個使用多態(tài)SMTP報頭的病毒的作者JunkMail,世界上第一個能轉(zhuǎn)換任何數(shù)據(jù)文件到感染對象的病毒的作者Pretext,世界上第一個32/64位寄生EPO.NET病毒的作者Croissant,世界上第一個使用自身執(zhí)行的HTML病毒的作者JunktmaiL等等。由此可知,低代碼開發(fā)范式的出現(xiàn),能有效降低計算機(jī)病毒開發(fā)成本且可實現(xiàn)快速交付,這對于新變種計算機(jī)病毒的誕生意義非凡。其一,可實現(xiàn)計算機(jī)病毒的全棧式可視化編程,覆蓋計算機(jī)病毒開發(fā)所涉及的各技術(shù)層面(界面/數(shù)據(jù)/邏輯)。其二,可實現(xiàn)計算機(jī)病毒的全生命周期管理,從設(shè)計階段開始,歷經(jīng)開發(fā)、構(gòu)建、測試和部署,以及各種運(yùn)維和運(yùn)營。其三,可實現(xiàn)計算機(jī)病毒的低代碼擴(kuò)增能力,在原有病毒代碼基礎(chǔ)上通過少量的代碼擴(kuò)展,即可實現(xiàn)其他功能與應(yīng)用。病毒生產(chǎn)機(jī)4CHAPTER病毒生產(chǎn)機(jī)29A病毒組織的名稱來源于十進(jìn)制數(shù)666(對應(yīng)的十六進(jìn)制數(shù)為29A),該組織成立的確切日期目前未知。在1995年4月,VirusBuster開始為其BBS公告板系統(tǒng)尋找專家,這也是最初的29A組織中的大多數(shù)成員開始接觸的時間。1995年底,有三個永久參與者M(jìn)isterSandman、VirusBuster和GordonShumway,開始分析病毒,尋找AV產(chǎn)品中的漏洞。1996年12月,該組織成員將其有關(guān)病毒新技術(shù)、病毒反匯編方法等研究發(fā)現(xiàn)編入第一期電子期刊29A-Ezine中。29A組織商定每年在圣地亞哥或馬德里開會大約三次,并不定期發(fā)行有關(guān)病毒新技術(shù)的電子期刊。29A成立后,逐漸聚集了當(dāng)時世界知名的病毒研究者,例如,Dos/Win16病毒編寫者Ginger和Rainbow,世界上第一個使用循環(huán)分區(qū)技巧的聯(lián)合病毒作者Orsam,世界上第一個XMS(擴(kuò)展內(nèi)存)交換病毒的發(fā)明者JohnGalt,世界上第一個使用線程局部存儲用作復(fù)制的病毒作者Shrug,世界上第一個使用VisualBisic5/6語言擴(kuò)展用作復(fù)制的病毒的作者OU812,世界上第一個本地可執(zhí)行的病毒的作者Chthon,世界上第一個使用進(jìn)程相互協(xié)作防止被中止的病毒的作者Gemini,世界上第一個使用多態(tài)SMTP報頭的病毒的作者JunkMail,世界上第一個能轉(zhuǎn)換任何數(shù)據(jù)文件到感染對象的病毒的作者Pretext,世界上第一個32/64位寄生EPO.NET病毒的作者Croissant,世界上第一個使用自身執(zhí)行的HTML病毒的作者JunktmaiL等等。計算機(jī)病毒作為一種程序代碼,需要開發(fā)人員耗費(fèi)大量時間通過程序設(shè)計編寫而成。在計算機(jī)病毒早期階段,通常借由這種方式產(chǎn)生新病毒或病毒變種。后來,由于軟件工程經(jīng)濟(jì)學(xué)的發(fā)展,黑客認(rèn)為這樣產(chǎn)生病毒的速度太慢且不經(jīng)濟(jì),根本無法抵御反病毒技術(shù)的查殺,更談不上以此而獲利。此時,擺在黑客面前的殘酷事實是:能否實現(xiàn)計算機(jī)病毒的批量大規(guī)模生產(chǎn)?從根本上扭轉(zhuǎn)與反病毒技術(shù)作戰(zhàn)的戰(zhàn)略劣勢?病毒現(xiàn)狀

病毒生產(chǎn)機(jī)29A成立后,逐漸聚集了當(dāng)時世界知名的病毒研究者,例如,Dos/Win16病毒編寫者Ginger和Rainbow,世界上第一個使用循環(huán)分區(qū)技巧的聯(lián)合病毒作者Orsam,世界上第一個XMS(擴(kuò)展內(nèi)存)交換病毒的發(fā)明者JohnGalt,世界上第一個使用線程局部存儲用作復(fù)制的病毒作者Shrug,世界上第一個使用VisualBisic5/6語言擴(kuò)展用作復(fù)制的病毒的作者OU812,世界上第一個本地可執(zhí)行的病毒的作者Chthon,世界上第一個使用進(jìn)程相互協(xié)作防止被中止的病毒的作者Gemini,世界上第一個使用多態(tài)SMTP報頭的病毒的作者JunkMail,世界上第一個能轉(zhuǎn)換任何數(shù)據(jù)文件到感染對象的病毒的作者Pretext,世界上第一個32/64位寄生EPO.NET病毒的作者Croissant,世界上第一個使用自身執(zhí)行的HTML病毒的作者JunktmaiL等等。病毒生產(chǎn)機(jī)(VirusGenerator)是為應(yīng)對上述局面而創(chuàng)新出來的一種計算機(jī)病毒誕生新方法新機(jī)制,能在短時間內(nèi)生成大量同族病毒,在數(shù)量和特征碼方面超越反病毒技術(shù),使其應(yīng)接不暇難以勝券在握。所謂病

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論