1.监管机构和政策为确保App安全合规,您需要先了解相关政策和法规。对于企业来说,App合规监管的背后,主要涉及哪些监管机构?中央网信办、工业和信息化部、公安部、市场监管总局等四部门在全国范围内组织开展了打击应用程序非法收集使用个人信息的专项行动。在日常的App开发中,主要来源于工信部的安全整改问题。常见的法律法规有《中华人民共和国数据安全法》、《中华人民共和国个人信息保护法》、《信息安全技术个人信息安全规范》、《常见类型移动互联网应用程序必要个人信息范围规定》等。图1手机安全相关法律法规近年来,工信部不断开展专项整治行动宣扬侵犯用户权益的App。)、软件工具开发工具包(SDK)提供商和应用程序分发平台。以下是典型App违规行为的分类:在非法收集用户个人信息方面,包括“私自收集个人信息”和“超范围收集个人信息”;在非法使用用户个人信息方面,“与第三方私下共享个人信息”、“强制用户使用定向推送功能”;在不合理请求用户权限方面,“不允许使用”、“频繁使用”申请权限”、“过度索取权限”;在为用户注销设置障碍方面,即“注销难”。2、检测方法除工信部定期抽查外,信息技术方面,App安全合规的检查方式有人工检查和购买第三方App漏洞扫描工具(目前第三方漏洞扫描产品有:爱加密、棒棒、360等),还有辅助使用的一些开源第三方工具检测套件,从技术形式上可以分为静态检测方案和动态检测方案,如下ing分别是简介。2.1静态检测方案静态检测方案基于反编译技术,对移动应用安装包的代码文件进行反编译,逐一扫描验证分析。主要对配置文件、源代码文件、资源文件等文件进行静态扫描,检测移动应用。申请适度敏感的权限和隐私相关的API代码,生成准确、可视化的安全报告。在这个领域,常用的工具如下:?Apktool:反编译AndroidApk,反编译资源,修改后重新打包Apk。?dex2jar:将Apk反编译为Java源码(classes.dex为jar文件)。?baksmali:将dex文件转换为smali文件。利用以上工具,开发者可以根据安全和隐私规范制定相应的安全检测项,使用脚本检测存在的安全和隐私问题。以下是Android系统中典型的敏感API:图2Android典型敏感API优点:检测速度快,通用性强,技术简单。缺点:无法判断是否合规,加固后无法检测。2.2动态检测方案采用抓包&Hook沙箱或操作系统沙箱技术,在APP运行过程中对特定API进行埋点(指上述敏感函数),检查应用是否执行了埋点API,从而判断是否合规。?应用场景在同意《隐私政策》之前通过抓包检查流量中是否出现敏感数据。使用Hook技术埋点敏感函数,在同意《隐私政策》前检查埋点函数是否执行。?工具推荐抓包工具,Hook框架如burpsuite/charles/fiddler、frida/Xposed框架等。优点:检测确认率高,100%检测(不受加固影响)。缺点:技术复杂,通用性差。3、归一化防劣化技术传统的检测手段都是基于安装包的,适用于第三方检测,但技术手段受限,无法高效、彻底地检测安全合规问题。人工抓包方式耗时长,覆盖率低。Hook系统方法往往需要root手机。随着手机安全的发展,手机root已经不再简单,成本高,也不适合正常的安全合规自查。对于大型App,业务复杂,对接的第三方SDK较多,开发过程中踩雷在所难免。常规检测手段难以全查,无法常态化(工信部和第三方机构检测数量有限)。与基于APK的安全自检相比,开发者有一个显着的优势,即拥有源代码权限,可以在编译等各个阶段自由插入自定义的安全检测逻辑。以此为基础,App开发可以实现更深入、更彻底的安全合规自查,有效保护用户隐私和安全。下面基于源代码权限提出两种规范化的深度安全合规自查方案。从技术形式上,仍可分为静态检测和动态检测两种方式。方案静态检测能力基于Python脚本,实现对应用引用的三方SDK的全枚举,快速检测各三方SDK中的隐私权限、网络请求、隐私API、漏洞API调用等。可协助工信部快速整改安审问题。总体实现思路:1??基于App依赖树,采用深度优先遍历算法,快速找到App引用的所有SDK列表,以及各个SDK使用的AndroidManifest.xml、jar等文件。2??使用反编译工具cfr将jar包转为java文件,使用dx工具将jar包转为dex文件。然后,使用baksmali工具将dex文件转换为smali文件。3??阅读相关政策代码和隐私代码检测攻略,政策描述建议等json配置。一一分析AndroidManifest.xml中声明的权限和相关包信息。基于java文件和smali文件,完成网络请求、隐私API和漏洞API调用的解析。4??整合分析结果,输出相应的测试报告,开发者可以根据测试报告自行检查整改。流程图和隐私策略配置如图3和图4所示:图3规范化静态安全检测流程图4隐私策略配置文件该方案有两个优点。对于安全问题,有详细的路径说明,方便后续问题解决。其次,基于可变的隐私策略,支持JSON定义的隐私API、敏感API等,可扩展性强。该方案的规范化动态检测能力基于Gradletransform+ASM+Hook+动态代理编译插桩技术,最终以Gradle插件的形式应用于安全隐私检测。基于编译任务,对敏感API、隐私权限申请、网络请求进行全局插桩。同时检测并输出调用堆栈,方便排查问题。这种方式在源码编译阶段直接通过ASM字节码运行框架修改字节码,兼容性好,可以无缝hook整个工程。以下是Hook敏感API“getDeviceId”的示例代码片段。插桩技术在最后的参考文献中有更详细的描述,这里不再赘述。图5Hook敏感API代码段4.结语大数据时代,每个人在网上的画像都被“数字化”了。近年来,APP成为个人信息监管的重点。工信部持续开展APP侵害用户权益专项整治行动。开发者不仅要提高安全合规意识,还要有完善的合规检测体系,有效保护用户信息安全。为App的健康发展保驾护航。参考资料[1]https://mp.weixin.qq.com/s/rCfUAB_xqSdZ3P0x5kLNkw[2]http://www.gov.cn/zhengce/zhengceku/2020-08/02/content_5531975.htm
