图片104
App已经深入用户生活,各种App应用迅速普及,在促进经济社会发展、服务民生等方面发挥了重要作用。随着市场的快速迭代和技术的不断创新,App开发者经常嵌入第三方SDK(Software development Kit,软件开发工具包),以提高产品研发效率,降低成本。
SDK的主要类型有以下几类:框架、广告、推送、统计、地图、第三方登陆、社交、支付、客服、测试、安全风险控制、Crash监控、人脸识别、语音识别、短信验证、基本功能等。各种应用平均使用第三方SDK10个以上。
SDK依附于大量渗透到各个行业的应用程序中,SDK的生命周期取决于应用程序的生命周期。
SDK本身没有运行能力,必须等待宿主App调用才能实现,完成具体功能。
第三方SDK无疑给应用程序开发人员带来了极大的便利,但与此同时,SDK的安全性和合规性也逐渐泄露,SDK收集个人信息和安全性也引起了各方的关注。自2019年以来,各监管机构以SDK非法收集个人信息为重点审查对象之一。
SDK安全检测。
被测到的SDK可以以Jar、aar、zip、so等形式单独存在,也可以集成到具体应用中。在掌握全面移动安全风险信息的前提下,对SDK进行检测。检测过程主要分为三个步骤:预处理、特征扫描和数据处理。
首先,对应用程序安装包或SDK包进行反编译,获取代码文件;
然后扫描反编译后的代码文件的特征,找到相应的符号特征信息,并与国家漏洞信息库完整匹配,记录漏洞的特征信息、代码位置和风险信息;
最后,整合和处理特征扫描生成的漏洞信息数据集,生成检测报告,并显示具体的安全风险问题、漏洞位置、维修建议等。
SDK在开发过程中注重功能实现,忽视了安全性,导致SDK本身存在安全漏洞。这些漏洞可以被恶意攻击者利用,损害大量嵌入SDK的应用程序及其最终用户的数据和隐私安全。我们对市场上的主流应用程序和SDK进行了测试和分析。与第三方SDK相关的漏洞安全包括:编码规范测试、发布规范测试、代码安全测试、环境安全审计测试、组件安全测试、数据安全测试、安全漏洞测试7个层次和60多个潜在的安全风险。
应用程序中嵌入的第三方SDK越多,安全漏洞涉及的范围就越广。应用程序开发人员应谨慎使用第三方SDK。值得一提的是,有一种SDK利用动态加载技术远程控制恶意代码执行。由于恶意代码在本地不存在,因此在执行过程中被下载到本地执行。它逃脱了杀毒软件的扫描,隐蔽性很强,对最终用户造成了很大的伤害。