DownOL 软件仓库– 软件下载,字节世界与新知

Android APP检测之自动化检测实战

发表于:2024-04-25 作者:创始人
编辑最后更新 2024年04月25日,0×01 五大在线检测平台腾讯的金刚审计系统http://service.security.tencent.com/kingkong360的捉虫猎手http://appscan.360.cn/阿里巴巴

0×01 五大在线检测平台

腾讯的金刚审计系统http://service.security.tencent.com/kingkong

360的捉虫猎手http://appscan.360.cn/

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

百度的移动云测试中心http://mtc.baidu.com/

梆梆加固测试平台(http://dev.bangcle.com/apps/index)

效果对比

这里选用墨迹天气app的测试结果

百度移动测试中心

漏洞名称风险级别说明修复建议详情
组件暴露--Activity中危当应用程序的组件被导出后,导出的组件可以被第三方app任意调用,从而导致敏感信息泄露,而且恶意攻击者也可以通过精心构造数据来达到攻击目标应用的的目的。如果组件不需要与其他应用共享数据或进行交互,则在AndroidManifest.xml文件中设置该组件为 exported ="false",反之,则需要对导出的组件进行许可权控制并且严格校验传入的参数。com.moji.mjweather.activity.main.MainActivitycom.moji.mjweather.CSplashScreencom.moji.mjweather.activity.share.ManualShareActivitycom.moji.mjweather.activity.skinshop.SkinSelectorActivitycom.kepler.jd.login.AuthSuccessActivitycom.moji.mjweather.activity.liveview.MessageDetailActivitycom.moji.mjweather.activity.liveview.OwnerMessageCenterActivitycom.moji.mjweather.activity.account.SnsLoginActivitycom.moji.mjweather.activity.liveview.HomePageActivitycom.moji.mjweather.activity.voiceclock.AlarmAlertActivitycom.moji.mjweather.activity.voiceclock.AlarmAlertFullScreenActivitycom.moji.mjweather.activity.share.SharePlatformDialogcom.tencent.tauth.AuthActivitycom.moji.mjweather.activity.liveview.LauncherCameraActivitycom.moji.mjweather.activity.bindapp.InstallAppActivitycom.moji.mjweather.activity.settings.WidgetConfigureActivitycom.igexin.sdk.GActivitycom.moji.mjweather.wxapi.WXPayEntryActivitycom.moji.mjweather.wxapi.WXEntryActivitycom.moji.mjweather.activity.forum.TopicActivitycom.moji.mjweather.x5webview.BrowserActivity 共:21个。
组件暴露--Service中危当应用程序的组件被导出后,导出的组件可以被第三方app任意调用,从而导致敏感信息泄露,而且恶意攻击者也可以通过精心构造数据来达到攻击目标应用的的目的。如果组件不需要与其他应用共享数据或进行交互,则在AndroidManifest.xml文件中设置该组件为 exported ="false",反之,则需要对导出的组件进行许可权控制并且严格校验传入的参数。com.moji.mjweather.service.ScreenServicecom.igexin.sdk.PushService com.igexin.sdk.PushServiceUsercom.moji.mjweather.authaccount.AuthenticationServicecom.moji.mjweather.authaccount.SyncService 共:5个。
组件暴露--BroadcastReceiver中危当应用程序的组件被导出后,导出的组件可以被第三方app任意调用,从而导致敏感信息泄露,而且恶意攻击者也可以通过精心构造数据来达到攻击目标应用的的目的。如果组件不需要与其他应用共享数据或进行交互,则在AndroidManifest.xml文件中设置该组件为 exported ="false",反之,则需要对导出的组件进行许可权控制并且严格校验传入的参数。com.moji.mjweather.receiver.PackageReceivercom.moji.mjweather.receiver.MojiReceivercom.moji.mjweather.CMojiWidget4x1 com.moji.mjweather.CMojiWidget4x2com.moji.mjweather.CMojiWidget5x1 com.moji.mjweather.CMojiWidget5x2com.igexin.sdk.PushReceiver com.igexin.download.DownloadReceivercom.baidu.bottom.service.BottomReceivercom.zk.drivermonitor.reciever.SystemStartReceiver 共:10个。
应用数据任意备份风险中危当AndroidManifest.xml配置文件中没有有设置allowBackup标志(默认为true)或将allowBackup标志设置为true时,应用程序的数据可以被任意备份和恢复,恶意攻击者可以通过adb工具备份复制应用程序的数据。在AndroidManifest.xml文件中设置application的属性android:allowBackup="false"
许可权滥用风险中危自定义许可权的保护级别过低,导致任意应用程序都可以使用此许可权,无法起到保护作用。如非必要,自定义许可权的保护级别至少要设置为:signature。
漏洞名称风险级别说明修复建议详情
WebView组件系统隐藏界面未移除漏洞高危使用AndroidWebView组件时,没有移除其中内置的searchBoxJavaBridge_,accessibility和accessibilityTraversal等导出界面,可能导致远程代码任意执行使用AndroidWebView组件时,通过调用removeJavascriptInterface方法移除searchBoxJavaBridge_,accessibility和accessibilityTraversal等导出界面,防止被恶意利用源文件: 类:com.baidu.mobad.feeds.remote.BaiduActivity 方法:a行数:-1
WebView组件系统隐藏界面未移除漏洞高危使用AndroidWebView组件时,没有移除其中内置的searchBoxJavaBridge_,accessibility和accessibilityTraversal等导出界面,可能导致远程代码任意执行使用AndroidWebView组件时,通过调用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捉虫猎手检测结果:

因结果扫了很久还没出来,就直接来张其他app的扫描结果吧

阿里聚对墨迹天气的安全检测结果:

漏洞详情风险等级修复建议
webview远程代码执行漏洞(2个)addJavascriptInterface存在高危远程代码执行漏洞,应尽量避免使用,API17中用@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个)本地存储密钥存在被攻击者利用并通过密钥构造伪数据的风险。 [ 实际案例 ]高危1、禁止把密钥写死在程序中,2、使用聚安全提供的安全加密组件。
初始化IvParameterSpec函数错误(7个)使用固定初始化向量,结果密码文本可预测性会高得多,容易受到字典式攻击。修复建议:1、禁止使用常量初始化矢量参数构建IvParameterSpec,2、推荐使用聚安全提供的安全组件。[ 实际案例 ]中危修复建议:1、禁止使用常量初始化矢量参数构建IvParameterSpec,2、推荐使用聚安全提供的安全组件。
未进行安全加固风险(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个)androidwebview组件包含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 -signedjarjaq_demo_signed.apk jaq_demo.apk demo.keystore

下面讲下如何对app的应用开发者进行认证:

那么如何签名呢

创建一个keystore,用来存放签名app时要用的:

keytool -genkey -v -keystore relax.keystore -alias rela -keyalgRSA 生成私钥

用私钥对apk进行重新签名

[email protected]:~/Desktop# jarsigner -verbose -sigalg MD5withRSA--digestalg SHA1 -keystore /root/Desktop/relax.keystorejaq_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")这个设置项进行更改。

2022-05-09 21:58:03
0