包簽名 - (非原始簽名說明包被修改過,可能被植入木馬)
CVE-2017-13156(Janus簽名)
調試證書使用 -(1.無法在應用市場上架,2.影響迭代更新)
為Debug或Android說明使用的調試證書
應用加殼
SO文件加殼
啟動隱藏服務風險
全局異常檢測
啟用VPN服務檢測
系統權限使用
Android.permission.INSTALL_PACKAGES #允許程序安裝應用
Android.permission.WRITE_SECURE_SETTINGS #讀寫系統敏感設置
Android.permission.MOUNT_FORMAT_FILESYSTEMS #格式化文件系統
Android.permission.MOUNT_UNMOUNT_FILESYSTEMS #在sd卡內創建和刪除文件權限
Android.permission.RESTART_PACKAGES #結束系統任務
ProtectionLevel權限
sharedUserid檢測
master key漏洞
allowBackup
debuggable
模擬器權限 - 用戶位置任意篡改
測試模式發布
組件 - Activity
類型:DDOS | 信息泄露
組件 - Service
類型:DDOS | 信息泄露
組件 - Receiver
類型:DDOS | 信息泄露
組件 - provider
類型:信息泄露 | 目錄遍歷 | SQL注入(uri搜索 - addURI)|任意文件讀寫
debug/test敏感組件信息泄露
組件功能未實現引發DDOS
Intent-based
PendingIntent誤用Intent
Intent敏感數據泄露風險
Fragment注入
風險:導致本地拒絕服務漏洞,fragment 注入攻擊可導致應用的敏感信息泄露、遠程代碼執行
動態注冊廣播風險
風險:越權|信息泄露|DDOS
WebView遠程執行
WebView XSS
WebView明文存儲密碼
WebView組件忽略SSL證書驗證錯誤
風險:劫持 | 用戶敏感信息泄露
WebView系統隱藏接口未移除
CVE-2012-663
CVE-2014-1939
WebView組件克隆應用
風險:遠控
數據庫任意讀寫
SharedPreference全局讀寫
風險:用戶敏感信息泄露
內部文件全局讀寫
HTTPS未校驗主機名
風險:劫持
HTTPS 未校驗服務器證書
風險:劫持
getDir數據全局可讀寫
隨機數不安全使用風險
發送廣播信息泄漏風險
剪貼板信息泄露風險
SD卡數據泄漏風險
資源文件泄露風險
URL敏感信息檢測
外部加載dex
外部加載so
日志數據泄漏風險
弱加密檢測
RSA加密算法不安全使用風險
Java代碼混淆檢測
證書明文存儲風險
SO未使用編譯器堆棧保護風險
惡意可執行程序感染漏洞
應用運行其它可執行程序風險
應用Root設備運行風險
截屏攻擊風險
本地端口開放越權
FFmpeg任意文件讀取
風險:可以訪問手機中任意文件,導致用戶信息泄露
代碼保護不足
未混淆
未加固
代碼中編寫測試賬戶信息
密鑰硬編碼
對密鑰離散存儲於資源文件中,並動態加載使用
服務端證書檢測 - 測試客戶端程序是否嚴格檢查服務器端證書信息,避免用戶訪問釣魚網站后,泄露密碼等敏感信息。SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER為忽略證書驗證
對SSL證書進行強校驗,包括證書是否合法、主機域名是否合法和證書的有效期。修改Allow_all_hostname_verfier
Janus安卓簽名漏洞
將App升級到最新的Signature scheme V2簽名機制;
開發者及時校驗App文件的開始字節,以確保App未被篡改。
WebView漏洞
Android 4.2之前版本對addJavascriptInterface的輸入參數進行過濾;
Android 4.2及之后版本,使用聲明@JavascriptInterface來代替addjavascriptInterface
控制相關權限或者盡可能不要使用js2java的bridge
隨機數加密破解漏洞
Intent協議解析越權漏洞
KeyStore漏洞
SQL注入漏洞
參數化
預編譯
過濾
公共組件漏洞
組件Content Provider配置錯誤,導致數據泄漏 組件Activity配置錯誤,導致登錄頁面被繞過 組件Service配置錯誤,導致非法權限提升 組件Broadcast Receiver配置錯誤,導致拒絕服務、非法越權
應用配置錯誤
關閉allowbackup備份 關閉Debuggable屬性,防止應用信息篡改泄露風險
數據安全
SQLLite讀取權限安全性
創建應用內部存儲文件時,調用了openOrCreateDatabase,並將訪問權限設置為MODE_WORLD_READABLE或者MODE_WORLD_WRITEABLE
私有文件泄露風險
創建應用內部存儲文件時,調用了openFileOutput,並將訪問權限設置為MODE_WORLD_READABLE或者MODE_WORLD_WRITEABLE,若設備被root也可進行讀寫。
設置為MODE_PRIVATE模式
SharedPrefs任意讀寫漏洞
創建應用SharedPreference時,調用了getSharedPreferences,並將訪問權限設置為MODE_WORLD_READABLE或者MODE_WORLD_WRITEABLE
日志泄露風險
cookie等用戶隱私被竊取
不要將不必要組件導出;如需導出,禁止使用File協議;如需使用File協議,禁止js執行:setJavaScriptEnabled(False)
對file域下符號鏈接限制不當,可導致cookie等用戶隱私被竊取