一.介紹
dvb是一個故意存在漏洞的 Android 應用程序,可以認為是APP靶機。它有一個官方文檔,在APP的審計過程中,可以參考官方文檔進行,官方文檔中介紹了APP存在的各種安全漏洞。
從名字可以看出來,這是一個不安全的銀行APP,整個APP包含的核心功能包含登錄、個人資料、密碼更改、轉(zhuǎn)賬、添加受益人等模塊。
包含的具體漏洞,也是一些APP上常見的安全漏洞,例如典型的
root檢測繞過(這個其實也說不上是漏洞),未開啟SSL pinning,明文請求,硬編碼,activity 導出,logcat泄漏等。
二.mobsf平臺掃描
拿到APK后,直接在mobsf上靜態(tài)掃一下看看結(jié)果先
可以掃描結(jié)果摘要,mobsf給了49分,看著好像還可以。不過mobsf評分也就看看就可以了,評分邏輯很不合理,很多正常的APP因為權(quán)限比較多,得分反而很低。這個靶機APP反而得分還可以。進一步看具體分析項。

1,權(quán)限部分
可以看到,沒有申請任何危險權(quán)限。在APP升級過程中,一般比較有復雜功能的APP,都會申請一些被mobsf認為是危險的權(quán)限,例如國內(nèi)APP幾乎都有位置權(quán)限,攝像機權(quán)限。雖然mobsf提醒dangerous,但是業(yè)務邏輯需要,可以不用在意。只需要注意申請的權(quán)限是否滿足合規(guī)要求。例如申請權(quán)限的具體原因、具體場景,需要在隱私政策里說明,在申請權(quán)限之前,需要彈窗提醒用戶,在用戶確認權(quán)限之前,不允許業(yè)務采集相關(guān)信息等等。
不過也有一些權(quán)限需要特別注意,例如寫SD的權(quán)限,如果沒必要,就不要申請,現(xiàn)在大部分APP沒有寫SD權(quán)限的必要。

2,系統(tǒng)API接口部分

上圖是檢測APP調(diào)用的系統(tǒng)API,因為APP沒有進行加固,所以反編譯代碼也比較清晰,在對應的API調(diào)用中,可以點進去看到具體的反編譯代碼。
有幾個可能比較敏感的API調(diào)用,可以進去看一下具體代碼調(diào)用
Certificate Handling

Execute OS Command
看著是一個危險函數(shù),點擊去看,執(zhí)行的command命令不是用戶輸入的,而是固定的/system/xbin/which,這里應該是root檢測邏輯。

?getInstalledPackages
?高危接口,獲取已安裝應用的信息時,確保不會泄露敏感信息
3,BROWSABLE ACTIVITIES

這里可能存在風險,如果URL scheme沒做好限制和過濾,可能會被利用,導入惡意的URL,或者造成信息泄露。
4,網(wǎng)絡相關(guān)風險

這里的風險比較明確,首先是允許明文請求,然后是信任系統(tǒng)證書,沒有進行ssl spinning。反應到動態(tài)測試上,可能會在動態(tài)測試中,發(fā)現(xiàn)有明文傳輸?shù)腍TTP請求,以及可以被抓包工具進行https抓包。這里額外注意,后續(xù)在動態(tài)測試中注意。
5,manifest風險配置項

這里列出了manifest文件中的風險項,具體風險,需要進一步關(guān)注
1,minsdk21 ,還可以,如果更低,例如17,就存在比較嚴重的風險
2,usercleartextfraffic,允許明文傳輸,這里最好設(shè)置成false
3,backu,需要關(guān)閉
4,設(shè)置了inten-fileter,隱式export,需要關(guān)注是否有敏感信息泄露
6,靜態(tài)代碼掃描部分
這里mobsf給了三個部分
1,log可能泄露敏感信息
代碼中有Log函數(shù),mobsf平臺把所有l(wèi)og函數(shù)的代碼入口都列出來了,很多。不過我找了一下,發(fā)現(xiàn)一個很明顯的問題點
????????????????????String string = jSONObject2.getJSONObject("data").getString("accessToken");
? ? ? ? ? ? ? ? ? ? SharedPreferences sharedPreferences = BankLogin.this.getSharedPreferences("jwt", 0);
? ? ? ? ? ? ? ? ? ? Log.d("accesstoken", string)
這里把token給打印出來了。
2,APP讀取外部存儲,可能泄露信息
,3,APP有root檢測邏輯
root檢測邏輯,這里調(diào)用了os.exe函數(shù),需要注意的是繞過相關(guān)的邏輯。
三.總結(jié)
從靜態(tài)掃描結(jié)果來看,APP還是存在不少問題。有些比較明確,例如log了token出來。有些還需要根據(jù)動態(tài)測試的結(jié)果進一步確認。例如很多APP有cleartext的配置,不過實際上APP并沒有明文請求等等。
不過靜態(tài)掃描,還是給除了不少需要注意的風險點,這些風險點,需要在后續(xù)的動態(tài)測試中進行驗證。