標籤:
學習牛人經驗,結合自己的測試,做簡單總結:
簡介:
安卓APP安全性測試目前主要覆蓋以下方面:
1)自身組件安全
2)本地敏感性資料保護
3)web介面安全
一、自身組件安全
目前手動、開源或免費工具均能檢測此類漏洞。
開源工具推薦:drozer
免費工具推薦:360捉蟲獵手、愛加密、阿里聚安全
當然掃描結果和漏洞掃描結果一樣,存在誤判,需要測試者自己排除。
以圖中360捉蟲獵手為例,“Service組件暴露”誤判:
但實際上在AndroidManifest.xml中,已經聲明了相關的許可權:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.VIBRATE"/>
<permission android:name="com.xiaomi.mipushdemo.permission.MIPUSH_RECEIVE" android:protectionLevel="signature" />
<!--這裡com.xiaomi.mipushdemo改成app的包名-->
<uses-permission android:name="com.xiaomi.mipushdemo.permission.MIPUSH_RECEIVE" />
<!--這裡com.xiaomi.mipushdemo改成app的包名-->
二、本地敏感性資料保護
敏感性資料集中在登入認證資訊和重要的業務資料
如果本地不儲存敏感性資料,而是依賴web從服務端擷取,則此部分測試可以跳過。
如果本機存放區敏感性資料,則測試過程主要分為:尋找儲存位置和解密資料
測試流程:
一方面
1、在模擬器或者開發機上安裝相關app
2、通過root explorer 等工具分析安裝目錄(/data/data/包名)和資料存放區目錄(/Android/data/包名),尋找可能的敏感性資料檔案
3、使用sqlitebrowser等工具嘗試開啟敏感性資料檔案
另一方面
1、反編譯app,分析原始碼
2、分析資料預存程序,擷取資料存放區路徑和可能的密碼資訊
3、使用sqlitebrowser等工具嘗試開啟敏感性資料檔案
另外,還可以注意尋找可能存在的記錄檔,其中可能也有潛在的敏感性資料。尤其是在上一個流程中被發現:logcat可能泄露程式隱私資訊和敏感資訊 的情況。
三、web介面安全
此部分與web應用安全性測試一致。複雜程度高度依賴app的業務功能。
常見的安全性漏洞和web應用安全性漏洞一致。
另外,需要重點關注邏輯漏洞:登入安全性原則與主站不一致、許可權提升(越權訪問或操作)等。
測試流程:
1、在模擬器或者開發機上安裝相關app
2、通過burpsuite等代理工具擷取web訪問路徑
3、對web訪問路徑進行漏洞掃描
4、對web訪問路徑進行手動測試
安卓APP安全性測試基礎