2014SyScan360——請關閉安卓app中的攻擊窗口
2014年7月16日,由SyScan主辦,360公司承辦的SyScan360國際前瞻信息安全會議隆重召開。今天,作為本次大會的最后一天,將有更加精彩的內(nèi)容呈現(xiàn)給與會者。據(jù)悉,今天將有6個議題逐一呈現(xiàn)給大家,此外也將宣布特斯拉破解的最終結(jié)果以及電子門卡的破解活動。
隨著智能手機的普及,安卓操作系統(tǒng)已經(jīng)被人們熟知,隨著對操作系統(tǒng)的熟悉,很多人也都清楚,在安卓系統(tǒng)中的漏洞也是數(shù)不勝數(shù)。來自上海交通大學計算機系在讀博士生pLL,在本次大會的演講中便重點對安卓APP中的的攻擊窗口進行了逐一解析。
很多技術人員都清楚,Broadcast作為一種異步通信的手段,被一些功能復雜的app廣泛使用。雖然學術界早在2012年就提到了此方法的安全性,但其描述非常含糊,導致業(yè)界對broadcast的安全性重視程度不夠。一些安全檢測工具甚至忽略針對broadcast的安全性檢查。
pLL在演講中提到:我們對安卓平臺下的broadcast進行描述,對攻擊方法、檢測方法進行刻畫,并通過靜態(tài)檢測和動態(tài)確認的手段,來展示與此相關的安全問題廣泛存在于目前的app中。而我們也可以通過靜態(tài)的aDFAer引擎和動態(tài)的Thor系統(tǒng),分別在MIUI rom, SAMSUNG rom, 設置在谷歌的服務框架中,找到這類漏洞。
此外通過pLL的一組測試集和測試結(jié)果顯示:一個軟件它的功能越復雜,就越容易出問題,因為一個軟件功能比較復雜,就牽扯到一些通信上的問題。在這種情況下,國外的APP相對于國內(nèi)的APP實際上更安全一點。通過測試,pLL也觀察到國內(nèi)的這些比較大型的軟件廠商,喜歡開發(fā)一個all in one的程序,所有的東西都加在里面,功能一復雜就會容易出現(xiàn)問題。我們測試下來,如百度、阿里、騰訊等他們的主流APP都存在問題,都可以被第三方應用程序控制。
pLL表示:在這些主流廠商的一些主流APP里面,我們也發(fā)現(xiàn)有一些APP雖然目前沒有很明確的攻擊方法出現(xiàn),但是它也是做了一些增強,有一些APP使用安全的廣播和注冊方法,但是我們說因為它的代碼量比較大,而且每一個開發(fā)者對安全問題的理解是不一樣的,即使在非常安全的APP里面,我也多少能找到一些可以攻擊的點。
因此在面臨這個問題的時候,排查過程是非常困難的,因為我們看到所有的方法看起來都一樣。而且即使我們能區(qū)分出來這些方法,我們還要根據(jù)具體的業(yè)務流程看這個方法使用安全不安全。比如對于我們處理系統(tǒng)廣博的Receiver來說,它只能使用不安全的廣播注冊方法。如果我們需要限制系統(tǒng)廣播的一些權(quán)限,那我們就收不到某些權(quán)限了。
此外另外通過測試pLL也提到在三星、小米的手機等等,里面子代的ROM里面發(fā)現(xiàn)了跟動態(tài)注冊廣播相關的問題,在Google的服務框架中我們也發(fā)現(xiàn)了一些問題。
針對以上問題,最后他給編碼者提供了以下建議:
首先,不建議把處理系統(tǒng)廣播和處理自定義的廣播在一起,即便不能構(gòu)造系統(tǒng)的廣播,也可以通過一個自定義的廣播進入一個Receiver,來觸發(fā)Receiver里面的一些行為。
第二,另外對于自定義的一些Action,建議使用相對安全的廣播注冊方法,也就是來自于 local broadcast里面的。
第三,另外如果一定要把這個廣播暴露出去,建議做一些訪問接口的權(quán)限。