安大略湖畔的安全之光——ACM CCS 2018 小記(4)
10月18日,CCS大會進入到最後一天(19日還有一天的workshop議程),最近幾年的CCS都會把一些廣受關注的壓軸議題放到最後一天,今年的會議將傳統安全研究頗為關注的Web Security、Binary Defense、Mobile Security、Vulnerability Detection和Fuzzing等session放在了這一天,由於不可能逐一跟蹤所有論文,我們只能盡力將其中我們聽到的精彩議題在此與大家分享
Binary Defenses
在二進位制防禦相關研究方向上,今天共有兩個session共六篇論文,首先引起大家關注的是來自ETH Zurich(蘇黎世聯邦理工學院)的研究者設計的二進位制反編譯輔助工具 DEBIN (Debin: Predicting Debug Information in Stripped Binaries),這個工具基於人工智慧學習方法,對現有的具備debug和符號資訊的二進位制程式碼進行學習之後,可以智慧地預測stripped binaries中的函式和變數名稱(知識遷移),作者提供了線上網站供大家測試(經過我們實測,還有很大的進步空間)
ofollow,noindex">DEBIN | Predicting Debug Information in Stripped Binaries

除了對於傳統二進位制程式碼防護的論文,今年有兩篇論文從比較新穎的角度關注了程式碼防護:
首先來自Ruhr-Universität Bochum(德國波鴻魯爾大學)的研究人員介紹了他們在Microcode層面上開展的系統防護(An Exploratory Analysis of Microcode as a Building Block for System Defenses ),這項工作基於AMD CPU支援執行時microcode(微碼)更新的機制開展,可以通過新增一些自定義的microcode,去實現一些CPU上原來沒有的安全相關指令(例如進行記憶體越界檢查的指令)。可以把這項工作看成是對CPU指令集的手工定製,然而其問題在於當機器重啟以後,這個手工更新的指令集就消失了。。。
第二篇論文Milkomeda: Safeguarding the Mobile GPU Interface Using WebGL's Security Checks來自UC Irvine(加州大學Irvine分校),作者介紹了一種對抗GPU device driver惡意呼叫的安全機制。作者發現,由於移動平臺上GPU device driver缺乏良好的輸入過濾機制,攻擊者可以通過低許可權的使用者程式碼層面呼叫GPU驅動介面,實現一系列提權攻擊;為了對抗這一攻擊,本文設計了一個叫做 Mikomeda (用日文發音法念……)的系統:

在Mikomeda的控制下,所有的非授權GPU driver呼叫都會被阻止(這是通過修改系統核心實現的),從而完成安全管控。但是Mikomeda的問題也在於需要修改已有的system kernel,會導致部署的困難。
Web Security
在web安全方面,有兩篇論文討論了當前新出現的一些web攻擊:
第一篇論文MineSweeper: An In-depth Look into Drive-by Cryptocurrency Mining and Its Defense討論的是在密碼貨幣流行的情況下,分析的991,513個網站上,作者發現了有1,735個網站存在惡意的挖礦指令碼。儘管這個事實並不是特別的新奇,但是作者通過系統地分析,總結了惡意挖礦指令碼的型別、特點和相關的密碼貨幣受益地址等,不失為一篇非常系統性的總結論文。

