点击右上角微信好友
朋友圈
请使用浏览器分享功能进行分享
【TMT前沿】
如果你突然发现手机App出现流量劫持、恶意广告推送、违规收集个人信息,或许是内嵌第三方SDK(软件开发工具包)在作怪。
近日,国家计算机病毒应急处理中心通过互联网监测发现15款移动App及1款SDK存在隐私不合规行为,涉嫌超范围采集个人隐私信息;就在一个多月前,工业和信息化部信息通信管理局也通报了今年第一批侵害用户权益行为App,有13款内嵌第三方SDK存在违规收集用户设备信息行为。
(图片来源于网络)
伴随移动互联网时代的到来,App与人们工作生活关联日益密切。现如今,大量App借助SDK实现特定功能,提供便捷服务,满足用户多样需要。但与之相关的安全问题,同样不容忽视。
何为SDK?与App有何关系?
最新数据显示,国内市场上App已达252万款。当前,这些App的功能复杂程度及版本迭代速度大幅提升,已进入为大众提供精细化、场景化服务阶段。“应用开发者为提高迭代速度、降低开发成本以及提供更加丰富的业务功能,除了自主开发App的相关功能代码外,还会内嵌第三方SDK,从而快速接入和实现某类业务功能。”安天移动安全高级副总裁陈家林说。
中国信通院与腾讯公司联合发布的《软件开发包(SDK)安全研究报告(2021年)》提到,超3万款第三方SDK已被100款以上App集成。安天移动安全风险应用检测预警平台也统计发现,目前,我国80%以上App集成了第三方SDK,每个App集成的SDK数量平均近20款。
(图片来源于网络)
何为SDK?《TC260-PG-20205A 移动互联网应用程序(App)中的第三方软件开发工具包(SDK)安全指引(征求意见稿)》中给出定义——辅助开发某一类软件的相关文档、范例和工具的集合;第三方SDK是指由第三方服务商或开发者提供的实现软件产品某项功能的工具包。
“就像一家厂子制造电视或汽车时,在组装过程中为实现更好性能,一些具有特定功能零件需要从外界购买,并组装在产品里。”一家资讯类平台工程师田强做了这样的比方。
记者了解到,第三方SDK通常提供一些App常用的功能服务。比如,消息推送、支付、广告、行为分析统计、第三方登录等。此外,还有SDK主要用于特定的品类应用中。比如,社交交友类App通常会接入即时消息类SDK,网赚类App则会接入安全风控类SDK。
嵌入了便利,也嵌入了风险
梳理本次工信部通报的SDK违规问题可以发现,8款SDK涉及违规收集设备Android ID、4款涉及设备IMEI、3款涉及设备MAC地址、2款涉及设备IMSI、1款涉及设备ICCID号,均属违规获取设备ID;此外,有1款SDK涉及违规收集设备传感器信息,1款涉及违规收集设备安装列表。
对此,陈家林坦言,SDK虽然具有泛用性、灵活性特点,但市面上的第三方SDK生态比较复杂:对于App开发者,第三方SDK运行时的行为可能并不透明化;App在不同版本中引入的同一SDK,其版本、功能、模块可能存在差异;同一SDK在不同App中分发的版本、功能、模块也可能存在差异。“也就是说,很多场景下App开发者难以全面评估接入SDK的安全性,且难以掌握SDK的全部运行行为。”
“我们曾采用过一款记录日志运行数据的SDK组件,几年前出现系统漏洞,平台数据安全遭遇严重威胁。”田强回忆,黑客通过该第三方SDK漏洞,可以登录服务器并获取服务器操作权限,任意处置用户数据。
安天移动近日发布的《移动互联网应用供应链(SDK)行为安全性现状研究报告》提到,SDK恶意行为包括流量劫持、资费消耗、隐私窃取、静默下载安装、广告刷量、恶意广告、勒索、挖矿、远程控制等;SDK风险行为包括违规收集个人信息、超范围收集个人信息、云端控制SDK行为、后台拉活、欺骗误导用户下载App、伪装或匿名推送消息等。
“App接入第三方SDK提供服务,在厘清个人信息处理责任边界、实施安全措施等方面,增加了复杂度、安全隐患以及合规工作的不确定性。此外,企业如何规范App接入的各类第三方SDK服务,已成为数据合规的难点之一。”中国电子技术标准化研究院网络安全研究中心测评实验室副主任何延哲说。
警惕隐瞒收集用户个人信息乱象
去年年底,国家计算机网络应急技术处理协调中心、中国网络空间安全协会发布的《App违法违规收集使用个人信息监测分析报告》显示,第三方SDK收集行为普遍存在,由该行为不规范引发的App违规问题日益凸显。
“我们在检测中也发现,应用接入第三方SDK引发的违规收集个人信息问题较为普遍。其中,包括用户同意隐私政策前就开始收集个人信息、隐私政策中未明确提及所接入的SDK和数据收集情况、SDK收集的个人信息范围与隐私政策不相符等。”陈家林介绍,由于SDK在不同App中存在不同的模块代码和版本,经过对不同月活范围App数据收集行为分析发现,SDK普遍存在违规收集和超范围收集个人信息问题,且在月活较低的App接入版本中,还存在通过云控参数控制SDK在终端侧收集数据范围情况。
(图片来源于网络)
从个人信息处理角度来说,何延哲认为,第三方SDK和App在理想情况下,存在“委托处理”“各自独立处理”及“共同处理”三种模式:第一,如果第三方SDK无法独立决定对所收集数据的处理目的及方式,需遵循与App开发者约定处理个人信息,此时App开发者作为个人信息处理者,需承担告知同意职责;第二,对于第三方SDK处理个人信息行为,如果App开发者无法充分定制或限制,此时双方属于“各自独立处理者”,App开发者需告知第三方SDK处理个人信息规则;第三,如果App与第三方SDK约定共同决定处理个人信息,双方可能成为“共同处理者”,都应该以个人信息处理者的名义,对用户明示告知。
然而,在实际App开发运营中,相比以上三种理想模式,两者关系往往更为复杂。何延哲建议,App运营者如果能够与用户直观交互并提供服务,应该承担更大告知同意职责;如果第三方SDK提供服务必须处理个人信息,需要其主动详细告知个人信息处理规则。
应遵循合理性、最小化、必要性设计原则
第三方SDK嵌入App时,也嵌入了风险元素。对此,多年从事出行类平台研发工作的客户端工程师陆阳认为,一线工程师不能只关注软件开发业务,应该对所使用的SDK基本信息有清晰、必要的认识,并与安全团队配合,选出既符合业务诉求、又能够保障安全性的SDK。
陈家林认为,从产业链角度,SDK提供者除了需要遵守安全开发原则,还需要在产品设计和开发阶段遵守《个人信息保护法》《数据安全法》等相关法规和App用户权益相关的政策合规性规范要求,在SDK涉及用户个人信息收集和使用相关的行为上,应该保障最小化和必要性的设计原则;应用开发者在选择和接入功能SDK时,需要重点从SDK提供商和其SDK软件包安全性角度进行评估。
针对用户权益方面,何延哲认为,需要结合SDK法律角色定位、处理个人信息合法性基础,以及特定使用场景等因素而定。即,如果基于用户“同意”使用SDK服务,用户拥有行使撤回“同意”权利;如果SDK收集用户信息是为履行法定义务,则不宜提供停止或拒绝功能;如果SDK与App构成委托关系,应由App方对个人信息作出响应。
近年来,国家相关单位的部分标准文件中,已提出了App和SDK的安全技术要求和规范指引,部分处于征求意见稿阶段。比如,《移动互联网应用程序(App)中的第三方软件开发工具包(SDK)安全指引》《移动互联网应用程序(App)SDK安全指南》《移动智能终端应用软件SDK安全技术要求》等。
记者了解到,根据欧盟GDPR要求,欧洲广告互动协会开始尝试“同意管理平台模式(CMP)”。何延哲认为,这种模式本身有助于使个人信息处理更合规,具有一定借鉴性。而真正适合我国法律框架和App、SDK开发产业生态的个人信息处理模式,还需要各方持续研究尝试。(光明网记者 李政葳 孔繁鑫)