標籤:註冊 使用者資訊 name ast 惡意代碼 oid 表單 添加 配置
Android常見漏洞
漏洞名稱: Log敏感資訊泄露
漏洞描述: 程式運行期間列印了使用者的敏感資訊,造成泄露
修改建議: 建議禁止隱私資訊的log
漏洞名稱: web https校正錯誤忽略漏洞
漏洞描述: 漏洞可導致中間人攻擊
修改建議: 建議不要忽略ssl認證錯誤
漏洞名稱: sql注入漏洞
漏洞描述: 漏洞可能導致使用者資料庫中的資訊泄露或者篡改
修改建議: 建議使用安全sqlite,如sqlcipher
漏洞名稱: https空校正漏洞
漏洞描述: 漏洞可導致中間人攻擊
修改建議: setHostnameVerifier介面請設定安全選項層級
漏洞名稱: Provider組件暴露漏洞
漏洞描述: 沒有許可權限制的匯出組件可以使其他app訪問本程式的資料,導致資料泄露
修改建議: 建議增加許可權限制
漏洞名稱: Fragment注入漏洞
漏洞描述: 漏洞導致通過intent輸入適當的extra就可以調用其內部的任意fragment
修改建議: 不要匯出PreferenceActivity
漏洞名稱: WebView遠程代碼執行(CVE-2014-1939)
漏洞描述: 在4.0至4.2的Android系統上,Webview會增加searchBoxJavaBredge_,導致遠程代碼執行。攻擊者可以向頁面植入JavaScript,通過反射在用戶端中執行任意惡意代碼
修改建議: 在Webview中調用removeJavascriptInterface("searchBoxJavaBredge_")
漏洞名稱: ContentResolver暴露漏洞
漏洞描述: 通過暴露的ContentResolver可以繞過provider的許可權限制
修改建議: 對使用ContentResolver的組件不匯出或者添加許可權限制
漏洞名稱: https通訊沒有校正伺服器憑證
漏洞描述: 應用沒有校正伺服器憑證,可導致中間人攻擊,泄露通訊內容
修改建議: 不要重寫TrustManager類,或者實現checkServerTrusted,增加對伺服器憑證的校正
漏洞名稱: https通訊允許所有的伺服器憑證
漏洞描述: 應用沒有校正伺服器憑證,可導致中間人攻擊,泄露通訊內容
修改建議: 不要調用setHostnameVerifier設定ALLOW_ALL_HOSTNAME_VERIFY標誌位
漏洞名稱: Activity安全性漏洞
漏洞描述: Activity存在崩潰或者異常,任意其它應用可導致存在此漏洞的應用崩潰或者功能調用
修改建議: 對傳給Activity的intent中的參數進行嚴格的檢測,如無必要不要匯出這個Activity
漏洞名稱: WebView遠程代碼執行(CVE-2012-6636)
漏洞描述: JavascriptInterface允許攻擊者向頁面植入javascript,通過反射在用戶端中執行任意惡意代碼。所有應用在4.2以下的應用會受影響,編譯API level 小於17的應用在全部系統中都受影響
修改建議: 若應用編譯時間API level小於17,需要提升SDK版本。如果希望4.2以下的手機不受影響,可以參考替代方案https://github.com/pedant/safe-Java-js-webview-bridge
漏洞名稱: Service安全性漏洞
漏洞描述: Service存在崩潰或者異常,任意其它應用可導致存在此漏洞的應用崩潰或者功能調用
修改建議: 對傳給Service的intent中的參數進行嚴格的檢測,如無必要不要匯出這個Service
漏洞名稱: 使用不安全的加密模式
漏洞描述: 使用AES或者DES加密時,使用的預設加密模式或者顯式指定使用ECB模式.容易受到選擇明文攻擊(CPA),造成資訊泄露
修改建議: 顯式指定使用CBC模式加密
漏洞名稱: Receiver安全性漏洞
漏洞描述: BroadcastReceiver存在崩潰或者異常,任意其它應用可導致存在此漏洞的應用崩潰或者功能調用
修改建議: 對傳給BroadcastReceiver的intent中的參數進行嚴格的檢測,如無必要不要匯出這個Receiver
漏洞名稱: 加密時不能指定IV
漏洞描述: CBC加密時,使用了常量作為IV,可被進行BEAST攻擊,造成資訊泄露
修改建議: 動態產生IV的數值
漏洞名稱: 存在外部可訪問的表單
漏洞描述: 應用中存在外部可訪問的表單,造成資訊泄露
修改建議: 審核這些表單的存取權限,如果非必要不要匯出
漏洞名稱: 私人檔案遍曆漏洞
漏洞描述: 通過存在漏洞的URI,可以遍曆讀取應用的私人資料檔案,造成資訊泄露
修改建議: 修改存在檔案遍曆漏洞的URI的ContentProvider的實現,對輸入進行嚴格的檢測和過濾
漏洞名稱: Selection SQL注入漏洞
漏洞描述: 應用存在Selection SQL注入漏洞,會導致儲存在ContentProvider中的資料被泄漏和篡改
修改建議: 修改存在注入漏洞的URI的ContentProvider的實現,對輸入進行嚴格的檢測和過濾
漏洞名稱: Projection SQL注入漏洞
漏洞描述: 應用存在Projection SQL注入漏洞,會導致儲存在ContentProvider中的資料被泄漏和篡改
修改建議: 修改存在注入漏洞的URI的ContentProvider的實現,對輸入進行嚴格的檢測和過濾
漏洞名稱: 存在可被惡意訪問的表單
漏洞描述: 存在可以利用SQL注入方式訪問的表單,造成資訊泄露
修改建議: 修複相關的SQL注入漏洞
漏洞名稱: 同源繞過漏洞
漏洞描述: activity接收使用file://路徑的協議,卻沒有禁用Javascript的執行,通過此漏洞可以讀取應用的任意內部私人檔案,造成資訊泄露
修改建議: 禁用file協議或禁止file協議載入的檔案執行Javascript
漏洞名稱: 本地代碼執行漏洞
漏洞描述: Activity接受外部傳入的url參數,且存在WebView遠程代碼。攻擊者可從本地或者遠程對用戶端進行注入,執行任意惡意代碼
修改建議: 不要匯出此Activity,或者對接受的url參數進行嚴格判斷
常見風險
風險名稱: app備份風險
風險徵兆: 允許程式備份,可能導致使用者資訊泄露
修改建議: 如果不需要備份則添加allowBackup=false,或者實現加密備份
風險名稱: Log資訊泄露
風險徵兆: 程式運行期間的log資料可能泄露
修改建議: 建議發布版去掉log資訊
風險名稱: Intent泄露使用者敏感資訊
風險徵兆: Intent資料包含使用者的敏感資訊,可能導致泄露
修改建議: 將敏感資訊加密,採用許可權限制Intent的範圍
風險名稱: Receiver組件暴露風險
風險徵兆: 廣播可被外部調用導致敏感資訊泄露
修改建議: 無需暴露的組件請設定exported=false;若需要外部調用,建議添加自訂signature或signatureOrSystem層級的私人許可權保護;需要暴露的組件請嚴格檢查輸入參數,避免應用出現拒絕服務。進程內動態廣播註冊建議使用LocalBroadcastManager;或者使用registerReceiver(BroadcastReceiver, IntentFilter, broadcastPermission, Handler)替代registerReceiver(BroadcastReceiver, IntentFilter)
風險名稱: 廣播資訊泄露風險
風險徵兆: 廣播可以被其他惡意程式進行接收,導致使用者資訊泄露或者終止廣播
修改建議: 建議使用顯式調用方式發送Intent;進程內發送訊息建議使用LocalBroadcastManager;或者使用許可權限制接收範圍,如使用sendBoardcast(Intent, receiverPermission)替代sendBoardcast(Intent)
風險名稱: 外部儲存使用風險
風險徵兆: 儲存在外部空間的資料可能造成資訊泄露
修改建議: 建議敏感性資料不要採用外部儲存,外部儲存做好許可權限制和加密處理
風險名稱: app調試風險
風險徵兆: 允許程式被調試
修改建議: 將debugable的值修改為false
風險名稱: 私人設定檔讀風險
修改建議: 建議禁用全域讀操作,改為MODE_PRIVATE
風險名稱: 使用者自訂許可權濫用風險
風險徵兆: 以下許可權為normal許可權,可能導致敏感資訊泄露
修改建議: 建議修改為signature或者signatureOrSystem
風險名稱: 私人設定檔讀寫風險
修改建議: 建議禁用全域寫操作 改為MODE_PRIVATE
風險名稱: 私人設定檔寫風險
修改建議: 建議禁用全域讀寫操作 改為MODE_PRIVATE
風險名稱: 私人檔案泄露風險
風險徵兆: 存在敏感檔案泄露風險
修改建議: 建議禁用MODE_WORLD_READABLE和MODE_WORLD_READABLE選項開啟檔案
風險名稱: Activity組件暴露風險
風險徵兆: Activity介面可被其它應用調用,用於執行特定的敏感操作或釣魚欺騙,建議添加android:exported=false,若需要外部調用,需自訂signature或者signatureOrSystem層級的許可權
修改建議: 無需暴露的組件請設定exported=false;若需要外部調用,建議添加自訂signature或signatureOrSystem層級的私人許可權保護;需要暴露的組件請嚴格檢查輸入參數,避免應用出現拒絕服務。
風險名稱: 全域可讀檔案
風險徵兆: 應用記憶體在其它任何應用都可以讀取的私人檔案,可能造成資訊洩漏
修改建議: 將檔案屬性改為只有所屬使用者或同組使用者可以讀取
風險名稱: 全域可寫檔案
風險徵兆: 應用記憶體在其它任何應用都可以修改的私人檔案,可能造成應用行為被修改甚至是代碼注入
修改建議: 將檔案屬性改為只有所屬使用者或同組使用者可以修改
風險名稱: Uri使用者敏感資訊泄露
風險徵兆: Uri中包含使用者敏感資訊,導致逆向分析者很容易獲得相關資訊
修改建議: Uri路徑做轉換
風險名稱: 嘗試使用root許可權
風險徵兆: 如果程式具有root許可權,且沒有對調用做限制的話,可能被惡意利用
修改建議: 禁用不必要的高許可權,並對關鍵許可權加上校正限制
風險名稱: Url使用者敏感資訊泄露
風險徵兆: Url中包含使用者敏感資訊,可能導致資訊泄露
修改建議: 資料加密處理
風險名稱: 外部URL可控的Webview
風險徵兆: Activity可被其它應用程式掉用並載入一個外部傳入的連結,可被用來進行釣魚攻擊,或者進一步進行漏洞利用
修改建議: 減少不必要的Activity的匯出
風險名稱: KeyStore風險
風險徵兆: Android系統KeyStore金鑰儲存區組件存在敏感資訊洩漏漏洞
修改建議: 建議禁用android.security.KeyStore
轉:http://blog.csdn.net/zhangcanyan/article/details/51347629
Android常見漏洞