第二篇論文Pride and Prejudice in Progressive Web Apps: Abusing Native App-like Features in Web Applications(嗯這是本次會議第二篇向Jane Austen致敬的論文了)是來自韓國科學院的研究人員對一類叫做Progressive Web Apps (PWA)的新型web app的安全分析,其實所謂的PWA就是2015年開始Google提出的一種web app模型,儘管號稱有諸多好處,PWA的設計往往也和其它所有的新生計算機技術一樣對安全存在一定程度的忽視。本文就從多個方面分析了PWA使用過程中面臨的安全威脅,為開發人員和使用者提供了安全參考。
Vulnerability Detection
今年8月27-28日在北京國家會議中心舉行的第四屆網際網路安全領袖峰會(Cyber Security Summit,簡稱 CSS)上,除了我們組關於智慧門鎖的報告《易偽造的數字鑰匙——智慧門鎖Token安全性分析與保護》之外,奪得會議突破獎的《邁向自動化攻擊的一小步》(作者張超、王琰;清華大學+中科院)這一報告也來到了CCS。關於他們的論文Revery: from Proof-of-Concept to Exploitable (One Step towards Automatic Exploit Generation),國內亦有人發表了相關論文筆記:
[讀] Revery: From Proof-of-Concept to Exploitable網路協議安全
在網路應用與協議安全方面,有兩篇有意思的文章,第一篇論文Pseudo Constant Time Implementations of TLS Are Only Pseudo Secure討論了當前密碼學演算法庫中的一個熱門議題:密碼演算法的常量時間執行。由於最近一段時間各種side channel attacks的論文實在是太火熱,因此密碼學演算法庫的開發人員往往也在提升效能的同時,考慮自己的程式碼實現是否能夠做到常量時間執行。例如流行的密碼演算法庫Libsodium就號稱在關鍵程式碼上去除了所有的分支跳轉,保證了常量執行時間。然而,本文指出,在很多TLS庫上的常量時間執行實現其實是偽常量時間(Pseudo Constant Time),仍然無法避免cache based timing attacks,作者具體發現了GnuTLS、mbed TLS、wolfSSL和亞馬遜的s2n庫上的問題,並向相關vendor進行了通報。值得一提的是本文的一作Eyal Ronen即去年的Oakland上的論文IoT goes Nuclear( Creating a ZigBee Chain Reaction )的一作,而論文的三作是大名鼎鼎的圖靈獎得主 Adi Shamir
在18日的午餐會上我們碰到了一位在德國的中國安全研究人員Tianxiang Dai,他給我們介紹了他在Fraunhofer Institute for Secure Information Technology SIT的研究成果——基於DNS汙染的域名證書劫持攻擊和防禦(論文Domain Validation ++ for MitM-Resilient PKI),我們驚訝於即使到了2018年,DNS仍然還是網路安全中十分薄弱的一環。
Fuzzing, Exploitation, & Side Channels
本次CCS大會的最後一個session留給了fuzzing和side channel攻擊的相關技術論文,其中論文Hawkeye: Towards a Desired Directed Grey-box Fuzzer是由曾經在上海交通大學學習,目前在新加坡南洋理工大學就讀的陳泓旭和其合作者完成,他們介紹了一個新的fuzzing框架Hawkeye,我們有幸邀請到一作陳泓旭為他們的論文進行介紹:
Hawkeye(鷹眼,諧音讀作“好可愛” ^_^)是一個基於變異的灰盒模糊測試器。和通常情況下以提高程式覆蓋率並找到更多的程式漏洞為目的的模糊測試不同,它主要用於測試程式的特定位置(一般是檔名和行號)並希望通過測試找到更多和目標位置有關的漏洞。它可以用於補丁測試、程式崩潰重現以及佐證其他漏洞檢測工具的結果。Hawkeye受到CCS17年AFLGo的啟發,總結了提高這類給定位置的模糊測試有效性的四種屬性。Hawkeye結合了靜態分析及插樁技術,根據動態測試時測試用例執行過程中覆蓋的函式、基本塊設計了到目標位置的距離指標,從而指導模糊測試。
Hawkeye的實現基於作者們自己實現的類AFL的模糊測試框架FOT (Fuzzing Orchestration Toolkit)。該框架致力於整合現有並探索新的模糊測試技術,和其他框架相比,它提供了多種配置選項並且易於擴充套件。經過一年多的努力,FOT找到了知名開源程式中的100多處漏洞。FOT獲得2017年NASAC原型競賽(命題型)一等獎,相應的工具論文被ESEC/FSE2018 demonstrations track接受

值得一提的是,當這篇論文進行報告的時候,會場的麥克風出現了問題,儘管如此大家還是非常專注地聽完了報告,特別是報告最後,作者介紹了他們的FOT模糊測試框架時,大家都非常熱切地提了許多問題,非常期待又一個AFL這樣強大的框架能夠早日推廣!
從時間上看,本session的最後一篇論文Rendered Insecure: GPU side channel attacks are practical的報告,也差不多是本次CCS大會的最後一篇論文報告。

這篇論文報告非常流暢生動,可以說是在本次CCS上報告中非常吸引人的報告之一,其內容也很有趣,作者發現即使是在GPU這種計算模型上,依然可以發現一些Side Channel,例如當開啟一個特定的網站首頁時候,GPU的渲染佔用的記憶體會有一個特定的模式,而因為GPU本身提供了一些記憶體使用的查詢API,一個低許可權程序可以簡單地持續查詢當前GPU的記憶體使用,就可以從pattern中發現這臺機器當前在訪問哪一個網站,的確是一個很有意思的研究工作。
Lest we forget!
安全從來就不是一個輕鬆的話題,本次CCS大會盡管諸多報告中充滿了歡聲笑語,但是仍然有一個報告讓我們覺得心情無比沉重:在今天上午的EviHunter: Identifying Digital Evidence in the Permanent Storage of Android Devices via Static Analysis論文報告中,我們看到了令人心痛的內容:


本文的作者系統性地研究了移動裝置上的儲存內容,並通過程式分析方法,能夠確定哪些儲存內容可以被法庭用作數字證據,而其研究成果也被用在2017年中國留學生章瑩穎綁架案上,針對嫌犯的手機進行的分析,讓該案件從missing變成了kidnapping,並幫助警方開展了後續的調查。儘管目前該嫌犯依然還沒有被定罪,但是我們相信, 正義可以遲到,卻永遠不會缺席 。我們也始終堅信,電腦保安研究不只是一些小眾的攻防遊戲,它過去、現在和未來都一直是保障所有人的資訊保安乃至現實安全的最強有力的手段之一。
關於2019

2018年CCS結束了,我很懷念它;接下來,我們要展望一下2019:除了採用了全新投稿模型的CCS 2019 London以外,2019年的AsiaCCS將去到大洋洲的 紐西蘭第一大城市奧克蘭 !如果你已經去過Oakland,那麼不妨考慮一下Auckland吧: )
