今日头条与木马
来源:知乎 刘一鸣
摘要
近期,央视报道了今日头条选择性推送广告的行为,即,今日头条有选择地避开一线城市,将虚假广告推送给二三线城市。
虽然定向推送这种技术并不新鲜,今日头条用这种技术偷偷作恶,却着实令人担忧。幸好,作恶的对象是二三线的居民,生活在一线城市的我们,似乎还可以心存侥幸?
可惜,并非如此。
因为今日头条客户端在设计上,就是一个功能强大的木马。
它可以做什么呢?
窃取你手机里的机密文件,今日头条能做到。
随时对你进行定位,顺带记录和识别你和别人的谈话,外加无声拍照,今日头条能做到。
总体来讲,只有它想不想做,没有它做不到。
考虑到今日头条并不自律,建议任何有信息安全要求的人和组织,卸载今日头条。
问题
今日头条是不是一个木马?
这个问题如果由今日头条回答,是个公关问题,答案肯定是否定的。
然而它实际上是否如此呢?我们就要看看它的客户端,用技术说话了。
今日头条几乎获取了所有权限
从信息安全的角度来讲,应用应仅取得必要的权限,但是今日头条基本把敏感权限都请求了。
对今日头条客户端APK的分析结果,显示今日头条申请的权限如下:
上述的这些权限能做什么,各位可以通过百度查找。
这里面有几个尤其敏感的:
基本上木马梦寐以求的各种权限,作为一个新闻客户端的今日头条都要了。
今日头条的热补丁机制随时可以运行木马代码
确实,申请了过多权限并不一定代表今日头条代码里会进行木马行为。
然而你知道神奇的地方是什么吗?今日头条的客户端安装包只有20M,里面基本上没什么东西。
它的许多功能都是通过热补丁按需下载安装的,不要误会,不是按照你的需要,而是按照今日头条的需要。
比如它一个典型的热补丁列表,这个“robust_hotfix_for_66509”就是一段未加验证就加载的可执行代码。
今日头条有能力随时下发一段代码,让手机里的客户端去执行。
至于下发什么代码、给什么人下发、什么条件下下发,那完全能是看人下菜碟。
就像今日头条对二三线城市用户做的事情那样。
苹果为什么禁止热补丁,一个原因就是担心这样的情况发生。
模拟演示
口说无凭,我们来看一看。
这个热补丁包是一段单纯的二进制代码(DEX文件),没有任何保护。
我们使用二次打包的方式,把它修改成木马代码,然后利用中间人,仿冒今日头条的服务端去下发这段代码。
注意:今日头条的服务端可以实现一模一样的事情,我只是在冒充它的服务端。
我使用的官方下载的今日头条客户端,仅仅是修改了网络请求,下发了木马热补丁,可见木马控制端已经连接。
而今日头条热补丁升级的HTTPS证书校验也并没有实现行业推荐的SSLpinning(也或许它就不重视安全),也就是说,即便今日头条不下发木马,你在不安全的WIFI下只要使用了今日头条,照样可能被黑客在手机里种上木马。
有人说,国内知名应用大都有热补丁。没错,先不说别人没这么不自律,人家的热补丁大都实现得很安全,您一个单dex直接加载,黑客不劫持都对不起观众了吧?
而且看看评论区的态度,人家应用都是知道热补丁对用户很危险所以小心谨慎地做好安全,而您面对安全是“有几个应用不用热补丁?”,pardon me?
结论
在信息安全领域里,攻击是否会发生要从两个维度考虑,即能力与意愿。
从今日头条客户端的设计上看,今日头条具有木马的一切能力,唯一的问题是,今日头条是否有作恶的意愿?
从今日头条选择性虚假广告上看,这并不是一个足够自律的企业,它是否能抵御用户隐私的诱惑呢?要打一个巨大的问号。但是即便今日头条能抵御诱惑,其客户端设计存在的安全问题,也给了别有用心的黑客太多的机会。
因此,公众有必要知道,使用今日头条客户端存在严重的安全风险。
在这个安全风险得到解决之前,
建议涉密部门、涉密设备禁止安装今日头条客户端;
建议禁止安装今日头条客户端的手机连入企业内网;
建议对个人隐私有要求的用户卸载今日头条客户端。
题外话
在互联网时代,信息安全的确不一定能跟得上业务的快速变化,相关国家标准的制定也必然慢于新技术的发展。
可以说,存在安全风险是必然的,厂商获得不受监管的巨大权力也是必然的。
在这种条件下,厂商面对作恶的态度和自律就显得尤为重要,应该珍惜用户这份信任。
但是倘若厂商作恶,不要心存侥幸,因为有人会站出来,我们信息安全从业者众多,自会用我们的方式守护公众的安全。
(声明:本文仅代表作者观点,不代表新浪网立场。)