一个弹出窗口引发一场追踪
“看一下淘宝”,我让妻子点开了旺旺,最近除了隔段时间到淘宝整理一下仓库宝贝,平时我已经很少打开旺旺了。
旺旺的界面仍然显示“正在登录”,屏幕却闪动了一下,出现了一个新的浏览器窗口,内容……好像是一个汽车交易类网站“网上车市”,我想也许是旺旺做的广告吧,对于它我并不怎么在意。家里的书房,在7月的夏天温度并不低,于是再热爱电脑的我也不太情愿一直呆在那里,倒是妻子坚持上网看一些港台的电视剧。
“真烦人,又是这个广告,我说咱家机子是不是中毒了?”妻子随口说到,显然她指的是那个车市网站(图1)。
图1
“为什么要说又呢?”妻子的话引起了我的注意,从妻子随后描述的现象,我大致可以判断这个“网上车市”的广告窗口经常伴随阿里旺旺出现,通常它同一天只出现1、2次,似乎很有规律。阿里旺旺会做这样的广告吗?我保持怀疑;我的系统中病毒了吗?作为妻子眼里的电脑高手,我总得给出一个合理的解释吧,而我也很想知道事实的真相……
于是,一场围绕异常弹出窗口的追踪就此展开……
意外发现一号嫌疑人
一号嫌疑人:网络运营商
线索:支付宝客服的答复
凭经验,一般这种弹出窗口,要么是恶意病毒引起的,要么是网站或软件自身弹出的广告。该从哪里着手呢?看看时间也不早了,我决定还是先收集一些有价值的信息吧,为第二天的详细排查做一些准备工作。
我又打开淘宝网站,在旺旺相关的网站及客服论坛中浏览。从论坛中发现,遭遇这个弹出广告的并非我一个人,而且很多用户的说法都不相同,直觉告诉我这种现象也许并不是像我之前想象的那么简单。
正当我满论坛第搜集信息的时候,一个帖子让我眼前一亮。一位网友发帖问“为什么登录支付宝会出现一个网上车市的广告……”,一个自称支付宝客服的用户回复“这不是由支付宝弹出的,是当地网络运营商的弹出广告”。
一号嫌疑人矢口否认
一号嫌疑人排查手段:电话
没想到自己仅仅是想收集一些信息,却发现了嫌疑人的线索,这也太容易了吧,太让人没有成就感了,不过今晚的工作也算是没有白做,可以安心睡觉了,明天早上打电话确认一下就可以了。
第二天我早早起床,一到上班时间就拨通了河南焦作市网通客服10060,以下是当时的对话。
我:“你好,我上阿里旺旺时总是会弹出一个网上车市的网站。”
客服:“你好,请检查你的系统是否感染病毒,请升级你的杀毒软件病毒库进行系统检测。”
我:“检查了,确认没病毒。你们网通是不是插入广告了?”
客服:“我们决不会修改用户上网资料插入广告。”
看来线索越是容易得到,越是不可靠,暂时可以排除一号嫌疑人了。
将目光投向二号嫌疑人
二号嫌疑人:恶意病毒
线索:病毒会在中毒系统中弹出广告窗口以提升网站流量
淘宝说不是自己的问题,网络运营商又在第一时间否认了这个行为,那会不会是出现了以推广这个网站为目的的恶意病毒呢?恶意病毒被我列为了二号嫌疑人。
一般来说,以恶意推广网站为目的的病毒,会在中毒系统中频繁地弹出广告窗口,以达到提升网站流量的目的,而这个旺旺弹出的窗口却有类似的计数器特征,它保持在每天1、2次的频率,给人的感觉是不想引起用户的反感,看起来似乎又不像是病毒或者木马的行为。不过我还是动用了各种工具来查找系统中的恶意程序,检查IE的加载项,而检查的结果是:我的系统很正常。
二号嫌疑人彻底洗清嫌疑
二号嫌疑人排查手段:搭建干净环境
尽管能初步排除恶意病毒的嫌疑,但为了慎重起见,我还想做进一步的排除。
为了进一步证实我的判断,我建立了三个纯净的系统环境。
A环境:安装原版XP SP2专业版,通过官方自动更新到当日,防毒软件选择McAFee企业版,并设置了严格的规则。
B环境:安装正版授权的WindowsServer2008 RC0简体企业版,启用高级安全防火墙规则,防毒选择NOD32简体版,并更新至最新病毒库。
C环境:安装Ubuntu7.10版,默认使用Firefox浏览器。
几天测试下来,结果A、B、C都出现了异常的网络广告窗口,确认排除二号嫌疑人。
会不会是三号嫌疑人?
三号嫌疑人:网站或软件自身
线索:打开网站或软件时才弹出窗口
一号嫌疑人和二号嫌疑人已经被排除,看来不得不将目光转向三号嫌疑人了。
几天详细观察下来,通过监视运行时的进程及IE和各软件运行时的状态,我对这种异常弹出窗口有了新的认识。从搜集的资料和我自己的遭遇来看,这种异常弹出窗口不止使用旺旺时才有,登录QQ出现过,访问新浪 、搜狐和网易过程中都出现过,打开迅雷弹出过,登录Live Messenger也出现过。甚至上微软的Windows更新站点时,同样出现过……
一个网站即使要宣传自己,在这么多软件和大网站上打这种广告似乎有点不合常理。同时,当前的网络广告中,大部分是与投放的网站有紧密联系。网站方通过在网页框架设计预留广告位并设置好超链接,方能正常显示所投放的广告。换句话说,网络广告的出现方式及位置是可控制的。比如现在新浪的背投广告就是显示在主窗口的后面,百度TV是显示在窗口右下角。并且属于网站自身广告的窗口都有明确的超级链接,与主网站在同一域名体系下。而我所遭遇到的异常弹出窗口都不具备这个特征。
最后的追踪
三号嫌疑人排查手段:网络监控
从上边的分析来看,网站或软件似乎也不应该是真正的罪犯。但目前只剩下这一个嫌疑人了,看来必须动用更多的手段来排查了。
使用微软发布的网络监控程序Network Monitor 3.1,同时使用Camtasia Studio4做全屏幕录像。以126邮箱为例,最近每天第一次访问邮箱时总是会附带跳出一个名为“QQ空间互踩联盟”网站,尽管现在弹出该网站看上去只是为了宣传网站,但第一次遇到这个弹出窗口时NOD32的警告信息却让我记忆犹新,我必须要提高警惕(图2)。
图2
一次典型的监控是这样的:首先我必须确保系统后台无多余程序,其实,通过排查嫌疑人二号所建立的系统环境,就已经满足了这个条件。MS Network Monitor 3.1实现了网络协议级别的数据流监控(通常称为“嗅探”),网卡收/发的任何一个网络数据包都会被它记录,并可保存成专有“.cap”格式文件便于后期分析。
启动Camtasia Recorder程序开始全屏幕录像。打开Monitor,首先选择网卡后,新建一个嗅探标签,点击按钮“Start Capture”或默认按F10可启动嗅探(图3)。选择无加载项打开IE的空白页,至此嗅探器中只会显示出极少的系统自己产生的网络校验数据包。当在IE地址栏键入“www.126.com”并回车,我们能够观察到嗅探器窗口中飞速地刷新数据,左下角不断更新的抓包数量递增得很快。登录126后 进行了简单操作,待出现“QQ空间互踩联盟”的弹窗后,停止嗅探,先保存一下文件,计数器显示嗅探到1511个包。所有数据包默认以捕获时序排列并且已经编号。
图3
如何分析这上千个数据包?逐一查看比较费时。利用Monitor提供的过滤器,我们按以下思路来分析。从域名链接来看,“联盟”与126不在同一域名下,那么在IE要访问它时必定会先向DNS查询域名记录,于是在过滤器窗口内键入“DNS”然后点击Accepted按钮,嗅探窗口随即刷新只显示出DNS协议有关数据包,很快就找到了属于“联盟”的查询记录,序号324。
现在我们更新过滤器关键字为“DNS or HTTP and !HTTP.payload”,意思是只显示DNS协议与HTTP协议相关的,并且不显示HTTP的分解下载数据。点击按钮“Go to frame”,填入324后再点Find。窗口就直接显示出了324包的位置和内容(图4)。
图4
从324往上找,很快找到了312号数据包“Http: Response, HTTP/1.1, Status Code = 200”,我称其为“幽灵包”。从它的内容可以看出,这是一段标准HTML语言组成的完整页面,要求浏览器以800×600的新窗口大小弹出指定网址,并且本段页面内容不录入浏览器缓存,弹出新窗口后立刻删除。这就是本文开头提到的“闪动了一下”……
从目前的获得的信息来看,312中的代码目的只有一个,让正在访问126邮箱的用户打开不在网易服务器上的新网址;312号包似乎是伪装的,没有包含来自126服务器的正常数据;没有投放统计功能的广告推广,按理说知名网站绝不会干这种打水漂的业务。种种不合理的地方显示,三号嫌疑人的嫌疑越来越小。