隐私保护,对App“越界”说不!
早在今年2月份,抖音海外版TikTok就因为发生高频率读取剪贴板内容的问题饱受指责,TikTok方面解释称这是他们的反垃圾策略,为了应对目前机器人水军大量通过脚本来实现复制粘贴批量输出垃圾内容的现状。但不可否认的是,这一策略很容易伤及无辜,给人一种TikTok在监控自己聊天内容的感觉。以致TikTok近日不得不提交新版本,删除该反垃圾邮件功能,以消除任何潜在的误解。类似的情况还出现在全球职场社交平台LinkedIn领英,前段时间也因为常读取/复制用户剪切板信息被用户难以接受。
经过技术人员的详细测试,发现包括QQ、微信、知乎等大多数移动软件都存在频繁读取剪切板内容的情况。今年的苹果全球,大会WWDC上,苹果方面公布的iOS 14中也默默加入了可在应用访问剪贴板时向用户发出警报这项功能。
信息泄露,不起眼的剪切板做了什么
事实上我们在日常使用手机的过程中,难免会复制一些重要的信息,比如地址,手机号,验证码,身份证号码,甚至银行账户和密码等。而我们所复制的信息都会进入到剪切板,由于剪切板的设计初衷更多是为用户提供便捷操作功能,它本身的清理机制并不能保证信息的安全和信息使用操作权限,这就导致用户隐私无法得到有效的安全保障。
应用程序获取剪贴板的目的通常可以分为“功能”、“跳转”与“信息”这三个大类。
“功能”指的是某些应用程序在实现特定操作流程中必须使用剪贴板,比如一些“划词翻译”的软件。
“跳转”功能,想必大家应该非常熟悉了,“fu致这行话”这种淘口令想必大家都有见过。
“信息”功能,也是用户最常用到的操作,用来作为复制/粘贴、信息传递等手段。
正常场景下这三种情况都是可以理解的,因为他们使用剪贴板的行为本质上由用户授权或者主动操作,但是如果应用过度去读取用户剪切板,甚至非法去监控/获取剪切板内容,即软件在前台或后台、公开或私下收集我们剪切板内的资料,以用来进行精确推广、用户画像甚至个人信息出售等行为,就会给用户带来隐私和安全威胁。
安全防护,双剑在手心不抖
我们不能斥责用户不注意个人信息保护,相反,对于App运营方或者,本身来说,如何用合适的技术手段去保护用户的个人隐私和信息安全显得更加重要。这些保护手段涉及到剪切板的操作权限、操作范围、信息安全保护以及在App的各种状态下不同的保护机制等各个方面。
通付盾移动加固团队针对移动应用中关于剪切板使用的安全隐患问题进行定点定向的方案研究和技术研发,提供了Android和iOS双系统下的剪切板防护方案。
Android
Android剪切板防护方案主要目的是实现在App内部环境可以任意复制粘贴,但是内部复制的内容是无法在App外部环境进行粘贴,有效地防止了剪切板数据的泄露,也能够保证App内部的重要信息无法被其他App窃取。
在Android环境下,对剪切板的操作是通过ClipboardManager来实现的,因此我们主要通过对ClipboardManager进行拦截,实现对“获取剪切板数据”和“设置剪切板数据”方法的相对控制权,以实现保护目的。核心流程如下图所示。
通付盾加固-Android剪切板防护方案技术方案示例图
当用户在App内部进行复制操作时,系统会将数据保存至剪切板。此时我们会将内容存至数据库,并且将剪切板的内容清空处理。
当用户在App内部进行粘贴时,便将数据库中内容提取出来,返回要粘贴的内容。
在整个复制/粘贴过程中,整个App内部剪切板的内容会保持清空状态。同时,存储至数据库中的内容经过加解密系统处理后,会以密文形式存放,以明文状态进行回显以保证用户本身正常使用。
此外,该操作不会影响App外部剪切板的内容,当用户在App外部进行复制粘贴时,可以进行正常操作。既不影响用户体验,也不会泄露App内部的隐私数据。
实现效果
1.不影响正常使用剪切板的同时,保障剪切板隐私数据不会被恶意监听;
2.数据存储采用加解密操作,大大增加了信息的安全强度。
iOS
iOS对剪切板的防护主要涉及以下3点:
1.对剪切板缓存的数据进行加密处理,增加数据破解读取的难度,实现攻击者即使劫持了剪切板也无法轻易获取真实的数据。
2.在应用程序进入后台时对剪切板缓存的数据进行清理,防止缓存的数据被第三方恶意使用;
3.应用返回前台时重新进行赋值操作,保证剪切板在应用内部可正常使用,提高用户体验。
iOS剪切板的保护一方面是通过对UIPasteboard的拦截来实现,并且改写了其获取剪切板数据和设置剪切板数据的方法。核心流程图如下图所示。
通付盾加固-iOS剪切板防护方案技术方案示例图
当采用复制操作时,系统会将数据保存至剪切板。此时我们将存储的数据调用加解密系统进行加密操作。当用户在应用内部进行粘贴时,将需要粘贴的数据调用加解密系统进行解密并返回。
在此过程中,整个应用内部剪切板中的内容是经过数据加密处理的。此外,该操作不会影响应用外部剪切板的操作,当用户在应用外部进行复制粘贴时,可以进行正常操作。既不影响用户体验,也不会泄露应用中的隐私数据。
iOS剪切板的保护另一方面是对应用生命周期状态的改变进行监听,当监听到程序进入后台操作时,将剪切板缓存的数据保存到本地,并对剪切板进行清空处理,保证第三方应用无法访问当前应用的剪切板数据。当监听到程序返回前台时,将剪切板数据调用加解密系统进行加密处理,如果剪切板数据为空则将本地数据赋值到剪切板中。保证应用内部数据的一致性,完整性。
实现效果
1.对现在iOS14的剪切板保护功能进行了扩充,并填补了iOS14 以下版本剪切板保护的空白;
2.保证了应用剪切板数据的安全性,增加了攻击者破解的难度;
3.保证了当前应用剪切板使用的数据一致性,完整性。