安卓安全测评反馈问题:
检测目的 检测应用是否存在WebView潜在跨站脚本攻击风险
风险等级 高
检测依据 国家计算机网络应急技术处理协调中心旗下“国家信息安全漏洞共享平台“关联漏洞编号:CNVD-2017-36682; CNVD-2015-07628;CVE-2015-1302;CWE-79。
风险描述 WebView组件可以解析HTML和JavaScript等网页内容,这样可能会遇到一些常见的安全问题,比如跨站脚本攻击(Cross-Site-Scripting, JavaScript注入)。 Android包含了大量的安全机制用来减少这种跨域的潜在问题,像通过限制WebView使用最少功能这样的措施。如果程序中的WebView不直接使用JavaScript,不要调用setJavaScriptEnabled。默认情况下,WebView不会执行跨站脚本JavaScript的执行。
检测步骤 1.反编译APK文件
2.扫描smali文件,查看应用是否调用了setJavaScriptEnabled方法,是则存在风险,否则安全。
检测结果 存在风险(发现4处)
结果描述 该应用存在WebView潜在跨站脚本攻击风险
检测详情 1.
[文件]:
com/sina/weibo/sdk/web/WebActivity
[方法]:
protected onCreate(Landroid/os/Bundle;)V
-
[文件]:
com/tencent/open/web/a
[方法]:
private static b(Landroid/webkit/WebSettings;)V -
[文件]:
io/dcloud/sdk/activity/WebViewActivity
[方法]:
private a(Landroid/webkit/WebView;)V -
[文件]:
io/dcloud/sdk/base/dcloud/d
[方法]:
public constructor <init>(Landroid/content/Context;)V
解决方案 开发者自查:
将WebSettings.setJavaScriptEnabled设置为false。即:settings.setJavaScriptEnabled(false)。
检测目的 检测应用是否允许Webview访问本地任意脚本
风险等级 高
检测依据 国家计算机网络应急技术处理协调中心旗下“国家信息安全漏洞共享平台“关联漏洞编号:CNVD-2017-36682; CNVD-2015-07628;CVE-2015-1302;CWE-79。
风险描述 Android使用Webview时可以使用setAllowFileAccess(boolean allow)方法禁用或允许webview加载本地文件,webview默认是允许加载本地文件的,如果没有对需要加载的脚本做校验,Webview将加载任意本地脚本,攻击者可使之加载恶意代码导致用户数据泄露等安全风险。
值得注意的是setAllowFileAccess(boolean allow)方法只是禁用或允许webview对文件系统的访问,Assets和resources资源任然可以使用file:///android_asset和file:///android_res访问。
检测步骤 1.反编译APK文件
2.扫描smali文件,查找应用中调用了Webview的getSettings()的文件,在这些文件中查看是否调用了setAllowFileAccess(false)方法,是则安全,否则存在风险。
检测结果 存在风险(发现7处)
结果描述 该应用允许Webview访问本地任意脚本
检测详情 1.
[文件]:
com/tencent/connect/auth/a
[方法]:
private d()V
-
[文件]:
com/tencent/open/SocialApiIml
[方法]:
public writeEncryToken(Landroid/content/Context;)V -
[文件]:
com/tencent/open/TDialog
[方法]:
private b()V -
[文件]:
com/tencent/open/c/b
[方法]:
protected onAttachedToWindow()V -
[文件]:
com/tencent/open/d
[方法]:
private c()V -
[文件]:
io/dcloud/common/util/AppRuntime$1
[方法]:
public run()V -
[文件]:
io/dcloud/h/a/d/b/i
[方法]:
public static e(Landroid/content/Context;)Ljava/lang/String;
解决方案 开发者自查:
将WebSettings.setAllowFileAccess设置为false。即:WebSettings.setAllowFileAccess(false)。
1***@qq.com (作者)
报告在附件那里,安装包是这个网址:https://bs2.pgyer.com/8a5ca08895a4a79dac0de819e257263a.apk?key=412e79053c272b73ca07ce1ef40f955c&time=1723029423&sign=6f2f4f240d8941d9a37878958a3159a9&sign2=824bd6c1312c7b66d8185a0c45819b67&t=1723030023&response-content-disposition=attachment%3Bfilename%3D%22%E8%8C%84%E5%A2%83_2.0.0.apk%22
2024-08-07 19:18
1***@qq.com (作者)
检测是浙江安远检测做的
2024-08-07 19:20
DCloud_Android_zl
回复 1***@qq.com: 好的,我先看一下
2024-08-07 19:36
DCloud_Android_zl
回复 1***@qq.com: 这里面大部分都是sdk内部报的,加固之后应该就没问题了。加固可以使用uni安全加固
2024-08-07 20:12
1***@qq.com (作者)
回复 DCloud_Android_zl: 哦,好的谢谢
2024-08-07 23:44
1***@qq.com (作者)
回复 DCloud_Android_zl: 顺便问下哈,里面还有一个报密钥硬编码漏洞,这个文件的位置 com/zx/a/I8b7/p 看上去应该不是什么SDK报的,应该是项目里的对吧,这个能通过什么方式确定哪里报的吗?
2024-08-07 23:49
DCloud_Android_zl
回复 1***@qq.com: 这种不太好确定,目前比较好的方式是做加固,他这个检测平台也是推荐你做加固。
2024-08-08 15:49
1***@qq.com (作者)
回复 DCloud_Android_zl: 对的是要做加固,我现在就是在担心一个问题加固后是否能保证它所列出来的所有高风险问题能不能都解决了
2024-08-08 17:44