【新闻】临近6.18电商促销日,火绒在官方微博、微信等平台收到大量用户反馈,称电脑上不断出现托盘闪烁弹窗。点开后,是淘宝天猫的6.18促销网页。经溯源,火绒工程师发现弹出窗口均来自常用软件“搜狗输入法”,广告配置通过云控分发,但无法通过设置关闭。进一步分析发现,该软件除了疯狂弹窗外,还存在用户浏览器浏览历史数据统计等越位行为,符合广告节目的定义。目前,tinder已经拦截并查杀了该软件中的广告模块。
据分析,“搜狗输入法”通过云控向用户发布,并在6.18期间特意添加了弹出的相关组件,与“搜狗输入法”的主程序功能并无关联。安装运行“搜狗输入法”后,用户会频繁收到托盘闪烁弹出窗口。如果他们不小心点开了,整个关于天猫6.18的促销网页都会被打开。虽然右键可以暂时退出弹窗,但根据其云控下发的配置,5个小时后依然会再次弹出,而且会来来回回,严重影响用户的正常上网和工作。

此外,更严重的是,“搜狗输入法”还会收集用户本地安全软件和广告拦截工具的运行状态,甚至会收集用户IE浏览器和搜狗浏览器的历史记录数量和页面标题,并发回到后台服务器,想必是为了做用户画像进行精准推广。这种行为涉及隐私数据,严重越位。存在损害用户权益的风险。由于该软件下载量大,影响用户范围大,火绒在用户群、论坛、微博、微信、邮箱等平台收到大量相关反馈和私信求助。目前,最新版本的tinder已经拦截并查杀了“搜狗输入法”中的弹窗和收集用户信息的模块。需要注意的是,广告模块被tinder杀死后,“搜狗输入法”的“工具”功能无法使用,但不影响打字等主要功能。
弹出问题由来已久。继去年人民日报点名批评弹窗乱象后,今年两会期间,有CPPCC委员建议将弹窗过多的软件厂商列入失信名单。但随着流量经济越来越至上,一些软件厂商已经越过雷池,把弹窗做得流氓化、病毒化。对于此类软件和程序,tinder将继续及时拦截查杀,保护用户权益。同时也呼吁广大软件厂商坚持绳索,合理盈利,注重用户体验,才能实现长远发展。
附:【分析报告】1。详细分析。近日,搜狗大量输入法用户遭遇6.18托盘广告弹窗。这种流氓推广行为是通过云控分发的,在搜狗的输入法界面中没有发现相关的功能切换。广告弹出程序showinfo.exe由sgutil.dll发布并执行,sgutil.dll由sgtool.exe调用。相关代码,如下图所示:
Sgtool.exe加载并执行sgutil.dll。
sgutil.dll执行“StartPopupServer”导出功能后,会根据云端配置释放执行托盘广告模块showinfo.exe。相关代码,如下图所示:
根据配置决定是否释放showinfo模块,执行showinfo模块。
ShowInfo.exe模块主要负责弹出桌面托盘广告图标和更新广告配置。该模块运行后,首先由AES对存储在% appdata % local low so goupy popup tray net 目录下的配置资源config.ini进行解密,读取配置信息。相关信息如下图所示:
AES解密并读取配置信息
下图显示了解密后的config.ini配置信息:
解密的config.ini信息
showInfo.exe模块在解密读取配置信息无误后,会采集系统硬件签名、主机运行的安全软件等信息,连同搜狗输入法的版本信息一起发回。收集的安全软件信息如下图所示:
收集的安全软件信息
与收集安全软件运行信息相关的代码如下图所示:
收集安全软件信息
收集到的安全软件信息以标签位的形式发送到服务器,相关信息如下图所示:
收集主机信息内容。
在收集到所需的主机信息后,程序会用“加密”发送给服务器。与发送加密信息相关的代码如下图所示:
发送加密信息
传输的数据信息
服务器根据发送的信息返回加密数据。程序AES算法解密后,获得托盘广告所需的配置信息。解密数据的相关代码如下图所示:
AES解密返回的数据
解密后的配置数据如下图所示:
解密的配置数据
当获得托盘广告所需的配置信息时,程序会对其AES进行加密,并将其更新到% appdata % local low so goupy popup tray net 目录下的net.ini文件中。之后,它开始检查当前系统时间是否在net.ini的配置中指定的“sdate”到“edate”的时间范围内,并查询当前系统时间从上次关闭广告托盘的时间起是否超过5小时。如果满足以上两个条件,就会弹出托盘广告。相关代码如下图所示:

时间检测
与弹出广告托盘相关的现象如下图所示:
广告托盘sgutil模块
sgutil.dll加载执行后,会根据云端返回的配置决定是否弹出托盘广告。广告弹窗的功能切换只能通过云控页面控制。在搜狗输入法界面中没有找到相关的弹出窗口功能开关。在向云请求的配置信息中,“trayad”是弹出的交换机标志位,如下图所示:
云配置
当“trayad”标志位为1时,sgutil.dll将从资源中释放showinfo模块。相关代码,如下图所示:
从资源中释放showinfo模块
Sgutil.dll将每6小时获取最新的云交换机状态。相关代码,如下图所示:
请求云交换机配置
根据不同地区的多次测试,要求的交换机配置会有所不同。相关现象如下图所示:
不同领域的许多测试产生了不同的配置。
除了发布showInfo.exe,sgutil.dll还将收集Chrome内核浏览器和IE浏览器的历史信息。虽然历史中的URL、标题等数据也会被收集,但是还没有找到上传上述数据的相关代码逻辑,现阶段只会上传历史条目的数量。获取Chrome内核浏览器历史信息时,会根据预留的浏览器历史数据库路径找到数据库位置。如果保留路径是空,则什么都不做。除了IE浏览器,现阶段最新的sgutil.dll模块只会获取搜狗浏览器的历史信息。获取Chrome内核浏览器历史信息,相关代码如下图所示:
收集用户浏览器历史记录中的标题数量。
获取搜狗浏览器历史信息的相关代码,如下图所示:
获取搜狗浏览器的历史信息
获取其他浏览器历史信息相关代码,如下图所示:
获取其他Chomre内核浏览器历史信息
收集历史信息后,搜狗浏览器的历史条目数会被拼接成HTTP请求参数。相关代码,如下图所示:
将收集的浏览器历史信息拼接成HTTP请求参数
在IE浏览器中获取与历史条目数量和标题相关的代码,如下图所示:
收集IE浏览器历史信息
上面收集的浏览器历史条目和标题的数量将被拼接到返回数据的请求链接地址中。相关代码,如下图所示:
请求上传浏览器历史信息的参数

目前在最新的模块中发现了360安全浏览器等其他浏览器的相关逻辑,但是统计这些浏览器浏览历史的代码逻辑无法被激活,因此推测在这个模块的上一版本中插入了统计其他浏览器浏览历史的代码逻辑。通过分析发现,在2015年的sgutil.dll模块中,我们发现该模块会收集更多不同浏览器的历史信息,包括:360安全浏览器、搜狗浏览器、Chrome浏览器、360极速浏览器、猎豹浏览器、淘宝浏览器。相关代码和数据如下图所示:
早期sgutil.dll模块历史信息收集代码
sgutil.dll模块2015年的文件信息和数字签名信息如下图所示:
2015年sgutil.dll模块文件信息和数字签名信息
二、附录相关文件哈希


