https://www2.fireeye.com/rs/848-DID-242/images/rpt-witchcoven.pdf
0x00 介绍
这起活动的策划者积累了大量关于web流量和网站的访客信息,涉及了100多家网站-攻击者会有选择地渗透这些网站,从而接触到他们的受众目标。
在过去的一年中,我们发现可能有政府赞助的攻击者在参与大规模的网络侦察活动。他们在活动中利用了web分析技术来收集、分析和报告从受害网站上的数据,从而被动地收集关于网站访客的信息。这起活动的策划者积累了大量关于web流量和网站的访客信息,涉及了100多家网站-攻击者会有选择地渗透这些网站,从而接触到他们的受众目标。
攻击者、市场商人和经销商每天也会使用web分析技术来获取信息,以便有效地接触到他们的客户和目标受众。在本文中,我们研究了web分析技术造成的负面影响,通过演示攻击者是如何利用相同的工具和方法,通过定向的投放内容和广告,来精确地识别和攻击受害者。
每天,我们都会浏览网页,访问喜欢的网站
我们承认,有些组织会定期地跟踪我们的在线活动。有的公司会监控我们的点击,从而了解什么样的链接会吸引我们的注意,以及我们在某个网页上停留了多长时间。厂商会跟踪我们的位置信息,从而更好地理解我们作为消费者的需求。当我们点击某个网站上的赞助链接,进入另一个网站时,广告商就能从中获利。购物网站会利用cookie,这样我们在购物网站上浏览过的商品也会出现在其他我们经常访问网站的广告上。一些公司还知道我们使用的是什么计算机系统。后台运行的脚本能够识别浏览器类型,操作系统或移动设备,这样网页才能正常显示。但是,我们很少知道,攻击者也会利用同样的工具来识别和攻击他们的目标。
关键发现
攻击者利用web分析工具和开源工具收集关于目标受害者的信息,以及目标使用的计算机,从而利用特定的木马进行感染。
攻击者会修改特定的网站,将网站访客重定向到一个分析脚本- WITCHCOVEN。这个脚本会收集详细的计算机信息,并安装一个长期跟踪工具- “supercookie”,这个工具会成为“浏览器指纹”的一部分,能够用于识别用户也的计算机。
我们认为,攻击者会通过分析收集到的数据来识别特定的用户,并确定相应的计算机信息,然后部署专门针对这台计算机上存在的软件和计算机配置漏洞。
根据,攻击者收集的数据范围,攻击者的行动约束以及我们的目标评估,我们推测这起行动很可能是与政府有关联的攻击者策划的。
0x01 行动
今年年初,我们发现有攻击者在利用免费工具和自定义脚本来偷偷地监控网络用户的在线活动。我们认为这些攻击者正在寻找潜在的受害者,了解用户计算机上都有哪些漏洞。商业公司也会使用同样的技术来跟踪自己的客户,确保他们的网站能在不同类型的浏览器上正常运行,但是,攻击者利用这些技术也能更方便的识别受害者,并制定相应的感染方法。
这些攻击者首先会渗透大量的的合法网站。这些网站并不是随机挑选的,而是有针对性的选择,这种方式叫做战略性web渗透。然后,攻击者会修改网站主页(和几个子页面)上的底层HTML代码。在修改了代码后,网站就会悄悄地把访客重定向到另一个网站上,这个网站同样已经被攻击者控制,并挂载了一个分析脚本-WITCHCOVEN。WITCHCOVEN会在后台偷偷地执行,捕捉访客的计算机和浏览器配置(图1),并在用户的计算机上放置一个长期跟踪工具(“suppercookie”)。我们总共发现了100多个网站会重定向用户到十几个WITCHCOVEN服务器上。
当用户访问这些网站时,一段内嵌在网站HTML中的代码就会悄悄地把网站访客重定向到另一个攻击者入侵的网站上。在这个网站上会挂载着WITCHCOVEN脚本,这个脚本会使用分析脚本收集用户计算机上的技术信息。截至2014年11月初,我们总共发现了14个网站上挂载着WITCHCOVEN分析脚本。
我们认为这些攻击者正在寻找潜在的受害者,了解用户计算机上都有哪些漏洞。
这个脚本会向攻击者提供用户计算机上的应用信息。WITCHCOVEN使用了大量的开源web工具来获取这些信息,包括软件版本。这些web工具都是免费的,并且网站设计师也经常使用这些或相似的工具来改善用户体验。比如,网站可能会定期收集用户的浏览器类型和版本,从而能在用户的浏览器上正常显示。
下面是WITCHCOVEN代码中内嵌的一些web工具,以及这些工具收集的数据:
- “detect Office”模块来自一个浏览器攻击利用框架(BEF),这是一个开源的渗透测试工具,能够通过测试浏览器对不同ActiveX对象的响应,判断计算机上的MS Ofiice版本。
- PluginDetect是一个基于JavaScript的web工具,能够检测不同web浏览器插件的类型和版本,比如Java,Flash,Reader和Shockwave。
WITCHCOVEN– 分析用户计算机并跟踪用户
图1-战略性web渗透,重定向到WITCHCOVEN分析脚本
除了收集关于安装应用、浏览器插件的数据和版本信息,WITCHCOVEN脚本还使用了另外一个开源工具-“evercookie”。“evercookie”设计用于在用户的计算机上创建“相当长久的cookies”,通过:
- 在计算机的多个位置上创建cookies
- 只要计算机上还留有任何一个cookie,就会重建已经删除的coolie
- 尝试安装到计算机上的所有浏览器
因此,evercookies也叫做“supercookies”(因为使用了多种储存机制)或“zombie cookies”(因为在删除后可以重建)。
简而言之,evercookie能够长期识别和跟踪某个网站访客,并且对于大多数用户而言,是无法清除这个工具的。evercookie和WITCHCOVEN脚本收集到的数据会使用HTTP POST请求发回到被攻破的web服务器。
0x02 COOKIES,第三方COOKIES和SUPERCOOKIES
网站经常会使用HTTP cookies来跟踪访客的操作。比如,新闻网站可能会跟踪用户的地区偏好,电商网站可能会跟踪用户购物车中商品。一般网站都会使用常规的HTTP cookies来改善用户的浏览体验。
第三方HTTP cookie可以由第三方提供商进行设置和读取(比如广告公司和数据分析服务提供商),这些提供商还会在其他网站上放置内容。因为这些第三方提供商托管的内容包括多个网站,所以,他们的cookie也能够跟踪这些网站上的用户,在体育网站和购物网站上托管内容的提供商就能够根据第三方cookie中的数据,判断这名用户是不是在同时访问这两种网站。经过一段时间,通过注意用户访问的网站类型,即使不知道用户的身份,但是这些公司仍然可以确定用户档案(年龄,收入,位置,兴趣)。虽然这些cookie并不是恶意的,但是,有些用户认为是对隐私的侵犯。
无论常规cookie还是第三方cookie都是储存在用户的web浏览器中;当今的浏览器可以通过配置,定期删除cookie或拦截某种类型的cookie。“supercookie”指的是用其他方法存储的cookie,比如Flash cookies。在大多数情况下,这些cookie无法通过清除浏览器缓存来删除、supercookie有特殊的标识符,因此,可以作为长期跟踪和识别某个用户的方法,即使用户尝试拦截或删除cookie也无济于事。
0x03 这种手段是恶意的吗?
虽然,WITCHCOVEN的分析活动可以视为有入侵性的,但是,目前为止我们还没有发现确切的恶意活动。没有投放漏洞代码,没有攻击任何网站访客。如我们所说的,这些分析和跟踪技术也可以用于合法用途,以便优化用户体验,支持营销、人口统计和销售分析。那么为什么这些活动会引起我们的注意呢?
首先,虽然很多网站都会分析和跟踪用户,但是这些活动都是通过第三方cookie、商业广告和分析工具实现的。在这个例子中,攻击者虽然使用了公开的工具,但是这些工具的目的很唯一。evercookie的使用说明这些攻击者想要长期地识别和跟踪用户,并且不受隐私浏览器的影响,也无法删除这些cookie。这就不能算是“正常的”web分析了。
第二,这些把访客重定向到WITCHCOVEN脚本的合法网站本身就遭到了入侵。正常的营销活动和web流量分析活动可不会这样做;有人蓄意地在100多个合法网站上设置了重定向代码,从而分析这些网站的访客。
最后,虽然重定向代码传播的范围很广,但是这些受害网站并不是随机选择的,而是有模式选择的。因而,我们认为这些活动也不是随机性的,而是,出于特定的目的,针对特定的用户。
通过这些发现,我们不禁要问:为什么有人要通过这种方式来收集这些特定的数据呢?这起活动的目的是什么?
我们认为,攻击者会利用WITCHCOVEN脚本和evercookie收集的数据,结合从HTTP日志中收集到的基本浏览器数据,来识别感兴趣的用户,从而根据用户计算机系统上的漏洞,利用专门的漏洞进行攻击。
0x04 拼图
为什么这些无害的信息收集活动会是针对性攻击呢?根据WITCHCOVEN收集的数据。
除了WITCHCOVEN本身收集的数据,这些攻击者还能接触到其他关于用户浏览器的数据,有一部分是通过挂载WITCHCOVEN脚本的服务器上正常的HTTP日志中获取的。这些数据中至少会包含下面的信息:
- 用户的IP
- 浏览器类型和版本(通过User-Agent标头判断)
- 浏览器语言设置(通过Accept-Language标头判断)
- 访客是如何到达网站的(通过Referer标头判断)
虽然,我们不知道攻击者是否会使用这些日志数据,但是,他们至少已经取得了这些数据。通过总结攻击者获取到的数据(表1),我们就能知道他们是如何构建受害者档案。攻击者会利用这些数据来识别和分析用户,以便在将来进行恶意活动。
表1-攻击者掌握的数据与可能用途
|数据|来源|可能用途| |MS Office版本|WITCHCOVEN脚本|识别旧版,未修复或存在漏洞的应用| |浏览器插件版本(Java,Flash等)|WITCHCOVEN脚本|识别旧版,未修复或存在漏洞的应用| |evercookie特殊标识符|evercookie(WITCHCOVEN脚本)|识别特定“用户”(即使身份未知)| |evercookie数据|evercookie(WITCHCOVEN脚本)|首次访问被攻破网站的时间;通过时间戳联系到HTTP日志,从而识别访客的IP地址| |引用网站|WITCHCOVEN脚本和HTTP日志|帮助进一步识别或精炼用户档案| |IP地址|HTTP日志|潜在受害者的源网络;可能识别感兴趣的企业和组织| |浏览器类型/版本|HTTP日志|识别旧版,未修复或存在漏洞的应用;识别存在其他漏洞的浏览器(比如Flash漏洞)| |用户语言|HTTP日志|帮助进一步识别或精炼用户档案|
0x05 理清头绪
虽然,上面的信息足够说明某个用户的习惯,但是这仅仅代表了一个网站的一个随机用户。攻击者入侵了100多个网站,每个网站每天会接收上千名访客。我们猜测,如果攻击者想要利用这些数据来针对特定的受害者,他们需要通过一些手段来分析WITCHCOVEN脚本收集到的这些数据(和web服务器的日志文件),从而识别接下来的具体目标。
我们并不清楚攻击者是如何使用或处理这些数据。但是,考虑到他们在这一年中收集到的数据数量,他们很可能需要用到大规模的数据管理和分析系统。至少,会涉及到目标数据库,也可能会web分析收集到的数据,从而帮助识别感兴趣到的目标。为此,他们可能使用像客户关系管理(CRM)数据库这样的web分析工具。CRM能够允许企业追踪销售额,客户反馈和在线营销活动。攻击者可以根据特定的标准,挖掘收集到的数据,搜索潜在的受害者。提炼过程可能如下:
- 判断目标类型的受害者是否在访问被攻破的网站
- 判断目标受害者在访问的其他网站(从而找到新的收集点)
- 识别特定的受害者
图2-目标提炼示例
0x06 利用这些数据来投放木马
一旦根据信息确定了特定的目标,我们认为攻击者就会设计和部署定制木马来增加入侵的成功率。目前,我们还没有发现任何漏洞攻击活动,但是这可能是由于攻击者攻击范围很小,致使我们在某个受害者那里发现漏洞和木马有效载荷的概率很低。
虽然没有确凿的活动,但是,攻击者收集的信息可以用来根据WITCHCOVEN找到的漏洞信息,部署自定义木马,投放到受害者的计算机上。比如:
- 攻击者可能注意到用户在运行过期的Aobe Flash,在这个Flash版本中存在某个漏洞。能够针对已知漏洞的能力意味着攻击者不需要冒着暴露0-day漏洞的风险。
- 通过过期软件,攻击者还能了解潜在受害者的安全意识,从而有针对性的制定后续活动,或使用特定的木马。攻击者可能会利用标准的后门攻击防范意识不强的受害者,而使用高级后门攻击警觉性较高的用户。
- 如果用户运行的都是打好补丁的软件,现有的漏洞就无法发挥作用,这样攻击者就需要开发、购买或部署0-day漏洞。这样,攻击者只有在攻击少量高价值目标时,才会用到0-day漏洞。
利用受害者档案制定针对性活动
在本文中,我们讨论了攻击者使用了一种小范围方法来选择受害者。其他的一些网络威胁小组也会利用脚本或其他服务器端的代码来分析潜在的受害者,并在小范围内投放定制漏洞。比如,网络犯罪分子会创建包含有定制漏洞代码的网站来感染特定的访客,可能是根据某个地区(根据IP地址),或每10个访客感染一次(为了避免恶意活动的暴露)。
有些技术能力比较强的政府小组也使用了类似的分析脚本来有效地投放漏洞和相关的有效载荷。
- 在Clandestine Wolf行动中,中国APT小组APT3在部署Flash 0-day之前,就首先使用了一个分析脚本 。
- 在Russian Doll行动中,可能是俄罗斯小组APT28在部署2个0-day漏洞前,首先收集了潜在受害者的系统信息。
在这些案例中,分析脚本只是向目标计算机投放漏洞。这种技术能增加行动成功率,降低被发现的概率,因为只有很少一部分受害者会接收到漏洞,并且能拖慢研究人员发现0-day漏洞的速度。
收集到的数据是如何使用的
图5-数据的可能使用方法
0x07 有效、高效且隐蔽
我们认为这次活动是政府小组策划的,他们的目标是收集全球数据,支持未来的网络行动。原因如下:
A | B |
---|---|
行动范围 | 这次行动通过入侵世界各地的网站来收集数据。这样规模的数据收集活动需要大量的资源来分析信息和识别目标。从这次活动的范围也可以看出,攻击者需要数据来满足情报需求,可能是某个大国政府。 |
行动约束 | 战略性web渗透很常见,但是这次行动的特殊之处在于缺少漏洞投放或木马投放活动。如果攻击者使用收集到的数据来确定受害者,这就说明这个小组想要限制工具的曝光度,并保证行动安全-这两点都表明,这是一起有特定情报需求的长期行动。 |
可能的目标 | 根据被攻击的网站,攻击者的目标可能是对政府情报感兴趣的个人。 |
前面我们已经提到,我们发现了100多个网站会重定向访客到WITCHCOVEN分析脚本。总的来看,这些网站并不是随机选择 ,虽然种类繁多,这些网站都有共同得到兴趣点。这些网站主要是吸引对下面这些领域感兴趣的用户:国际旅行,外交,能源生产政策,国际经济,以及在外国政府就职的个人-所有这些目标都与国家战略利益相关(参照图4被攻破网站的行业划分)。
被攻击网站的地理位置分布
0x08 可能的预期目标
美国和欧洲的政府官员和高层
我们认为,通过被攻击的网站就能看出,攻击者对行政官员,外交官,政府官员和军方人士很感兴趣,尤其是美国和欧洲。被攻击的网站包括Visa服务公司,美国大使馆,可能会吸引美国官员前往俄罗斯、中东和非洲。在欧洲被攻击的网站可能会吸引对欧洲政治、外交、研究机构和欧美商业感兴趣的用户。此外,通过被攻击的网站还能看出攻击者的目标涉及能源发现,生成和技术行业,尤其是天然气提取和其他能源相关的活动。根据其他被攻击的网站,攻击者感兴趣的目标可能包括:
- 美国、西班牙、维也纳、布鲁塞尔的外交官和商业人士,以及一些跨国机构的首脑
- 与能源策略、气候变化,尤其是能源研究和咨询组织相关的个人
- 拉美政府官员
- 欧洲经济学家
- 与乌克兰和格鲁吉亚共和国相关的个人和组织
关注东欧与俄罗斯组织
最后,其他网站表明,攻击者感兴趣的个人与下列相关:
- 俄罗斯的一家大型能源公司
- 俄罗斯文化组织和信息资源
- 俄罗斯大使馆的一个网站
- 乌克兰军队和边防
- 一家在格鲁吉亚共和国运营的媒体组织
相似报告
- https://securelist.com/analysis/publications/65545/the-epic-turla-operation/Accessed 28 Oct 2015
- http://www.symantec.com/content/en/us/enterprise/media/security_response/whitepapers/waterbug-attack-group.pdf
- http://flashcritic.com/state-report-reveal-130-websites-used-travel-related-watering-hole-attacks/
间接伤害:非预期受害者
通过被攻击的网站来看,攻击者只对特定类型的目标感兴趣。但是,我们的客户检测发现WITCHCOVEN的影响要更广泛。SWC经常会造成附带伤害,而这些攻击者也攻击了一些无意中访问相应网站的无关受害者。
在我们的客户中,几乎所有的行业都检测到了WITCHCOVEN。教育、政府、金融服务、能源和娱乐业是最受影响的。图5中列出了从2015年3月8日-10月31日,FireEye客户中收到WITCHCOVEN警告的各行业比例。
图5-2015年3月8日-10月31日,FireEye客户中收到WITCHCOVEN警告的各行业比例
0x09 应对办法
客户经常问我们有什么办法能对抗这起恶意网络活动。对于本文中介绍的这次活动,应对办法是一项挑战,因为攻击者是通过用户的web浏览活动来收集潜在的受害者信息。攻击者使用的脚本和方法也是合法网站在用于分析客户和改善浏览体验的方法。
虽然,这种分析活动感觉很有侵入性,但是受害者的计算机实际上并没有被渗透。个人和组织可以拦截脚本执行,或使用第三方cookie,从而加强网页浏览的隐私性,或使用匿名化服务(比如TOR浏览器)来隐藏自己的身份。但是,这些方法实施起来都很麻烦,并且在拦截恶意活动的同时,也阻止了合法网站的内容加载。
对于组织而言,可以专注于检测或阻止后续的攻击活动,包括禁用不必要的插件,保证给系统和应用打补丁,并监控主机和网络中是否存在可疑流量。
0x0A 附录:技术细节
WITCHCOVEN 分析脚本 (示例MD5: 634438A50AE1990C4F8636801C410460) 使用了JavaScript编写。这个脚本中包含有 jQuery JavaScript库,这个库经过混淆去除了变量名称。完整的脚本很长,但是主要是由一些相似的公开脚本组成的,包括 evercookie, PluginDetect 和 “detect Office” 模块。
脚本收集的信息都列在了表1中,这些信息会编码到一个URL请求中,请求的是挂载WITCHCOVEN脚本的网站。
表2-URL请求变量
变量名称 | 变量数据 |
---|---|
sid | Adobe Shockwave版本 |
fid | Adobe Flash 版本 |
aid | Adobe Reader 版本 |
mid | Microsoft Office 版本 |
jaid | Oracle Java 版本 |
rid | HTTP Referer |
cid | evercookie supercookie 首次设置的时间(epoch时间),或者如果没有设置,就是当前时间 |
cart_id | 55(静态值,根据WITCHCOVEN 实例变化) |