版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
自動化軟件供應(yīng)鏈污染檢測技術(shù)
0研究問題與文獻綜述近年來,磺軟件供應(yīng)鏈(csc)安全問題頻發(fā)。雖然它給用戶的隱私和財產(chǎn)損失帶來了巨大的損失,但仍對軟件供應(yīng)鏈的安全問題提出了新的考驗和挑戰(zhàn)。有別于傳統(tǒng)的針對軟件自身程序漏洞進行的攻擊,軟件供應(yīng)鏈攻擊者側(cè)重利用軟件供應(yīng)鏈上的安全漏洞,在合法軟件的開發(fā)編譯、分發(fā)交付以及安裝使用等環(huán)節(jié)中進行劫持或篡改,借助用戶和軟件供應(yīng)商之間的信任關(guān)系,在合法軟件的外衣下,突破安全產(chǎn)品的防線,獲得用戶的信任,悄然實施攻擊目前關(guān)于軟件供應(yīng)鏈安全的研究剛剛起步,文獻文獻自動化程序逆向分析技術(shù)一直是信息安全領(lǐng)域研究的熱點和重點問題之一,已有大量工作對程序逆向分析和惡意代碼檢測技術(shù)進行了研究。在基礎(chǔ)程序分析方法方面,文獻本文主要關(guān)注針對二進制程序的軟件供應(yīng)鏈的污染檢測技術(shù),在軟件供應(yīng)鏈下游發(fā)現(xiàn)供應(yīng)鏈中存在的污染問題。本文主要工作及貢獻包括:1)對軟件供應(yīng)鏈污染檢測問題進行了深入剖析和闡述;2)指出了軟件供應(yīng)鏈污染檢測問題與傳統(tǒng)惡意程序分析和檢測問題的聯(lián)系和區(qū)別;3)介紹了目前使用的程序逆向分析方法及其在軟件供應(yīng)鏈污染檢測中的應(yīng)用;4)展望了軟件供應(yīng)鏈污染檢測中亟待解決的問題及若干可行并值得進一步研究的課題。針對上述問題,本文詳細分析了22個軟件供應(yīng)鏈污染事件;對97篇高水平論文進行了分析和介紹,文獻主要來自中文核心期刊以及中國計算機學(xué)會(ChinaComputerFederation,CCF)A類會議、期刊;內(nèi)容涵蓋了程序分析技術(shù)以及軟件供應(yīng)鏈污染研究前沿研究。論文搜索關(guān)鍵詞包括(中英文的)程序分析、逆向工程、靜態(tài)分析、動態(tài)分析、符號執(zhí)行、污點分析、軟件供應(yīng)鏈、軟件供應(yīng)鏈污染等。絕大多數(shù)論文下載自谷歌學(xué)術(shù)、知網(wǎng)、百度學(xué)術(shù)等知名學(xué)術(shù)搜索平臺,內(nèi)容涵蓋了信息學(xué)科下主流數(shù)據(jù)庫,包括國際計算機協(xié)會(AssociationforComputingMachinery,ACM)、電氣和電子工程師協(xié)會(InstituteofElectricalandElectronicsEngineers,IEEE)、愛思唯爾、斯普林格等。1軟件供應(yīng)鏈污染檢測1.1軟件供應(yīng)鏈污染檢測軟件供應(yīng)鏈?zhǔn)侵杠浖能浖?yīng)商到達用戶手中并被用戶使用的整個過程中相關(guān)環(huán)節(jié)的連接,從軟件設(shè)計開始,到代碼編寫與軟件生成,再到軟件分發(fā)與用戶下載,并最終由用戶使用的一個軟件供應(yīng)商與軟件用戶之間,緊密圍繞軟件,由開發(fā)環(huán)節(jié)(上游)、交付環(huán)節(jié)(中游)和使用環(huán)節(jié)(下游)三大環(huán)節(jié)所組成的鏈狀結(jié)構(gòu)主動防御和被動檢測是保障軟件安全的兩種重要手段。其中,主動防御側(cè)重于阻斷攻擊者的攻擊,主要包括針對軟件開發(fā)商、開源軟件管理平臺、軟件發(fā)布平臺和用戶終端的安全防護,旨在從源頭上遏制惡意代碼的植入和擴散。文獻被動檢測是假定可能有攻擊存在,在生成的軟件中檢測是否存在污染。軟件供應(yīng)鏈污染檢測屬于被動檢測,主要包括對開源代碼、開源軟件包、軟件安裝包和軟件可執(zhí)行程序的安全性檢測。這其中,安全性檢測又包括惡意代碼檢測和漏洞挖掘,檢測對象包括程序源代碼和程序可執(zhí)行文件。程序逆向分析技術(shù)是安全性檢測的基礎(chǔ),文獻1.2污染檢測目標(biāo)軟件供應(yīng)鏈下游的污染檢測是針對軟件的可執(zhí)行文件或提供的服務(wù)進行的污染檢測。檢測目標(biāo)是表1中“污染位置”列所示的軟件形態(tài)。由于軟件供應(yīng)鏈污染檢測涵蓋內(nèi)容過于繁雜,涉及不同編程語言、編譯環(huán)境、運行環(huán)境等,后文主要針對傳統(tǒng)的C/C++語言編寫、編譯得到的程序進行闡述。1.2.1軟件供應(yīng)鏈下游的污染檢測軟件供應(yīng)鏈上游的軟件廠商和中游的分發(fā)平臺可能受到成本、效率和利潤等因素的制約,不可避免地遺留一些安全漏洞。這些漏洞可能被攻擊者利用,導(dǎo)致軟件供應(yīng)鏈的污染,因此軟件供應(yīng)鏈的污染源很難被完全消除,仍需要在軟件發(fā)布之后,即在軟件供應(yīng)鏈下游對發(fā)行的軟件進行污染檢測。同時,在軟件供應(yīng)鏈下游的污染檢測能夠發(fā)現(xiàn)上游、中游的所有污染。從表1中很容易看出,軟件供應(yīng)鏈污染的代碼最終必須要在下游用戶端執(zhí)行才能發(fā)揮其效用,因此,軟件供應(yīng)鏈下游的污染檢測能夠極大彌補主動防御的不足,對軟件進行更加全面的掃描。再者,軟件供應(yīng)鏈下游的軟件樣本比較容易獲取。研究人員可以更加容易地獲取軟件樣本進行研究。1.2.2軟件供應(yīng)鏈污染檢測更為復(fù)雜軟件供應(yīng)鏈下游的軟件供應(yīng)鏈污染檢測問題與惡意代碼檢測問題沒有本質(zhì)區(qū)別,都是對程序是否惡意的判定。檢測流程是,首先搜集軟件特征,之后對特征進行結(jié)果判定。目前主流的人工智能(ArtificialIntelligence,AI)技術(shù)完全可以實現(xiàn)高精度的結(jié)果判定,但是,其前提條件是要能夠搜集到完整的或者關(guān)鍵的軟件特征。如果無法搜集到污染代碼或污染行為,即使是最先進的AI技術(shù)也無法作出準(zhǔn)確的判斷。然而,在搜集軟件特征方面,軟件供應(yīng)鏈污染檢測比傳統(tǒng)的惡意代碼檢測更加復(fù)雜,表現(xiàn)在如下幾方面。首先,軟件供應(yīng)鏈下游的污染檢測比傳統(tǒng)的惡意代碼更為隱蔽,被植入的代碼常與正常程序代碼混淆在一起,當(dāng)軟件供應(yīng)鏈上游被污染時,惡意代碼還可能帶有合法的軟件廠商的簽名。由于多數(shù)安全防護軟件使用白名單機制過濾掉可信任廠商發(fā)布的軟件,因此其中的污染代碼比傳統(tǒng)惡意代碼更難被發(fā)現(xiàn)。其次,很多被污染的軟件會提示用戶在使用過程中關(guān)閉安全防護軟件從而實施攻擊,導(dǎo)致程序難以被安全防護軟件集成的云查殺系統(tǒng)發(fā)現(xiàn),導(dǎo)致被污染軟件可以長期在網(wǎng)絡(luò)上傳播。再次,軟件供應(yīng)鏈上的安全檢測目標(biāo)不僅包括軟件的可執(zhí)行程序,還包括軟件的安裝程序,然而軟件的安裝過程往往需要借助用戶交互來完成;同時,很多軟件廠商使用自定義的打包工具發(fā)布軟件安裝包,且不支持靜默安裝,對于大量存在的此類安裝包,現(xiàn)有方法很難實現(xiàn)自動化的用戶交互并完成軟件安裝過程,因此導(dǎo)致其中的污染代碼難以被發(fā)現(xiàn)。最后,攻擊者還可能在軟件中植入惡意代碼,這些代碼可能隱藏在軟件程序的任何角落中,只有當(dāng)用戶通過用戶界面(UserInterface,UI)使用軟件的特定功能,這些代碼才能被觸發(fā)。此時,這些惡意代碼極難被分析人員發(fā)現(xiàn)。1.2.3程序逆向分析技術(shù)傳統(tǒng)的惡意代碼分析技術(shù)使用的特征主要分為語法特征和語義特征兩大類。程序的語法特征需要通過解析程序的二進制執(zhí)行,并轉(zhuǎn)換為高級語言(反匯編、反編譯)。程序的語義特征主要包括應(yīng)用程序接口(ApplicationProgrammingInterface,API)調(diào)用和執(zhí)行過程中的系統(tǒng)狀態(tài)改變情況。然而由于代碼混淆技術(shù)的廣泛使用,惡意代碼經(jīng)常主動識別當(dāng)前的運行環(huán)境,或者設(shè)置觸發(fā)條件來執(zhí)行惡意行為。傳統(tǒng)的單純依靠被動監(jiān)控程序執(zhí)行的方法很難搜集到惡意代碼的真實語義,所以,對于帶有反分析技術(shù)的惡意代碼,無論搜集其語法特征還是語義特征,都需要用到程序逆向分析技術(shù)。又由于軟件供應(yīng)鏈下游的污染檢測目標(biāo)主要為可執(zhí)行程序,因此,需要用到程序逆向分析技術(shù)對其進行分析。后文將首先介紹當(dāng)前程序逆向分析技術(shù)在軟件供應(yīng)鏈下游的污染檢測中的應(yīng)用,并分析當(dāng)前技術(shù)在解決軟件供應(yīng)鏈污染檢測問題時仍存在的具體問題,最后提出了若干可行的解決思路。2)動態(tài)分析技術(shù)現(xiàn)有的程序分析方法主要包括靜態(tài)分析、動態(tài)分析、符號執(zhí)行和污點分析。靜態(tài)分析和動態(tài)分析是檢測代碼安全的基本方法,兩者的區(qū)別在于獲取信息的方式不同:靜態(tài)分析方法的數(shù)據(jù)源是可執(zhí)行文件中的數(shù)據(jù),動態(tài)分析的數(shù)據(jù)源是動態(tài)執(zhí)行過程中獲取的運行時數(shù)據(jù)。符號執(zhí)行和污點分析技術(shù)是應(yīng)用最廣泛的二進制程序分析技術(shù),靜態(tài)分析方法和動態(tài)分析方法均可以實現(xiàn)這兩種技術(shù)。本文總結(jié)了近十年來國內(nèi)外發(fā)生的百余起軟件供應(yīng)鏈安全事件,標(biāo)注了安全人員在分析事件樣本時使用的程序分析方法,部分結(jié)果如表2所示。傳統(tǒng)的靜態(tài)分析方法在目前軟件供應(yīng)鏈污染檢測中起到了非常重要的作用,分析人員在事件的分析過程中無一例外地使用了交互式反匯編器專業(yè)版(InteractiveDisassemblerProfessional,IDAPro)2.1不同平臺下的反匯編語言特點靜態(tài)分析以靜態(tài)反匯編靜態(tài)分析的最大優(yōu)勢是能夠?qū)φ麄€程序的指令進行全面的分析。表2中所示幾乎所有軟件供應(yīng)鏈安全分析工作都使用了靜態(tài)反匯編或靜態(tài)分析工具。這些靜態(tài)分析工具均除提供反匯編功能外,還提供了基于反匯編指令的進一步分析結(jié)果,包括可執(zhí)行文件結(jié)構(gòu)解析、控制流分析可執(zhí)行文件結(jié)構(gòu)包含了大量有利于逆向分析的信息,不同平臺的可執(zhí)行文件結(jié)構(gòu)的不同,以WindowsPE結(jié)構(gòu)為例,其中的段屬性信息指示了數(shù)據(jù)的類型,反匯編方案只需要針對可執(zhí)行屬性的數(shù)據(jù)進行分析;導(dǎo)入表信息指示了程序使用的動態(tài)鏈接庫及動態(tài)鏈接函數(shù)。控制流分析主要是識別函數(shù)中的基本塊以及基本塊間的流轉(zhuǎn)關(guān)系。數(shù)據(jù)流分析主要識別指令操作數(shù)間的依賴關(guān)系,一般基于控制流分析實現(xiàn)。數(shù)據(jù)依賴分析是現(xiàn)在應(yīng)用最廣泛的數(shù)據(jù)流分析方法,程序切片庫函數(shù)識別是靜態(tài)分析方法優(yōu)勢的重要體現(xiàn)。靜態(tài)鏈接庫函數(shù)體嵌入在程序代碼中,由于二進制程序中沒有符號表信息,靜態(tài)鏈接庫函數(shù)需要用特定的方式進行識別。目前通用的方法是通過對已知靜態(tài)鏈接庫函數(shù)建模得到唯一的特征,并在程序分析時分析各個庫函數(shù),查看其特征是否與已知靜態(tài)鏈接庫函數(shù)的特征一致。例如在CCleaner事件反編譯是將匯編代碼翻譯成高級語言的過程,目前主流反編譯工作需識別不同的處理器架構(gòu),僅支持一部分架構(gòu)的匯編語言。高級語言能夠幫助分析人員更好地理解程序邏輯,極大地提高了人工分析樣本的效率;但是,惡意程序常在運行過程中動態(tài)解密、釋放指令或數(shù)據(jù)2.2當(dāng)前主流動態(tài)分析平臺的實踐動態(tài)分析以動態(tài)跟蹤技術(shù)為核心。在動態(tài)跟蹤過程中獲取原始數(shù)據(jù),之后再利用這些數(shù)據(jù)進行后續(xù)分析。動態(tài)跟蹤可以獲得不同語法語義級別的數(shù)據(jù),跟蹤過程中可以按照指令、基本塊、函數(shù)等不同粒度搜集程序本身的語法信息,也可以在程序運行過程中搜集系統(tǒng)信息,根據(jù)系統(tǒng)狀態(tài)的變化來表征程序行為;或在運行時搜集系統(tǒng)調(diào)用信息,用來刻畫程序行為;或者監(jiān)控內(nèi)存權(quán)限變化,例如先寫后執(zhí)行(execute-after-write)目前主流的動態(tài)分析平臺主要采用三種方式構(gòu)建運行環(huán)境。第一種是基于QEMU第二種方式是使用代碼插樁的方式進行動態(tài)跟蹤,包括動態(tài)插樁和靜態(tài)插樁兩種方式。動態(tài)代碼插樁是在程序運行過程中插入分析代碼。IntelPin第三種方式是使用硬件特性記錄程序的執(zhí)行序列。典型工作是IntelProcessorTracing(PT)絕大多數(shù)軟件供應(yīng)鏈安全威脅檢測都需要借助動態(tài)分析方法來完成,表2中標(biāo)注了各個事件的分析過程中具體涉及的動態(tài)分析方法,包括了在動態(tài)執(zhí)行過程中對程序本身以及各種系統(tǒng)資源,如系統(tǒng)資源、服務(wù)、驅(qū)動、流量信息等的監(jiān)控。此外,表2中標(biāo)注的“動態(tài)字符串提取”和“監(jiān)控代碼動態(tài)釋放”是指污染代碼會在動態(tài)執(zhí)行過程中從數(shù)據(jù)段解密出敏感API名稱字符串和敏感操作指令,從而對抗靜態(tài)分析;“溯源分析”和“系統(tǒng)日志分析”是指利用攻擊者在系統(tǒng)或軟件中留下的痕跡定位污點源的過程,常用于軟件供應(yīng)鏈污染源頭定位工作。動態(tài)分析方法的瓶頸在于分析覆蓋率有限,很容易受到惡意程序作者的惡意干擾。例如“隱魂”木馬使用多種反分析技術(shù),防止分析系統(tǒng)搜集到程序惡意行為。對此,研究者們提出了路徑探索2.3基于路徑探索的執(zhí)行策略動態(tài)符號執(zhí)行又稱混合符號執(zhí)行(concolicexecution)。其核心思想是在程序執(zhí)行過程中搜集路徑約束程序執(zhí)行路徑的路徑約束可以在程序執(zhí)行過程中獲取,如S2E符號執(zhí)行技術(shù)依靠路徑探索策略選擇下一個需要分析的路徑及需要求解的路徑約束。根據(jù)不同應(yīng)用,符號執(zhí)行引擎會選擇不同的路徑探索策略,例如:在惡意程序分析和模糊測試應(yīng)用中,廣度優(yōu)先和深度優(yōu)先策略應(yīng)用最為廣泛;而在漏洞挖掘應(yīng)用中,敏感操作優(yōu)先策略應(yīng)用更多。具體應(yīng)用可以定義自己的敏感操作規(guī)則,從而使能夠引導(dǎo)控制流至敏感操作的路徑被優(yōu)先分析。例如S2E提出了一種面向符號化數(shù)據(jù)(data-basedselection)的路徑探索策略,優(yōu)先執(zhí)行對污點進行操作的路徑。由于符號執(zhí)行會造成較大的時間開銷,文獻符號執(zhí)行的兩大難題是路徑空間爆炸和約束求解,程序切片符號執(zhí)行是實現(xiàn)路徑探索、提高動態(tài)分析覆蓋率的主要技術(shù)。表2中標(biāo)注了符號執(zhí)行的事件均需要借助路徑探索技術(shù)才能搜集到表達程序真實意圖的執(zhí)行路徑。在現(xiàn)有軟件供應(yīng)鏈污染分析報告中,絕大多數(shù)還依靠人工分析實現(xiàn)對程序執(zhí)行路徑的探索。Sun等2.4動態(tài)點火分析動態(tài)污點分析的主要流程是選擇程序的某些輸入標(biāo)記為污點,在程序運行過程中根據(jù)污點傳播規(guī)則標(biāo)記數(shù)據(jù)依賴于污點的內(nèi)存或寄存器。如果從程序中的敏感操作涉及到的數(shù)據(jù)被標(biāo)記為污點,則需要對該操作進行進一步分析。污點分析的一般步驟如下:首先,污點分析系統(tǒng)需要根據(jù)實際需求確定污染源。一般以程序外部輸入作為污點源,包括程序命令行輸入、網(wǎng)絡(luò)輸入、I/O、API返回值、系統(tǒng)狀態(tài)(如注冊表、進程控制塊、線程控制塊)等。文獻動態(tài)污點分析系統(tǒng)需要克服污點傳播過程中可能發(fā)生的欠污染和過污染問題,文獻隨著技術(shù)的發(fā)展,污點分析和符號執(zhí)行工作的界限越來越模糊,因為符號執(zhí)行中對路徑約束的搜集和求解在本質(zhì)上也是數(shù)據(jù)依賴分析,并且例如上述Yadegari的幾個工作,利用污點分析幫助符號執(zhí)行技術(shù)完成路徑約束的搜集。此外,符號執(zhí)行和污點分析都可以通過前向或后向的方式實現(xiàn)。文獻污點分析的思想在軟件供應(yīng)鏈污染檢測中使用非常廣泛,特別是在存在信息泄露的事件中。將敏感數(shù)據(jù)標(biāo)注為污點源,如果污點數(shù)據(jù)被網(wǎng)絡(luò)發(fā)送,則說明發(fā)生了信息泄露。表2中標(biāo)注了污點分析的事件多數(shù)發(fā)生了信息泄露。同樣的,目前類似問題仍多數(shù)由人工檢測完成。2.5實現(xiàn)高水平期刊、會議的分析平臺現(xiàn)有二進制程序逆向分析工作或在上述某一方面進行了深入研究,或設(shè)計實現(xiàn)統(tǒng)一的分析平臺,提供各種技術(shù)的調(diào)用接口。表3中列舉了10余個經(jīng)典的或近年來發(fā)表在高水平期刊、會議的二進制程序分析工具,總結(jié)了這些工作的適用場景、測試數(shù)據(jù)集以及對比方法。研究人員可以有針對性地在這些平臺上進行軟件供應(yīng)鏈污染檢測工作研究。3仍存在的問題1.2.2節(jié)對軟件供應(yīng)鏈下游的污染檢測問題進行了分析,本章聚焦于程序逆向分析方法,分析現(xiàn)有技術(shù)在解決軟件供應(yīng)鏈下游的污染檢測問題中仍存在的問題及挑戰(zhàn)。3.1代碼或行為的檢測在對程序的逆向分析時,準(zhǔn)確識別程序中所有代碼或行為至關(guān)重要,只有在獲取程序中所有代碼的基礎(chǔ)上,才能進一步實現(xiàn)惡意代碼檢測工作;然而現(xiàn)有技術(shù)在這方面仍存在一些局限性。3.1.1傳統(tǒng)的逆向分析技術(shù)的局限性首先,文獻此外,文獻其次,雖然符號執(zhí)行、路徑探索技術(shù)能夠提高動態(tài)分析的覆蓋率,惡意程序依然可以通過隱藏路徑約束3.1.2靜態(tài)間接控制流轉(zhuǎn)移識別為緩解上述問題,研究人員提出了大量緩解技術(shù),以提高程序逆向分析技術(shù)的能力;但是這些技術(shù)仍然不能完全解決傳統(tǒng)程序逆向分析技術(shù)在分析混淆代碼時的問題。首先,動靜結(jié)合的分析方法能夠從很大程度上克服動態(tài)分析覆蓋率不足的缺點。傳統(tǒng)的基于特征碼的惡意代碼檢測、基于熵的分析方法以及靜態(tài)間接控制流轉(zhuǎn)移識別能夠輔助惡意代碼檢測或指導(dǎo)動態(tài)分析朝著目標(biāo)區(qū)域進行動態(tài)執(zhí)行和分析。其中,基于特征碼的方法能夠從程序代碼中找出包含惡意行為特征的字節(jié)序列,從而快速完成已知惡意代碼的掃描;基于熵的方法能夠幫助分析系統(tǒng)標(biāo)注可能存在加殼行為的代碼片段,動態(tài)分析應(yīng)該盡量朝著能夠加載或者執(zhí)行這些數(shù)據(jù)或代碼的方向運行;間接控制流轉(zhuǎn)移指令指示了靜態(tài)分析的分析盲區(qū),動態(tài)分析方法需要對這些指令的位置作定向分析,以確定控制流轉(zhuǎn)移目標(biāo),彌補靜態(tài)分析的不足。文獻在API識別方面,文獻在控制流圖恢復(fù)方面,文獻然而這些工作也都各自存在一些局限,只有惡意代碼滿足其提出的模型時才能取得較高的準(zhǔn)確性。例如文獻綜上所述,現(xiàn)有的程序逆向分析技術(shù)在對混淆代碼的檢測中仍存在諸多局限,惡意程序作者可以利用這些局限對抗分析,造成分析系統(tǒng)的漏報。特別是在軟件供應(yīng)鏈污染場景下,被測樣本規(guī)模遠大于惡意程序,給程序逆向分析技術(shù)帶來了更多挑戰(zhàn)。3.2程序模擬分析系統(tǒng)傳統(tǒng)的惡意代碼檢測方案多僅針對單一可執(zhí)行文件進行分析,導(dǎo)致使用程序分析方法進行軟件供應(yīng)鏈下游的污染檢測時存在諸多挑戰(zhàn)。首先,從表1可知,軟件供應(yīng)鏈污染的目標(biāo)包括軟件安裝包和軟件可執(zhí)行程序,但是大型軟件的發(fā)布形式十分多樣。為了檢測可能存在的捆綁安裝、內(nèi)置后門等問題,分析系統(tǒng)需要能夠處理任何一種軟件發(fā)布形式,并從中提取相應(yīng)的程序進行分析。例如,大多數(shù)官方的Windows軟件發(fā)布為一個獨立的安裝程序,需先運行安裝程序,將軟件運行所需要的所有文件釋放到指定目錄,并在系統(tǒng)中注冊相關(guān)軟件信息,才能使用該軟件。同時一些軟件也會以綠色壓縮版的形式發(fā)布,即將所有程序運行所需文件打包在一個壓縮包中,用戶只需解壓這些文件即可使用軟件。這種綠色免安裝的方式極易被攻擊,但是由于使用方便無需安裝,仍有大量用戶使用。分析系統(tǒng)需要能夠自動執(zhí)行或解壓縮安裝包,成功釋放程序可執(zhí)行文件,并監(jiān)控整個安裝和程序執(zhí)行過程。目前尚未有工作能夠?qū)崿F(xiàn)自動、穩(wěn)定的大規(guī)模軟件安裝方法來獲取程序分析的二進制文件。第二,商用軟件往往包含多個模塊、多個組件以及多種語言編寫的代碼,需要提出高效和統(tǒng)一的分析框架用于深入程序分析。此外,市場上的防病毒軟件多使用白名單機制,如果程序的簽名在白名單中則不再對其進行分析,而在軟件供應(yīng)鏈開發(fā)環(huán)節(jié)中植入的惡意代碼,在下游程序簽名發(fā)布之后往往會逃避防病毒軟件的檢測。由于無法保證軟件供應(yīng)鏈上游代碼的安全性,傳統(tǒng)的基于黑白名單的啟發(fā)式分析策略在軟件供應(yīng)鏈安全研究中并不適用,需要對整個程序中所有的代碼深入分析。第三,商用軟件多包含多種程序輸入,例如配置文件、UI交互、網(wǎng)絡(luò)通信、與操作系統(tǒng)交互等。這將導(dǎo)致動態(tài)分析方法將很難自動發(fā)現(xiàn)并提供有效的程序輸入,從而引起與程序輸入相關(guān)的代碼無法正常執(zhí)行,最終造成動態(tài)分析方法的分析覆蓋率很難提升,進而導(dǎo)致惡意代碼檢測或漏洞挖掘方法出現(xiàn)漏報。同時,異步處理機制是常用的編程技術(shù),而尚未有靜態(tài)分析方法工作能夠做到自動理解各種異步編程模型,并準(zhǔn)確還原程序邏輯或控制流轉(zhuǎn)移關(guān)系。第四,現(xiàn)有工作多處于語法分析層面,鮮有工作能夠自動準(zhǔn)確理解程序語義,而程序語義理解在惡意代碼檢測和軟件邏輯漏洞檢測方面非常重要。基于機器學(xué)習(xí)和AI技術(shù)的惡意代碼分析和檢測工作能夠部分緩解語義理解補充的問題,但是該方法依賴大量樣本,而除C/C++語言外,其他編程語言的惡意代碼樣本量均達不到模型訓(xùn)練要求。在漏洞挖掘領(lǐng)域,針對邏輯漏洞的挖掘大多依靠人工完成,尚未有可靠的自動化方法完成該任務(wù)。在具有多模塊的大型軟件中,邏輯漏洞的挖掘變得更加困難,目前沒有較為理想的解
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年鄂爾多斯職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫及答案詳解一套
- 2026年上海立達學(xué)院單招職業(yè)傾向性測試題庫參考答案詳解
- 2026年江蘇旅游職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫及參考答案詳解
- 2026年四川商務(wù)職業(yè)學(xué)院單招職業(yè)適應(yīng)性考試題庫及參考答案詳解
- 2026年眉山職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫附答案詳解
- 2026年江蘇農(nóng)牧科技職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫及參考答案詳解
- 2026年湛江幼兒師范??茖W(xué)校單招職業(yè)適應(yīng)性測試題庫含答案詳解
- 2026年天津鐵道職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)考試題庫附答案詳解
- 2026年山東傳媒職業(yè)學(xué)院單招職業(yè)技能測試題庫及答案詳解1套
- 2026年煙臺科技學(xué)院單招職業(yè)技能測試題庫帶答案詳解
- 20道長鑫存儲設(shè)備工程師崗位常見面試問題含HR常問問題考察點及參考回答
- 抖音ip孵化合同范本
- 小升初語文總復(fù)習(xí)《文章主要內(nèi)容概括》專項練習(xí)題(附答案)
- DL-T606.5-2009火力發(fā)電廠能量平衡導(dǎo)則第5部分-水平衡試驗
- python程序設(shè)計-說課
- 國家電網(wǎng)智能化規(guī)劃總報告
- 遙遠的向日葵地
- 箱涵施工組織設(shè)計樣本
- 質(zhì)量意識培養(yǎng)
- 2000人學(xué)校食堂人員配置標(biāo)準(zhǔn)
- 低壓線路的安裝、運行及維護
評論
0/150
提交評論