具备强大功能的第三方SDK,广泛的应用在大量AndroidAPP的设计开发阶段,成为整个Android软件供应链中不可或缺的一部分。但这也同时意味着,一旦处于供应链上游环节的SDK失守,不仅给大量Android应用带来安全隐患,更会影响无数用户的网络安全。
7月25日,腾讯安全反诈骗实验室发布《网络安全新常态下Android应用供应链安全探秘》(下简称报告)。报告指出,第三方SDK安全事件是Android供应链中频发的安全事件,这类攻击大多采用了白签名绕过查杀体系的机制,其行为也介于黑白之间,从影响用户数来说远超一般的漏洞利用类攻击。尤其对于接入SDK数量最多的金融类APP而言,潜伏着巨大隐患,亟需提高警惕。
统计分析类SDK 集成比例最高 金融类型APP平均使用超20个SDK
第三方SDK包括广告、支付、统计、社交、推送,地图等类别,是广告商、支付公司、社交、推送平台,地图服务商等第三方服务公司为了便于应用开发人员使用其提供的服务而开发的工具包,封装了一些复杂的逻辑实现以及请求,响应解析的API,由于其使用的广泛性,一旦出现安全问题并且被黑客利用,其影响范围之广,危害之大不言而喻。
报告针对应用市场上各类型应用TOP 100使用的第三方SDK情况进行分析,发现各类SDK在应用中的集成比例从高到低依次为统计分析类、广告类、社交类、支付类、位置类、推送类。不难发现,被广泛使用的SDK直接和用户的移动支付安全、地理隐私等关系密切。
(SDK类别被集成比例)
而各种类型的APP在第三方SDK使用数量方面,金融借贷类平均使用的SDK数量最多,达到21.5,紧随其后是新闻类APP,平均数量为21.2;往后是购物类、社交类、银行类和游戏类,平均数量都超过15个;再后面的则是出行类、办公类和安全工具类,平均使用的SDK数量相对较少,分别为11.4、9.7和6.7。
(各类应用平均集成SDK的个数)
从报告统计得到的数据可以看到,Android应用在开发时都集成使用了数目众多的第三方SDK,尤其是金融借贷类、购物类、银行类等涉及用户身份信息和财产安全的应用,使用的第三方SDK数量普遍在15个以上,最多的甚至达到30多个。
报告指出,这些应用集成的第三方SDK中,不仅包含大厂商提供的SDK,而且还包含很多开源社区提供的SDK,这些SDK的安全性都没有得到很好的验证,一旦发生安全问题,将直接危害用户的隐私和财产安全,造成严重的后果。
第三方SDK安全“内忧外患” “寄生推”SDK事件揭示恶意开发者已渗入
第三方SDK的安全堪称“内忧外患”。除了生来就瞄准获取用户隐私信息的恶意SDK之外;SDK自身存在的漏洞如果被不法分子利用,攻击者就能够利用SDK本身存在的强大功能发动恶意的攻击行为,例如在用户毫无察觉的情况下打开相机拍照,通过发送短信盗取双因素认证令牌,或将设备变成僵尸网络的一部分。
报告总结了近几年Android平台发生第三方SDK安全事件,发现其安全问题主要发生在三个方面:首先,第三方SDK的开发者的安全能力水平参差不齐,且众多第三方SDK的开发者侧重于功能的实现,在安全方面的投入不足,导致第三方SDK中可能存在着这样或那样的安全漏洞。近两年被爆出的有安全漏洞的第三方SDK主要有FFmpeg漏洞、友盟SDK、zipxx等,由于其被广泛集成到大量的APP中,漏洞的影响范围非常大。
其次,部分SDK开发者出于某种目的,在其开发的SDK中预留了后门用于收集用户信息和执行越权操作;再次,部分恶意开发者渗入了SDK开发环节,以提供第三方服务的方式吸引其他APP应用开发者来集成他们的SDK。借助这些合法应用,恶意的SDK可以有效地躲避大部分应用市场和安全厂商的检测,影响大量用户的安全。
今年4月,腾讯安全反诈骗实验室的TRP-AI反病毒引擎捕获到一个恶意推送信息的软件开发工具包(SDK)——“寄生推”,它通过预留的“后门”云控开启恶意功能,私自ROOT用户设备并植入恶意模块,进行恶意广告行为和应用推广,以实现牟取灰色收益。300多款知名应用遭遇“寄生推”的病毒感染,其中不乏用户超过千万的巨量级软件,潜在影响用户超2000万。
“寄生推”SDK的爆发反映出,恶意软件作者正越来越多地利用用户与软件供应商间的固有信任,通过层出不穷的攻击手法投递恶意载体,造成难以估量的损失。对此,报告呼吁,在应对应用供应链攻击的整个场景中,需要手机厂商、应用开发者、应用市场、安全厂商、普通用户等各主体积极参与、通力合作,才能构建Android应用供应链的安全生态。