问:
WebView漏洞检测
[ Problem Description ] 程序中使用了Webview组件,且可能存在以下问题:问题一:允许JavaScript执行,并添加了JavascriptInterface接口,当本程序运行系统版本API Level小于17的系统上时,可导致远程/本地攻击;当系统版本API Level在11-16之间,系统会内置searchBoxJavaBridge_、accessibility、accessibilityTraversal接口,同样可导致远程/本地攻击。问题二:存在Intent Scheme URL攻击风险。问题三:Webview存在Native JavaScript接口,当未对外部传入URL进行校验时,可能存在安全风险。
[ Solve ] 一类问题:1.Webview.getSettings().setJavascriptEnabled(false);2.不要调用addJavascriptInterface方法添加js接口;3.判断系统版本API Level,如果为11-16,则通过removeJavascirptInterface()方法去除系统内置的javascript接口;4.结合具体业务,确保loadUrl时仅加载可信URL。二类问题:根据Wiki要求,合理设置通过Intent Scheme传入得intent对象。三类问题:对传入Webview的JS接口的URL,做好正确的白名单校验等工作。
More
代码中使用Intent.ParseUri(),且设置不当,可能存在Intent Scheme Url攻击风险。危险级别:高。
Threat Level Problem File Identity Info
High com/baidu/android/pushservice/PushMessageReceiver.java PushMessageReceiver.handleOppoMessageCallBack(Context, Intent) : void
High com/baidu/android/pushservice/PushServiceReceiver.java PushServiceReceiver.a(Context, String, String, PublicMsg) : void
High com/baidu/android/pushservice/message/PublicMsg.java PublicMsg.startApplicationLauncher(Context, String, String) : void
High com/baidu/android/pushservice/mzproxy/MzNotifyActivity.java MzNotifyActivity.onCreate(Bundle) : void
PendingIntent安全检测
[ Problem Description ] PendingIntent中携带了action和class属性为空的intent,第三方应用可以访问该PendingIntent并对其中的intent数据进行污染,造成能力泄漏。
[ Solve ] 给PendingIntent中的Intent设置action、class和component属性。
More
PendingIntent使用不当,未设置Action和ClassName,会导致能力泄露,危险等级为:高
Threat Level Problem File Identity Info
High com/baidu/android/pushservice/PushServiceReceiver.java PushServiceReceiver.a.a(a, b) : void
High com/baidu/android/pushservice/PushServiceReceiver.java PushServiceReceiver.a(Context, String, String, PublicMsg) : void
High com/baidu/android/pushservice/j/m.java m.a(Context, Intent, long) : void
High com/baidu/android/pushservice/richmedia/MediaListActivity.java MediaListActivity.4.a(a, b) : void
Cipher安全检测
[ Problem Description ] 使用不安全的加密方式会造成无法满足加密保护需求,攻击者可通过特定方式获取被加密的明文。
[ Solve ] 使用安全的加密方法,不要使用已经过时的或被认为不安全的加密方法。当使用不安全的加密方式时,密文容易被破解。
More
程序中使用了弱摘要算法,存在被破译的风险。危险级别:高。
Threat Level Problem File Identity Info
High com/baidu/android/pushservice/k/f.java f.a(byte[], boolean) : String;
High com/baidu/android/pushservice/k/h.java h.a(byte[]) : byte[]
使用RSA加密时,应该设置其填充方式为OAEP。危险级别:高。
Threat Level Problem File Identity Info
High com/baidu/android/pushservice/k/e.java e.a(byte[], PublicKey) : byte[]
High com/baidu/android/pushservice/k/g.java g.a(byte[], String) : byte[]
High com/baidu/android/pushservice/k/g.java g.b(byte[], String) : byte[]
High com/baidu/android/pushservice/k/g.java g.c(byte[], String) : byte[]
使用了固定的密钥,导致密文容易被解密成明文,属于不安全的使用加密协议。危险级别:高
Threat Level Problem File Identity Info
High com/baidu/android/pushservice/k/a.java a.a(String, String, byte[]) : byte[]
High com/baidu/android/pushservice/k/a.java a.b(String, String, byte[]) : byte[]
命令执行检测
[ Problem Description ] 检测外部输入命令执行,
[ Solve ] 1.推荐将命令指令硬编码在程序中。2.推荐将存放命令指令的内部文件设置为私有权限。3.推荐对界面输入命令执行的地方进行行为控制。
More
存在外部输入命令漏洞。危险级别:高
Threat Level Problem File Identity Info
High com/baidu/android/pushservice/j/m.java m.c(String) : int
High com/baidu/android/pushservice/k/c.java c.a(String, File) : ArrayList;
File域同源绕过检测
[ Problem Description ] 问题一:JavaScript的延时执行能够绕过file协议的同源检查,并能够访问受害应用的所有私有文件,即通过WebView对Javascript的延时执行和将当前Html文件删除掉并软连接指向其他文件就可以读取到被符号链接所指的文件,然后通过JavaScript再次读取HTML文件,即可获取到被符号链接所指的文件。系统WebView组件存在通用型的同源策略绕过漏洞。当应用加载恶意链接时,可能造成隐私数据泄漏。问题二:Webview开启了AllowUniversalAccessFromFileURL或AllowFileAccessFromFileURLs,可能导致Webview跨域访问的风险。
[ Solve ] 问题一:1.设置myWebView.getSettings().setAllowFileAccess(false);2.如果必须使用文件访问,设置myWebView.getSettings().setJavaScriptEnabled(false)。问题二:1、如非业务需要,请显式关闭AllowUniversalAccessFromFileURL和AllowFileAccessFromFileURLs开关。
More
存在File域同源绕过漏洞,危险等级为高
Threat Level Problem File Identity Info
High com/baidu/android/pushservice/richmedia/MediaViewActivity.java MediaViewActivity.onCreate(Bundle) : void
安全规范工具覆盖设计规范
[ Problem Description ] 请按公司移动安全开发规范V2_0(Android篇)要求进行开发
[ Solve ] 根据告警类型,遵照Android规范进行修改
根据公司安全规范,对外交互的组件应设置其Permission属性,且权限要求至少为Signature。危险级别:高。
Threat Level Problem File Identity Info
High AndroidManifest.xml com.baidu.android.pushservice.PushServiceReceiver
High AndroidManifest.xml com.baidu.android.pushservice.RegistrationReceiver
High AndroidManifest.xml com.baidu.android.pushservice.PushService
WebView潜在风险
[ Problem Description ] 程序使用了WebView组件,存在数据泄露风险或被外部攻击风险。
[ Solve ] 1.设置WebView.getSettings().setGeolocationEnabled(false);2.设置WebView.getSettings().setAllowContentAccess(false);3.调用loadDataWithBaseUrl方法的参数baseUrl、data的数据要做白名单校验。
程序中的Webview组件允许访问Content URL,可能导致本地数据泄露风险。危险级别:高。
Threat Level Problem File Identity Info
High com/baidu/android/pushservice/richmedia/MediaViewActivity.java MediaViewActivity.2.shouldOverrideUrlLoading(WebView, String) : boolean
zip漏洞
[ Problem Description ] zip解压缩前需要对路径做校验。
[ Solve ] 校验ZipEntry的getName的路径
代码中未对ZIP解压路径做归一化处理或路径越界遍历检测,攻击则可利用多个“../”在解压时改变ZIP包中某个文件的存放位置,覆盖掉应用原有的文件。危险级别:高。
Threat Level Problem File Identity Info
High com/baidu/android/pushservice/richmedia/a.java a.a(File, String) : void
代码检测出有漏洞,对我们app信息有泄漏吗?这些问题下个版本会修复吗?