GoSSIP 論文推薦(2017-06-28)
Cloak and Dagger: From Two Permissionsnto Complete Control of the UI Feedback Loop
第一篇論文Cloak and Dagger: From Two Permissions to Complete Control of the UI Feedback Loop的一作是來自UCSB的Yanick Fratantonio,Yanick Fratantonio是一名活躍在Android安全研究領域的年輕學者,曾經在0ctf2016中解出我們所出的一道有關Android ART逆向的題目,也是當時整個比賽唯一解出該題目的參賽者。目前Yanick Fratantonio已經完成在他UCSB的學業,準備前往法國EURECOM繼續他的安全研究。
這篇論文圍繞著Android平台GUI系統的安全問題而展開,作者發現利用名為 SYSTEM_ALERT_WINDOW的許可權可以使得惡意程序在任何程序運行時,在屏幕上繪製出自己需要的界面,以此來對原有界面進行遮擋並欺騙用戶,從而達到引導用戶點擊某些敏感按鈕的目的。進而,作者發現可以使用上述方法欺騙用戶開啟Android設備的無障礙服務功能,之後可以通過BIND_ACCESSIBILITY_SERVICE許可權來替代用戶和設備進行交互,從而實現更多的惡意行為。此外,作者還發現目前在Google Play上架的應用程序會自動被賦予SYSTEM_ALERT_WINDOW,導致實現該攻擊的成本大大降低。同時,Android系統並不會提醒用戶這兩個許可權可能帶來的危害,仍然將它們當成非敏感許可權處理,進一步減少了實施攻擊的難度。
在過去的幾年中,已經有一些有關Android GUI系統安全問題的研究成果出現,研究人員的關注點主要集中在兩個方面,一個是使用Alert Window等可以在屏幕上繪製GUI的介面來對用戶進行GUI欺騙,以此欺騙用戶點擊某些指定的區域或是輸入敏感信息;另一個方面則是關注如何利用Android Activity棧的設計缺陷來將惡意的界面混入正常的頁面中,以此達到欺騙用戶的目的。有關Android GUI攻擊的更多細節可以參考 WindowGuard: Systematic Protection of GUI Securityin Android以及What the App is That?Deception and Countermeasuresin the Android User Interface。
Adaptive Unpacking of Android Apps
第二篇論文Adaptive Unpacking of Android Apps是一篇有關Android平台應用程序脫殼的文章,來自香港理工大學羅夏朴老師的研究組。羅老師領導的研究組在Android程序分析和脫殼領域都發表過大量的優秀研究成果,這篇文章是他們組2015年名為DexHunter: toward extracting hiddencode from packed Android applications的論文的後續研究成果。
在該論文中,作者認為脫殼和加殼之間是長期的軍備競賽。相比起快速發展的加殼技術,脫殼工具因為缺乏靈活性、自適應性差、容易被針對等特點而經常落後於時下的加殼技術。因此作者提出名為PackerGrind的脫殼工具,該工具能夠協助分析人員快速處理不斷進化的Android加殼技術。該工具的工作流程主要可以分為監控和恢復兩步。在第一步中,作者使用一個高度定製的Android系統來運行加殼後的應用程序,在運行的過程中提取多種後續分析需要的程序特徵,比如重要API的參數、程序的內存操作以及系統調用等。通過第一步獲得的程序特徵數據,可以讓分析人員快速的分析出加殼程序的工作模型,並幫助指定脫殼點。第二步操作就是在第一步分析出來的脫殼點上對內存中的dex文件進行脫殼還原,這一部分使用的技術和我們組之前的文章AppSpear: Bytecode Decrypting and DEX Reassembling for Packed Android Malware類似。作者最後使用目前主流的加殼方案對PackerGrind進行了測試,發現能夠處理所有加殼樣本。
TriFlow Triaging Android Applications using Speculative Information Flows
最後一篇文章TriFlow Triaging Android Applications using Speculative Information Flows是一篇有關Android惡意程序檢測的文章,作者來自西班牙馬德里卡洛斯三世大學和英國倫敦大學。
對於Android惡意程序的檢測一直是Android安全研究領域的熱門話題,有大量的相關研究成果發表。絕大多數的惡意程序檢測依賴的是成熟的靜態或動態程序分析技術,例如信息流分析或是污點分析。作者認為這些分析技術能夠有效的發現程序中存在的惡意行為,但是在檢測效率上存在天然的缺陷,在某些追求分析速度的場景下無法滿足現實的需要。因此,作者提出一種基於概率模型的惡意程序分析方法,能夠有效對一個應用程序是否包含惡意行為給出一個可能性,從而減少後續人工分析的負擔。作者使用的方法不是很複雜,主要就是事先對已經進行過完整信息流分析並且判明是否存在惡意行為的應用程序樣本集進行分析,主要提取的數據是應用程序中source和sink的數量和種類。基於這一步的統計數據,輔以已經完成的信息流分析和惡意行為檢測,可以給出不同source和sink之間存在確定路徑的概率以及該路徑是惡意的概率。基於這兩個概率,就可以對應用程序是否存在惡意行為進行一個估計。
個人認為這篇文章雖然從技術上來說沒什麼新意,工作量也不大,但是想法還是比較有意思的。使用一些輕量級的程序分析方法,加上一些概率、統計或者機器學習方面的技巧,能夠有效的在現實生產中快速的解決一些問題。
推薦閱讀: