Let's GoSSIP電腦保安學術論文分享(2018年11月)
本文是2018年11月 上海交通大學 ofollow,noindex">蜚語安全(G.O.S.S.I.P) 研究小組 的小組成員學術論文閱讀筆記集合,感謝所有論文筆記作者的辛勤勞動 , 謝絕一切形式的轉載 !
1. 二進位制程式碼安全方向
Enforcing Unique Code Target Property for Control-Flow Integrity
論文發表在2018年的CCS安全會議上,作者包括佐治亞理工學院的Hong Hu, Chenxiong Qian, Carter Yagemann, Simon Pak Ho Chung, Taesoo Kim, Wenke Lee,以及Galois Inc的William R. Harris
在這篇文章中,作者主要介紹了一種準確率更高的確保Control Flow Integrity (CFI) 的應用方式:Unique Code Target(UCT)。對於每次間接跳轉(ICT),作者設計了一個稱為μUCT的系統來確保這一特性的實施。在編譯時,μCFI就識別那些可能影響ICT的指令並讓程式去記錄一些必要的執行環境;在執行時,μCFI在另一個程序中監視程式的執行,並且在一些關鍵性的指令上使用記憶體安全地記錄著地執行環境來做一些對點分析,判斷這些指令的跳轉是否符合預期。作者將μCFI這套系統佈置到SPEC benchmark和2個伺服器程式(nginx和vsftpd)上測試效能和overhead。同時它們還用它來測試了5個真實世界中的案例、1個COOP的poc進行攻擊的案例。μCFI在這些測試上表現得都非常好,展現了100%的檢測率和僅不到10%的overhead

Check It Again: Detecting Lacking-Recheck Bugs in OS Kernels
論文發表在2018年的CCS安全會議上,作者是來自University of Minnesota, Twin Cities的Wenwen Wang, Kangjie Lu, Pen-Chung Yew
在這篇論文中,作者針對一類特定的作業系統核心中的bug——LRC(lacking-recheck)型別bug開展了分析,並介紹了自己設計的一個靜態分析系統LRSan(在Linux上實現),用於檢測作業系統核心中的LRC bug。論文的主要貢獻包括:
- 定義了LRC bugs,並第一次展示了關於LRC bug的深入研究。
- 實現一個自動化的LRC bug檢測系統(LRSan),基於LLVM,使用在Linux核心上,可以檢測核心中的LRC bug。LRSan運用了很多新的程式靜態分析技術。結果顯示LRSan在Linux核心發現了2808個LRC case,檢測耗時為4小時。並且作者會將它開源。
- 識別Security check(SC)和相關Critical variable(CV)的方法。
- 發現了Linux核心中的19個新的LRC bug。

Using Logic Programming to Recover C++ Classes and Methods From Compiled Executables
論文發表在2018年的CCS安全會議上,作者是來自Edward J. Schwartz, Cory Cohen, Jeff Havrilla, Jeff Gennari, Charles Hines, Michael Duggan
這篇論文主要聚焦於如何更好地逆向分析使用C++開發的二進位制程式碼中類(class)的結構,讓分析者能夠知道各個類之間的關係,並且知道類中所包含的方法、資料成員、虛擬函式表(VFTable)、建構函式與解構函式等資訊,這就可以使得分析者很容易的分析出該程式所具有的功能與用途,並且快速掌握程式的執行過程,完成程式分析任務。為了實現這些功能,作者設計並實現了OOAnalyzer,通過使用如下核心方法:
- 在二進位制程式碼中識別簡單的模式(Patterns)
- 基於這些模式,使用邏輯推理並結合相關領域的專業知識,甚至是一些直覺(Intuition)等方法來分析目標程式
- 分析過程包括使用一個輕量級的符號執行引擎和一個基於 Prolog 的推理系統,把分析師的分析行為轉化為程式碼的形式,整合在 OOAnalyzer 當中
極大方便了逆向分析工程師對C++二進位制程式碼的分析。

Automated Detection Exploitation and Elimination of Double-Fetch Bugs Using Modern CPU Features
論文發表在2018年的AsiaCCS安全會議上,作者是來自Graz University of Technology, CNRS, G DATA Advanced Analytic的Michael Schwarz, Daniel Gruss, Moritz Lipp, Clémentine Maurice, Thomas Schuster, Anders Fogh, Stefan Mangard
Double-fetch bug 是一種特殊的條件競爭bug,基於此類bug,在高許可權執行緒的time-of-check和time-of-use之間,低許可權執行緒能夠修改共享的記憶體,導致高許可權執行緒訪問的記憶體產生不一致。本文作者提出了一種檢測、利用並消除double-fetch bugs的技術——DECAF,並設計了一個用於消除此類問題的庫Dropit。論文主要有包括如下一些貢獻:
- 把cache attack與kernel fuzzing結合起來
- 首個自動化的挖掘double-fetch bugs的方法
- 利用的成功率高達97%
- 利用Hardware Transactional Memory的特性,消除double-fetch bugs
- 方法對fuzz TEE也有效

