1***@qq.com
1***@qq.com
  • 发布:2020-09-14 18:37
  • 更新:2024-03-14 18:58
  • 阅读:5883

安全漏洞扫描等保测评无法通过,已使用360加固,官方能不能处理一下以下几个问题?

分类:uni-app

3.8.11 未使用编译器堆栈保护技术风险
检测目的 检测应用是否使用编译器堆栈保护技术。
风险等级 低
威胁描述 缓冲区溢出指程序对接收的输入数据长度没有进行有效检测,向缓冲区内填充数据超过了缓冲区本身的容量,导致数据溢出到被分配空间之外的内存空间,使得溢出的数据覆盖了其他合法的数据。利用缓冲区溢出漏洞发起攻击,可以导致程序运行失败、系统关机、重新启动,或者执行攻击者的命令,比如非法提升权限等,窃取用户的敏感信息等。Stack Canaries漏洞探测技术,可以对缓冲区溢出进行有效预警。在所有函数调用发生时,系统通过检测栈帧中的canary数值来判断是否发生了栈溢出漏洞。发生缓冲区溢出时,程序将输出错误消息并终止执行。
检测结果 存在风险
结果描述 该应用存在未使用编译器堆栈保护技术风险。检测文件总数20个,检测出1处风险。
出现次数 1次
检测详情 1.使用静态检测引擎对APK进行解压缩。
2.对解压缩的文件进行扫描,提取so文件。
3.对so文件进行检测,发现未使用编译器堆栈保护技术。
第1处:
文件:
lib/armeabi-v7a/libijkffmpeg.so
解决方案 建议开发者使用gcc编译时,使用以下参数gcc -o demo demo.c -fstack -protector -all;或者使用NDK编译SO文件时,在Android.mk文件中增加以下参数LOCAL_CFLAGS := -Wall -O2 -U_FORTIFY_SOURCE -fstack-protector-all。

3.8.8 动态注入攻击风险
检测目的 检测应用是否存在动态注入攻击风险。
风险等级 高
威胁描述 Android动态代码注入是不修改源程序只修改目标进程的寄存器、内存值等就能控制程序实现既定目标的一种方法。通过动态注入,攻击者可以劫持目标进程函数、窃取目标进程数据、篡改目标进程数据等,从而监控程序运行、获取敏感信息等。常见的动态注入,可以获取登录账号、密码等。
检测结果 存在风险
结果描述 该应用无法被自动化工具进行动态注入,但强度不够,仍然存在被动态注入的风险。
出现次数 1次
检测详情
解决方案 建议使用专业安全加固方案的防内存代码注入功能,防止应用被动态注入攻击。

3.8.7 C层代码动态调试风险
检测目的 检测应用是否存在C层代码动态调试风险。
风险等级 高
威胁描述 Android C 层代码动态调试漏洞是指在程序运行过程中,恶意程序或者人工可以通过动态调试技术,对程序进行内存调试跟踪,可以窃取目标进程的数据信息,从而获取用户的隐私数据信息。
检测结果 存在风险
结果描述 该应用无法被自动化工具进行C层动态调试,但强度不够,仍然存在被动态调试的风险。
出现次数 1次
检测详情
解决方案 建议使用专业安全加固方案的防动态调试功能,防止应用被动态调试。

3.7.4 Broadcast Receiver最小化特权检测
检测目的 检测应用Broadcast Receiver组件权限设置是否满足最小化特权要求。
风险等级 中
威胁描述 Broadcast Receiver组件的最小化特权是指组件只能自身调用,其他应用无权访问,即组件不导出。从全局考虑Broadcast Receiver可以方便应用程序和系统、应用程序之间、应用程序内的通信,对单个应用程序而言Broadcast Receiver是存在安全性问题的,比如恶意程序可以不断的去发送你所接收的广播,这样会造成应用被攻击,导致应用直接退出、处理逻辑出错等风险。
检测结果 存在风险
结果描述 该应用存在Receiver最小化风险。检测Receiver总数3个,检测出2处风险。
出现次数 2次
检测详情 1.使用静态检测引擎对APK进行反编译。
2.抽取AndroidManifest.xml文件,扫描所有的Broadcast Receiver组件。
3.查看组件的EXPORTED属性,发现存在可以导出的组件。
第1处:
文件:
AndroidManifest.xml
代码:
<receiver xmlns:android="http://schemas.android.com/apk/res/android" android:name="io.dcloud.common.adapter.io.PushReceiver"> <intent-filter> <action android:name="dcloud.push.broswer"/> </intent-filter> </receiver>
第2处:
文件:
AndroidManifest.xml
代码:
<receiver xmlns:android="http://schemas.android.com/apk/res/android" android:name="io.dcloud.common.adapter.io.DownloadReceiver"> <intent-filter> <action android:name="android.intent.action.DOWNLOAD_COMPLETE"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.PACKAGE_ADDED"/> <data android:scheme="package"/> </intent-filter> </receiver>
解决方案 开发者自查,设置AndroidManifest.xml中的Broadcast Receiver组件EXPORTED属性为false,对于必须导出的组件必须限制于授权用户或者特定应用组件。

