團隊介紹
360 Vulpecker團隊隸屬于360信息安全部門,致力于利用Android應(yīng)用和系統(tǒng)層以及其他Android安全研究中的漏洞。通過對CTS框架的研究,我們編寫了一份關(guān)于漏洞檢測的文檔,以下是文章的全文。
CTS是兼容性測試套件的全稱。Google開發(fā)CTS框架的意義在于,讓各種安卓設(shè)備廠商開發(fā)出兼容性更好的設(shè)備。手機安全檢測有一些模塊。本文以此為主題,對漏洞檢測進行研究。包括如何下載和編譯,如何調(diào)度和使用安全模塊。
1.中旅運營流程
1.1下載并編譯Android CTS源代碼,
通過gitclone可以下載并編譯https://android.googlesource.com/platform/CTS-bxxxxxxx, cts,或者下載并編譯完整的Android源代碼。編譯源代碼后,可以編譯cts。命令是制作cts;在/home/venscor/androidsource/leak/out/host/Linux-x86/CTS下生成幾個關(guān)于CTS的文件,CTS-traded可以在其中啟動CTS測試程序。
1.2CTS操作環(huán)境
Android官網(wǎng)對CTS運行環(huán)境有嚴(yán)格的要求,但目前我們關(guān)注的是安全模塊的測試,所以只需要基本的測試環(huán)境。比如打開adb,允許adb安裝apk,不設(shè)置鎖屏。
1.3中旅運營流程
從源代碼可以看出,cts-tradefed實際上是一個腳本文件。首先,做一些環(huán)境檢查。滿足運行環(huán)境后,轉(zhuǎn)到android-cts/tool/ directory加載對應(yīng)的jar文件,從android-cts/lib加載所有需要的庫文件。最后,加載android-cts/testcase/目錄下的所有jar文件,然后執(zhí)行。
CTS控制臺功能在兼容性控制臺類中實現(xiàn),該類也是程序的加載點
1.4啟動腳本進入電流互感器測試程序控制臺
CTS測試套件由多個計劃組成,計劃可以由多個子計劃和模塊組成。我們只關(guān)心CTS和安全相關(guān)的東西,也就是安全相關(guān)的模塊。有四個與安全相關(guān)的測試模塊:
CtsAppSecurityHostTestCases
CtsJdwpSecurityHostTestCases
安全主機測試案例
安全測試案例
其中CtsAppSecurityHostTestCases和CtsJdwpSecurityHostTestCases不包含CVE,實際上是一些App層安全檢測和安全策略檢測。我們可以跳過這兩個模塊,重點分析CtsSecurityHostTestCases和CtsSecurityTestCases。
2.綜合運輸系統(tǒng)中的安全模塊
2.1 CtsSecurityHostTestCases模塊
對應(yīng)于CtsSecurityHostTestCases模塊的源代碼路徑位于:。/hostsidests/security。也就是說,它是通過在cts控制臺中輸入run cts-module ctssecurityhost testcases來加載的。
CtsSecurityHostTestCases主要測試Linux內(nèi)核和各種驅(qū)動的漏洞,都是C/C++中用于漏洞檢測的PoC。
2.1.1測試流程
您可以通過運行cts-module ctssecurityhost測試用例來測試整個模塊,也可以通過運行cts-module ctssecurityhost測試用例-test來測試特定的方法。比如測試CVE_2016_8451,可以通過-testandroid . security . cts . POC 16 _ 12 # testpoccve _ 2016 _ 8451來做。
我們通過一個例子來看具體的測試過程,以CVE_2016_8460的檢測為例,詳細(xì)分析測試過程。在CTS下,運行CTS-module ctssecurityhost test cases-testandroid . security . CTS . POC 16 _ 12 # test pocve _ 2016 _ 8460。程序?qū)⑦\行到CtsSecurityHostTestCases模塊下的testPocCVE_2016_8460()函數(shù)。
其實這個測試過程就是把CtsSecurityHostTestCases模塊下的可執(zhí)行文件CVE _ 2016 _ 8460推送到手機的sd卡上,然后執(zhí)行這個可執(zhí)行文件,也就是執(zhí)行poc測試程序。
2.1.2成果管理
CTS測試完成后,將生成可視化結(jié)果,這些結(jié)果以xml格式存儲在cts/android-cts/results目錄中。打包格式。因此,安全模塊的結(jié)果管理是相同的。
結(jié)果頁面中只有兩個結(jié)果。一個是通過,表示測試通過,說明沒有漏洞。第二,失敗。這一結(jié)果可能有兩個原因。一是測試環(huán)境有問題,二是有漏洞。您可以在報告的邊緣看到詳細(xì)的顯示。
2.1.3添加和剝離測試用例
根據(jù)CtsSecurityHostTestCases模塊的測試原理,在添加新的測試用例時,可以完全剝離CTS的測試框架,直接用C/c++編寫測試代碼,編譯后添加到/data/local/tmp目錄中,然后修改執(zhí)行權(quán)限,即可執(zhí)行。
CtsSecurityHostTestCases模塊中已有的漏洞檢測代碼,我們也可以直接使用。我們可以下載CTS的源代碼來查看漏洞檢測PoC的代碼,我們可以自己編譯或者直接使用CTS編譯的可執(zhí)行文件來檢測相應(yīng)的漏洞。
2.2安全測試案例模塊
CtsSecurityTestCases模塊基于動態(tài)檢測,使用Java或JNI觸發(fā)漏洞,直到數(shù)據(jù)傳輸?shù)降讓勇┒次恢谩_@個模塊的源代碼路徑是。測試/測試/安全性。
2.2.1測試流程
測試流程與CtsSecurityHostTestCases模塊一致,實際上是CTS框架的測試流程。以運行cts - module的方式測試整個模塊,并使用測試模塊中的特定方法來執(zhí)行測試。使用運行模塊
以下以cve_2016_3755為例描述該模塊的操作過程。
首先,在CTS框架中輸入run CTS-module ctssecuritytestcases-testandroid . security . CTS . stagethreet # teststagethreet _ CVE _ 2016 _ 3755。
然后,CTS框架會找到teststage錯愕_cve_2016_3755()方法并執(zhí)行測試。
2.2.2成果管理
CtsSecurityTestCases模塊也由CTS的統(tǒng)一結(jié)果管理。因此,上面的CtsSecurityHostTestCases模塊是一樣的。測試結(jié)果出現(xiàn)在xml文件中,通過表示成功沒有漏洞,失敗給出失敗原因。
測試結(jié)果的監(jiān)控采用assertXXX()方法,漏洞情況由測試過程中的行為決定。例如:
2.2.3添加和剝離測試用例
添加案例:要在這種模式下添加案例,您需要知道如何觸發(fā)漏洞。CtsSecurityTestCases模塊應(yīng)該是基于Android上的JUnit測試程序,所以你要知道你可以按照J(rèn)Unit的編寫方式添加測試代碼,然后構(gòu)建。其實在編寫測試代碼的時候,如果能脫離CTS的源代碼依賴或者參考CTS的jar,應(yīng)該可以直接脫離CTS架構(gòu)。
剝離案例:加上一個道理,我們需要讓提取的代碼獨立可執(zhí)行。
3.總結(jié)
在安卓手機碎片化嚴(yán)重的今天,各個手機廠商的代碼質(zhì)量也是良莠不齊。因此,安卓手機的安全性存在于復(fù)雜的生態(tài)環(huán)境中,因此有必要對安卓手機的脆弱性進行檢測。本文考察了Google的官方開源CTS框架,研究了Android手機的漏洞檢測。希望能為Anroid安全研究吸引更多的幫助。
最近幾天最熱門的安全新聞,看這里!
▼▼▼
1.《cts測試 使用CTS進行漏洞檢測及原理淺析》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點,與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《cts測試 使用CTS進行漏洞檢測及原理淺析》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。
3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/yule/1238358.html