我们现在是2020年,美国总统即将禁止视频分享社交网络移动应用TikTok,因为“它对美国国家安全构成风险”。与此同时,微软开始讨论在美国收购TikTok的可能性。TikTok最近收到了很多媒体的报道,但其中有多少是事实?这就是我将在本系列文章中尝试回答的问题。每篇文章都会回答一个非常具体的问题。现在是时候把事实重新摆回桌面上了。
TikTok为他们的用户提供了过多的功能,这要归功于它数百万行长的代码。因此,一篇文章不可能涵盖像“TikTok是否对美国国家安全构成威胁?”这样宽泛而模糊的问题。这就是为什么我将在几篇文章中报道这一问题,所有文章都集中在特定的主题上。
我叫巴蒂斯特·罗伯特,是一名法国安全研究员。多年来,我一直在分析移动应用程序。你可以在fs0c131y.com/press上找到我的公共作品,在twitter.com/fs0c131y上找到我愚蠢的推文。
我的目标是完全透明。我会分享你需要的一切,以便仔细检查我在这篇文章中写的东西。
如果您想跳过技术细节,可以在本文末尾找到TL;DR。
我们通过私信进行了讨论,他向我解释了这个问题。他听了TikTok的网络请求,注意到每2分钟就有一个请求。然而,内容是加密的,他无法解密。
当调试一些东西时,90%的工作是能够重现它。所以,首先我试着重现这个问题。
我使用Frida脚本绕过了应用程序中实现的SSL锁定,并启动了TikTok
在研究它的加密内容之前,我们已经可以看到这个请求包含了大量的参数。
虽然这听起来可能会让你感到惊讶,但实际上并不令人惊讶。这种做法是相当标准的,你可以放心,你使用的大多数应用程序都有相同的数据检索过程。
是时候来看看加密的内容了!这是有趣的部分,😉。我反编译了应用程序并搜索了“app_log”。我立即在com.ss.android.common.applog.NetUtil类中找到了sendEncryptLog方法。
你不懂密码吗?没关系,别担心。请看方法签名。共取4个参数。Arg4是url,arg5是请求的内容(未加密),其余的我们暂时不关心。
现在,我可以使用Frida截取此方法的调用,并在加密之前查看请求的内容。
如果我们仔细查看JSON文件的内容,我们可以看到非常标准的数据。
事件记录。我需要仔细看看他们认为的“事件”,但据我所知,这似乎是一个相当标准的分析解决方案。
此问题的答案等于调用方法sendEncryptLog时的答案。通过按下JEB的X键,您可以很容易地获得所有的交叉引用。
SendEncryptLog方法用于发送不同类型的JSON。所以,我清理了TikTok的数据,一切从头开始。我设法捕获了以下JSON。
同样,字段名称不言而喻。我在这些JSON中看不到任何可疑或特定于TikTok的东西。
正如您在前面的屏幕截图中看到的,请求被发送到log16-Normal-c-useast1a.tiktokv.com。有趣的是,我坐在欧洲,我的日志被发送到美国东部的Enpoint…。TikTok是一款在全球范围内使用的应用程序,他们可能使用了几个端点来上传日志。
共有7种url配置:中国、美国、美国HTTP、SIG AWS、SIG阿里云、MUSIC、MUSIC HTTP。再说一次,没有欧洲的url配置似乎很奇怪,但是没关系。
对啰!。加密是在本机库中完成的。TikTok使用的所有本地库都位于手机的/data/data/com.zhiliaoapp.musically/app_librarian/<;version>;文件夹中。我现在就到此为止吧。至于TikTok实际上是如何加密数据的,这值得单独报道。嗯,现在是下午12点,我很饿。
在本文中,我试图了解TikTok定期向其服务器发回哪些数据。我解密了请求的内容,并对其进行了分析。据我们所知,在目前的状态下,TikTok没有可疑的行为,也没有泄露不寻常的数据。获取用户设备的数据在移动世界中相当常见,我们在Facebook、Snapchat、Instagram和其他网站上也会获得类似的结果。
希望您喜欢这篇文章。其他人也会紧随其后。别忘了在Twitter上关注我,如果你有问题,请毫不犹豫地在Twitter上或通过电子邮件[email protected]给我发消息