Towards Paving the Way for Large-Scale Windows Malware Analysis: Generic Binary Unpacking With Orders-of-Magnitude Performance Boost
論文發表在2018年的CCS安全會議上,作者是來自武漢大學、湖北師範大學、電子科技大學和University of Texas at Arlington, LORIA的Binlin Cheng, Jiang Ming, Jianming Fu, Guojun Peng, Ting Chen, Xiaosong Zhang, Jean-Yves Marion
作為一篇討論Windows平臺上軟體脫殼的論文,還能在2018年被CCS所錄取,足見該論文提出的方法有獨到之處。此前的脫殼方法大多是跟蹤脫殼時期的記憶體程式碼寫入執行的變化,從而跟蹤被加密程式碼的解密流程,繼而追溯到OEP,這也是對於分析脫殼的最為直觀的方法。在這篇論文裡,作者提出一種通過跟蹤IAT(函式匯入表)被恢復和引用的情況來追溯OEP,並且達到很理想的效果。作者設計了一款BinUnpack工具,同傳統脫殼工具相比,效能取得了非常大的提升。

2. 移動安全方向
Phishing Attacks on Modern Android
論文發表在2018年的CCS安全會議上,作者是來自University of Genoa, EURECOM的Simone Aonzo, Alessio Merlo, Giulio Tavella, Yanick Fratantonio
Android系統為了便利性引入了許多新的功能。這篇文章中,作者對現有的四款比較著名的密碼管理App以及Android系統提供的Google Smart Lock(GSL)服務進行了分析,並利用密碼管理器(Password Managers, PMs in short)和即時App(Instant App)這兩個新功能在設計上的不足針對自動填充密碼功能實現了Android系統上的全新釣魚攻擊。該種攻擊方式比現有的釣魚攻擊方式更容易實現。在此基礎上,作者設計了新的API來避免該種釣魚攻擊方式的發生,但作者也表示,自動填充密碼功能的安全實現需要整個開發者社群共同努力。

Don't Throw Me Away: Threats Caused by the Abandoned Internet Resources Used by Android Apps
論文發表在2018年的AsiaCCS安全會議上,作者是來自早稻田大學和NTT Secure Platform Laboratories的Elkana Pariwono, Daiki Chiba, Mitsuaki Akiyama, Tatsuya Mori
現代APP為了提供更豐富的額外功能大多會採用一些網路服務,例如語音識別、天氣預報等。這些直接由服務端提供的服務使開發者能偶較為容易地在移動端實現這些功能。但是這些支援移動應用的服務因為存在於服務端,當程式被髮布之後,開發人員可能會因為維護成本漸漸地不再維護這些網路資源。本文中,作者對Android移動應用程式的開發者們進行調查,發現78%的開發人員沒有定期更新發布的應用程式。還有66%的開發人員不是全職開發人員。因此這些應用程式使用的網際網路資源將缺乏維護。而且這些資源的所有權會帶來變更:域名或IP資訊可能會被重新註冊。本文中,作者進行了大規模的調查,通過對110萬個應用的分析,作者發現儘管很多應用已經很久沒有更新而且網路資源不再可用,但是依舊有很多來自移動使用者的流量。本文中作者做了如下工作:
- 分析了移動應用中被廢棄的網路資源可能存在安全問題。
- 通過對100萬+的應用的分析,作者發現7331個應用中有3628個不再可使用的網路資源。其中有15個APP的安裝次數超過一百萬。
- 不僅僅是Android平臺,很多應用同時有iOS版本,它們依舊存在這些問題。
- 作者討論了對於由於網路服務歸屬權的變更帶來的問題的解決方案。

3. 嵌入式和物聯網安全方向
Smart Locks: Lessons for Securing Commodity Internet of Things Devices
這是一篇發表在2016年AsiaCCS的論文,作者是來自加州大學伯克利分校的Grant Ho, Derek Leung, Pratyush Mishra, Ashkan Hosseini, Dawn Song, David Wagner
本文研究了市場上的五款智慧門鎖,作者指出,原有的大部分智慧鎖安全研究,專注於對加密協議的分析。本文將關注點放在智慧門鎖通用的網路架構的安全隱患,以及使用者與裝置之間的互動模型上。(針對新興的互動模型,作者提到了一款門鎖,它能夠在合法使用者靠近門鎖時自動開鎖。)為了研究智慧門鎖的安全問題,本文設計了一個智慧門鎖的安全模型並分析了可從市場上購買到的五款較為流行的智慧門鎖。 通過分析,發現了三種類型的攻擊方式。本文分析的五款門鎖中,每一款門鎖至少可被其中一種方式攻擊。作者認為,漏洞的產生是由於現有的系統都採用了不安全的機制來判斷使用者的潛在行為。發現了這些智慧門鎖在設計、部署、互動模型上存在的漏洞。實現了幾種攻擊並提供了一些防護方案。

