SHEIN 购物应用程序变得流氓,从您的剪贴板中获取价格和 URL 数据

SHEIN 购物应用程序变得流氓,从您的剪贴板中获取价格和 URL 数据

源节点: 2005243

中国“快时尚”品牌 SHEIN 对争议并不陌生,尤其是因为其当时的母公司 Zoetop 未能发现 2018 年的数据泄露事件,更不用说阻止,然后进行了不诚实的处理。

正如纽约州总检察长莱蒂夏·詹姆斯 (Letitia James) 在一份 声明 2022 年底:

SHEIN 和 [姊妹品牌] ROMWE 薄弱的数字安全措施使黑客很容易窃取消费者的个人数据。 […]

[P]个人数据被盗,Zoetop 试图掩盖它。 未能保护消费者的个人数据并对其撒谎并不时髦。 SHEIN 和 ROMWE 必须加强其网络安全措施,以保护消费者免受欺诈和身份盗用。

在纽约法院作出判决时,考虑到业务范围,我们对看似微不足道的 1.9 万美元罚款表示惊讶:

坦率地说,考虑到公司的规模、财富和品牌影响力,Zoetop(现为美国的 SHEIN 分销公司)表现得如此轻松,我们对此感到惊讶,它甚至明显缺乏可以预防或减少所构成危险的基本预防措施违规行为,以及其在违规行为为人所知后在处理违规行为方面的持续不诚实行为。


史努比应用程序代码现已公开

我们不知道的是,即使此案正在通过纽约司法系统审理,SHEIN 正在向其 Android 应用程序添加一些奇怪的(和可疑的,如果不是恶意的)代码,将其变成一种基本的“营销间谍软件工具”。

本周早些时候,当微软研究人员发布了一份 回顾性分析 SHEIN Android 应用程序的 7.9.2 版,从 2022 年初开始。

尽管自从微软报告其可疑行为以来,该应用程序版本已经更新了很多次,尽管谷歌现在已经在 Android 中添加了一些缓解措施(见下文)以帮助您发现试图摆脱 SHEIN 的诡计的应用程序......

……这个故事强烈提醒我们,即使是在 Google Play 中“经过审查和批准”的应用程序也可能以破坏您的隐私和安全的不正当方式运行——就像那些案例一样 流氓“身份验证器”应用程序 我们大约两周前写过。



微软研究人员没有说明是什么激起了他们对这个特殊的 SHEIN 应用程序的兴趣。

据我们所知,他们可能只是选择了具有高下载量的代表性应用程序样本,并自动搜索其反编译代码以查找对系统函数的有趣或意外调用,以便创建一个有趣目标的简短列表。

用研究人员自己的话说:

我们首先对应用程序进行了静态分析,以确定对行为负责的相关代码。 然后,我们通过在检测环境中运行应用程序来执行动态分析以观察代码,包括它如何读取剪贴板并将其内容发送到远程服务器。

SHEIN 的应用被指定为拥有超过 100 亿的下载量,这远远低于 Facebook (5B+)、Twitter (1B+) 和 TikTok (1B+) 等超高速应用,但与其他知名和广泛使用的应用一样Signal (100M+) 和 McDonald's (100M+) 等应用程序。

深入研究代码

该应用程序本身非常庞大,APK 形式的重量为 93 MBytes(一个 APK 文件,简称 安卓包, 本质上是一个压缩的 ZIP 存档),解压缩后为 194 MBytes。

它在一组顶级名称为 com.zzkko (ZZKKO 是 SHEIN 的原名),在名为 com.zzkko.base.util.

这些基本实用程序包括一个名为 PhoneUtil.getClipboardTxt() 将使用从导入的标准 Android 编码工具抓取剪贴板 android.content.ClipboardManager:

在 SHEIN/ZZKKO 代码中搜索对这个实用函数的调用表明它只用在一个地方,一个名为有趣的包 com.zzkko.util.­MarketClipboardPhaseLinker:

