安卓APP安全測試基礎

學習牛人經驗,結合本身的測試,作簡單總結:android

簡介:
安卓APP安全測試目前主要覆蓋如下方面:
1)自身組件安全
2)本地敏感數據保護
3)web接口安全

1、自身組件安全
目前手動、開源或免費工具均能檢測此類漏洞。
開源工具推薦:drozer
免費工具推薦:360捉蟲獵手、愛加密、阿里聚安全web


固然掃描結果和漏洞掃描結果同樣,存在誤報,須要測試者本身排除。
以圖中360捉蟲獵手爲例,「Service組件暴露」誤報:sql


但實際上在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的包名-->

2、本地敏感數據保護
敏感數據集中在登陸認證信息和重要的業務數據
若是本地不存儲敏感數據,而是依賴web從服務端獲取,則此部分測試能夠跳過。
若是本地存儲敏感數據,則測試過程主要分爲:尋找存儲位置和解密數據安全


測試流程:

一方面
一、在模擬器或者開發機上安裝相關app
二、經過root explorer 等工具分析安裝目錄(/data/data/包名)和數據存儲目錄(/Android/data/包名),尋找可能的敏感數據文件
三、使用sqlitebrowser等工具嘗試打開敏感數據文件

另外一方面
一、反編譯app,分析源代碼
二、分析數據存儲過程,獲取數據存儲路徑和可能的密碼信息
三、使用sqlitebrowser等工具嘗試打開敏感數據文件

另外,還能夠注意尋找可能存在的日誌文件,其中可能也有潛在的敏感數據。尤爲是在上一個流程中被發現:logcat可能泄露程序隱私信息和敏感信息 的狀況。

3、web接口安全
此部分與web應用安全測試一致。複雜程度高度依賴app的業務功能。
常見的安全漏洞和web應用安全漏洞一致。
另外,須要重點關注邏輯漏洞:登陸安全策略與主站不一致、權限提高(越權訪問或操做)等。app


測試流程:工具


一、在模擬器或者開發機上安裝相關app
二、經過burpsuite等代理工具獲取web訪問路徑
三、對web訪問路徑進行漏洞掃描
四、對web訪問路徑進行手動測試

學習

相關文章
相關標籤/搜索