3.7.2 Service最小化特权检测
检测目的 检测应用Service组件权限设置是否满足最小化特权要求。
风险等级 中
威胁描述 Service组件的最小化特权是指组件只能自身调用,其他应用无权访问,即组件不导出。Service执行的操作比较敏感,比如更新数据库、提供事件通知等,如果设置了导出权限,可能被系统或者第三方的App直接调出并使用。Service导出可能导致拒绝服务攻击,程序功能被第三方恶意调用等风险。
检测结果 存在风险
结果描述 该应用存在Service最小化风险。检测Service总数4个,检测出1处风险。
出现次数 1次
检测详情 1.使用静态检测引擎对APK进行反编译。
2.抽取AndroidManifest.xml文件,扫描所有的Service组件。
3.查看组件的EXPORTED属性,发现存在可以导出的组件。
第1处:
文件:
AndroidManifest.xml
代码:
<service xmlns:android="http://schemas.android.com/apk/res/android" android:name="io.dcloud.streamdownload.DownloadService"> <intent-filter> <action android:name="com.qihoo.life.plugin.streamapp.ACTION_PUSH_TO_PLUGIN"/> </intent-filter> </service>
解决方案 开发者自查,设置AndroidManifest.xml文件中Service组件EXPORTED属性为false,对于必须导出的组件必须限制于授权用户或者特定应用组件,并且不要给未知名的Service传递Intent。

3.7.1 Activity最小化特权检测
检测目的 检测应用Activity组件权限设置是否满足最小化特权要求。
风险等级 中
威胁描述 Activity的最小化特权是指组件只能自身调用,其他应用无权访问,即组件不导出。Activity组件设置导出权限,则该组件能够被外部的其他组件直接调用,这样就可能导致泄露隐私数据或者应用程序崩溃等风险。Activity被恶意应用调用,可能有以下威胁描述:修改程序的状态或者数据;被调用的Activity可能返回隐私信息给恶意应用,造成数据泄露;可能使应用程序崩溃,造成拒绝服务等漏洞。
检测结果 存在风险
结果描述 该应用存在Activity最小化风险。检测Activity总数13个,检测出2处风险。
出现次数 2次
检测详情 1.使用静态检测引擎对APK进行反编译。
2.抽取AndroidManifest.xml文件,扫描所有的Activity组件。
3.查看组件的EXPORTED属性,发现存在可以导出的组件。
第1处:
文件:
AndroidManifest.xml
代码:
<activity xmlns:android="http://schemas.android.com/apk/res/android" android:theme="@android:01030010" android:label="@7F0A001F" android:name="uni.UNICCCB778.wxapi.WXEntryActivity" android:exported="true" android:launchMode="1"> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <data android:scheme="UNICCCB778"/> </intent-filter> </activity>
第2处:
文件:
AndroidManifest.xml
代码:
<activity xmlns:android="http://schemas.android.com/apk/res/android" android:theme="@android:01030010" android:label="@7F0A001F" android:name="io.dcloud.ProcessMediator" android:exported="true" android:excludeFromRecents="true" android:launchMode="1"/>
解决方案 开发者自查,设置AndroidManifest.xml文件中Activity组件EXPORTED属性为false,对于必须导出的组件必须限制于授权用户或者特定应用组件,并且尽量不包含任何的Intent Filter。

