瑞星证实:360扣扣保镖为何激怒腾讯
腾讯科技讯北京时间11月5日消息,国内知名第三方反病毒机构瑞星最新发布的技术分析报告证实,扣扣保镖除了拥有其宣称的11大类可见功能之外,至少还存在4个隐藏功能,这些功能仅针对QQ,且都具有用户不可见、不可控制等…
来源:
作者:
下面的文章的完整版!
文章id:6434
北京时间11月5日消息,国内知名第三方反病毒机构瑞星最新发布的技术分析报告证实,扣扣保镖除了拥有其宣称的11大类可见功能之外,至少还存在4个隐藏功能,这些功能仅针对QQ,且都具有用户不可见、不可控制等特性。这些隐藏功能随时处于活动状态,并且可由360公司远程开启。
昨日,曾有媒体报道扣扣保镖存在四大后门技术,可以随时远程开启。但360对此矢口否认。如今终于得到来自第三方反病毒机构瑞星铁一般的证实。
以下是报告全文:
360扣扣保镖为何激怒腾讯?
—-瑞星第三方独立研究报告(一)
2010年10月29日,360公司在京宣布,推出一款名为“扣扣保镖”的安全工具,全面保护QQ用户的安全。该工具包括防止隐私泄漏、防止木马盗取QQ账号以及给QQ加速等功能。360称,扣扣保镖默认不修改QQ任何设置,所有功能都必须由用户主动选择触发,并可随时启用和恢复。
瑞星研发部门通过对扣扣保镖(1.0.0.1004版本)主要功能实现模块QGuard.dll进行分析:发现该软件除了拥有其宣称的11大类可见功能之外,至少还存在4个隐藏功能,这些功能仅针对QQ,且都具有用户不可见、不可控制等特性。这些隐藏功能随时处于活动状态,并且可由360公司远程开启。
扣扣保镖4个隐藏功能详细分析
扣扣保镖除了界面上的可见功能以外,还存在屏蔽QQ软件升级、劫持腾讯浏览器、屏蔽QQ启动的特定进程列表、备份并恢复QQ软件等4个隐藏的功能,它们均由Config.ini文件进行开关控制。经分析,该控制文件在扣扣保镖安装包中并没有提供,安装后也不会自动生成,只可能由360“云服务器”直接进行远程投递(或用户可以手动生成激活隐藏功能)。也就是说,用户对于这些隐藏功能均无法控制,而且不了解其激活和生效情况。
技术细节:
用户使用扣扣保镖(1.0.0.1004版本)时,它会把自己的主要功能模块QGuard.dll通过全局钩子方式注入腾讯QQ进程,并拦截QQ进程的系统调用ShellExecuteExW和CreateProcessInternalW等,时刻关注Config.ini文件(隐藏功能激活文件),一旦发现该文件存在,将根据文件内容进行相关隐藏功能的激活动作。
通过对现有的4个隐藏功能代码分析,我们可以推测Config.ini文件至少存在以下4种开关:
[Main]
DisableUpdate=1//自动屏蔽QQ升级,导致用户不知情的情况下QQ软件无法升级。
DisableBrowser=1//劫持QQ对浏览器的启动并替换为360”安全”浏览器。
Com=<过滤的进程文件名1>;<过滤的进程文件名2>;……
//自动屏蔽QQ启动指定镜像名例表的进程启动。
enable_repair=1//开启备份QQ的参数:是否开启弹框引导用户备份QQ软件
MaxNotifyCount=50//开启备份QQ的参数:最多弹框次数
FirstNotify=1//开启备份QQ的参数:QQ启动后弹框的时间(秒)
|
以下为扣扣保镖QGuard.dll进行WINDOWSAPI拦截及API拦截功能实现的相关代码
|
|
|
扣扣保镖在QQIM进程中拦截相关系统API后将实时监控QQIM启动进程动作(用户不能使用任何功能设置项进行隐藏功能关闭操作)
隐藏功能一:激活后自动屏蔽QQ软件升级
该隐藏功能影响域:
该隐藏功能激活后,QQ的安全组件、QQ本身等软件都不能正常更新升级(用户毫不知情,也不会得到任何错误提示),QQ软件将变成一个“死”软件。
|
|
以下为扣扣保镖QGuard.dll在拦截ShellExecuteExW及CreateProcessInternalW后进行的QQIM启动升级进程(屏蔽QQ升级)识别及屏蔽升级部分代码。
|
|
如果发现启动的是auclt.exe、SelfUpdate.exe和QQSafeud.exe并在Config.ini文件中DisableUpdate=1则将绕开真实系统调用,使QQ升级进程启动失效。这些操作将对用户没有任何提示!
隐藏功能二:激活后根据指定进程列表进行QQ启动程序的拦截
该隐藏功能影响域:
该隐藏功能激活后,将根据360投送的Config.ini里指定的进程名进行QQ启动程序过滤。这将让360可以非常方便进行可控的QQ启动程序拦截。
扣扣保镖还会尝试读取位于安装目录下360\360safe\360QGuard\下的Config.ini中Main主键下的Com字段(参照上文所述Config.ini结构)。由于Config.ini在默认安装情况下不存在,在此无法得知具体需要屏蔽的进程,但是通过分析代码可以得知此字段为一个由“;”分割的一个进程列表。扣扣保镖将拦截此列表中所有文件名相同的进程的启动。
以下为QQ启动程序屏蔽列表部分代码
|
|
以下为:扣扣保镖QGuard.dll屏蔽列表读取代码
|
|
除此之外还会在%AppData%的配置文件UserConfig.ini中读取component字段,其中每一项镜像名其后的0和1为进程屏蔽开关。
%AppData%\360QGuard\UserConfig.ini内容如下:
[component]
<要阻止的文件名及扩展名>=0|1
隐藏功能三:激活后对QQ软件的浏览器进行劫持(替换成360浏览器)
|
|
|
|
|
|
该隐藏功能影响域:
该功能激活后,QQ进程启动的浏览器进程(带参数浏览URL方式)将被替换成启动360SE来进行浏览(装着360浏览器的情况下)。由于该功能是拦截API实现,所以无论用户设置的默认浏览是什么,也不论腾讯QQ当前选用哪个浏览器都将被劫持成360SE(附:该隐藏功能不单可以劫持TTraveler.exe,QQBrowser.exe,还能根据升级的配置随时指定劫持的浏览器进程名。)
这样QQ软件用户聊天时带的所有URL链接的浏览量将都被360SE获取。
扣扣保镖QGuard.dll拦截程序,发现QQIM启动的程序为腾讯的浏览器(TTraveler.exe和QQBrowser.exe),且Config.ini文件内容中有DisableBrowser=1,则将QQIM启动的浏览器自动替换为360的浏览器。
除此之外,通过最后一行CallInitComponent读取位于%AppData%的配置文件UserConfig.ini中的component项是否有指定名称的镜像名,如果发现也将替换为360的浏览器。