最近一直在研究的检测,写了一个系列的文章——手工检测,自动化检测,常见漏洞分析。今天给你们带来的是自动化检测。本篇没有深刻的讲解每个漏洞的详情,仅做测试结果对比和本身的体验心得。javascript
腾讯的金刚审计系统 http://service.security.tencent.com/kingkonghtml
360的捉虫猎手 http://appscan.360.cn/java
阿里巴巴的聚安全http://jaq.alibaba.com/gc/appsec/index.htmandroid
百度的移动云测试中心http://mtc.baidu.com/web
梆梆加固测试平台(http://dev.bangcle.com/apps/index)算法
这里选用墨迹天气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()函数的重载。 |
因结果扫了好久还没出来,就直接来张其余app的扫描结果吧api
漏洞详情 | 风险等级 | 修复建议 |
---|---|---|
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中,验证应用开发者,而后才能看到详情)以下图:安全
有些朋友说,出现了这个 “为保护应用隐私,查看详情漏洞位置请先申请应用全部权认证”,服务器
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的应用开发者进行认证:
那么如何签名呢
建立一个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
就是说,使用开发者的keystore对聚安全的那个demo.apk进行签名,而后就完成了认证
聚安全结合乌云,里面有不少实例,有不少经常使用漏洞的集合,是新手快速解决问题的好去处。
聚安全还有一个仿冒监测:(这里说下为何会出现仿冒软件,由于app没有加固,致使被反编译,被打包后,植入而已代码后又在其余地方上线,因此这里忠告一下,下app,必定要去官方网站上下载,能提供验证MD5,尽可能要验证一下)
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。
评估一下APP的安全性能够综合参考以上的检测,而后综合性的评估,阿里的须要验证开发者权限,百度那个要花钱的,还不错,梆梆也能够(很方便渗透额),360怎么一直扫描不出报告。开发不必定能改第三方的包的安全问题,因此本包的问题能改的尽可能改,我们能作的就是给app进行加固。
加固先后效果对比:
加固后,能够看到数据备份仍是没有打钩,由于,我没对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大移动安全威胁