逐渐演变成大规模传播的广告恶意软件:Wajam恶意软件分析
导语:针对Wajam恶意软件的研究表明,尽管将所有权已经转让给一家香港公司,但Wajam仍然非常活跃,并且具有多个名称,例如:SearchAwesome、Social2Search、SearchPage等。
背景
Wajam Internet Technology是一家初创公司,由Martin-Luc Archambault(魁北克的著名企业家)在2008年12月创立,总部位于加拿大的蒙特利尔。该公司的核心产品是一个社交搜索引擎应用程序,允许搜索社交网络上联系人共享的内容。下图展现了Wajam在执行Google搜索时的显示内容示例。
该软件自身是免费的,但软件会展示一些相关的广告,从而产生收益。该软件最初可以从Wajam的官方网站下载浏览器扩展程序,直到2014年(如下图所示)。目前,该软件主要使用按此付费(PPI)的分发模型进行分发。根据加拿大隐私专员办公室(OPC)的说法,Wajam在2011至2016年期间与50多个不同的PPI提供商合作。这种模型因使用虚假的Adobe Flash Player、反病毒软件和其他许多流行软件而受到多次批评,该软件在安装过程中欺骗用户,并在提供的安装程序中包含大量的恶意软件和广告软件。
软件历史及用户投诉
根据加拿大隐私专员办公室(OPC)在2017年的报告和新闻调查,作为一家企业存在的Wajam具有一些不同寻常的历史:
1. 该公司在2012至2014年期间,逐步移除了其软件连接到Facebook、LinkedIn和Google+帐户的功能,尽管该软件的主要功能取决于这些社交平台。
2. 截至2012年,许多用户开始投诉Web浏览器中出现大量广告的展示,并且卸载Wajam的难度非常高。根据D&B Hoovers声称,该公司在2013年的净利润约为420万美元。
用户关于Wajam的投诉(1):
用户关于Wajam的投诉(2):
用户关于Wajam的投诉(3):
3. 由于该软件使用了用户的个人信息,因此OPC正在调查该公司是否违反个人信息保护和电子文件法案(PIPEDA)。但与此同时,该公司被出售给一家总部位于香港的新成立公司,名称为Iron Mountain Technology Limited(IMTL)。
下图的时间表中总结了公司历史上的一些重大事件:
与公司历史相对应,下图展现了将反检测和反分析功能添加到软件中的时间节点:
针对不同版本Wajam的分析
多年来,已经发布了多种版本的Wajam。由于开发人员使用内部名称和版本编号来区分不同的变种和版本,因此我们可以对收集到的样本进行分类。下表总结了已经确定的版本。需要注意的是,下面体现的日期是基于在野外观察到的样本的时间,它们很可能在更早时间就已经发布。
(1)内部名称:Priam
主要版本号:1
类型:浏览器扩展
分发时间:2011年年底至2014年
(2)内部名称:Wajam Internet Enhancer或Wajam Network Enhancer
主要版本号:2
类型:Windows应用程序
分发时间:2013至2016年
(3)内部名称:Wajam Web Enhancer或Social2Search
主要版本号:1、9
类型:Windows应用程序
分发时间:2014年至2017年
(4)内部名称:Wajam Browser Enhancer或Social2Search或SearchAwesome
主要版本号:3、11、13
类型:Windows应用程序
分发时间:2016年至今
(5)内部名称:SearchPage
主要版本号:N/A
类型:macOS应用程序
分发时间:2017年至今
流量注入
每个版本的Wajam都会将相同的Payload注入到用户的网络流量之中,因此不同版本的差异在于用于进行拦截和注入的技术。但是,他们使用的技术越来越类似于恶意软件开发人员通常使用的技术。一旦Wajam被安装在计算机上,并且已经准备好截获Web流量,该软件会产生如下行为:
1. 从远程服务器下载支持的网站列表(如下图所示),该列表将域名映射到要注入的相应JavaScript文件的路径。此外,还有一些针对特定站点的设置。
2. 如果用户请求的URL与其中一个模式(撰写本文时,最新版本有103个)匹配,则会注入到相应的JavaScript文件中(如下图所示)。该脚本执行上下文广告的注入,如果该网页是搜索引擎,还将显示与用户输入的搜索关键字相对应的推文。
3. 最后,该软件尝试从Wajam远程服务器更新列表。
个人信息泄露
Wajam在安装期间或软件运行的过程中,逐步收集越来越多有关其用户的个人信息,其中包括:
1. 用于标识特定用户的一些ID(如上图所示);
2. 在安装过程中会向Wajam服务器发送大量日志,以确保正确完成(如下图所示);
3. 某些用户设置的特定信息(例如:安装的软件列表、主机型号)也会发送至Wajam服务器。
Wajam在安装过程中进行HTTP查询:
分发机制
除了浏览器扩展之外,所有版本均由按照安装次数付费的提供商作为NSIS安装程序分发。此外,PDB路径展示了开发人员在多年来是如何逐渐对他们的软件进行模糊。可以看出,后续的版本大多数都有更长的PDB路径,并且包含随机字符。
1.24版本(2012年)
C:\Users\guillaume\Desktop\branches\Wajam\guillaume-installer-ie11-fix\Clients\Extensions\IE_BHO\source\wajam\Release\priam_bho.pdb
2.12版本
d:\jenkins\workspace\wajam-proxy-2.12-special-build-for-avs\WJProxy\obj\x86\Release\WajamInternetEnhancer.pdb
1.71版本(2016年)
D:\jenkins\workspace\stable-1.71-updates\src\Release\wajam.pdb
2.40版本
D:\jenkins\workspace\stable-2.40-update\build-tools\brh\Release\brh.pdb
3.5版本
D:\jenkins\workspace\stable-ndi-3.5\service\Win32\Release\service.pdb
1.75版本(2017年)
JTBEFHYO.pdb
9.68版本
213.pdb
13.14版本(2018年)
K:\ga3ENOmcbYZO\5KSW\LXp8N\8PAW5Gq\jilgGJGN\wpoaCyFg\PC\ryX9i9P5jRrW\yaG9wzTA\vev\v8Co9rukntHI\FkVb9h7W\LCJhFhGGbCeC\m1swYV.pdb
13.14版本(2019年)
C:\D6IMFxtAM\IrsnBhaB8\LpY2EgA6h6GILy\xnyDw\tB\6hQ5AYqFBonqUM\f6rO3gJCEu6c\AFDkjWdw\iWFUHutqE\ywARjkk\tLo4m0i4r6psP3EHIIy.pdb
功能的演变
(1)Priam:浏览器扩展
从2011年到2013年底,Wajam作为浏览器扩展分发。在Web浏览器扩展中,清单文件(Manifest)描述了要注入的网页,以及如果用户访问了这些页面,JavaScript代码会如何注入到这些页面之中。如下图所示,所有网页都可以在这里匹配,因此可以在用户访问的每个网页中注入脚本。
Manifest.json文件中的部分配置:
较旧版本的浏览器扩展中包含屏幕捕获插件DLL的痕迹(如下图所示),借助于Netscape Plugin API(适用于Chrome和Firefox)或浏览器帮助程序对象(适用于Internet Explorer)。
Wajam浏览器扩展插件中的汇编代码片段:
在相同版本中,JavaScript代码用于将浏览器的书签发送到Wajam服务器。无论是截图还是书签,二者都可能包含有关用户的敏感个人信息,我们并不清楚Wajam对此类信息的处理方式如何。当前版本的扩展中,不存在任何此类功能。
由于该软件被各种安全产品检测为广告恶意软件(Adware),因此Wajam首先尝试通过与安全厂商进行沟通来取消检测。
尝试取消McAfee对Wajam浏览器扩展的检测:
另一次尝试取消对Wajam浏览器扩展的检测:
(2)WJProxy
在2014年,我们观察到Wajam策略的变化。他们的软件不再作为浏览器扩展提供,下载链接也已经从官方网站(wajam[.]com)中删除,使用Fiddler Web代理的Windows新版本由PPI提供商分发。
在新版本的功能中,最引人注目的3点是:
1. 软件使用SeDebugPrivilege以管理员访问权限启动主可执行文件;
2. 软件生成证书,并将其添加到根证书列表中,以拦截SSL/TLS流量,从而避免在将JavaScript代码注入网页时出现安全警告;
3. 设置了一个代理,拦截所有Web流量和已安装Web浏览器的首选项,并篡改Windows注册表,以使用这一代理。
(3)与战锤奇幻游戏相关的Wajam
在观察到WJProxy的同时,我们还在野外发现了另一个具有DLL注入功能的版本。该版本没有使用第三方代理,而是将DLL注入到Web浏览器之中,以便对非加密流量的函数进行挂钩和操纵。下图展现了该版本的功能架构。
有趣的是,这个版本中使用了一些混淆技术,例如字符串加密。
NtLoadDriver字符串的解密(Hex-Rays输出):
字符串解密例程(Hex-Rays输出):
此外,包含受支持网站列表的文件和要挂钩的函数地址(如下图所示)都是加密的,采用AES-256 CFB的加密算法。人们可能会注意到这些文件的名称分别是waaagh和snotling,可能是与战锤奇幻游戏相关。还有其他子字符串同样与该游戏有所关联,例如注入的DLL名称是wajam_goblin.dll,以及一些二进制文件中的其他字符串,这些线索都表明Wajam的作者对幻想游戏或小说感兴趣。
包含Web浏览器函数挂钩的文件:
关于DLL注入进程自身,可以根据赋予注入工具的参数,以不同的方式来实现。下表中总结了不同的选项:
--set-windows-hook(SetWindowsHookEx技术)
--inject(CreateRemoteThread技术)
--manual_mapping_inject(Blackbone内存黑客库)
在注入DLL之后,注入工具会检查目标进程是否为Web浏览器。如果是,就会使用MinHook和解密的snotlings文件来挂钩操作非加密Web流量的函数,例如Firefox所使用的PR_Write、PR_Read、Win32 API中的send、recv等。
由于上述技术通常会被恶意软件使用,所以Wajam采用了多种技术,保护其自身免受安全产品的检测:
1. 检查Windows注册表中的反病毒键值(如下图所示),并将找到的任何内容发送到Wajam服务器。
2. 根据我们所发现的样本,会对可执行文件的名称稍作修改,例如WajWEnhance.exe、WaWEn.exe、WebEnhancer.exe等。
3. 从2015年年底开始,包含一个minifilter驱动程序,这是一个磁盘上的软件文件,用于隐藏除白名单之外的所有进程(如下图所示)。
4. 定期使用从Wajam服务器下载的补丁修改自身代码,这些补丁采用了各种RC4或XOR加密方式。
最近,Chrome和Firefox在各自的网络浏览器中分别阻止了第三方代码注入,因此,如果受害者使用这些浏览器的任何一个现有版本,那么该版本的Wajam将不再有效。
(4)深入内核的Wajam
为了对抗新的安全机制,另一个新版本的Wajam在2016年年中发布,增加了相当多的新功能,包括使用NetFilter驱动程序拦截流量并将流量直接注入内核空间。
该版本以防止检测为目的,做出了许多地方的修改:
1. 使用复杂的代码和数据混淆(如下图所示),其中的一些技术看起来像是Stunnix C/C++混淆工具。
Windows API名称的解码(Hex-Rays输出):
字符串解码例程(Hex-Rays输出):
2. 向Windows Defender中添加例外项(在命令行中,使用-command Add-MpPreference –ExclusionPath命令);
3. 将注册表项DontReportInfectionInformation和DontOfferThroughWUAU设置为1,禁用感染报告和MSRT(Malicious Software Removal Tool,恶意软件删除工具)更新;
4. 可执行文件使用归属于Wajam的域名对证书进行签名,并且定期更改(如下图所示)。
在VirusTotal中找到的Wajam可执行文件的数字证书:
在VirusTotal中找到的另一个Wajam可执行文件的数字证书:
根据魁北克企业注册的信息(Quebec Enterprise Register),这些域名是Wajam的商标(如下图所示)。此外,一些域名(参见IoC中的更多示例)与蒙特利尔街道名称相关(例如::“Adrien Provencher”、“Bernard”、“Mont-Royal”等)。
魁北克企业注册信息中的一些Wajam域名:
(5)SearchPage:Apple风格的Wajam
从2017年开始,我们检测到名为SearchPage的广告恶意软件,这是针对macOS系统的新版本Wajam。经过对样本进行分析,发现它使用了最新Windows版本恶意软件中使用的一些域名。
Info.plist中的部分内容,展示了Wajam注册的域名:
该内容作为名为spiinstall.app的macOS应用程序包分发,在Keychain(macOS的根证书位置)中安装Safari插件和证书。该插件以类似于Windows版本恶意软件的方式注入流量。
在2018年中期发现的另一个版本使用了mitmproxy(用Python编写的Web代理)来拦截网络流量,而不再是Safari扩展。下图展现了如何使用代理,以及脚本中以硬编码形式存在的由Wajam注册的URL。
使用mitmproxy注入JavaScript:
由于恶意软件已经被MalwareBytes记录,因此可以在他们的分析中找到更多详细信息。
总结
针对本恶意软件的研究表明,尽管将所有权已经转让给一家香港公司,但Wajam仍然非常活跃,并且具有多个名称,例如:SearchAwesome、Social2Search、SearchPage等。我们认为,这可以用来追踪恶意软件的发展轨迹,并在PPI分发的帮助之下扩大恶意软件的影响。
我们的分析表明,随着新版本的陆续发布,Wajam用于注入流量的技术变得越来越高级和持久。他们从一个简单的浏览器扩展(2011年)开始,切换到代理方式(2013年年底),然后直接将代码注入到Web浏览器并挂钩网络通信功能(2014年),随后使用驱动程序直接拦截内核中的流量空间。上述变化历程,主要是为了对抗多年来浏览器或操作系统内置的安全保护。
使用这些技术,意味着可能会被安全产品检测到,而Wajam也确实发生了这种情况。该公司曾经尝试过与安全厂商直接沟通,要求取消检测(2012-2013年),但随后很快就改变了他们的策略(2014年),在他们的软件中使用混淆、代码保护和反检测技术,以隐藏真实行为。
Wajam的案例提醒我们,“广告恶意软件”和“可能不需要的应用程序”之间还存在模糊的界限。实际上,即使使用了一些技术来隐藏他们对用户和安全产品的行为,“显示广告”还是比“对用户有害”要更烦人一些。然而,需要注意的是,某些软件所使用的持久性级别。
IoC
哈希值:
· 6a393ecb2861a27240d322dd407f6adb7218b0a5(Win32/Adware.Wajam.A)
· 4793f3bdab6df0ac6481b3780a10bec0ac10dce1(Win32/Adware.Wajam.BH)
· 7a45f4c7a7eeaa6ef97c036a7bfc992d405cd270(Win32/Adware.Wajam.G)
· 89d03d810345f491e7999af04873932ce77f7cd1(MSIL/Wajam.F)
· f0c78bece6e447333bcb21972dc440aee723f12d(Win32/Adware.Wajam.AC)
· b6733a21f5fbf34286374ed5cd02e86b6c369db1(Win32/Adware.Wajam.BH)
· 3d29d74b68d749d45596eb04063c4640a523c0ba(Win32/Adware.Wajam.BH)
· f216d986f3fdc838aaca05fafb8e5b728e36513b(Win32/Adware.Wajam.AN)
· 34ce5529ad0f9d0101f2ca635876082830b48b83(Win32/Adware.Wajam.AL)
· f5f71c6f6924fa94eb1f5a8c4a4b1775d64e9e87(Win32/NetFilter.A)
· 336efd61ab265977144ca308e635cfbee29b86a8(Win32/NetFilter.N)
· a61a9262bc13c023750af89a483cb571663c8a0e(Win32/Adware.Zdengo.CA)
· 83e05c610d0fe6488183b7db812c69962180aabb(Win32/Adware.Zdengo.CPZ)
· ae97c477f803121185f3c9f44c22934941df7e94(Win64/Riskware.NetFilter.AA)
· 6da090ad4a324e12b03a492b62cb47d274b3cd6e(Win32/Adware.Zdengo.DED)
· 35530aa44220ae7e96de05fd90dd1e64bb6cd199(Win32/Adware.Zdengo.COT)
· 6b626695d5d1c64376af81cef441e17cdc92f006(Win32/Adware.Zdengo.CXG)
· 6725a7c721bea20494e2e6036b11bb6d0531f829(Win32/Adware.Zdengo.CRR)
· fb26f538384cd50988a2a5f27b6443f16a92cee1(Win32/RiskWare.NetFilter.AY)
· ecd1e57c1fdc32052f0be1241691e91f869ef026(OSX/Adware.SearchPage.B)
· ff6c756fc3cfa06c53fe9458d7608c7c350c83bb(OSX/Adware.SearchPage.B)
· fea551bcfbdbaba20b0b6556649029928888faf2(OSX/Adware.SearchPage.A)
恶意IP地址:
· 217.182.14.0/24
· 131.153.5.192/29
· 198.24.161.72/29
恶意域名:
· adrienprovenchertechnology[.]com
· armandlamoureuxtechnology[.]com
· bernardtechnology[.]com
· carmenbienvenuetechnology[.]com
· cartiertechnology[.]com
· chabaneltechnology[.]com
· chaumonttechnology[.]com
· colonialetechnology[.]com
· cormacktechnology[.]com
· customsearches[.]net
· despinstechnology[.]com
· hutchisontechnology[.]com
· imt-dashboard[.]tech
· jeanlesagetechnology[.]com
· kingwintechnology[.]com
· laubeyrietechnology[.]com
· lauriertechnology[.]com
· mansactechnology[.]com
· mounactechnology[.]com
· notification-results[.]com
· notifications-page[.]com
· notifications-service[.]info
· notifications-service[.]io
· papineautechnology[.]com
· premiumsearchhub[.]com
· premiumsearchresults[.]com
· premiumsearchtech[.]com
· preverttechnology[.]com
· search-awesome[.]net
· search-ology[.]com
· search-technology[.]net
· searchawesome-apps[.]com
· searchawesome[.]net
· searchawesome2[.]com
· searchawesome3[.]com
· searchesandfind[.]com
· searchfeedtech[.]com
· searchforall[.]net
· searchforfree[.]net
· searchnewsroom[.]com
· searchnotifications[.]com
· searchpage-results[.]com
· searchpage-results[.]net
· searchpage[.]com
· searchpageresults[.]com
· searchsymphony[.]com
· searchtech[.]net
· securesearch[.]xyz
· seekoutresultz[.]com
· sirwilfridlauriertechnology[.]com
· social2search[.]com
· tazotechnology[.]com
· technologieadrienprovencher[.]com
· technologieairflow[.]com
· technologiearmandlamoureux[.]com
· technologiebeaumont[.]com
· technologiebernard[.]com
· technologiecarmenbienvenue[.]com
· technologiecartier[.]com
· technologiechabanel[.]com
· technologiechaumont[.]com
· technologiecoloniale[.]com
· technologiecormack[.]com
· technologiedollard[.]com
· technologieduluth[.]com
· technologiehutchison[.]com
· technologiejeanlesage[.]com
· technologiekingwin[.]com
· technologielaubeyrie[.]com
· technologielaurier[.]com
· technologiemansac[.]com
· technologiemontroyal[.]com
· technologiemounac[.]com
· technologieoutremont[.]com
· technologieprevert[.]com
· technologierachel[.]com
· technologieruso[.]com
· technologiesaintdenis[.]com
· technologiesaintdominique[.]com
· technologiesaintjoseph[.]com
· technologiesaintlaurent[.]com
· technologiesainturbain[.]com
· technologiesearchawesome[.]com
· technologiesirwilfridlaurier[.]com
· technologiestdenis[.]com
· technologiestlaurent[.]com
· technologiestuart[.]com
· technologietazo[.]com
· technologietravassac[.]com
· technologietrudeau[.]com
· technologievanhorne[.]com
· technologiewiseman[.]com
· technologieyvonlheureux[.]com
· travassactechnology[.]com
· trudeautechnology[.]com
· wajam-download[.]com
· yvonlheureuxtechnology[.]com
MITRE ATT&CK技术
1. 战术:持久性
挂钩(T1179):使用MinHook挂钩Web浏览器函数,并拦截Web流量。
2. 战术:权限提升
访问令牌操作(T1134):获取用户令牌,在用户上下文中使用API调用CreateProcessAsUserA执行其自身。
3. 战术:逃避检测
Rootkit(T1014):使用minifilter和NetFilter驱动程序,隐藏其文件,并拦截Web流量。
代码签名(T1116):一些恶意软件样本使用不同的数字证书进行签名。
禁用安全工具(T1089):在Windows Defender中添加例外项,并禁用MRT更新。
安装根证书(T1130):安装根证书,以实现中间人操作。
混淆文件或信息(T1027):大多数字符串使用基于XOR的算法加密,一些Payload使用AES-256或RC4加密。
进程注入(T1055):在Web浏览器(CreateRemoteThread、SetWindowsHookEx或BlackBone库)中注入DLL以拦截Web流量。
4. 战术:侦查
侦查安全软件(T1063):尝试检测多个反病毒产品。
发表评论