Android APP檢測之自動化檢測實戰:五大APP安全在線檢測平臺對比

Android APP本文做者:ice@DMZLab

最近一直在研究的檢測,寫了一個系列的文章——手工檢測,自動化檢測,常見漏洞分析。今天給你們帶來的是自動化檢測。本篇沒有深刻的講解每個漏洞的詳情,僅做測試結果對比和本身的體驗心得。javascript

0×01 五大在線檢測平臺

騰訊的金剛審計系統 http://service.security.tencent.com/kingkonghtml

圖片1.png

360的捉蟲獵手 http://appscan.360.cn/java

圖片2.png

阿里巴巴的聚安全http://jaq.alibaba.com/gc/appsec/index.htmandroid

圖片3.png

百度的移動雲測試中心http://mtc.baidu.com/web

圖片4.png

梆梆加固測試平臺(http://dev.bangcle.com/apps/index算法

圖片5.png

 

效果對比

這裏選用墨跡天氣app的測試結果apache

百度移動測試中心

漏洞名稱 風險級別 說明 修復建議 詳情
組件暴露——Activity 中危 當應用程序的組件被導出後,導出的組件能夠被第三方app任意調用,從而致使敏感信息泄露,並且惡意攻擊者也能夠經過精心構造數據來達到攻擊目標應用的的目的。 若是組件不須要與其餘應用共享數據或進行交互,則在AndroidManifest.xml文件中設置該組件爲 exported = 「false」,反之,則須要對導出的組件進行權限控制而且嚴格校驗傳入的參數。 com.moji.mjweather.activity.main.MainActivity com.moji.mjweather.CSplashScreen com.moji.mjweather.activity.share.ManualShareActivity com.moji.mjweather.activity.skinshop.SkinSelectorActivity com.kepler.jd.login.AuthSuccessActivity com.moji.mjweather.activity.liveview.MessageDetailActivity com.moji.mjweather.activity.liveview.OwnerMessageCenterActivity com.moji.mjweather.activity.account.SnsLoginActivity com.moji.mjweather.activity.liveview.HomePageActivity com.moji.mjweather.activity.voiceclock.AlarmAlertActivity com.moji.mjweather.activity.voiceclock.AlarmAlertFullScreenActivity com.moji.mjweather.activity.share.SharePlatformDialog com.tencent.tauth.AuthActivity com.moji.mjweather.activity.liveview.LauncherCameraActivity com.moji.mjweather.activity.bindapp.InstallAppActivity com.moji.mjweather.activity.settings.WidgetConfigureActivity com.igexin.sdk.GActivity com.moji.mjweather.wxapi.WXPayEntryActivity com.moji.mjweather.wxapi.WXEntryActivity com.moji.mjweather.activity.forum.TopicActivity com.moji.mjweather.x5webview.BrowserActivity 共:21個。
組件暴露——Service 中危 當應用程序的組件被導出後,導出的組件能夠被第三方app任意調用,從而致使敏感信息泄露,並且惡意攻擊者也能夠經過精心構造數據來達到攻擊目標應用的的目的。 若是組件不須要與其餘應用共享數據或進行交互,則在AndroidManifest.xml文件中設置該組件爲 exported = 「false」,反之,則須要對導出的組件進行權限控制而且嚴格校驗傳入的參數。 com.moji.mjweather.service.ScreenService com.igexin.sdk.PushService com.igexin.sdk.PushServiceUser com.moji.mjweather.authaccount.AuthenticationService com.moji.mjweather.authaccount.SyncService 共:5個。
組件暴露——BroadcastReceiver 中危 當應用程序的組件被導出後,導出的組件能夠被第三方app任意調用,從而致使敏感信息泄露,並且惡意攻擊者也能夠經過精心構造數據來達到攻擊目標應用的的目的。 若是組件不須要與其餘應用共享數據或進行交互,則在AndroidManifest.xml文件中設置該組件爲 exported = 「false」,反之,則須要對導出的組件進行權限控制而且嚴格校驗傳入的參數。 com.moji.mjweather.receiver.PackageReceiver com.moji.mjweather.receiver.MojiReceiver com.moji.mjweather.CMojiWidget4x1 com.moji.mjweather.CMojiWidget4x2 com.moji.mjweather.CMojiWidget5x1 com.moji.mjweather.CMojiWidget5x2 com.igexin.sdk.PushReceiver com.igexin.download.DownloadReceiver com.baidu.bottom.service.BottomReceiver com.zk.drivermonitor.reciever.SystemStartReceiver 共:10個。
應用數據任意備份風險 中危 當AndroidManifest.xml配置文件中沒有有設置allowBackup標誌(默認爲true)或將allowBackup標誌設置爲true時,應用程序的數據能夠被任意備份和恢復,惡意攻擊者能夠經過adb工具有份複製應用程序的數據。 在AndroidManifest.xml文件中設置application的屬性 android:allowBackup=」false」  
權限濫用風險 中危 自定義權限的保護級別太低,致使任意應用程序均可以使用此權限,沒法起到保護做用。 如非必要,自定義權限的保護級別至少要設置爲:signature。  
漏洞名稱 風險級別 說明 修復建議 詳情
WebView組件系統隱藏接口未移除漏洞 高危 使用Android WebView組件時,沒有移除其中內置的searchBoxJavaBridge_,accessibility和accessibilityTraversal等導出接口, 可能致使遠程代碼任意執行 使用Android WebView組件時,經過調用removeJavascriptInterface方法移除searchBoxJavaBridge_, accessibility和accessibilityTraversal等導出接口,防止被惡意利用 源文件: 類:com.baidu.mobad.feeds.remote.BaiduActivity 方法:a 行數:-1
WebView組件系統隱藏接口未移除漏洞 高危 使用Android WebView組件時,沒有移除其中內置的searchBoxJavaBridge_,accessibility和accessibilityTraversal等導出接口, 可能致使遠程代碼任意執行 使用Android WebView組件時,經過調用removeJavascriptInterface方法移除searchBoxJavaBridge_, accessibility和accessibilityTraversal等導出接口,防止被惡意利用 源文件: 類:com.qq.e.comm.plugin.j.a 方法:onAfterCreate 行數:-1
Dex文件動態加載風險 中危 Android提供的DexClassLoader動態加載方法,並無對DEX文件和路徑進行安全校驗,可能致使加載文件或者優化文件被惡意替換 使用DexClassLoader方法動態加載DEX文件時,對DEX文件進行安全校驗,並保證加載路徑和優化路徑的安全 源文件: 類:com.baidu.mobad.feeds.remote.AdManager 方法:getPatchClassLoader 行數:-1
SSL證書驗證不當漏洞 中危 應用忽略證書校驗錯誤或信任任意證書,會致使中間人攻擊,形成隱私泄露 禁止使用ALLOW_ALL_HOSTNAME_VERIFIER;禁止使用X509TrustManager.checkServerTrusted方法來忽略證書驗證錯誤;在使用HostnameVerifier時verify合理處理,禁止直接返回true 源文件: 類:com.qq.e.comm.plugin.k.d$a$1 方法:verify 行數:-1
WebView密碼明文保存漏洞 低危 在默認狀況下,若是用戶選擇保存在WebView中輸入的用戶名和密碼,則會被明文保存到應用數據目錄的databases/webview.db文件中,存在密碼被泄露的風險 使用WebView.getSettings().setSavePassword(false)來禁止保存密碼 源文件: 類:com.qq.e.comm.plugin.m.f 方法:a 行數:-1
WebView密碼明文保存漏洞 低危 在默認狀況下,若是用戶選擇保存在WebView中輸入的用戶名和密碼,則會被明文保存到應用數據目錄的databases/webview.db文件中,存在密碼被泄露的風險 使用WebView.getSettings().setSavePassword(false)來禁止保存密碼 源文件: 類:com.qq.e.comm.plugin.m.f 方法:b 行數:-1
WebView密碼明文保存漏洞 低危 在默認狀況下,若是用戶選擇保存在WebView中輸入的用戶名和密碼,則會被明文保存到應用數據目錄的databases/webview.db文件中,存在密碼被泄露的風險 使用WebView.getSettings().setSavePassword(false)來禁止保存密碼 源文件: 類:com.qq.e.comm.plugin.j.a 方法:onAfterCreate 行數:-1
WebView密碼明文保存漏洞 低危 在默認狀況下,若是用戶選擇保存在WebView中輸入的用戶名和密碼,則會被明文保存到應用數據目錄的databases/webview.db文件中,存在密碼被泄露的風險 使用WebView.getSettings().setSavePassword(false)來禁止保存密碼 源文件: 類:com.baidu.mobad.feeds.remote.BaiduActivity 方法:a 行數:-1
WebView密碼明文保存漏洞 低危 在默認狀況下,若是用戶選擇保存在WebView中輸入的用戶名和密碼,則會被明文保存到應用數據目錄的databases/webview.db文件中,存在密碼被泄露的風險 使用WebView.getSettings().setSavePassword(false)來禁止保存密碼 源文件: 類:com.baidu.mobad.feeds.remote.BaiduActivity$1 方法:shouldOverrideUrlLoading 行數:-1
WebView密碼明文保存漏洞 低危 在默認狀況下,若是用戶選擇保存在WebView中輸入的用戶名和密碼,則會被明文保存到應用數據目錄的databases/webview.db文件中,存在密碼被泄露的風險 使用WebView.getSettings().setSavePassword(false)來禁止保存密碼 源文件: 類:com.baidu.mobad.feeds.remote.DownloaderTask 方法:a 行數:-1
PendingIntent包含隱式Intent風險 低危 PendingIntent以其發送方應用的權限使用該PendingIntent包含的Intent,若是該Intent爲隱式的,可能形成隱私泄露和權限泄露 使用PendingIntent時,建議使用顯示Intent 源文件: 類:com.baidu.mobad.feeds.remote.download.e 方法:run 行數:-1
PendingIntent包含隱式Intent風險 低危 PendingIntent以其發送方應用的權限使用該PendingIntent包含的Intent,若是該Intent爲隱式的,可能形成隱私泄露和權限泄露 使用PendingIntent時,建議使用顯示Intent 源文件: 類:com.qq.e.comm.plugin.a.b.c 方法:d 行數:-1
PendingIntent包含隱式Intent風險 低危 PendingIntent以其發送方應用的權限使用該PendingIntent包含的Intent,若是該Intent爲隱式的,可能形成隱私泄露和權限泄露 使用PendingIntent時,建議使用顯示Intent 源文件: 類:com.qq.e.comm.plugin.a.i 方法:b 行數:-1
WebView密碼明文保存漏洞 低危 在默認狀況下,若是用戶選擇保存在WebView中輸入的用戶名和密碼,則會被明文保存到應用數據目錄的databases/webview.db文件中,存在密碼被泄露的風險 使用WebView.getSettings().setSavePassword(false)來禁止保存密碼 源文件: 類:com.qq.e.comm.plugin.m.c 方法:d 行數:-1
日誌泄露隱私風險 低危 調試輸出接口未關閉可能致使敏感信息泄露 關閉調試接口,禁止輸出敏感信息 源文件: 類:com.baidu.mobads.location.BDLocManager 方法:a 行數:-1
日誌泄露隱私風險 低危 調試輸出接口未關閉可能致使敏感信息泄露 關閉調試接口,禁止輸出敏感信息 源文件: 類:com.qq.e.comm.plugin.g.a 方法:a 行數:-1
日誌泄露隱私風險 低危 調試輸出接口未關閉可能致使敏感信息泄露 關閉調試接口,禁止輸出敏感信息 源文件:src/com/qihoo/util/StubApplication.java 類:com.qihoo.util.StubApplication 方法:initCrashReport 行數:93

梆梆加固測試結果:

內網測試信息殘留漏洞
評估項 內網測試信息殘留漏洞
漏洞描述 檢測程序代碼內部是否包含殘留測試信息,例如內網url地址等。
漏洞影響
評估方案 經過檢測是否包含內網URl地址,判斷是否發佈包中是否包含測試數據。殘留的測試數據,例如URL地址,測試帳號,密碼,可能會被盜取並惡意利用在正式服務器上進行攻擊,例如帳號重試,攻擊安全薄弱的測試服務器以獲取服務器安全漏洞或者邏輯漏洞。
評估結果 安全
漏洞分析 該App應用中未包含測試數據信息。
漏洞詳情 N/A
解決方案 N/A
下載任意apk漏洞
評估項 下載任意apk漏洞
漏洞描述 檢測應用中是否存在下載任意apk的漏洞。
漏洞影響
評估方案 具備下載apk功能的組件存在導出漏洞,而且未對組件調用者進行校驗。攻擊者可利用導出組件的手段下載攻擊者指定的任意apk文件,而且在下載過程當中假裝apk文件的下載信息,例如圖標、描述等,致使用戶被誘導下載安裝惡意應用。
評估結果 安全
漏洞分析 該App應用中不存在可被導出的具備下載apk功能的組件。
漏洞詳情 N/A
解決方案 N/A
HTTPS未校驗服務器證書漏洞
評估項 HTTPS未校驗服務器證書漏洞
漏洞描述 檢測App程序在使用HTTPS協議傳輸數據時是否對服務器證書進行完整校驗。
漏洞影響
評估方案 使用HTTPS協議時,客戶端必須對服務器證書進行完整校驗,以驗證服務器是真實合法的目標服務器。若是沒有校驗,客戶端可能與仿冒的服務 器創建通訊連接,即「中間人攻擊」。仿冒的中間人能夠冒充服務器與銀行客戶端進行交互,同時冒充銀行客戶端與銀行服務器進行交互,在充當中間人轉發信息的 時候,竊取手機號,帳號,密碼等敏感信息。
評估結果 存在漏洞
漏洞分析 該App應用在使用HTTPS進行數據傳輸時未校驗服務器證書或者未校驗主機名。
漏洞詳情 ["com.moji.mjweather.util.log.InstalledAppTrackerSDK.a:(ILjava/lang/String;Lorg/apache/http/client/methods/HttpPost;)Ljava/lang/String;"]
解決方案 在使用https時對服務器證書進行校驗,而且使用STRICT_HOSTNAME_VERIFIER嚴格校驗主機名。
Webview遠程代碼執行漏洞
評估項 Webview遠程代碼執行漏洞
漏洞描述 檢測app應用的webview組件中是否存在遠程代碼執行漏洞。
漏洞影響
評估方案 Webview是Android用於瀏覽網頁的組件,其包含的接口函數addJavascriptInterface能夠將Java類或方 法導出以供JavaScript調用,實現網頁JS與本地JAVA的交互。因爲系統沒有限制已註冊JAVA類的方法調用,所以未註冊的其它任何JAVA類 也能夠被反射機制調用,這樣可能致使被篡改的URL中存在的惡意代碼被執行,用戶手機被安裝木馬程序,發送扣費短信,通訊錄或者短信被竊取,甚至手機被遠 程控制。
評估結果 存在漏洞
漏洞分析 該App應用中可能存在被addJavascriptInterface接口導出的未註冊Java類函數。
漏洞詳情 ["com.tencent.bugly.crashreport.CrashReport.setJavascriptMonitor:(Landroid/webkit/WebView;ZZ)Z"]
解決方案 取消使用addJavascriptInterface接口,以其餘Java與 JavaScript互通方案代替;若必須使用,則應對訪問的url進行過濾限制或對html頁面進行完整性校驗,同時顯示移除對指定的 javascript接口的調用: removeJavascriptInterface(searchBoxJavaBridge_) emoveJavascriptInterface(accessibility);removeJavascriptInterface(accessibilityTraversal);。
Webview繞過證書校驗漏洞
評估項 Webview繞過證書校驗漏洞
漏洞描述 檢測App應用的webview組件是否在發現https網頁證書錯誤後繼續加載頁面。
漏洞影響
評估方案 客戶端的Webview組件訪問使用HTTPS協議加密的url時,若是服務器證書校驗錯誤,客戶端應該拒絕繼續加載頁面。但若是重載 WebView的onReceivedSslError()函數並在其中執行handler.proceed(),客戶端能夠繞過證書校驗錯誤繼續訪問此 非法URL。這樣將會致使「中間人攻擊」,攻擊者冒充服務器與銀行客戶端進行交互,同時冒充銀行客戶端與銀行服務器進行交互,在充當中間人轉發信息的時 候,竊取手機號,帳號,密碼等敏感信息。
評估結果 存在漏洞
漏洞分析 該App應用的webview組件中存在忽略證書校驗錯誤的漏洞。
漏洞詳情 [    "com.alipay.sdk.app.b.onReceivedSslError:(Landroid/webkit/WebView;Landroid/webkit/SslErrorHandler;Landroid/net/http/SslError;)V",    "com.alipay.sdk.app.d.onClick:(Landroid/content/DialogInterface;I)V",    "com.alipay.sdk.auth.AuthActivity.b.onReceivedSslError:(Landroid/webkit/WebView;Landroid/webkit/SslErrorHandler;Landroid/net/http/SslError;)V",    "com.alipay.sdk.auth.f.onClick:(Landroid/content/DialogInterface;I)V",    "com.tencent.smtt.sdk.aw.b.proceed:()V"]
解決方案 取消在Webveiw組件中對onReceivedSslError()函數的重載。

360捉蟲獵手檢測結果:

圖片6.png

圖片7.png

因結果掃了好久還沒出來,就直接來張其餘app的掃描結果吧api

圖片8.png

 

阿里聚對墨跡天氣的安全檢測結果:

漏洞詳情 風險等級 修復建議
webview遠程代碼執行漏洞(2個)addJavascriptInterface存在高危遠程代碼執行漏洞,應儘可能避免使用,API 17中用@JavascriptInterface 代替addjavascriptInterface;移除系統webkit內置的危險接口searchBoxJavaBridge_,accessibility,accessibilityTraversal [ 瞭解更多 ] [ 實際案例 ] 高危觸及安全紅線

 

應儘可能避免使用,API 17中用@JavascriptInterface 代替addjavascriptInterface;移除系統webkit內置的危險接口searchBoxJavaBridge_,accessibility,accessibilityTraversal
WebView不校驗證書漏洞(1個)調用了android/webkit/SslErrorHandler類的proceed方法,可能致使WebView忽略校驗證書的步驟 高危觸及安全紅線 不要調用android.webkit.SslErrorHandler的proceed方法
中間人攻擊漏洞(1個)HTTPS禁止使用ALLOW_ALL_HOSTNAME_VERIFIER,由於這樣會存在中間人攻擊的風險 [ 瞭解更多 ] 高危觸及安全紅線 必須使用STRIC_HOSTNAME_VERIFIER並校驗證書
備份標識配置風險(1個)當這個標誌被設置爲true或不設置該標誌時應用程序數據能夠備份和恢復,adb調試備份容許惡意攻擊者複製應用程序數據。 [ 瞭解更多 ] [ 實際案例 ] 中危觸及安全紅線 在AndroidManifest.xml中設置android:allowBackup=」false」
拒絕服務漏洞(22個)不校驗導出組件(Activity,Service等)的傳遞參數,致使拒絕服務,需注意空值斷定以及類型轉換判斷。 [ 瞭解更多 ] [ 實際案例 ] 中危觸及安全紅線 請嚴格校驗輸入參數,注意空值斷定和類型轉換判斷,防止因爲異常輸入致使的應用崩潰.
SharedPrefs任意讀寫漏洞(2個)存在內容被替換的風險,SharedPreference禁止使用MODE_WORLD_READABLE和MODE_WORLD_WRITABLE [ 瞭解更多 ] 中危觸及安全紅線 不要使用MODE_WORLD_READABLE和MODE_WORLD_WRITABLE。
主機名弱效驗(3個)在實現的HostnameVerifier子類中未對主機名作效驗,這樣會致使惡意程序利用中間人攻擊繞過主機名效驗。利用HostnameVerifier子類中的verify函數效驗服務器主機名的合法性。 中危觸及安全紅線 在實現的HostnameVerifier子類verify函數中校驗主機名的合法性。
證書弱校驗(3個)在實現的HostnameVerifier子類中未對主機名作效驗,這樣會致使惡意程序利用中間人攻擊繞過主機名效驗。利用HostnameVerifier子類中的verify函數效驗服務器主機名的合法性。 中危觸及安全紅線 在實現的X509TrustManager子類中checkServerTrusted函數效驗服務器端證書的合法性。
File任意讀寫漏洞(7個)存在內容被替換的風險,openFileOutput禁止使用MODE_WORLD_READABLE和MODE_WORLD_WRITABLE [ 瞭解更多 ] 中危觸及安全紅線 不要使用MODE_WORLD_READABLE和MODE_WORLD_WRITABLE。
隨機數生成函數使用錯誤(1個)使用SecureRandom時不要使用SecureRandom (byte[] seed)這個構造函數,會形成生成的隨機數不隨機。 [ 瞭解更多 ] 高危 建議經過/dev/urandom或者/dev/random獲取的熵值來初始化僞隨機數生成器PRNG
AES/DES弱加密風險(19個)使用AES/DES加密算法時,應顯式指定使用CBC或CFB模式.不然容易受到選擇明文攻擊(CPA)的風險,形成信息泄露。 高危 使用AES/DES加密算法時應使用CBC或CFB模式。或者使用安全組件的安全加密接口SecurityCipher進行加密。
Native動態調試(1個)so文件存在被調試的風險,攻擊者能夠利用此風險對應用進行動態調試,形成核心邏輯和敏感數據等信息泄漏。 高危 聚安全安全組件經過監控進程的多種調試狀態特徵,給應用提供全方位的反調試保護。
密鑰硬編碼風險(9個)本地存儲密鑰存在被攻擊者利用並經過密鑰構造僞數據的風險。 [ 實際案例 ] 高危 一、禁止把密鑰寫死在程序中,二、使用聚安全提供的安全加密組件。
初始化IvParameterSpec函數錯誤(7個)使用固定初始化向量,結果密碼文本可預測性會高得多,容易受到字典式攻擊。修復建議:一、禁止使用常量初始化矢量參數構建IvParameterSpec,二、推薦使用聚安全提供的安全組件。 [ 實際案例 ] 中危 修復建議:一、禁止使用常量初始化矢量參數構建IvParameterSpec,二、推薦使用聚安全提供的安全組件。
未進行安全加固風險(1個)應用沒有被安全加固,攻擊者能夠利用重打包等手段修改程序的原始邏輯和內容,並上傳仿冒app到第三方應用市場,欺騙用戶。 [ 實際案例 ] 中危 建議使用聚安全的應用加固方案,聚安全應用加固提供對dex、so等文件的保護以及混淆。
PendingIntent誤用風險(5個)使用PendingIntent的時候,若是使用了一個空Intent,會致使惡意用戶劫持修改Intent的內容。禁止使用一個空Intent去構造PendingIntent,構造PendingIntent的Intent必定要設置ComponentName或者action。 中危 禁止使用一個空Intent去構造PendingIntent,構造PendingIntent的Intent必定要設置ComponentName或者action。
Webview明文存儲密碼漏洞(5個)使用Webview時須要關閉webview的自動保存密碼功能,防止用戶密碼被webview明文存儲。 中危 顯示設置webView.getSetting().setSavePassword(false)
未移除有風險的Webview系統隱藏接口(17個)android webview組件包含3個隱藏的系統接口:searchBoxJavaBridge_, accessibilityTraversal以及accessibility,惡意程序能夠利用它們實現遠程代碼執行。請經過顯示調用removeJavascriptInterface移除這三個系統隱藏接口。 [ 實際案例 ] 中危 請經過顯示調用removeJavascriptInterface移除這三個系統隱藏接口。
數據弱保護(1個)數據安全保護級別較低,攻擊者能夠經過逆向分析等手段,較容易得獲取應用的關鍵數據,好比簽名算法、加密密鑰、加密數據等。 中危 推薦使用安全組件的數據加簽和安全存儲功能,提升應用的安全保護級別。
日誌泄漏風險(20個)使用System.out.print等標準輸出打印日誌信息或轉存日誌信息,容易泄漏敏感信息。建議刪除全部使用System.out.print等標準輸出打印日誌或轉存日誌信息的代碼 [ 實際案例 ] 低危 建議刪除全部使用System.out.print等標準輸出打印日誌或轉存日誌信息的代碼

關於阿里巴巴的聚安全,聚安全會給代碼詳情打碼,以下圖(4.1號之後的新規則,須要驗證app的簽名,會給你一個demo,你須要把keystore簽到阿里官方給的demo中,驗證應用開發者,而後才能看到詳情)以下圖:安全

圖片9.png

有些朋友說,出現了這個 「爲保護應用隱私,查看詳情漏洞位置請先申請應用全部權認證」,服務器

如何簽名

如何簽名:

 

jarsigner -verbose -keystore [keystorePath] -signedjar [apkOut] [apkin] [alias]

 

命令格式及參數意義:

-verbose -> 輸出簽名過程的詳細信息

-keystore [keystorePath] -> 密鑰的庫的位置

-signedjar [apkOut] -> 簽名後的輸出文件名

[apkin] -> 待簽名的文件名

[alias] -> 證書別名

示例:

 

D:\>jarsigner -verbose -keystore demo.keystore -signedjar jaq_demo_signed.apk jaq_demo.apk demo.keystore

 

下面講下如何對app的應用開發者進行認證:

圖片10.png

圖片11.png

那麼如何簽名呢

圖片12.png

建立一個keystore,用來存放簽名app時要用的:

 

keytool -genkey -v -keystore relax.keystore -alias rela -keyalg RSA 生成私鑰

 

 

用私鑰對apk進行從新簽名

 

root@kali:~/Desktop# jarsigner -verbose -sigalg MD5withRSA --digestalg SHA1 -keystore /root/Desktop/relax.keystore jaq_demo_1460103308355.apk  rela

 

圖片13.png

就是說,使用開發者的keystore對聚安全的那個demo.apk進行簽名,而後就完成了認證

聚安全的一些其餘看點

聚安全結合烏雲,裏面有不少實例,有不少經常使用漏洞的集合,是新手快速解決問題的好去處。

圖片14.png

聚安全還有一個仿冒監測:(這裏說下爲何會出現仿冒軟件,由於app沒有加固,致使被反編譯,被打包後,植入而已代碼後又在其餘地方上線,因此這裏忠告一下,下app,必定要去官方網站上下載,能提供驗證MD5,儘可能要驗證一下)

圖片15.png

圖片16.png

檢測結果總結:

阿里聚安全問題彙總:

webview遠程代碼執行漏洞

WebView不校驗證書漏洞

中間人攻擊漏洞

備份標識配置風險

拒絕服務漏洞

SharedPrefs任意讀寫漏洞

主機名弱效驗

證書弱校驗

File任意讀寫漏洞

隨機數生成函數使用錯誤

AES/DES弱加密風險

Native動態調試

密鑰硬編碼風險

初始化IvParameterSpec函數錯誤

未進行安全加固風險

PendingIntent誤用風險

Webview明文存儲密碼漏洞

未移除有風險的Webview系統隱藏接口

數據弱保護

日誌泄露隱私風險(logcat日誌輸出)

百度移動測試中心問題彙總:

組件暴露——Activity

組件暴露——Service

組件暴露——BroadcastReceiver

應用數據任意備份風險

權限濫用風險

WebView組件系統隱藏接口未移除漏洞

Dex文件動態加載風險

SSL證書驗證不當漏洞

WebView密碼明文保存漏洞

PendingIntent包含隱式Intent風險

日誌泄露隱私風險

最後看下梆梆的檢測結果

Java代碼保護風險

組件導出風險

敏感函數調用風險

調試日誌函數調用風險

應用數據任意備份風險

明文數字證書風險

未使用HTTPS協議的數據傳輸風險

Webview明文存儲密碼風險

HTTPS未校驗服務器證書漏洞

Webview遠程代碼執行漏洞

Webview繞過證書校驗漏洞

梆梆的新鮮的亮點: 到一處 直接打印出app裏涉及到的url列表地址了,是否是涉及到不少新鮮的子域名和url。

圖片17.png

圖片18.png

總結和一些爭議

評估一下APP的安全性能夠綜合參考以上的檢測,而後綜合性的評估,阿里的須要驗證開發者權限,百度那個要花錢的,還不錯,梆梆也能夠(很方便滲透額),360怎麼一直掃描不出報告。開發不必定能改第三方的包的安全問題,因此本包的問題能改的儘可能改,我們能作的就是給app進行加固。

圖片19.png

圖片20.png

加固先後效果對比

 圖片21.png

圖片22.png

加固後,能夠看到數據備份仍是沒有打鉤,由於,我沒對apk中的(在AndroidManifest.xml中設置android:allowBackup=」false」)這個設置項進行更改。

後記

本次在線檢測實戰旨在幫助開發者更快的評估本身的android問題,做爲一個菜鳥app檢測人員,但願帶給你們的是讓本身的app更加安全,固然安全從開發開始構思時,就該考慮是否使用第三方包,這樣,對app的安全更加可控。

閱讀拓展

http://www.droidsec.cn/ 安卓安全中文站

http://blog.nsfocus.net/mobile-app-security-security-test/ 移動app檢測要點

http://zbc.baijia.baidu.com/article/365622 10大移動安全威脅

*本文做者:ice@DMZLab,轉載須註明來自FreeBuf黑客與極客(FreeBuf.COM)

相關文章
相關標籤/搜索