3.2.6 H5文件加固检测
检测目的 检测应用资源文件中的H5文件是否加固。
风险等级 高
威胁描述 应用中如果存在明文存储的H5资源文件,则会泄露页面基本布局和一些重要的信息,如登录界面、支付界面等。攻击者可篡改H5资源文件,可能植入钓鱼页面或者恶意代码,导致用户账号、密码、支付密码等敏感信息泄露。更有甚者,通过H5代码暴露相关活动的业务逻辑,可能被黑产团队用来刷红包、薅羊毛等,造成经济损失。
检测结果 存在风险
结果描述 该应用存在未加密的H5文件。检测文件总数30个,未加密H5文件4个。
出现次数 4次
检测详情 1.使用静态检测引擎对APK进行解压缩。
2.对解压缩的文件进行扫描,提取H5文件。
3.使用H5文件检测工具对H5文件进行检测,发现存在未加固的H5文件。
第1处:
文件:
assets/data/dcloud_error.html
第2处:
文件:
assets/apps/UNICCCB778/www/uniappview.html
第3处:
文件:
assets/data/wap2app/
wap2appquit.js
第4处:
文件:
assets/data/wap2app/__wap2apptabbar.js
解决方案 建议使用专业安全加固方案,对应用中的H5文件进行加固保护。

3.2.5 SO文件加固检测
检测目的 检测应用程序中的SO文件是否进行加固。
风险等级 高
威胁描述 SO文件为APK中包含的动态链接库文件,Android利用NDK技术将C/C++语言实现的核心代码编译为SO库文件供Java层调用。SO文件被破解可能导致应用的核心功能代码和算法泄露。攻击者利用核心功能与算法可轻易抓取到客户端的敏感数据,并对其解密,导致用户的隐私泄露或直接财产损失。
检测结果 存在风险
结果描述 该应用存在未加密的SO文件。检测文件总数20个,未加密SO文件17个。
出现次数 17次
检测详情 1.使用静态检测引擎对APK进行解压缩。
2.对解压缩的文件进行扫描,提取so文件。
3.使用so文件检测工具对so文件进行检测,发现存在未加固的so文件。
第1处:
文件:
lib/armeabi-v7a/libc++_shared.so
第2处:
文件:
lib/armeabi-v7a/libnative-filters.so
第3处:
文件:
lib/armeabi-v7a/libnative-imagetranscoder.so
第4处:
文件:
lib/armeabi-v7a/libso.so
第5处:
文件:
lib/armeabi-v7a/libijkplayer.so
第6处:
文件:
lib/armeabi-v7a/libweexjst.so
第7处:
文件:
lib/armeabi-v7a/libweexjss.so
第8处:
文件:
lib/armeabi-v7a/libAMapSDK_MAP_v7_1_0.so
第9处:
文件:
lib/armeabi-v7a/libweexcore.so
第10处:
文件:
lib/armeabi-v7a/libijkffmpeg.so
第11处:
文件:
lib/armeabi-v7a/libweexjsb.so
第12处:
文件:
lib/armeabi-v7a/lib39285EFA.so
第13处:
文件:
lib/armeabi-v7a/libgifimage.so
第14处:
文件:
lib/armeabi-v7a/libijksdl.so
第15处:
文件:
lib/armeabi-v7a/liblamemp3.so
第16处:
文件:
lib/armeabi-v7a/libimagepipeline.so
第17处:
文件:
lib/armeabi-v7a/libpl_droidsonroids_gif.so
解决方案 建议使用专业安全加固方案,对APK中的SO文件进行加固保护。

3.2.2 程序签名保护检测
检测目的 检测应用是否进行签名校验保护。
风险等级 高
威胁描述 签名证书是验证APP开发者身份的关键标识,可用于判断APP是否是正版APP,是防止APP被二次打包的重要措施。开发者可利用签名证书有效降低APP的盗版率。未进行签名证书校验的APP,被反编译进行二次打包后,仍可以正常运行。可能导致APP被仿冒盗版,甚至可能被添加钓鱼代码、病毒代码、恶意代码,导致用户敏感信息泄露或者恶意攻击
检测结果 存在风险
结果描述 通过对原始APK文件进行重新签名,发现APK仍然可以安装启动,说明该应用没有签名保护,存在风险。
出现次数 1次
检测详情 {"img_path":"/zywa/tomcat-detect/ijiami/files/images//1598260988855_0317.png","step":"检测手机名称:172.1.2.64:5555\n1、解压APK文件。\n2、重新生成未签名的APK文件。\n3、对新的APK文件进行签名。\n4、安装新的APK到手机上。\n5、监控应用启动状态。\n该应用可以正常启动,说明该应用没有签名保护,存在风险。"}
解决方案 建议开发者增加签名证书的校验代码;或使用专业安全加固方案,对应用的签名进行验证,降低APK被二次打包的风险。

