隱私護盾 持續升級!安卓綠色聯盟應用體驗標準2.0啟動公示
引言
1
基礎安全標準
1.1 安裝,運行及卸載
應用在用戶未授權情況下,不能進行程序下載、安裝、或升級操作;
應用在用戶未授權情況下,不能執行自啟動操作;
應用在用戶強制關閉或退出後,不能繼續佔用系統資源;
應用中不能包含反卸載操作;
1.2 功能使用
應用在用戶未授權情況下,不能執行撥打電話、發送簡訊等操作;
應用在用戶未授權情況下,不能執行攝像、錄音、截屏等操作;
應用在用戶未授權情況下,不能打開或關閉如WiFi、藍牙、GPS等;
1.3 數據操作
應用在用戶未授權情況下,不能讀寫用戶簡訊、聯繫人等隱私數據;
應用在用戶未授權情況下,不能收集或上報用戶設備、系統及應用程序信息;
應用在用戶未授權情況下,不能修改系統配置等資源文件;
應用在用戶未授權情況下,不能修改其他應用程序的許可權、數據等;
1.4 行為規範(修訂)
應用在用戶未授權情況下,不能進行消費操作;
應用不能包含故意破壞用戶使用體驗、阻礙用戶正常使用手機或應用的任何行為;
應用中不能包含任何侵犯用戶知情權、選擇權的惡意行為
應用在用戶未授權情況下,不能利用漏洞等方式獲取系統控制許可權,進行非授權操作;
如無必要的使用場景,應用不能在桌面、鎖屏和其他應用上,彈出懸浮窗、自定義後台Toast、後台彈出Activity等騷擾用戶的行為;
如無必要的使用場景,應用不能發送無法刪除的常駐通知;
應用不能彈出、顯示影響用戶體驗的廣告,如抬頭、強制插屏、側邊等;
應用不能引導用戶開啟開發者選項,禁止引導用戶開啟USB調試模式;
1.5 其他標準
應用不能包含病毒、木馬;
應用不能包含漏洞、後門;
應用不能包含國家法律禁止的內容,包括但不限於色情,賭博,或任何危害國家安全的信息;
應用不能包含其他任何形式損害用戶利益及資產的行為;
應用不能通過熱補丁,引入惡意行為和不符合本標準的行為;
2
開發安全標準
2.1 Manifest和許可權使用安全規範(修訂)
1)許可權管理。許可權使用滿足最小化原則:
不申請不需要使用的許可權,為自定義許可權設置合理的安全保護級別;
應用申請的許可權,都必須有明確、合理的功能和使用場景;
TargetSdkVersion>=23,必須適配Android M及以後版本的動態許可權機制。
對於非核心許可權,應用不能在許可權動態彈框授權提示被用戶拒絕後,強制要求用戶開啟,包括但不限於:(1)應用退出;(2)彈框提醒用戶打開>=2次;
2)功能項管理。關閉不需要及有風險的功能選項,如數據備份功能、調試功能;
3)組件管理。組件聲明的合理性,避免導出不需要外部調用的組件,如需導出應設置合理的許可權保護;
2.2 應用編碼安全規範
2.2.1 基礎編碼安全規範
保證開發環境的安全性,如使用官方渠道下載的開發工具;
避免硬編碼關鍵數據,如加密密鑰、後端伺服器敏感信息等;
應用代碼凈化,代碼邏輯優化、剔除應用中的死代碼塊;
統一的日誌管理介面,避免在日誌中記錄敏感信息;
應用發布之前,關閉調試介面和調試日誌。
2.2.2 系統API使用安全規範
使用官方推薦版本的API介面,不使用系統廢棄的API
熟悉並遵從安全規範,避免遺漏安全限制操作,引入安全風險;
對關鍵操作身份校驗和許可權檢查;
2.2.3 第三方代碼使用安全規範
代碼評估。來源可靠性評估、代碼質量評估、潛在安全風險評估;
許可權控制。確認引入代碼所需使用的許可權最小化;
更新維護。關注代碼的安全動態和版本更新情況,及時修復安全問題,更新代碼;
安全保護。對引入的代碼進行混淆,防止攻擊者針對性的攻擊;
2.2.4 代碼保護安全規範
代碼混淆。提高攻擊者代碼分析難度;
加固保護。使用自研或者第三方加固系統進行應用加固,進行代碼隱藏和加密保護;
2.3 數據安全規範
2.3.1 數據加密安全規範
數據密文和加密密鑰應存放在不同的位置;
密鑰存儲模塊應具備防調試及反編譯的能力;
密鑰數據應分散存儲,為獲取密鑰密文增大難度;
2.3.2 數據存儲安全規範
應用程序關鍵數據應該存放在私有目錄下,並設置合理的訪問許可權;
應用程序中的隱私數據應加密存儲。用於加密的密鑰應妥善保存;
禁止程序運行日誌中包含有用戶敏感數據、程序調試數據等;
2.3.3 數據使用安全規範
數據合法性保護。控制用戶輸入數據的類型、長度,進行惡意代碼過濾等;
數據完整和有效性保護。對於接收到的外部數據、載入的外部文件,進行完整、有效性性檢查;
2.4 通信安全
2.4.1 本地通信安全
intent數據安全。避免在intent包含用戶敏感數據,從intent中獲取數據時加入必要的異常處理;
intentscheme url 協議安全。使用過程中加入安全限制,防止UXSS等安全問題;
組件調用方式安全。避免通過隱式方式進行調用組件,防止組件劫持;
本地socket通信安全。避免是使用socket方式進行本地通信,如需使用,localhost埠號隨機生成,並對埠連接對象進行身份認證和鑒權;
2.4.2 遠程通信安全
使用https代替http進行通信,並對https證書進行嚴格校驗;
避免進行遠程埠開發通信,如需使用,需要對埠連接對象進行身份認證和鑒權;
2.5 業務安全
2.5.1 認證和授權
認證和授權過程應在伺服器端完成,避免客戶端繞過問題;
對於涉及敏感信息的服務,每次使用前需進行身份認證;
控制登錄憑證token有效期,通信過程中進行token鑒權;
避免在終端設備上使用不安全的方法來存儲用戶名、口令及其它登錄憑證;
用戶密碼需要使用強不可逆的加密演算法加密後傳輸,並引入salt,提高破解難度;
賬戶號和終端設備信息進行綁定,防止終端模擬攻擊;
2.5.2 業務邏輯及數據安全
條件判斷。確保邏輯過程中前置判斷條件的有效性、不可繞 過性,防止攻擊者進行數據修改繞過安全限制;
邏輯設計。確保業務邏輯設計、分支條件及邊界條件處理的正確性和完備性,防止不可控執行流程;
工作分配。確保服務端和客戶端分工正確,防止一些應該放在服務端的校驗工作設置在了客戶端,造成許可權校驗繞過;
業務數據。關鍵業務數據防篡改、防偽造、防重放;
簡訊驗證碼安全。禁止驗證碼回傳行為,驗證碼至少6位,同時嚴格限定驗證碼時效;
2.5.3 業務運維安全
業務風險監控、預警、異常處理預案;
安全動態跟蹤及預警、安全事件排查、漏洞修復;
2.6 運行環境安全
運行期重打包檢測;
模擬器運行環境檢測;
調試、注入操作監控;
root環境運行檢測
2.7 隱私安全(修訂)
涉及到應用下載軟體、對用戶系統或軟體升級等修改用戶個人空間的行為,須得到用戶的同意;
收集或使用個人數據前,須明確提示用戶,並獲得用戶的明示同意,並且允許用戶隨時關閉對個人數據的收集和使用;
默認禁止收集數據主體的敏感個人數據,除非業務必需(如:運動健康類業務)或為了滿足法律與監管機構要求可收集和處理(含profiling),並且同意應該單獨收集;
應提供對用戶的同意和撤銷同意行為進行記錄的機制;
隱私聲明內容發生變化時,須告知用戶查看並獲得用戶同意;
個人數據收集範圍、使用目的不得超出隱私聲明,且遵循最小化原則,當個人數據的採集範圍、使用目的發生變更時,應及時更新隱私聲明;
於存儲個人數據的系統,需對存儲的個人數據定義存留期;
數據主體撤銷同意之後,產品必須禁止繼續收集和處理其相應個人數據;
將數據主體個人數據提供給第三方前,必須獲得數據主體的同意;
推送的內容(含廣告)必須是符合政治、法律和宗教要求,並且推送頻度不能干擾用戶正常使用;
第三方應用軟體調用移動智能終端敏感功能時,應先獲得用戶明確同意;
第三方應用軟體對用戶數據操作時,應先獲得用戶明確同意;
應用軟體不得申請和調用與提供服務無關的終端功能
意見反饋
TAG:安卓綠色聯盟 |