正如微软分析中所解释的那样,这段代码在被触发时会读入剪贴板中的任何内容,然后测试它是否同时包含 ://$,如果您复制并粘贴了涉及他人网站和美元价格的搜索结果,您可能会想到:

如果测试成功,则代码调用编译到包中的函数,其名称难以想象(并且可能是自动生成的) k(),将侦听文本的副本作为参数发送给它:

如您所见,即使您不是程序员,那个无趣的功能 k() 将嗅探出的剪贴板数据打包成 POST 请求,这是一种特殊的 HTTP 连接,它告诉服务器,“这不是传统的 GET 请求,我要求你向我发送一些东西,而是我向你发送数据的上传请求。”

POST 在这种情况下请求被上传到 URL https://api-service.shein.com/marketing/tinyurl/phrase,HTTP 内容通常看起来像这样:

 POST //marketing/tinyurl/phrase 主机:api-service.shein.com。 . . Content-Type: application/x-www-form-urlencoded phrase=...传递给 k() 的参数的编码内容...

正如微软在其报告中慷慨指出的那样:

虽然我们不知道 SHEIN 有任何恶意,但即使是应用程序中看似良性的行为也可能被恶意利用。 针对剪贴板的威胁可能会使任何复制和粘贴的信息面临被攻击者窃取或修改的风险,例如密码、财务详细信息、个人数据、加密货币钱包地址和其他敏感信息。

剪贴板中的美元符号并不总是表示价格搜索,尤其是因为世界上大多数国家/地区的货币使用不同的符号,因此可以通过这种方式窃取大量个人信息……

…但即使抓取的数据确实来自您在其他地方所做的无辜且不重要的搜索,这仍然与其他人无关,而与您有关。

当您想将 URL 作为数据传输时,通常会使用 URL 编码,这样它们就不会与应该访问的“实时”URL 混淆,这样它们就不会包含任何非法字符。 例如,URL 中不允许有空格,因此它们在 URL 数据中被转换为 %20,其中百分号表示“特殊字节跟随两个十六进制字符”,并且 20 是空间的十六进制 ASCII 代码(十进制为 32)。 同样,一个特殊的序列如 :// 将被翻译成 %3A%2F%2F,因为冒号是 ASCII 0x3A(十进制为 58),正斜杠是 0x2F(十进制为 47)。 美元符号出现为 %24 (十进制为 36)。

怎么办呢?

根据微软的说法,谷歌对在其他方面受信任的应用程序中的这种行为——你可能认为是“无意的背叛”——的回应是加强了 Android 的剪贴板处理代码。

据推测,使剪贴板访问权限更加严格和更具限制性在理论上将是一个更好的解决方案,就像对 Play 商店应用程序审查更加严格一样,但我们假设这些响应在实践中被认为过于侵入。

粗略地说,您拥有(或可以升级到)的 Android 版本越新,剪贴板的管理就越严格。

显然,在 Android 10 及更高版本中,应用程序根本无法读取剪贴板,除非它在前台主动运行。

不可否认,这并没有太大帮助,但它确实会阻止您闲置甚至忘记的应用程序一直在窥探您的复制和粘贴。

Android 12 及更高版本会弹出一条警告消息,提示“从您的剪贴板粘贴了 XYZ 应用程序”,但显然此警告仅在任何应用程序第一次出现时出现(可能是您预期的时间),而不会出现在随后的剪贴板抓取中(当你没有)。

Android 13 每隔一段时间就会自动清除剪贴板(我们不确定实际频率是多少),以停止您可能已经忘记无限期闲置的数据。

鉴于谷歌显然不打算像你希望的那样严格控制剪贴板访问,我们将在这里重复微软的建议,其思路是,“如果你看到了什么,说些什么……然后用脚投票,或者至少你的手指”:

考虑删除具有意外行为的应用程序,例如剪贴板访问 [...] 通知,并将该行为报告给供应商或应用程序商店运营商。

如果您拥有大量公司移动设备,并且还没有采用某种形式的移动设备管理和反恶意软件保护,为什么不看看 现在有什么优惠?



时间戳记:

更多来自 裸体安全