報告時間: 2018年6月14日9:30到11:00
報告地點:計算機大樓B404
報告人:明江博士
報告簡介:二進制代碼的加殼問題, 是指在程序運行前先對二進制代碼進行壓縮或者加密,然後在運行時,加過殼的程序先恢複出原始代碼,之後再把控制權交還給原始代碼。加殼已經成為病毒作者用來混淆病毒代碼的最常用方法。特别是, 很多複雜的殼會通過一系列的“written-then-executed”的操作來恢複出原始代碼, 這樣使得确定脫殼何時結束變得越來越困難。雖然有很多通用脫殼技術被用來提取被加殼的二進制文件,但是運行時的龐大時間開銷和缺乏抗分析能力嚴重的限制了通用脫殼技術的應用。在過去的二十年裡,海量的加殼病毒一直是反病毒領域裡一個巨大挑戰。我們的研究從一個新的角度重新審視了長期存在的通用脫殼問題: 加殼程序通常會混淆标準的Windows API調用。我們對大量的Windows病毒加殼/脫殼程序進行了深入分析後發現了一個很普遍的特征: 軟件的導入地址表 (IAT) 作為動态鍊接的 API 調用的查找表, 通常會被加殼程序删除以到達進一步混淆的目的; 然後脫殼程序會在原始代碼恢複執行之前重建 IAT。在加過殼的惡意軟件執行過程中, 如果正在調用 的API是通過查找已重建的 IAT進行尋址的, 則表明原始代碼已經被還原。基于此,我們設計一種高效的脫殼方法, 稱為 “BinUnpack”。與以前的通用脫殼方法相比, BinUnpack 沒有繁瑣的内存訪問監控, 因此它隻引入了非常小的運行時開銷。并且為了繞過一系列的抗脫殼分析的方法,我們設計了一種新的内核級 DLL 劫持技術作為BinUnpack 的 API 監控模塊。我們已經使用BinUnpack測試了超過238000的加殼病毒和多個 Windows程序。BinUnpack 的成功率明顯優于現有的方法并且具有1-3倍的數量級的性能提升。
報告人簡曆:明江博士本科畢業于88858cc永利官网信息安全專業, 2016年畢業于賓夕法尼亞州立大學信息科學與技術學院,現在是德克薩斯大學阿靈頓分校計算機科學與工程系 (University of Texas at Arlington) 的助理教授。他的研究重點是利用程序分析的方法論來解決軟件安全問題,具體的研究方向包括污點分析、軟件剽竊檢測、二進制代碼分析以及病毒分析。明江在計算機安全領域有着豐富的學術和行業經驗。他的工作已經發表在系統安全和軟件工程方向頂級會議 (IEEE S&P, Usenix Security, CCS, FSE, ASE)。
邀請人:傅建明,彭國軍