照片来自网络
最近的一篇题目是《QQ 正在尝试读取你的浏览记录》,是网友@mengyx在使用QQ时为了防止一些流氓行为而专门安装在MS Store上的QQ桌面版。因为之前使用了奇摩的自定义拦截功能,所以设置了重要或敏感数据目录保护。
拦截日志如下:
附言 :
21 小时 36 分钟前以 History 为关键字,最早可以追溯到9.1.5版本(2019年6月),这么说此种行为至少已经进行一年半了:
- A (有腾讯的数字签名)https://fs.sz.ixarea.com/netdisk/qq/ASHA256: C9FD14D538AAEFBC0624F3E50BF582C4306D7674F70518070B3D1179BFD596D7
- QQ 9.1.5 下载来源:
验证经过
随后网友 @qwqdanchun 对 QQ 的行为进行了逆向分析,结果是证实了《QQ 正在尝试读取你的浏览记录》里的想法。
验证过程:
1、开虚拟机装QQ、Chrome,然后打开Process Monitor开始等,规则简单的过滤下。
2、果然看到了读取AppDataLocalGoogleChromeUser DataDefaultHistory等目录的操作。
3、而且时间也是恰到好处的十分钟。
4、把规则去掉,重新翻了一下发现「受害人」之多令人震惊,仔细一看,遍历了AppdataLocal下的所有文件夹,然后加上User DataDefaultHistory去读啊。User DataDefaultHistory是谷歌系浏览器(火狐等浏览器不熟,不清楚目录如何)默认的历史纪录存放位置,Chrome中枪也就很正常了。
5、然后研究一下QQ为啥要这么干,读取到的浏览器历史记录又拿来做什么?挂上x32dbg,动态调试找到位置。
6、然后去IDA里直接反编译出来,如下(位置在A中 .text:510EFB98 附近)
7、这一段的逻辑还是很好看懂的,先读取各种 User DataDefaultHistory 文件,读到了就复制到Temp目录下的,回去看下Procmom,果然没错。再之后的操作就简单了,SQLite读取数据库,然后“select url from urls”。
通过以上的实验可以得出以下结论:
QQ并不是特意读取Chrome的历史记录的,而是会试图读取电脑里所有谷歌系浏览器的历史记录并提取链接,确认会中招的浏览器包括但不限于Chrome、Chromium、360极速、360安全、猎豹、2345等浏览器。
随后@qwqdanchun又去试了一下TIM,结果是和QQ如出一辙,甚至要比QQ还离谱。
马化腾曾亲自道歉
2017年12月25日,火绒曾针对用户反馈的对腾讯官方程序进行报毒、自动拦截等处理发布官方声明:「之所以会拦截腾讯相关产品安装,是因为腾讯QQ在推广『QQ浏览器』和『腾讯安全管家』的过程中,存在功能严重越位、技术手段严重超常规(和某些病毒的行为一致)等问题。」
随后互联网评论家洪波在朋友圈转发了《火绒拦截腾讯产品说明》的文章,让人意想不到的是马化腾竟然在当天晚上 23:59 评论称:「自查了,确实是我们团队违规出问题了。已严格要求整改处理和道歉。」
四年后的今天事件再度重现,这次马化腾会亲自道歉吗?
随着事件热度的不断上升,@mengyx 表示希望大家冷静看待,等待大佬的进一步分析或者腾讯的解释。
有关技术向的部分,目前发现上述操作的仅有电脑版QQ和TIM,微信和其他版本的QQ,TIM @mengyx 和朋友陆续在分析,目前并没有找到类似操作。并且读取的只是浏览器历史记录,密码书签和 cookies,而浏览记录也不是直接上传,总体来说,大家的隐私还是较为安全的。
回应流程的质疑时,@mengyx表示:在逆向时确实只进行到读取数据库的操作就停下来了,并没有对前后的内容综合考虑,只是获取历史记录的 URL ,并与一些购物和证券网站对比,对比成功的会上报。整个操作并不会涉及浏览器之外其他软件,也不会获取浏览记录之外的数据,获取到的数据也没有直接上传服务器。而且,由于有对电脑域的判断,确实有可能是程序员写错了判断条件的失误,不过确实不应该这么久没有发现问题。
技术编辑:宗恩 | 发自:思否编辑部