學習牛人經驗,結合自己的測試,做簡單總結:
簡介:
安卓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訪問路徑進行手動測試