HoMonit: Monitoring Smart Home Apps From Encrypted Traffic
論文發表在2018年的CCS安全會議上,作者是來自上海交通大學和俄亥俄州立大學的Wei Zhang, Yan Meng, Yugeng Liu, Xiaokuan Zhang, Yinqian Zhang, Haojin Zhu
本文以三星SmartThings平臺為研究物件,提供了一個能夠在加密的無線通道中監控物聯網裝置的系統。之前的工作中,對於物聯網平臺的安全和隱私保護主要有三種方式:
- 修改物聯網平臺應用,新增資訊流控制的程式碼
- 基於上下文的許可權管理系統,幫助使用者分配許可權
- 對智慧裝置原始碼進行分析後進行基於上下文的許可權管理
而本文旨在提供一種第三方的保護措施,通過加密通道來監控智慧裝置。HoMonit是一個能夠從加密的無線通訊通道中對智慧裝置進行監控的系統。主要貢獻:
- 新的技術:能夠通過對原始碼、應用的UI分析構建出DFA模型; 側通道分析無線通訊通道的方法
- 新的系統:HoMonit(不需要與廠商合作)能夠在第三方視角分析SmartThings平臺的智慧裝置惡意行為。
- 開源資料集:在對系統評估時使用的60個修改過的惡意應用已經公開

FirmUp: Precise Static Detection of Common Vulnerabilities in Firmware
論文發表在系統結構的頂級會議ACM ASPLOS 2018上,作者Yaniv David, Nimrod Partush, Eran Yahav來自以色列Technion
論文討論瞭如何在Firmware中開展精確的漏洞相似性匹配。主要的困難問題在於,在不同的指令選擇,指令順序,暫存器使用下,如何挖掘這種相似性。為了能把不同編譯選項編譯好的二進位制檔案拿來比較,將其中的函式進行基本塊級別的拆分,然後將基本塊進一步切片成更小的片段,再將這種片段中的暫存器名和地址偏移一致化,以函式為單位制成一張表。以這兩個表中相同的程式碼片段的數量作為相似度。作者使用Angr及其使用的封裝的Valgrind作為工具鏈,利用Angr將程式碼轉成VEX-IR中間語言。在實驗中,作者從5000個多個品牌的韌體中提取了大約20萬個二進位制可執行檔案,檢測了相關的CVE存在情況。

論文發表在2018年的CCS安全會議上,作者Marcel Kneib和Christopher Huth都來自博世公司,是一篇出自企業的研究論文。
作者指出,由於汽車的開放性和高連線性,汽車安全已成為一個主要問題。假如攻擊者可以物理訪問ECU,就能控制很多安全敏感的功能,並且無視駕駛員的控制,比如停止發動機或停止制動。研究表明,CAN仍然是當下使用最廣泛的用於車載系統的匯流排協議,可以在今天的每輛車中找到。但是大多數車載系統中沒有實現足夠的安全措施,攻擊者可以傳送偽造的CAN訊息到其他裝置,CAN的接收者無法識別傳送者,從而無法驗證訊息的真實性。作者認為在車載網路中使用IDS是一種很有前途的技術。作者提出了一種從CAN訊號中提取指紋的方法識別收到訊息的傳送者的方法,並設計了一個叫做Scission的惡意ECU檢測系統,在Fiat 500和Porsche Panamera上做了檢測。評估顯示,Scission能夠正確識別的概率為99.85%。他們所提出的IDS也能夠檢測到來自未受監控和其他裝置的攻擊。

4. 智慧合約與區塊鏈安全方向
Erays: Reverse Engineering Ethereum's Opaque Smart Contracts
論文發表在Usenix Security 2018安全會議上,作者Yi Zhou, Deepak Kumar, Surya Bakshi, Joshua Mason, Andrew Miller, and Michael Bailey來自University of Illinois, Urbana-Champaign
作者開發了一個針對以太坊智慧合約的逆向分析工具Erays,用以將bytecode翻譯成便於人工分析的虛擬碼。並且使用這個工具分析了以太坊生態系統的程式碼複雜性和重用性,以及將閉源的程式碼和開源的程式碼比較,降低整個生態系統的隱匿度。最後,作者給出使用Erays逆向4個智慧合約的例子。

5. 應用安全研究
Towards Measuring the Effectiveness of Telephony Blacklists
論文發表在NDSS 2018安全會議上,作者Sharbani Pandit, Roberto Perdisci, Mustaque Ahamad, Payas Gupta來自Georgia Institute of Technology, University of Georgia, Pindrop
這篇論文研究瞭如何有效地阻攔惡意電話。現在有很多惡意電話會利用一些網路技術 (機器人呼叫,聲音模仿,號碼欺騙等等)對手機使用者進行騷擾或詐騙。常見的防護方法就是建立黑名單。目前也有很多APP或裝置安全服務在建立這些黑名單。但是具體如何建立黑名單,黑名單效果怎麼樣都是未公開的。所以這篇文章通過自己收集資料,並利用不同型別資料建立多種黑名單並評估,進而分析黑名單的效果。
