国内某SDK被曝借App偷渡盗取用户数据
作者: 日期:2019年03月25日 阅:1,952

对于所有负责App开发的码农们而言,第三方SDK是个好东东,恰当的使用第三方SDK可以帮助加快App的开发速度,能够让App具有更多附加价值,可以提升App的安全强度……各种好处实在是不一而足。于是乎,地图、支付、统计、社交、反外挂、安全软键盘、直播、推送、广告等等一大堆第三方SDK被App码农们非常666的使用着。有数据显示,2017年平均每个App应用集成第三方SDK个数为17.8,其中分析、广告、社交、支付、定位、影音等类型的SDK被集成次数排名靠前。

好处多多麻烦也多多的第三方SDK

然而问题也随之而来,有些人看到了第三方SDK的另外一些“好处”:“你既然使用了我的SDK帮你做了增值,那么我顺便搞些‘副业’也是‘双赢’了嘛。具体是啥‘副业’?呃,就是搜集点小数据、点击下小广告而已,没啥、没啥。”

请注意,这里的“没啥”确切的含义是指:

(1)上述一切操作几乎都是在App开发者/运营者、终端用户未知、未授权的情况下进行的;

(2)这里的“小数据”包罗万象,包括你的通讯录信息、电话记录信息、短信信息、照片信息、位置信息、智能手机/智能设备硬件信息、邮件信息,甚至可能还有你的聊天记录信息、社交活动信息、浏览器记录信息,以及你的银行账号、密码信息等等;

(3)如果这些第三方SDK仅仅是背着你点击些小广告赚点小外快,那已经“很仁慈”了。实际上有些恶意第三方SDK会更为贪心,它可能会暗地里控制你的摄像头,刺探你的商业情报;可能会控制你的设备秘密挖矿;甚至可能会冒充你的身份向你的同事、合作伙伴发送虚假信息,比如银行转账、资产抵押等等。

恶意第三方SDK威胁日慎

怎么样,某些恶意第三方SDK的“没啥”是不是已经让你满身的汗毛倒立了起来。原本希望借助第三方SDK提高自己App的含金量,打出自己的知名度。可这些恶意第三方SDK的“不告而做、肆意妄为”,不仅伤害了宿主App用户的权益,也会给宿主App自身带来严重的负面影响使其声誉受损。在全球各国政府都在加强对个人隐私信息数据监管的大潮下,这些恶意第三方SDK的破坏行为,甚至可能会让一无所知的宿主App开发者/运营者面临严峻的法律风险,巨额的罚款损失。

近几年,由于恶意第三方SDK而引发的安全问题在越来越多的被暴露出来。

2018年的“寄生推”漏洞事件里,第三方SDK可通过预留的“后门”云控开启恶意功能,进行恶意广告行为和应用推广以牟取灰色收益,受到影响的设备会不断弹出广告和安装推广应用。“寄生推”SDK的影响范围广泛,涉及300多款应用,其中包含多款用户量为百万级别的移动应用,潜在影响用户数量超过2千万。

而在上周,有安全研究人员曝光杭州某科技公司利用其对外提供的SDK非法搜集用户的电话联系人列表、地理位置和QQ登录信息。安全研究人员将本次大规模数据窃取活动命名为“Operation Sheep”,窃取信息的代码被隐藏在看似安全的SDK中,并在手机重新启动或受感染的App应用程序启动时提供详细信息。目前,该组件存在于第三方商店提供的多达12款安卓App应用程序中,且这些已受感染的App被下载了至少1.11亿次。

我本将心向明月 为何却被恶意第三方SDK坑

“友谊的小船为何说翻就翻”?许多App开发者、App运营者甚至是App用户可能都会心存疑问,第三方SDK的安全问题怎么会如此严重?

梆梆安全专家用6个字告诉了大家这些事件背后的真实原因:“没干好”、“干不了”。

没干好:由于集成的第三方SDK众多,缺乏有效的代码审计工具和人员,无法快速针对每个SDK的每个版本都进行代码审计。同时大量的SDK发布前都对代码进行过高强度混淆,导致集成厂商无法有效对代码进行安全审计。

干不了:目前各大应用开发厂商,缺乏应用发布后的监控手段,无法对应用发布后的第三方SDK行为进行监控。利用动态代码下载加载机制,恶意SDK可以在应用发布后,从云端下载恶意代码并执行,达到自己恶意推广和窃取用户敏感数据的目的。

看住第三方SDK 不让它变“顽皮”

梆梆安全专家表示,恶意第三方SDK的破坏力确实很大,不过做好下面这两点就能看住第三方SDK,不给它变“顽皮”的机会。

1、发布前做好第三方SDK的安全体检

做好App应用的发布前检测至关重要,通过专业的安全检测能够提前发现某些静态代码中存在的不合规行为,并进行规避。例如,检测发现App中存在大量采集通讯录、短信的代码,且这些代码属于第三方SDK,此时就需要进行相应安全处理,调查并且评估其采集这些数据的合理性,是否且会造成怎样的危害。如果确实存在风险,就要考虑采取包括删除相关第三方SDK在内的安全防御动作。

2、发布后对第三方SDK实施动态监测是关键

由于目前操作系统提供了代码动态加载的机制,也就意味着第三方SDK具备运行时动态加载代码的能力,这部分的代码处于发布后用户终端运行时期,无法通过前期的安全检测发现。没关系,有办法:在运行期间可以对App中的第三方SDK行为进行监测,及时对第三方SDK的所有敏感行为进行审计甚至实施拦截操作,不给第三方SDK变坏作恶的机会。

第三方SDK是个好同学,只要能够用好它、管好它,就能让第三方SDK正向的发挥作用,为宿主App添色彩、增价值。而只要做好上面两件事儿,任何第三方SDK想“变坏”,就会“门都没有”!

 

申明:本文系厂商投稿收录,所涉观点不代表安全牛立场!


相关文章