2020-09-14 18:37 负责人:DCloud_Android_ST 分享
已邀请:

最佳回复

DCloud_云服务_LQ

DCloud_云服务_LQ

有加固需求的,推荐【uni安全加固】 https://uniapp.dcloud.net.cn/uni-app-security.html 其背后支持对接多个加固服务商,包括腾讯云和蚂蚁小程序云

[已删除]

[已删除]

建议官方出个三级等保测评版

W小姐

W小姐

这份报告中,很多的问题可以通过加固解决,组件导出风险需要离线打包解决

  • 1***@qq.com (作者)

    如果是360加固的话 这几项要花钱的,您这边有什么好的建议吗

    2020-09-15 14:50

  • W小姐

    我就是用的360免费的加固,组件导出风险是手动修改的

    2020-09-15 16:07

  • 1***@qq.com (作者)

    回复 W小姐: 3.8.11 未使用编译器堆栈保护技术风险 低 建议开发者使用gcc编译时,使用以下参数gcc -o demo demo.c -fstack -protector -all;或者使用NDK编译SO文件时,在Android.mk文件中增加以下参数LOCAL_CFLAGS := -Wall -O2 -U_FORTIFY_SOURCE -fstack-protector-all。

    3.2.2 程序签名保护检测 高 建议开发者增加签名证书的校验代码;或使用专业安全加固方案,对应用的签名进行验证,降低APK被二次打包的风险

    3.8.8 动态注入攻击风险 高 建议使用专业安全加固方案的防内存代码注入功能,防止应用被动态注入攻击。

    3.8.7 C层代码动态调试风险 高 建议使用专业安全加固方案的防动态调试功能,防止应用被动态调试。

    3.2.6检测应用资源文件中的H5文件是否加固 高 建议使用专业安全加固方案,对应用中的H5文件进行加固保护。

    3.2.5 SO文件加固检测 高 建议使用专业安全加固方案,对APK中的SO文件进行加固保护

    现在就剩这几个问题了

    2020-09-15 16:22

  • W小姐

    回复 1***@qq.com: 对于3.2.2,我是另外写了插件在检验签名文件的,其他那些加固什么的,我帮不了你,你可以查找其他加固平台,网易腾讯等等都有加固服务的

    2020-09-15 16:28

  • 1***@qq.com (作者)

    回复 W小姐: 您好 3.22能不能插件市场写一个啊

    2020-09-16 09:19

  • W小姐

    回复 1***@qq.com: 我们公司使用的插件,都没有上传插件市场,抱歉哈

    2020-09-16 10:04

  • xukb

    你是离线打包的嘛? 组件导出风险你是在哪里设置的

    2020-09-22 10:44

  • W小姐

    回复 xukb: 是离线打包的,androidManifest内修改的,还有一个5plus.aar内的androidmanifest内也需要修改

    2020-09-22 14:24

  • xukb

    回复 W小姐: aar文件修改,需要反编译出来改嘛,还是可以直接修改

    2020-09-23 10:53

  • W小姐

    回复 xukb: 打开方式选压缩软件

    2020-09-23 10:55

  • xukb

    回复 W小姐: 谢谢了,你真是个天才

    2020-09-23 11:45

  • N先生

    回复 xukb: 兄弟,hbuilder离线打包时咋搞的?我打开的androidmanifest都是乱码,求助,谢谢

    2020-12-15 16:08

  • 9***@qq.com

    回复 W小姐: 您好,麻烦请教下 H5文件加固检测 这项是怎么解决的?

    2021-09-23 14:22

9***@qq.com

9***@qq.com

请问一下,安卓、iOS端三级等保都能通过吗?

9***@qq.com

9***@qq.com - 折柳赠友

老哥 请教下 关于 3.2.6 H5文件加固检测 这一项你是怎么解决的呢?

KayZ

KayZ

请问关于报告中
3.8.11 未使用编译器堆栈保护技术风险
已经解决了吗?

风靡万千少女

风靡万千少女

有没有大佬知道这个问题解决了没有,加了可以成功嘛?

影子Shadow

影子Shadow

请问最终怎么解决?

要回复问题请先登录注册