sl-abstract-screens-big-data-resized-1200x600.jpg

每次你上网,都有人在追踪你。你使用的服务、访问的网站、手机上的应用程序、智能电视、游戏机和任何联网设备都可以借助安装在网页或软件中的追踪服务收集你的数据。这些网站和服务将这些数据发送给它们使用追踪服务的制造商和合作伙伴。

公司正在寻找关于你的各种信息:从设备规格到你使用服务的方式,再到你打开的页面。公司通过收集这样的数据分析用户体验,更好地了解客户并改进产其品;其次,预测用户需求,甚至可能操纵用户需求。此外,一个组织对你的了解越多,它就越能为你展示个性化的广告。这些广告比随机广告的费率更高,因此收费更高。

了解是谁在收集数据以及为什么要收集数据并且知道在哪里查找数据。大多数服务都发布了隐私政策,这些政策应该详细解释服务收集什么数据以及为什么收集。遗憾的是,这些政策很少足够透明。由于担心缺乏透明度,用户和隐私监管机构向科技公司施加了压力。

某些科技巨头最近开始在他们的生态系统中添加旨在提高数据收集透明度的工具。例如,当从app Store下载的应用程序首次运行时,苹果会询问用户是否愿意让该应用程序追踪他们的活动。然而,并不是每个服务都提供这种警告。即使你在苹果设备上访问网站,也不会看到这样的提示。

浏览器的隐私设置和特殊扩展可以识别和阻止来自网站的追踪请求,这可以保护你在网上冲浪时免受追踪。这就是“请勿追踪”(DNT)扩展的工作原理。此外,在用户同意的情况下,DNT会收集关于哪些追踪请求被屏蔽以及屏蔽频率的匿名数据。本文将关注那些收集、分析、存储用户数据并与合作伙伴共享数据的公司。

统计数据来源

该文使用了DNT在2021年8月至2022年8月期间收集的匿名统计数据,DNT通过阻止的web追踪程序加载数量进行统计。DNT(默认禁用)是卡巴斯基互联网安全、卡巴斯基总体安全和卡巴斯基安全云的一部分。

全球网络追踪巨头

全球网络追踪巨头基本上有6家,其中四个由谷歌拥有:谷歌分析、Google AdSense、谷歌营销平台和YouTube分析。剩下的两个由Meta和Criteo所有。

谷歌

卡巴斯基在2019年发布的上一份报告详细介绍了谷歌的追踪服务:DoubleClick、Google AdSense、Google Analytics和YouTube Analytics。就在那时,这家搜索巨头宣布计划重塑DoubleClick广告平台的品牌,并将其与自己的广告生态系统合并。如今,DoubleClick已成为谷歌营销平台的一部分,尽管追踪URL没有改变,并继续像以前一样工作。为方便起见,统计将该追踪服务称为“谷歌营销平台(原doubleclick)”。

1.png

2021年8月至2022年8月,各地区由谷歌营销平台追踪服务触发的DNT占比

谷歌营销平台在南亚(32.92%)和中东(32.84%)中占比最大。紧随其后的是其在非洲和拉丁美洲的占比:分别为25.37%和24.64%。在独联体地区追踪服务排名中,谷歌营销平仅占7.05%。

谷歌运营的另一项追踪服务Google Analytics收集网站访问者的数据,并向客户提供详细的统计数据。这项服务也占了全世界DNT检测的相当大的占比。

2.png

2021年8月至2022年8月,谷歌分析追踪系统在每个地区触发的DNT占比

看看谷歌分析在各个地区的占比,就会发现类似于谷歌营销平台的模式。谷歌分析在南亚(18.04%)、拉丁美洲(17.97%)、非洲(16.56%)和中东(16.44%)的占比最大。其在独联体的占比最小,仅为9.06%。

3.png

2021年8月至2022年8月,Google AdSense追踪服务在每个地区触发的DNT占比

谷歌运营的另一个追踪系统是Google AdSense上下文广告服务(Google AdSense context ad service)。这一比例在中东(5.27%)、非洲(4.63%)、拉丁美洲(4.44%)和南亚(4.44%.)也是最高的。在这方面,独联体也排在最后,只有1.45%的检测是由该服务触发的。

谷歌的追踪服务列表中还有YouTube Analytics,它为YouTube博客提供收集和分析的受众数据。

4.png

2021年8月至2022年8月,每个地区由YouTube Analytics追踪服务触发的DNT占比

中东(8.04%)、南亚(7.79%)、非洲(5.97%)和拉丁美洲(5.02%)再次成为检测率最高的地区。这次排名垫底的地区是北美(1.82%),而不是独联体(2.54%)。如此低的比例并不意味着YouTube在该地区的地位无足轻重。YouTube Analytics在该地区的占比很小,可能是因为数据收集问题。

Meta(Facebook)

提供定向广告服务的Facebook自定义受众(Facebook Custom audience)与谷歌的追踪服务一样出现在每个地区。像这样的服务收集各种类型的用户数据,分析这些数据,并细分受众,以确保更好的广告定位。使用目标定位服务的广告商通过将产品展示给最有可能感兴趣的人,与小型广告提供商相比,Facebook的自定义受众覆盖了更多的受众。

5.png

2021年8月至2022年8月,Facebook自定义受众追踪服务在各地区触发的DNT占比

Facebook受众在拉丁美洲(8.76%)和大洋洲(7.95%)的占比最大,在独联体(2.12%)的占比最小。

Criteo

在世界各地被检测到的追踪服务中,Criteo也经常出现。虽然Criteo的名字不像谷歌或Facebook那么熟悉,但它实际上是一家法国大型广告公司,提供从用户数据收集和分析到广告本身的一系列服务。

6.png

2021年8月至2022年8月,Criteo追踪服务在各地区触发的DNT占比

Criteo追踪服务在欧洲(7.07%)、东亚(6.09%)和拉丁美洲(5.24%)最常见,在南亚(仅1.59%)最不常见。

上述全球追踪服务的地区分布

在欧洲地图,谷歌营销平台(21.39%)、谷歌分析(15.23%)和Criteo(7.07%)排名前三。Facebook排名第五,为5.29%,Google AdSense排名第七,为3.59%,YouTube Analytics排名第十一,为2.97%。其他五家主要公司拥有的追踪服务在排名中占据第四、第六、第八、第九和第十位。

7.png

2021年8月至2022年8月欧洲排名前25的追踪服务

亚马逊科技公司(Amazon Technologies)在欧洲普遍存在的追踪服务被检测出的数量中占了6.31%。该公司指的是亚马逊广告公司(Amazon Advertising)运营的追踪服务。亚马逊广告公司是亚马逊的子公司,负责收集和分析用户数据,帮助客户与消费者建立联系,此外还在亚马逊的所有服务中投放广告。这本质上是一个类似谷歌营销平台和Criteo的经典广告巨头。

总部位于加拿大的全球广告市场Index Exchange在欧洲有4.12%的占比,是另一个巨头。

必应广告(Bing Ads)占比为3.45%,是该地区流行的另一项追踪服务。它提供搜索查询分析,并在Bing搜索引擎中显示广告。紧随其后的是Adloox(3.21%),以及荷兰广告平台Improve Digital(3.17%)。

Facebook在该地区最受欢迎的追踪服务中排名第十五,占比1.96%。这是另一项Meta服务,它追踪Facebook帐户的活动,例如登录和与其他网站上的插件和点赞按钮的交互。除北美、俄罗斯和伊朗外,该服务几乎在所有地区都跻身前列。

某些追踪服务,如Meetrics (DoubleVerify)占比为1.28%,Virtual Minds占比为1.39%,这两家公司的总部都在德国。

非洲地区

我们熟悉的广告巨头占据了非洲的前四名。谷歌营销平台占25.37%的巨大份额。谷歌Analytics排名第二,为16.56%。YouTube Analytics和Facebook Custom audience的占比分别为5.97%和5.90%。

8.png

2021年8月至2022年8月非洲排名前25的追踪服务

排名第五的是雅虎网络分析公司(Yahoo Web Analytics),占比为4.86%。这是一项收集和分析雅虎用户数据的服务。

中东地区

六家全球追踪服务公司占据了中东地区前六名的位置。谷歌营销平台在该地区最受欢迎的追踪服务的检测总数中占了近三分之一(32.84%)。在16.44%的样本中检测到谷歌分析追踪服务;YouTube分析追踪服务,占8.04%;Google AdSense追踪服务,占5.27%。谷歌显然是中东最大的用户数据收集商。

9.png

2021年8月至2022年8月中东地区排名前25的追踪服务

伊朗

伊朗是我们名单上唯一一个Google Analytics占50%以上的国家,另外谷歌营销平台占11.76%。

10.png

2021年8月至 2022年8月伊朗排名前25的追踪服务

伊朗也有本地的追踪服务,例如,广告公司SabaVision以4.62%的占比排名第三,广告平台Yektan以3.9%的占比排名第五。

拉丁美洲地区

拉丁美洲的追踪情况与世界其他地区没有明显不同。谷歌、Facebook和Criteo再次占据前三甲。紧随其后的是雅虎网络分析(3.48%)、美国分析公司Chartbeat运营的追踪服务(3.00%)、Twitter(2.65%)和亚马逊技术(2.62%)。

11.png

2021年8月至2022年8月拉丁美洲的追踪服务

北美地区

谷歌在北美的全球追踪服务占比相对较小,2021年8月至2022年8月期间占比仅为18.22%。YouTube Analytics追踪服务在北美的占比最小,这是由于其他公司运营的追踪服务大量存在:亚马逊技术(6.90%)、雅虎网络分析(5.67%)和Adloox(5.57%)。这些公司创造了一个更具竞争力的环境,这导致每个追踪服务在总DNT检测中的占比更小。

12.png

2021年8月至2022年8月北美前25追踪服务

独联体地区

独联体是一个相当有趣的区域,拥有各种当地追踪服务。独联体由不同的国家组成,每个国家都有其独特的互联网法规和限制,这肯定会影响广告公司的存在。

14.png

2021年8月至2022年8月独联体(不包括俄罗斯)排名前25的追踪服务

独联体是目前唯一一个由当地互联网巨头主导的地区,而不是欧美公司。Metrika以19.24%的占比位排行榜首,谷歌的追踪服务位居第二(16.17%)和第三(13.14%)。

Mediascope研究公司排名第四,占5.55%。除了为营销目的收集和分析用户数据外,Mediascope是官方指定的评估电视频道受众规模的机构。

独联体特有的其他追踪服务是网络计数器Yadro.ru(4.88%)、广告管理平台AdFox(4.68%)、俄罗斯广告技术公司Buzzoola(3.03%)、广告经营和审计服务Adriver(2.74%)、Between Digital(2.23%)、Rambler Internet Holdings(1.95%)、VK(前Mail.ru Group,1.92%)、VKontakte(1.86%)、AdMixer(1.70%)(最初来自俄罗斯,但现在总部位于伦敦)和Uniontraff.com(1.03%)。

因此,独联体(俄罗斯除外)25个最广泛使用的网络追踪服务中有12个是当地特有的。

俄罗斯

俄罗斯排名前25的大部分追踪服务都是本土公司。上面提到的Metrika和Mediascope分别排名第一和第二,分别为19.73%和12.51%。谷歌分析(8.83%)和谷歌营销平台(6.59%)分别位居第三和第四位。

15.png

2021年8月至2022年8月俄罗斯排名前25的追踪服务

东亚地区

东亚与世界其他地区没有明显不同。它的追踪服务与全球其他地区基本相同。然而,有两个例外:日本和韩国。我们将这些国家单独列为独立的研究实对象,以展示其独特之处。

谷歌营销平台以27.62%的占比牢牢占据榜首,其次是谷歌分析(16.13%)和Facebook(6.65%)。YouTube Analytics的占比为6.54%,雅虎网络分析的占比为5.79%。

16.png

2021 年8月至2022年8月东亚(不包括日本和韩国)前25追踪服务

日本

日本是唯一一个Twitter追踪服务占有相当高占比(11.67%)的国家,超过了Facebook(4.43%)和YouTube分析(3.24%)。与其他主要社交网络类似,Twitter除了追踪自己的网站之外,还追踪其他网站上的用户活动。其中一个追踪工具是Twitter Pixel,所有者可以将其嵌入网站。

17.png

2021年 8月至2022年8月,日本排名前25的追踪服务

除此之外,日本的前25排名还包括本地追踪服务。

韩国

与日本一样,韩国是一个拥有成熟本土科技公司的特殊地区,这影响了追踪服务的分布。谷歌以相当大的优势领先,其中谷歌营销平台占比为25.49%,谷歌分析为19.74%。韩国最大的互联网公司Kakao运营的追踪服务占比高达10.9%,排名第三。

18.png

2021年 8月至2022年8月,韩国排名前25的追踪服务

排名前25位的其他韩国追踪服务包括eBay韩国(2.02%)和目标广告服务WiderPlanet(1.77%)。

南亚地区

谷歌营销平台在南亚地区占比最高,为32.92%。

19.png

2021年8月至2022年8月南亚排名前25的追踪服务

印度科技和媒体巨头时代互联网(Times Internet)在南亚有一定的影响力(0.97%)。

总结

在世界各地收集用户数据最多的是谷歌和Meta,以及广告巨头Criteo,普通用户对此知之甚少。我们已经看到,该地区或国家在语言、经济和技术上越有特色,当地公司占比越大。当地的主要参与者通常不仅仅是广告和营销,而是在其国内市场上提供各种在线服务。例如,韩国的Kakao、日本的LINE和俄罗斯的Yandex不仅是互联网巨头,而且还涉及其他服务。

意识到你的在线活动被追踪并不有趣,不幸的是,就算你知道被追踪,你也无法完全保护自己不受追踪,你只能尽量减少各类服务追踪你所获得的数据量。目前各种类型的技术工具都可缓解网络追踪。例如,VPN改变了你的IP地址,从而在一定程度上扭曲了营销公司努力构建的你的数字形象。反追踪浏览器扩展,如DNT,在你上网时阻止追踪服务,阻止公司发现你使用的网站以及使用习惯。你还可以通过仅共享服务运行所需的数据来降低风险。

sl-abstract-screens-big-data-resized-1200x600.jpg

每次你上网,都有人在追踪你。你使用的服务、访问的网站、手机上的应用程序、智能电视、游戏机和任何联网设备都可以借助安装在网页或软件中的追踪服务收集你的数据。这些网站和服务将这些数据发送给它们使用追踪服务的制造商和合作伙伴。

公司正在寻找关于你的各种信息:从设备规格到你使用服务的方式,再到你打开的页面。公司通过收集这样的数据分析用户体验,更好地了解客户并改进产其品;其次,预测用户需求,甚至可能操纵用户需求。此外,一个组织对你的了解越多,它就越能为你展示个性化的广告。这些广告比随机广告的费率更高,因此收费更高。

了解是谁在收集数据以及为什么要收集数据并且知道在哪里查找数据。大多数服务都发布了隐私政策,这些政策应该详细解释服务收集什么数据以及为什么收集。遗憾的是,这些政策很少足够透明。由于担心缺乏透明度,用户和隐私监管机构向科技公司施加了压力。

某些科技巨头最近开始在他们的生态系统中添加旨在提高数据收集透明度的工具。例如,当从app Store下载的应用程序首次运行时,苹果会询问用户是否愿意让该应用程序追踪他们的活动。然而,并不是每个服务都提供这种警告。即使你在苹果设备上访问网站,也不会看到这样的提示。

浏览器的隐私设置和特殊扩展可以识别和阻止来自网站的追踪请求,这可以保护你在网上冲浪时免受追踪。这就是“请勿追踪”(DNT)扩展的工作原理。此外,在用户同意的情况下,DNT会收集关于哪些追踪请求被屏蔽以及屏蔽频率的匿名数据。本文将关注那些收集、分析、存储用户数据并与合作伙伴共享数据的公司。

统计数据来源

该文使用了DNT在2021年8月至2022年8月期间收集的匿名统计数据,DNT通过阻止的web追踪程序加载数量进行统计。DNT(默认禁用)是卡巴斯基互联网安全、卡巴斯基总体安全和卡巴斯基安全云的一部分。

全球网络追踪巨头

全球网络追踪巨头基本上有6家,其中四个由谷歌拥有:谷歌分析、Google AdSense、谷歌营销平台和YouTube分析。剩下的两个由Meta和Criteo所有。

谷歌

卡巴斯基在2019年发布的上一份报告详细介绍了谷歌的追踪服务:DoubleClick、Google AdSense、Google Analytics和YouTube Analytics。就在那时,这家搜索巨头宣布计划重塑DoubleClick广告平台的品牌,并将其与自己的广告生态系统合并。如今,DoubleClick已成为谷歌营销平台的一部分,尽管追踪URL没有改变,并继续像以前一样工作。为方便起见,统计将该追踪服务称为“谷歌营销平台(原doubleclick)”。

1.png

2021年8月至2022年8月,各地区由谷歌营销平台追踪服务触发的DNT占比

谷歌营销平台在南亚(32.92%)和中东(32.84%)中占比最大。紧随其后的是其在非洲和拉丁美洲的占比:分别为25.37%和24.64%。在独联体地区追踪服务排名中,谷歌营销平仅占7.05%。

谷歌运营的另一项追踪服务Google Analytics收集网站访问者的数据,并向客户提供详细的统计数据。这项服务也占了全世界DNT检测的相当大的占比。

2.png

2021年8月至2022年8月,谷歌分析追踪系统在每个地区触发的DNT占比

看看谷歌分析在各个地区的占比,就会发现类似于谷歌营销平台的模式。谷歌分析在南亚(18.04%)、拉丁美洲(17.97%)、非洲(16.56%)和中东(16.44%)的占比最大。其在独联体的占比最小,仅为9.06%。

3.png

2021年8月至2022年8月,Google AdSense追踪服务在每个地区触发的DNT占比

谷歌运营的另一个追踪系统是Google AdSense上下文广告服务(Google AdSense context ad service)。这一比例在中东(5.27%)、非洲(4.63%)、拉丁美洲(4.44%)和南亚(4.44%.)也是最高的。在这方面,独联体也排在最后,只有1.45%的检测是由该服务触发的。

谷歌的追踪服务列表中还有YouTube Analytics,它为YouTube博客提供收集和分析的受众数据。

4.png

2021年8月至2022年8月,每个地区由YouTube Analytics追踪服务触发的DNT占比

中东(8.04%)、南亚(7.79%)、非洲(5.97%)和拉丁美洲(5.02%)再次成为检测率最高的地区。这次排名垫底的地区是北美(1.82%),而不是独联体(2.54%)。如此低的比例并不意味着YouTube在该地区的地位无足轻重。YouTube Analytics在该地区的占比很小,可能是因为数据收集问题。

Meta(Facebook)

提供定向广告服务的Facebook自定义受众(Facebook Custom audience)与谷歌的追踪服务一样出现在每个地区。像这样的服务收集各种类型的用户数据,分析这些数据,并细分受众,以确保更好的广告定位。使用目标定位服务的广告商通过将产品展示给最有可能感兴趣的人,与小型广告提供商相比,Facebook的自定义受众覆盖了更多的受众。

5.png

2021年8月至2022年8月,Facebook自定义受众追踪服务在各地区触发的DNT占比

Facebook受众在拉丁美洲(8.76%)和大洋洲(7.95%)的占比最大,在独联体(2.12%)的占比最小。

Criteo

在世界各地被检测到的追踪服务中,Criteo也经常出现。虽然Criteo的名字不像谷歌或Facebook那么熟悉,但它实际上是一家法国大型广告公司,提供从用户数据收集和分析到广告本身的一系列服务。

6.png

2021年8月至2022年8月,Criteo追踪服务在各地区触发的DNT占比

Criteo追踪服务在欧洲(7.07%)、东亚(6.09%)和拉丁美洲(5.24%)最常见,在南亚(仅1.59%)最不常见。

上述全球追踪服务的地区分布

在欧洲地图,谷歌营销平台(21.39%)、谷歌分析(15.23%)和Criteo(7.07%)排名前三。Facebook排名第五,为5.29%,Google AdSense排名第七,为3.59%,YouTube Analytics排名第十一,为2.97%。其他五家主要公司拥有的追踪服务在排名中占据第四、第六、第八、第九和第十位。

7.png

2021年8月至2022年8月欧洲排名前25的追踪服务

亚马逊科技公司(Amazon Technologies)在欧洲普遍存在的追踪服务被检测出的数量中占了6.31%。该公司指的是亚马逊广告公司(Amazon Advertising)运营的追踪服务。亚马逊广告公司是亚马逊的子公司,负责收集和分析用户数据,帮助客户与消费者建立联系,此外还在亚马逊的所有服务中投放广告。这本质上是一个类似谷歌营销平台和Criteo的经典广告巨头。

总部位于加拿大的全球广告市场Index Exchange在欧洲有4.12%的占比,是另一个巨头。

必应广告(Bing Ads)占比为3.45%,是该地区流行的另一项追踪服务。它提供搜索查询分析,并在Bing搜索引擎中显示广告。紧随其后的是Adloox(3.21%),以及荷兰广告平台Improve Digital(3.17%)。

Facebook在该地区最受欢迎的追踪服务中排名第十五,占比1.96%。这是另一项Meta服务,它追踪Facebook帐户的活动,例如登录和与其他网站上的插件和点赞按钮的交互。除北美、俄罗斯和伊朗外,该服务几乎在所有地区都跻身前列。

某些追踪服务,如Meetrics (DoubleVerify)占比为1.28%,Virtual Minds占比为1.39%,这两家公司的总部都在德国。

非洲地区

我们熟悉的广告巨头占据了非洲的前四名。谷歌营销平台占25.37%的巨大份额。谷歌Analytics排名第二,为16.56%。YouTube Analytics和Facebook Custom audience的占比分别为5.97%和5.90%。

8.png

2021年8月至2022年8月非洲排名前25的追踪服务

排名第五的是雅虎网络分析公司(Yahoo Web Analytics),占比为4.86%。这是一项收集和分析雅虎用户数据的服务。

中东地区

六家全球追踪服务公司占据了中东地区前六名的位置。谷歌营销平台在该地区最受欢迎的追踪服务的检测总数中占了近三分之一(32.84%)。在16.44%的样本中检测到谷歌分析追踪服务;YouTube分析追踪服务,占8.04%;Google AdSense追踪服务,占5.27%。谷歌显然是中东最大的用户数据收集商。

9.png

2021年8月至2022年8月中东地区排名前25的追踪服务

伊朗

伊朗是我们名单上唯一一个Google Analytics占50%以上的国家,另外谷歌营销平台占11.76%。

10.png

2021年8月至 2022年8月伊朗排名前25的追踪服务

伊朗也有本地的追踪服务,例如,广告公司SabaVision以4.62%的占比排名第三,广告平台Yektan以3.9%的占比排名第五。

拉丁美洲地区

拉丁美洲的追踪情况与世界其他地区没有明显不同。谷歌、Facebook和Criteo再次占据前三甲。紧随其后的是雅虎网络分析(3.48%)、美国分析公司Chartbeat运营的追踪服务(3.00%)、Twitter(2.65%)和亚马逊技术(2.62%)。

11.png

2021年8月至2022年8月拉丁美洲的追踪服务

北美地区

谷歌在北美的全球追踪服务占比相对较小,2021年8月至2022年8月期间占比仅为18.22%。YouTube Analytics追踪服务在北美的占比最小,这是由于其他公司运营的追踪服务大量存在:亚马逊技术(6.90%)、雅虎网络分析(5.67%)和Adloox(5.57%)。这些公司创造了一个更具竞争力的环境,这导致每个追踪服务在总DNT检测中的占比更小。

12.png

2021年8月至2022年8月北美前25追踪服务

独联体地区

独联体是一个相当有趣的区域,拥有各种当地追踪服务。独联体由不同的国家组成,每个国家都有其独特的互联网法规和限制,这肯定会影响广告公司的存在。

14.png

2021年8月至2022年8月独联体(不包括俄罗斯)排名前25的追踪服务

独联体是目前唯一一个由当地互联网巨头主导的地区,而不是欧美公司。Metrika以19.24%的占比位排行榜首,谷歌的追踪服务位居第二(16.17%)和第三(13.14%)。

Mediascope研究公司排名第四,占5.55%。除了为营销目的收集和分析用户数据外,Mediascope是官方指定的评估电视频道受众规模的机构。

独联体特有的其他追踪服务是网络计数器Yadro.ru(4.88%)、广告管理平台AdFox(4.68%)、俄罗斯广告技术公司Buzzoola(3.03%)、广告经营和审计服务Adriver(2.74%)、Between Digital(2.23%)、Rambler Internet Holdings(1.95%)、VK(前Mail.ru Group,1.92%)、VKontakte(1.86%)、AdMixer(1.70%)(最初来自俄罗斯,但现在总部位于伦敦)和Uniontraff.com(1.03%)。

因此,独联体(俄罗斯除外)25个最广泛使用的网络追踪服务中有12个是当地特有的。

俄罗斯

俄罗斯排名前25的大部分追踪服务都是本土公司。上面提到的Metrika和Mediascope分别排名第一和第二,分别为19.73%和12.51%。谷歌分析(8.83%)和谷歌营销平台(6.59%)分别位居第三和第四位。

15.png

2021年8月至2022年8月俄罗斯排名前25的追踪服务

东亚地区

东亚与世界其他地区没有明显不同。它的追踪服务与全球其他地区基本相同。然而,有两个例外:日本和韩国。我们将这些国家单独列为独立的研究实对象,以展示其独特之处。

谷歌营销平台以27.62%的占比牢牢占据榜首,其次是谷歌分析(16.13%)和Facebook(6.65%)。YouTube Analytics的占比为6.54%,雅虎网络分析的占比为5.79%。

16.png

2021 年8月至2022年8月东亚(不包括日本和韩国)前25追踪服务

日本

日本是唯一一个Twitter追踪服务占有相当高占比(11.67%)的国家,超过了Facebook(4.43%)和YouTube分析(3.24%)。与其他主要社交网络类似,Twitter除了追踪自己的网站之外,还追踪其他网站上的用户活动。其中一个追踪工具是Twitter Pixel,所有者可以将其嵌入网站。

17.png

2021年 8月至2022年8月,日本排名前25的追踪服务

除此之外,日本的前25排名还包括本地追踪服务。

韩国

与日本一样,韩国是一个拥有成熟本土科技公司的特殊地区,这影响了追踪服务的分布。谷歌以相当大的优势领先,其中谷歌营销平台占比为25.49%,谷歌分析为19.74%。韩国最大的互联网公司Kakao运营的追踪服务占比高达10.9%,排名第三。

18.png

2021年 8月至2022年8月,韩国排名前25的追踪服务

排名前25位的其他韩国追踪服务包括eBay韩国(2.02%)和目标广告服务WiderPlanet(1.77%)。

南亚地区

谷歌营销平台在南亚地区占比最高,为32.92%。

19.png

2021年8月至2022年8月南亚排名前25的追踪服务

印度科技和媒体巨头时代互联网(Times Internet)在南亚有一定的影响力(0.97%)。

总结

在世界各地收集用户数据最多的是谷歌和Meta,以及广告巨头Criteo,普通用户对此知之甚少。我们已经看到,该地区或国家在语言、经济和技术上越有特色,当地公司占比越大。当地的主要参与者通常不仅仅是广告和营销,而是在其国内市场上提供各种在线服务。例如,韩国的Kakao、日本的LINE和俄罗斯的Yandex不仅是互联网巨头,而且还涉及其他服务。

意识到你的在线活动被追踪并不有趣,不幸的是,就算你知道被追踪,你也无法完全保护自己不受追踪,你只能尽量减少各类服务追踪你所获得的数据量。目前各种类型的技术工具都可缓解网络追踪。例如,VPN改变了你的IP地址,从而在一定程度上扭曲了营销公司努力构建的你的数字形象。反追踪浏览器扩展,如DNT,在你上网时阻止追踪服务,阻止公司发现你使用的网站以及使用习惯。你还可以通过仅共享服务运行所需的数据来降低风险。

sl-malicious-pos-terminal-payment-transaction-phone-1200x600.jpg

ATM 恶意软件组织 Prilex自 2014 年起就开始活跃,不过在2016 年,该组织决定放弃ATM 业务,将所有注意力集中在 PoS 系统。很快,他们采用了恶意软件即服务模式,并将攻击范围扩大至巴西以外的地方,以模块化的方式创建了一套包括后门、上传程序和窃取程序的工具。

Prilex PoS恶意软件从一个简单的内存抓取器演变为非常先进和复杂的恶意软件,直接处理 PIN pad硬件协议而不是使用更高级别的 API,在目标软件中进行实时修补,挂钩操作系统库,扰乱回复、流量和端口,以及从基于重放的攻击切换到为其 GHOST 交易生成密码,即使是使用 CHIP 和 PIN 技术保护的信用卡。

在 2016 年的狂欢节期间,一家巴西银行意识到他们的 ATM 已被黑客入侵,其中的所有现金都被盗了。根据事后报告,策划此次攻击的攻击者能够在同一起事件中感染属于一家银行的1000多台机器,这使他们得以在巴西复制2.8万张独特的信用卡。

攻击者没有进入ATM的物理权限,但他们能够通过一个包含4G路由器和树莓派的DIY设备访问银行的网络。通过打开后门,他们能够劫持该机构的无线连接,并随意攻击 ATM。在获得初始网络访问权限后,攻击者将运行网络识别过程以查找每个 ATM 的 IP 地址。有了这些信息,攻击者将启动横向移动阶段,使用默认的 Windows 凭据,然后在所需的系统中安装定制的恶意软件。后门将允许攻击者通过启动恶意软件界面并输入攻击者提供的代码来清空 ATM 套接字,每个被黑客攻击的 ATM的代码都是自定义的。

1.png

感染了 Prilex 的 ATM 

攻击中使用的恶意软件名为 Prilex,它是通过使用特权信息和 ATM 网络的高级知识从零开始开发的。该恶意软件能够从插入受感染 ATM 的信用卡和借记卡上的磁条中捕获信息。之后,这些有价值的信息可用于克隆银行卡并从银行客户那里窃取更多资金。

演变成 PoS 恶意软件的过程

Prilex 已经从专注于 ATM 的恶意软件演变为针对巴西国内的支付系统的模块化恶意软件,即所谓的 EFT/TEF 软件。它们的 ATM 和 PoS 版本之间有许多相似之处。他们的第一个 PoS 恶意软件于 2016 年 10 月在野外被发现。前两个样本的编译日期为 2010/2011,如下图所示。但是,研究人员认为由于不正确的系统日期和时间设置而设置了无效的编译日期。在后来的版本中,时间戳对应于发现样本的时间。我们还注意到,在 2022 年开发的软件中,开发人员开始使用 Subversion 作为版本控制系统。

2.png

Prilex PoS 恶意软件的版本:2022 年的 3 个新版本

如上所示,Prilex 在 2020 年非常活跃,但在 2021 年突然消失,并在 2022 年重新出现并发布了三个新变体。

Prilex的PoS版本是用Visual Basic编写的,但本文中描述的窃取模块是用p-code编写的。简而言之,这是Visual Basic 程序中的高级指令与 CPU 执行的低级本机代码之间的中间步骤。 Visual Basic在运行时将p-code语句转换为本机代码。

Prilex 并不是唯一起源于巴西的 PoS 恶意软件,研究人员发现它与原来的 Trojan-Spy.Win32.SPSniffer 存在某种联系,两个家族都能够拦截PIN pad的信号,但使用的方法不同。

PIN pad配备硬件和安全功能,以确保在有人试图篡改设备时擦除安全密钥。事实上,PIN在进入设备时使用各种加密方案和对称密钥进行加密。大多数情况下,这是一个三重DES编码器,使它很难破解PIN。

但是有一个问题:这些设备总是通过 USB 或串行端口连接到计算机,这些端口与 EFT 软件进行流量。原来的 PIN pad设备使用过时和弱加密方案,使得恶意软件很容易安装 USB 或串行端口嗅探器来捕获和解密 PIN pad和受感染系统之间的流量。这就是 SPSniffer 获取信用卡数据的方式。有时流量甚至没有加密。

3.png

SPSniffer:允许捕获非加密流量的串口嗅探器

Prilex 用于捕获信用卡数据的主要方法是使用 PoS 系统库中的补丁,允许恶意软件收集软件传输的数据。恶意软件将寻找一组特定的可执行文件和库的位置,以便应用补丁,从而覆盖原始代码。安装补丁后,恶意软件会从 TRACK2 收集数据,例如帐号和到期日期,以及执行欺诈交易所需的其他持卡人信息。

初始感染载体

Prilex 不是一种广泛传播的恶意软件,因为它不是通过电子邮件垃圾邮件活动传播的。它具有高度针对性,通常通过社会工程传播,例如,目标企业可能会接到自称是“技术人员”的电话,他坚持认为该公司需要更新其PoS软件。假冒技术人员可能会亲自访问目标,或要求受害者安装AnyDesk,并为其提供远程访问权限,以安装恶意软件。

4.png

PoS 供应商关于 Prilex 社会工程攻击的警告

使用EMV标准的漏洞发起攻击

巴西于 1999 年开始使用EMV,如今,该国发行的几乎所有卡都支持芯片。芯片内部有一个基于java的小应用程序,可以很容易地操作以创建一张“金票(golden ticket)”卡,该卡在大多数销售点系统中都有效。这使攻击者能够升级他们的工具集,使他们能够以这种新技术为特色创建自己的卡片。

最初版本的Prilex能够执行重放攻击,在这种攻击中,它们没有破坏EMV协议,而是利用了糟糕的实现。由于支付运营商未能执行 EMV 标准要求的某些验证,攻击者可以利用该过程中的这一漏洞为自己谋取利益。

在这种攻击中,欺诈者通过卡片网络推送常规磁条交易作为EMV购买,因为他们控制着支付终端,并有能力操纵通过该终端进行交易的数据字段。后来他们转而从真正的基于 EMV 的芯片卡交易中获取流量。攻击者可以将被盗的卡数据插入交易流程,同时动态修改商家和收购方的银行账户。

至少从2014年起,巴西网络攻击者已经成功发起重放攻击,比如2019 年对一家德国银行的攻击,该银行损失了 150 万欧元, Prilex团伙声称对此负责。从名称字段和工具的功能来看,他们很可能使用了他们在黑市上销售的软件。

为了使用克隆的信用卡自动进行攻击,Prilex 攻击者使用了 Xiello 等工具,这是研究人员在 2020 年通过遥测技术发现的。该工具允许网络攻击者在进行欺诈性购买时批量使用信用卡。它将购买数据发送给信用卡购买者,然后由他们批准或拒绝交易。

5.png

Prilex 用于自动化交易的 Xiello 工具

随着支付行业和信用卡发行商修复 EMV 中的漏洞被修复,重放攻击变得过时且无效,这促使 Prilex 团伙采用其他新的信用卡欺诈方式。

从“Replay”技术到“Ghost”技术的演进

最新版本的Prilex在攻击方式上与之前的版本有所不同:该组织已从重放攻击转变为使用受害者卡在店内支付过程中生成的密码进行欺诈交易,攻击者将其称为“GHOST 交易”。

在这些攻击中,Prilex 样本作为 RAR SFX 可执行文件安装在系统中,将所有必需的文件提取到恶意软件目录并执行安装脚本(VBS 文件)。从已安装的文件中,我们可以突出显示该活动中使用的三个模块:一个后门,在这个版本中除了用于流量的C2服务器外没有改变;一个窃取模块和一个上传模块。

6.png

维护持久性的Prilex方法

窃取模块负责拦截销售点软件和用于在交易期间读取卡的 PIN pad之间的所有流量。一旦识别出正在运行的交易,恶意软件将拦截并修改交易内容,以便能够捕获卡信息并向受害者的卡请求新的 EMV 密码。这些密码随后用于 GHOST 交易。

7.png

用于解析发送/接收的密码键盘消息的方法

为了针对一个特定的进程,攻击者将对机器进行初步筛选,以检查它是否是具有足够信用卡交易的有趣目标,并确定他们将针对的流程。

进程被识别后,恶意软件将继续安装拦截交易信息所需的挂钩。由于 PoS 软件和读卡器之间的流量是通过 COM 端口进行的,因此恶意软件会在目标进程内安装许多 Windows API 的挂钩,旨在根据需要监控和更改数据。有趣的是,Prilex 不是为挂钩程序分配内存,而是在模块内存中找到空闲空间,这种技术称为代码洞穴,这使得一些安全解决方案很难检测到受感染系统中的威胁。

8.png

添加到CloseHandle进程中的挂钩代码

从交易中捕获的所有信息都被保存到一个加密文件中,该文件位于恶意软件配置之前设置的目录中。这些文件随后会被发送到恶意软件C2服务器上,允许网络攻击者通过以虚假公司名义注册的欺诈性 PoS 设备进行交易。

9.png

捕获的信用卡数据稍后将被发送到运营商服务器

以前的版本监控交易是为了获取原始交易生成的密码,然后使用收集的密码执行重放攻击。在这种情况下,密码具有相同的 ATC(应用程序交易计数器),允许通过重复使用 ATC 以及密码内部的日期与提交日期不匹配的事实来识别欺诈交易,因为欺诈交易是在较晚的时间提交的。

在较新版本的 Prilex 执行的 GHOST 攻击中,它会在捕获交易后请求新的 EMV 密码。然后,这些密码将通过其中一种网络犯罪工具用于欺诈交易,其输出日志如下所示。

10.png

上表显示了从恶意软件收集的数据。它包含由卡生成的授权请求密码 (ARQC),现在应该得到发卡机构的批准。剖析响应(80128000AA5EA486052A8886DE06050A03A4B8009000)后,我们得到以下信息。

11.png

卡上应用了多个应用程序密码,其中交易金额(蓝色)、ATC(绿色)和生成的密码(红色)在每次交易中都会发生变化。

12.png

简而言之,这是整个 Prilex 方案:

13.png

Prilex:从感染到套现

后门模块

后门有许多命令,除了内存扫描程序常见的内存扫描之外,较老的(ATM) Prilex版本还提供了一个命令,用于调试进程和查看其内存。这很可能被用于了解目标软件行为并对恶意软件或环境进行调整以执行欺诈交易。旧版本的 Prilex 对特定软件库进行了修补,而较新的示例不再依赖特定软件,而是使用Windows api来执行它的工作。

14.png

Prilex 调试器

下面是在ATM版本的Prilex中使用的命令列表,其中包括调试:

Reboot, SendKeys, ShowForm, Inject, UnInject, HideForm, Recursos, GetZip, SetStartup, PausaProcesso, LiberaProcesso, Debug, SendSnapShot, GetStartup, CapRegion, CapFerro, KillProcess, Shell, Process, GetModules, GetConfig, StartSendScreen, StopSendScreen, ReLogin, StartScan, GetKey, SetConfig, RefreshScreen, Download, TakeRegions, Enviar Arquivo, ScanProcessStart, ScanProcessStop, StartRegiao, StopRegiao, StartDownload, StopDownload.

即使在 PoS 版本中添加了一组新命令,我们仍然可以发现一些来自 ATM 攻击的命令仍在使用中。许多可用的命令都是通用的,这允许攻击者收集有关受感染机器的信息。

15.png

上传模块

该模块负责检查配置文件中CABPATH参数指定的目录,并将所有被盗交易生成的cab文件发送到服务器,这些文件是通过 HTTP POST 请求发送的。模块使用的终端也在上传器配置文件中提到。

16.png

该模块的使用表明该组织的操作结构发生了变化,因为在之前的版本中,收集到的信息被发送到服务器,该服务器的地址被硬编码为窃取代码,并且该模块使用与后门相同的协议。该上传程序允许操作人员根据配置文件中的指示设置所收集信息的终端,从分析的样本来看,可以看到该过程涉及不同的基础设施。

17.png

捕获的数据存储在上传器 C2 中

恶意软件即服务

早2019年,一家声称与Prilex有关联的网站开始提供据称是该组织创建的恶意软件包。研究人员认为这是不可能的,因为该网站可能由试图冒充该组织的模仿者运营,并利用 Prilex 多年来赢得的声誉来赚钱。

在撰写本文时,该网站仍在运行中。

18.png

据称是 Prilex PoS 套件的要价是 3500 美元

19.png

该网站称其所有者过去曾与俄罗斯网络攻击者合作,不过该说法还无法被验证。值得一提的是,研究人员在地下渠道发现了通过 Telegram 聊天销售的 Prilex 恶意软件包被引用,价格在 10000 欧元到 13000 美元之间。研究人员无法确认所提供的是真正的 Prilex 恶意软件。

同时,Prilex 现在使用 Subversion 清楚地表明他们正在与多个开发人员合作。

总结

Prilex 组织非常擅长对信用卡和借记卡交易发起攻击,并开发用于支付处理的软件。这使攻击者能够不断更新他们的工具,以找到绕过授权策略的方法,从而允许他们执行攻击。

经过多年的活动,该组织已经迭代了很多攻击技术。但是,它总是滥用与 PoS 软件相关的流程来拦截和修改与 PIN pad的流量。考虑到这一点,研究人员强烈建议 PoS 软件开发人员在其模块中实施自我保护技术。

sl-malicious-pos-terminal-payment-transaction-phone-1200x600.jpg

ATM 恶意软件组织 Prilex自 2014 年起就开始活跃,不过在2016 年,该组织决定放弃ATM 业务,将所有注意力集中在 PoS 系统。很快,他们采用了恶意软件即服务模式,并将攻击范围扩大至巴西以外的地方,以模块化的方式创建了一套包括后门、上传程序和窃取程序的工具。

Prilex PoS恶意软件从一个简单的内存抓取器演变为非常先进和复杂的恶意软件,直接处理 PIN pad硬件协议而不是使用更高级别的 API,在目标软件中进行实时修补,挂钩操作系统库,扰乱回复、流量和端口,以及从基于重放的攻击切换到为其 GHOST 交易生成密码,即使是使用 CHIP 和 PIN 技术保护的信用卡。

在 2016 年的狂欢节期间,一家巴西银行意识到他们的 ATM 已被黑客入侵,其中的所有现金都被盗了。根据事后报告,策划此次攻击的攻击者能够在同一起事件中感染属于一家银行的1000多台机器,这使他们得以在巴西复制2.8万张独特的信用卡。

攻击者没有进入ATM的物理权限,但他们能够通过一个包含4G路由器和树莓派的DIY设备访问银行的网络。通过打开后门,他们能够劫持该机构的无线连接,并随意攻击 ATM。在获得初始网络访问权限后,攻击者将运行网络识别过程以查找每个 ATM 的 IP 地址。有了这些信息,攻击者将启动横向移动阶段,使用默认的 Windows 凭据,然后在所需的系统中安装定制的恶意软件。后门将允许攻击者通过启动恶意软件界面并输入攻击者提供的代码来清空 ATM 套接字,每个被黑客攻击的 ATM的代码都是自定义的。

1.png

感染了 Prilex 的 ATM 

攻击中使用的恶意软件名为 Prilex,它是通过使用特权信息和 ATM 网络的高级知识从零开始开发的。该恶意软件能够从插入受感染 ATM 的信用卡和借记卡上的磁条中捕获信息。之后,这些有价值的信息可用于克隆银行卡并从银行客户那里窃取更多资金。

演变成 PoS 恶意软件的过程

Prilex 已经从专注于 ATM 的恶意软件演变为针对巴西国内的支付系统的模块化恶意软件,即所谓的 EFT/TEF 软件。它们的 ATM 和 PoS 版本之间有许多相似之处。他们的第一个 PoS 恶意软件于 2016 年 10 月在野外被发现。前两个样本的编译日期为 2010/2011,如下图所示。但是,研究人员认为由于不正确的系统日期和时间设置而设置了无效的编译日期。在后来的版本中,时间戳对应于发现样本的时间。我们还注意到,在 2022 年开发的软件中,开发人员开始使用 Subversion 作为版本控制系统。

2.png

Prilex PoS 恶意软件的版本:2022 年的 3 个新版本

如上所示,Prilex 在 2020 年非常活跃,但在 2021 年突然消失,并在 2022 年重新出现并发布了三个新变体。

Prilex的PoS版本是用Visual Basic编写的,但本文中描述的窃取模块是用p-code编写的。简而言之,这是Visual Basic 程序中的高级指令与 CPU 执行的低级本机代码之间的中间步骤。 Visual Basic在运行时将p-code语句转换为本机代码。

Prilex 并不是唯一起源于巴西的 PoS 恶意软件,研究人员发现它与原来的 Trojan-Spy.Win32.SPSniffer 存在某种联系,两个家族都能够拦截PIN pad的信号,但使用的方法不同。

PIN pad配备硬件和安全功能,以确保在有人试图篡改设备时擦除安全密钥。事实上,PIN在进入设备时使用各种加密方案和对称密钥进行加密。大多数情况下,这是一个三重DES编码器,使它很难破解PIN。

但是有一个问题:这些设备总是通过 USB 或串行端口连接到计算机,这些端口与 EFT 软件进行流量。原来的 PIN pad设备使用过时和弱加密方案,使得恶意软件很容易安装 USB 或串行端口嗅探器来捕获和解密 PIN pad和受感染系统之间的流量。这就是 SPSniffer 获取信用卡数据的方式。有时流量甚至没有加密。

3.png

SPSniffer:允许捕获非加密流量的串口嗅探器

Prilex 用于捕获信用卡数据的主要方法是使用 PoS 系统库中的补丁,允许恶意软件收集软件传输的数据。恶意软件将寻找一组特定的可执行文件和库的位置,以便应用补丁,从而覆盖原始代码。安装补丁后,恶意软件会从 TRACK2 收集数据,例如帐号和到期日期,以及执行欺诈交易所需的其他持卡人信息。

初始感染载体

Prilex 不是一种广泛传播的恶意软件,因为它不是通过电子邮件垃圾邮件活动传播的。它具有高度针对性,通常通过社会工程传播,例如,目标企业可能会接到自称是“技术人员”的电话,他坚持认为该公司需要更新其PoS软件。假冒技术人员可能会亲自访问目标,或要求受害者安装AnyDesk,并为其提供远程访问权限,以安装恶意软件。

4.png

PoS 供应商关于 Prilex 社会工程攻击的警告

使用EMV标准的漏洞发起攻击

巴西于 1999 年开始使用EMV,如今,该国发行的几乎所有卡都支持芯片。芯片内部有一个基于java的小应用程序,可以很容易地操作以创建一张“金票(golden ticket)”卡,该卡在大多数销售点系统中都有效。这使攻击者能够升级他们的工具集,使他们能够以这种新技术为特色创建自己的卡片。

最初版本的Prilex能够执行重放攻击,在这种攻击中,它们没有破坏EMV协议,而是利用了糟糕的实现。由于支付运营商未能执行 EMV 标准要求的某些验证,攻击者可以利用该过程中的这一漏洞为自己谋取利益。

在这种攻击中,欺诈者通过卡片网络推送常规磁条交易作为EMV购买,因为他们控制着支付终端,并有能力操纵通过该终端进行交易的数据字段。后来他们转而从真正的基于 EMV 的芯片卡交易中获取流量。攻击者可以将被盗的卡数据插入交易流程,同时动态修改商家和收购方的银行账户。

至少从2014年起,巴西网络攻击者已经成功发起重放攻击,比如2019 年对一家德国银行的攻击,该银行损失了 150 万欧元, Prilex团伙声称对此负责。从名称字段和工具的功能来看,他们很可能使用了他们在黑市上销售的软件。

为了使用克隆的信用卡自动进行攻击,Prilex 攻击者使用了 Xiello 等工具,这是研究人员在 2020 年通过遥测技术发现的。该工具允许网络攻击者在进行欺诈性购买时批量使用信用卡。它将购买数据发送给信用卡购买者,然后由他们批准或拒绝交易。

5.png

Prilex 用于自动化交易的 Xiello 工具

随着支付行业和信用卡发行商修复 EMV 中的漏洞被修复,重放攻击变得过时且无效,这促使 Prilex 团伙采用其他新的信用卡欺诈方式。

从“Replay”技术到“Ghost”技术的演进

最新版本的Prilex在攻击方式上与之前的版本有所不同:该组织已从重放攻击转变为使用受害者卡在店内支付过程中生成的密码进行欺诈交易,攻击者将其称为“GHOST 交易”。

在这些攻击中,Prilex 样本作为 RAR SFX 可执行文件安装在系统中,将所有必需的文件提取到恶意软件目录并执行安装脚本(VBS 文件)。从已安装的文件中,我们可以突出显示该活动中使用的三个模块:一个后门,在这个版本中除了用于流量的C2服务器外没有改变;一个窃取模块和一个上传模块。

6.png

维护持久性的Prilex方法

窃取模块负责拦截销售点软件和用于在交易期间读取卡的 PIN pad之间的所有流量。一旦识别出正在运行的交易,恶意软件将拦截并修改交易内容,以便能够捕获卡信息并向受害者的卡请求新的 EMV 密码。这些密码随后用于 GHOST 交易。

7.png

用于解析发送/接收的密码键盘消息的方法

为了针对一个特定的进程,攻击者将对机器进行初步筛选,以检查它是否是具有足够信用卡交易的有趣目标,并确定他们将针对的流程。

进程被识别后,恶意软件将继续安装拦截交易信息所需的挂钩。由于 PoS 软件和读卡器之间的流量是通过 COM 端口进行的,因此恶意软件会在目标进程内安装许多 Windows API 的挂钩,旨在根据需要监控和更改数据。有趣的是,Prilex 不是为挂钩程序分配内存,而是在模块内存中找到空闲空间,这种技术称为代码洞穴,这使得一些安全解决方案很难检测到受感染系统中的威胁。

8.png

添加到CloseHandle进程中的挂钩代码

从交易中捕获的所有信息都被保存到一个加密文件中,该文件位于恶意软件配置之前设置的目录中。这些文件随后会被发送到恶意软件C2服务器上,允许网络攻击者通过以虚假公司名义注册的欺诈性 PoS 设备进行交易。

9.png

捕获的信用卡数据稍后将被发送到运营商服务器

以前的版本监控交易是为了获取原始交易生成的密码,然后使用收集的密码执行重放攻击。在这种情况下,密码具有相同的 ATC(应用程序交易计数器),允许通过重复使用 ATC 以及密码内部的日期与提交日期不匹配的事实来识别欺诈交易,因为欺诈交易是在较晚的时间提交的。

在较新版本的 Prilex 执行的 GHOST 攻击中,它会在捕获交易后请求新的 EMV 密码。然后,这些密码将通过其中一种网络犯罪工具用于欺诈交易,其输出日志如下所示。

10.png

上表显示了从恶意软件收集的数据。它包含由卡生成的授权请求密码 (ARQC),现在应该得到发卡机构的批准。剖析响应(80128000AA5EA486052A8886DE06050A03A4B8009000)后,我们得到以下信息。

11.png

卡上应用了多个应用程序密码,其中交易金额(蓝色)、ATC(绿色)和生成的密码(红色)在每次交易中都会发生变化。

12.png

简而言之,这是整个 Prilex 方案:

13.png

Prilex:从感染到套现

后门模块

后门有许多命令,除了内存扫描程序常见的内存扫描之外,较老的(ATM) Prilex版本还提供了一个命令,用于调试进程和查看其内存。这很可能被用于了解目标软件行为并对恶意软件或环境进行调整以执行欺诈交易。旧版本的 Prilex 对特定软件库进行了修补,而较新的示例不再依赖特定软件,而是使用Windows api来执行它的工作。

14.png

Prilex 调试器

下面是在ATM版本的Prilex中使用的命令列表,其中包括调试:

Reboot, SendKeys, ShowForm, Inject, UnInject, HideForm, Recursos, GetZip, SetStartup, PausaProcesso, LiberaProcesso, Debug, SendSnapShot, GetStartup, CapRegion, CapFerro, KillProcess, Shell, Process, GetModules, GetConfig, StartSendScreen, StopSendScreen, ReLogin, StartScan, GetKey, SetConfig, RefreshScreen, Download, TakeRegions, Enviar Arquivo, ScanProcessStart, ScanProcessStop, StartRegiao, StopRegiao, StartDownload, StopDownload.

即使在 PoS 版本中添加了一组新命令,我们仍然可以发现一些来自 ATM 攻击的命令仍在使用中。许多可用的命令都是通用的,这允许攻击者收集有关受感染机器的信息。

15.png

上传模块

该模块负责检查配置文件中CABPATH参数指定的目录,并将所有被盗交易生成的cab文件发送到服务器,这些文件是通过 HTTP POST 请求发送的。模块使用的终端也在上传器配置文件中提到。

16.png

该模块的使用表明该组织的操作结构发生了变化,因为在之前的版本中,收集到的信息被发送到服务器,该服务器的地址被硬编码为窃取代码,并且该模块使用与后门相同的协议。该上传程序允许操作人员根据配置文件中的指示设置所收集信息的终端,从分析的样本来看,可以看到该过程涉及不同的基础设施。

17.png

捕获的数据存储在上传器 C2 中

恶意软件即服务

早2019年,一家声称与Prilex有关联的网站开始提供据称是该组织创建的恶意软件包。研究人员认为这是不可能的,因为该网站可能由试图冒充该组织的模仿者运营,并利用 Prilex 多年来赢得的声誉来赚钱。

在撰写本文时,该网站仍在运行中。

18.png

据称是 Prilex PoS 套件的要价是 3500 美元

19.png

该网站称其所有者过去曾与俄罗斯网络攻击者合作,不过该说法还无法被验证。值得一提的是,研究人员在地下渠道发现了通过 Telegram 聊天销售的 Prilex 恶意软件包被引用,价格在 10000 欧元到 13000 美元之间。研究人员无法确认所提供的是真正的 Prilex 恶意软件。

同时,Prilex 现在使用 Subversion 清楚地表明他们正在与多个开发人员合作。

总结

Prilex 组织非常擅长对信用卡和借记卡交易发起攻击,并开发用于支付处理的软件。这使攻击者能够不断更新他们的工具,以找到绕过授权策略的方法,从而允许他们执行攻击。

经过多年的活动,该组织已经迭代了很多攻击技术。但是,它总是滥用与 PoS 软件相关的流程来拦截和修改与 PIN pad的流量。考虑到这一点,研究人员强烈建议 PoS 软件开发人员在其模块中实施自我保护技术。

PackageKit 是一个自由且开源的应用软件套装,旨在为多种不同的软件包管理系统提供一个一致的高级前端。PackageKit是由Richard Hughes所开发。PackageKit框架漏洞虽然经历了很多次修复但都未得到根本解决。在今年9月苹果推送的macOS 12.6更新中,PackageKit漏洞又被修复了一次。

本文介绍了我们对CVE-2019-8561的调查,CVE-2019-8561是存在于macOS PackageKit框架中的一个漏洞,该框架是一个用于安装软件安装包(PKG文件)的组件。我们将详细介绍苹果是如何修复它的,以及这个漏洞又是如何被利用的。

我们还向苹果披露了超过15个关键的SIP绕过漏洞,并在Power of Community 2022安全会议(POC2022)上讨论了其中一些漏洞。

CVE-2019-8561

2019年3月25日,苹果对CVE-2019-8561进行了修复,该漏洞可能导致根权限升级、签名绕过,并最终绕过苹果的系统完整性保护(SIP)。

就在信息披露三个月后,研究人员杰伦·布拉德利(Jaron Bradley)在第二次海上目标安全会议上谈到了这一漏洞。在对PackageKit框架进行深入研究之后,我们发现CVE-2019-8561仍然影响着当时苹果桌面操作系统macOS (Monterey)的最新版本。类似于它对macOS 10.14(Mojave)的影响,该漏洞可能被利用以获得特权升级并绕过SIP限制。

苹果于2022年10月24日在macOS 13 (Ventura)中再次修复了该漏洞,即CVE-2022-32895。

苹果的SIP

SIP是OS X EI Capitan中引入的一个安全特性,旨在保护Mac操作系统不受潜在恶意软件的影响,这些软件可以修改受保护的文件和文件夹。它限制根用户帐户(也称为“无根”帐户),并限制根用户在操作系统受保护的部件上所能执行的操作。

在引入SIP之前,根用户没有权限限制,这意味着他们可以访问设备上的任何系统文件夹或应用程序。但是由于这个安全特性,只有经过apple签名的进程和那些具有特殊权利的进程才能修改受保护的系统文件。这些过程包括苹果软件更新和安装程序。

system_installd

Mac操作系统通过com.apple.rootless.install和com.apple.rootless.install等特殊授权更新系统文件,其目的是修改系统文件的权限。

这些特殊授权只能由苹果使用,只有少数系统命令与之签署。system_install是这些守护进程服务之一,它负责安装有Apple签名的包。它的核心逻辑在PackageKit框架中实现。由于它的com.apple.rootless.install.heritable的特殊授权,它生成的子进程将在SIP绕过环境中执行。

CVE-2019-8561的技术分析

CVE-2019-8561滥用了典型的TOCTTOU漏洞,TOCTTOU是time-of-check-to-time-of-use的缩写; TOCTTOU可发音为TOCK too。TOCTTOU是指计算机系统的资料与权限等状态的检查与使用之间,因为某特定状态在这段时间已改变所产生的软件漏洞,该漏洞是由安装apple签名PKG文件触发的。

1.png

CVE-2019-8561攻击链

1.安装了带有预安装或后安装脚本的Apple签名的PKG文件。

2. system_install守护进程服务将处理安装请求并验证包签名。如果服务确定包没有被苹果签名,它将中止安装过程。

3.一旦服务通过验证,攻击者就可以用恶意的PKG文件替换PKG文件。

4.该服务将在伪造的、未签名的PKG文件中提取并运行恶意的安装前或安装后脚本。

5.生成的脚本将在具有根权限的SIP旁路上下文中执行。

需要注意的是,漏洞本身很容易理解和利用。然而,我们很好奇苹果是如何修复这个漏洞的。

当我们尝试利用当时最新的操作系统macOS Monterey中的老问题时,我们收到了来自“xar_open_digest_verify”函数的错误消息。

2.png

调用摘要验证的堆栈

可以看出,目录(toc)摘要与预期不匹配。在从PackageKit框架内的调用堆栈中反转调用方函数之后,我们发现摘要是从安装客户机传递的。它还将返回的可扩展归档格式(XAR)指针缓存到它的成员变量中。因此,当它下次需要访问PKG文件时,它将直接从成员变量返回缓存的XAR指针,而不是再次打开XAR文件。

3.png

函数的实现-[PKXARArchive _xar]

此时,修复似乎起作用了,因为它在提取之前验证了摘要。然而,漏洞利用并没有到此为止。

反复提取组件

PKG文件可能非常大,因此不建议在一次获取中将其所有内容读入内存。因此,它将按需读取和提取组件。

反转" -[pkextractinstallooperation _extractAllSpecifiersOnceAndReturnFailingSpecifier:andError:] "函数后,我们发现它调用三个不同的方法来提取相应的文件清单(BOM)文件、有效负载和脚本。

4.png

_extractAllSpecifiersXXX方法的实现

第一个方法“-[pkextractinstallooperation _extractBomForPackageSpecifier:error:]”将在提取BOM文件之前验证摘要,如上图所示。

第二个方法," -[pkextractinstallooperation _extractScriptsForPackageSpecifier:error:] ",将在内部调用" -[PKLeopardPackage scriptsExtractorWithDestination:error:] "函数。

5.png

scriptsExtractorXXX方法的实现

我们还研究了内部函数" -[pkpayloadcopy initWithArchivePath:offset:destination:] "。

6.png

initWithArchivePathXXX方法的实现

我们可以在上图中看到,该函数在第20行直接打开PKG文件,查找返回的具有固定偏移量的文件描述符,并将文件描述符放入bomcopy中,并输入“inputFD”。

接下来,我们分析了“-[pkpayloadcopy run]”函数。

7.png

-[pkpayloadcopy run]方法的实现

这个函数调用API“BOMCopierCopyWithOptions”来从不可信的“inputFD”中提取信息。

API“xar_open_digest_verify”用于打开不受信任的PKG文件是安全的,而API“open”则不安全。这是一个典型的“双重获取”漏洞,“open”API直接打开不受信任的PKG文件,而没有再次验证摘要,因此PKG文件可能被恶意的文件所取代,这使得旧的漏洞再次被利用。

第三个方法“-[pkextractinstallooperation _extractPayloadForPackageSpecifier:error:]”将在内部调用函数“-[PKLeopardPackage payloadExtractorWithDestination:externalRoot:error:]”。

8.png

payloadExtractorXXX方法的实现

在第28行,如果PKG文件中有效负载子路径的偏移值不等于零,则“-[PKLeopardPackage payloadExtractorWithDestination:externalRoot:error:]”函数将调用“-[PKPayloadCopier initWithArchivePath:offset:destination:]”函数。与第二种方法类似,这里还有一个三次提取漏洞。

如果偏移值等于零,它将从一个特殊的外部根路径提取负载,该路径似乎是不受限制的,可以由攻击者控制。这意味着攻击者可以将恶意的有效负载放置在外部根路径中。然而,在撰写本文时,我们无法找到具有外部根路径的Apple签名PKG文件。

漏洞利用

与较早的利用相比,新的利用时间窗口期更短。我们需要在提取之后将PKG文件恢复到原始的apple签名文件,以便稍后通过任何可能的验证。还有一个挑战需要克服:新构建的PKG文件中的脚本或有效负载子路径组件的偏移值必须等于原始文件的偏移值。

为了再次利用这个漏洞,我们首先准备了一个精心制作的PKG文件,其中包含我们的有效负载。在扩展原始的apple签名PKG文件之后,我们清理了旧脚本,并将我们的有效负载放入安装后的脚本中。

9.png

接下来,为了解决脚本子路径组件的偏移值问题,我们编写了一个Python脚本,在死循环中构建新的PKG文件,直到偏移值满足需求。

10.png

一旦精心制作的PKG文件准备好了,就可以通过以下步骤利用该漏洞:

1.安装了带有安装后脚本的Apple签名的PKG文件。

2. system_install守护进程服务将处理安装请求。

3.在函数" -[PKLeopardPackage scriptsExtractorWithDestination:error:] "中,PKG文件将被替换为第8行之后和第16行之前的一个精心制作的文件。

4.在服务调用API“BOMCopierCopyWithOptions”来提取我们精心制作的PKG文件中的恶意脚本后,PKG文件将恢复到原始文件。

5.提取的恶意脚本将由具有根权限的SIP绕过缓解中的system_install生成。

苹果在macOS Ventura上的新补丁

苹果通过以下步骤再次修复了macOS Ventura漏洞:

首先,新的补丁代码通过受信任的XAR指针获得PKG文件子路径的预期校验和属性,该属性由安全API“xar_open_digest_verify”返回。

11.png

新的补丁代码获得预期的校验和

然后,它不会直接从“inputFD”中读取,而是使用ObjC类“IASInputStream”的实例来读取“inputStream”。在提取过程中,它将同时更新“inputStream”摘要。

12.png

从" inputStream "中提取

提取后,它将检查“inputStream”的实际校验和是否等于预期值。如果是,它将继续安装。否则,它将中止整个过程。

13.png

检查真正的校验和

我们认为最好的解决方案是在安装PKG文件之前将其复制到一个安全的地方。应该将apple签名的包复制到受sip保护的位置,其他包应该复制到根拥有的位置。

然而,苹果最新的补丁已经成修复了这个漏洞。

安全建议

苹果发布了针对该漏洞的补丁,并在今年的macOS Ventura中成功解决了该漏洞。未能更新操作系统的用户容易受到根权限升级、签名绕过和SIP绕过的攻击。因此,用户必须安装所有更新以保证系统安全。

PackageKit 是一个自由且开源的应用软件套装,旨在为多种不同的软件包管理系统提供一个一致的高级前端。PackageKit是由Richard Hughes所开发。PackageKit框架漏洞虽然经历了很多次修复但都未得到根本解决。在今年9月苹果推送的macOS 12.6更新中,PackageKit漏洞又被修复了一次。

本文介绍了我们对CVE-2019-8561的调查,CVE-2019-8561是存在于macOS PackageKit框架中的一个漏洞,该框架是一个用于安装软件安装包(PKG文件)的组件。我们将详细介绍苹果是如何修复它的,以及这个漏洞又是如何被利用的。

我们还向苹果披露了超过15个关键的SIP绕过漏洞,并在Power of Community 2022安全会议(POC2022)上讨论了其中一些漏洞。

CVE-2019-8561

2019年3月25日,苹果对CVE-2019-8561进行了修复,该漏洞可能导致根权限升级、签名绕过,并最终绕过苹果的系统完整性保护(SIP)。

就在信息披露三个月后,研究人员杰伦·布拉德利(Jaron Bradley)在第二次海上目标安全会议上谈到了这一漏洞。在对PackageKit框架进行深入研究之后,我们发现CVE-2019-8561仍然影响着当时苹果桌面操作系统macOS (Monterey)的最新版本。类似于它对macOS 10.14(Mojave)的影响,该漏洞可能被利用以获得特权升级并绕过SIP限制。

苹果于2022年10月24日在macOS 13 (Ventura)中再次修复了该漏洞,即CVE-2022-32895。

苹果的SIP

SIP是OS X EI Capitan中引入的一个安全特性,旨在保护Mac操作系统不受潜在恶意软件的影响,这些软件可以修改受保护的文件和文件夹。它限制根用户帐户(也称为“无根”帐户),并限制根用户在操作系统受保护的部件上所能执行的操作。

在引入SIP之前,根用户没有权限限制,这意味着他们可以访问设备上的任何系统文件夹或应用程序。但是由于这个安全特性,只有经过apple签名的进程和那些具有特殊权利的进程才能修改受保护的系统文件。这些过程包括苹果软件更新和安装程序。

system_installd

Mac操作系统通过com.apple.rootless.install和com.apple.rootless.install等特殊授权更新系统文件,其目的是修改系统文件的权限。

这些特殊授权只能由苹果使用,只有少数系统命令与之签署。system_install是这些守护进程服务之一,它负责安装有Apple签名的包。它的核心逻辑在PackageKit框架中实现。由于它的com.apple.rootless.install.heritable的特殊授权,它生成的子进程将在SIP绕过环境中执行。

CVE-2019-8561的技术分析

CVE-2019-8561滥用了典型的TOCTTOU漏洞,TOCTTOU是time-of-check-to-time-of-use的缩写; TOCTTOU可发音为TOCK too。TOCTTOU是指计算机系统的资料与权限等状态的检查与使用之间,因为某特定状态在这段时间已改变所产生的软件漏洞,该漏洞是由安装apple签名PKG文件触发的。

1.png

CVE-2019-8561攻击链

1.安装了带有预安装或后安装脚本的Apple签名的PKG文件。

2. system_install守护进程服务将处理安装请求并验证包签名。如果服务确定包没有被苹果签名,它将中止安装过程。

3.一旦服务通过验证,攻击者就可以用恶意的PKG文件替换PKG文件。

4.该服务将在伪造的、未签名的PKG文件中提取并运行恶意的安装前或安装后脚本。

5.生成的脚本将在具有根权限的SIP旁路上下文中执行。

需要注意的是,漏洞本身很容易理解和利用。然而,我们很好奇苹果是如何修复这个漏洞的。

当我们尝试利用当时最新的操作系统macOS Monterey中的老问题时,我们收到了来自“xar_open_digest_verify”函数的错误消息。

2.png

调用摘要验证的堆栈

可以看出,目录(toc)摘要与预期不匹配。在从PackageKit框架内的调用堆栈中反转调用方函数之后,我们发现摘要是从安装客户机传递的。它还将返回的可扩展归档格式(XAR)指针缓存到它的成员变量中。因此,当它下次需要访问PKG文件时,它将直接从成员变量返回缓存的XAR指针,而不是再次打开XAR文件。

3.png

函数的实现-[PKXARArchive _xar]

此时,修复似乎起作用了,因为它在提取之前验证了摘要。然而,漏洞利用并没有到此为止。

反复提取组件

PKG文件可能非常大,因此不建议在一次获取中将其所有内容读入内存。因此,它将按需读取和提取组件。

反转" -[pkextractinstallooperation _extractAllSpecifiersOnceAndReturnFailingSpecifier:andError:] "函数后,我们发现它调用三个不同的方法来提取相应的文件清单(BOM)文件、有效负载和脚本。

4.png

_extractAllSpecifiersXXX方法的实现

第一个方法“-[pkextractinstallooperation _extractBomForPackageSpecifier:error:]”将在提取BOM文件之前验证摘要,如上图所示。

第二个方法," -[pkextractinstallooperation _extractScriptsForPackageSpecifier:error:] ",将在内部调用" -[PKLeopardPackage scriptsExtractorWithDestination:error:] "函数。

5.png

scriptsExtractorXXX方法的实现

我们还研究了内部函数" -[pkpayloadcopy initWithArchivePath:offset:destination:] "。

6.png

initWithArchivePathXXX方法的实现

我们可以在上图中看到,该函数在第20行直接打开PKG文件,查找返回的具有固定偏移量的文件描述符,并将文件描述符放入bomcopy中,并输入“inputFD”。

接下来,我们分析了“-[pkpayloadcopy run]”函数。

7.png

-[pkpayloadcopy run]方法的实现

这个函数调用API“BOMCopierCopyWithOptions”来从不可信的“inputFD”中提取信息。

API“xar_open_digest_verify”用于打开不受信任的PKG文件是安全的,而API“open”则不安全。这是一个典型的“双重获取”漏洞,“open”API直接打开不受信任的PKG文件,而没有再次验证摘要,因此PKG文件可能被恶意的文件所取代,这使得旧的漏洞再次被利用。

第三个方法“-[pkextractinstallooperation _extractPayloadForPackageSpecifier:error:]”将在内部调用函数“-[PKLeopardPackage payloadExtractorWithDestination:externalRoot:error:]”。

8.png

payloadExtractorXXX方法的实现

在第28行,如果PKG文件中有效负载子路径的偏移值不等于零,则“-[PKLeopardPackage payloadExtractorWithDestination:externalRoot:error:]”函数将调用“-[PKPayloadCopier initWithArchivePath:offset:destination:]”函数。与第二种方法类似,这里还有一个三次提取漏洞。

如果偏移值等于零,它将从一个特殊的外部根路径提取负载,该路径似乎是不受限制的,可以由攻击者控制。这意味着攻击者可以将恶意的有效负载放置在外部根路径中。然而,在撰写本文时,我们无法找到具有外部根路径的Apple签名PKG文件。

漏洞利用

与较早的利用相比,新的利用时间窗口期更短。我们需要在提取之后将PKG文件恢复到原始的apple签名文件,以便稍后通过任何可能的验证。还有一个挑战需要克服:新构建的PKG文件中的脚本或有效负载子路径组件的偏移值必须等于原始文件的偏移值。

为了再次利用这个漏洞,我们首先准备了一个精心制作的PKG文件,其中包含我们的有效负载。在扩展原始的apple签名PKG文件之后,我们清理了旧脚本,并将我们的有效负载放入安装后的脚本中。

9.png

接下来,为了解决脚本子路径组件的偏移值问题,我们编写了一个Python脚本,在死循环中构建新的PKG文件,直到偏移值满足需求。

10.png

一旦精心制作的PKG文件准备好了,就可以通过以下步骤利用该漏洞:

1.安装了带有安装后脚本的Apple签名的PKG文件。

2. system_install守护进程服务将处理安装请求。

3.在函数" -[PKLeopardPackage scriptsExtractorWithDestination:error:] "中,PKG文件将被替换为第8行之后和第16行之前的一个精心制作的文件。

4.在服务调用API“BOMCopierCopyWithOptions”来提取我们精心制作的PKG文件中的恶意脚本后,PKG文件将恢复到原始文件。

5.提取的恶意脚本将由具有根权限的SIP绕过缓解中的system_install生成。

苹果在macOS Ventura上的新补丁

苹果通过以下步骤再次修复了macOS Ventura漏洞:

首先,新的补丁代码通过受信任的XAR指针获得PKG文件子路径的预期校验和属性,该属性由安全API“xar_open_digest_verify”返回。

11.png

新的补丁代码获得预期的校验和

然后,它不会直接从“inputFD”中读取,而是使用ObjC类“IASInputStream”的实例来读取“inputStream”。在提取过程中,它将同时更新“inputStream”摘要。

12.png

从" inputStream "中提取

提取后,它将检查“inputStream”的实际校验和是否等于预期值。如果是,它将继续安装。否则,它将中止整个过程。

13.png

检查真正的校验和

我们认为最好的解决方案是在安装PKG文件之前将其复制到一个安全的地方。应该将apple签名的包复制到受sip保护的位置,其他包应该复制到根拥有的位置。

然而,苹果最新的补丁已经成修复了这个漏洞。

安全建议

苹果发布了针对该漏洞的补丁,并在今年的macOS Ventura中成功解决了该漏洞。未能更新操作系统的用户容易受到根权限升级、签名绕过和SIP绕过的攻击。因此,用户必须安装所有更新以保证系统安全。

2019 年 3 月 4 日,键盘记录恶意软件Agent Tesla被发现。最近,研究人员发现了OriginLogger,这是一个基于Agent Tesla的恶意软件。

我将在本文介绍 OriginLogger 键盘记录器恶意软件,看看它如何处理配置变量的字符串混淆,以及我在查看提取的配置时发现的内容。

Palo Alto Networks 客户通过 Cortex XDR 和具有云交付安全服务(包括 WildFire 和高级威胁预防)的下一代防火墙获得 OriginLogger 及其前身恶意软件 Agent Tesla 的保护。

OriginLogger的发现过程

在搜索过程中,我偶然发现了一个销售“完全无法检测”(FUD)工具的人在 2018 年发布的 YouTube 视频。此人展示了带有链接的 OriginLogger 工具,该链接可以从一个已知的网站购买该工具,该网站会传播恶意软件、漏洞利用等。

1.png

OriginLogger的部分功能

2.png

OriginLogger的全部功能

此外,他们还展示了 Web 面板和恶意软件生成器。

3.png

OriginLogger Web 面板

4.png

OriginLogger 生成器

上图显示的生成器图像对我来说特别有趣,因为它提供了一个默认字符串:facebook、twitter、gmail、instagram、movie、skype、porn、hack、whatsapp、discord,这可能是这个应用程序独有的。果然,在 VirusTotal 上的内容搜索显示了 2022 年 5 月 17 日上传的一个匹配文件(SHA256:595a7ea981a3948c4f387a5a6af54a70a41dd604685c72cbd2a55880c2b702ed)。

5.png

VirusTotal 搜索字符串

由于缺少依赖项,下载并尝试运行此文件会导致错误。但是,知道生成器的文件名 OriginLogger.exe,允许我扩展搜索并找到一个包含运行OriginLogger所需的所有文件的Zip归档文件 (SHA256: b22a0dd33d957f6da3f1cd9687b9b00d0ff2bdf02d28356c1462f3dbfb8708dd)。

6.png

Zip 压缩文件中的捆绑文件

settings.ini 文件包含生成器将使用的配置,在下图中我们可以看到 SmartWords 下列出的先前搜索字符串。

7.png

OriginLogger Builder settings.ini 文件

文件 profile.origin 包含客户在购买 OriginLogger 时注册的嵌入式用户名/密码。

8.png

OriginLogger 生成器登录屏幕

有趣的是,如果你逆向配置文件中的值,就会显示明文密码。

9.png

profile.origin 文件的内容

10.png

OriginLogger 生成器登录屏幕,以明文形式显示密码

当用户登录时,生成器会尝试向 OriginLogger 服务器进行身份验证以验证订阅服务。

此时,我有了两个版本的构建器。第一个(b22a0d*)包含在Zip文件中,编译于2020年9月6日。另一个包含SmartWords字符串(595a7e*)的版本是在2022年6月29日编译的,大约在第一个版本的两年之后。

更高版本通过 TCP/3345 向 IP 23.106.223[.]46 发出身份验证请求。自 2022 年 3 月 3 日起,此 IP 已解析到域 originpro[.]me。此域已解析为以下 IP 地址:

11.png

第二个 IP,204.16.247[.]26,由于解析了这些其他 OriginLogger 相关域而脱颖而出:

12.png

这个尝试连接到一个不同的IP地址进行身份验证。

13.png

PCAP 显示远程 IP 地址

与 originpro[.]me 关联的 IP 地址不同,74.118.138[.]76 不直接解析为任何 OriginLogger 域,而是解析为 0xfd3[.]com。在此域上逆向显示它包含mail.originlogger[.]com的DNS MX和TXT记录。

从 2022 年 3 月 7 日左右开始,相关域开始解析为 IP 23.106.223[.]47,它在最后一个八位字节中比用于 originpro[.]me 的 IP(使用 46)高一个值。

这两个 IP 地址共享了多个 SSL 证书:

14.png

共享 SSL 证书

以IP 23.106.223开头的两个服务器的RDP登录屏幕。X显示有多个帐户的Windows Server 2012 R2服务器。

15.png

RDP登录界面为23.106.223[.]

在进一步搜索该域时,我发现了用户 0xfd3 的 GitHub 配置文件,其中包含下图中所示的两个存储库。

16.png

用户 0xfd GitHub

滴管

由于 Agent Tesla 和 OriginLogger 都是商业化的键盘记录器,因此初始 dropper在不同的活动中会有很大的差异,不应被视为两者都是独一无二的。我将以下内容作为攻击释放 OriginLogger 的真实示例来展示,并表明它们可能非常复杂和模糊。

初始诱饵文档是一个Microsoft Word文件(SHA256: ccc8d5aa5d1a682c20b0806948bf06d1b5d11961887df70c8902d2146c6d1481)。打开时,该文件显示一张德国公民的护照照片以及一张信用卡。我不太确定这对普通用户有多大的吸引力,但无论如何,你都会注意到图像下方包含许多 Excel 工作表,如下图所示。

17.jpeg

诱饵文件

这些工作表中的每一个都包含在单独的嵌入式 Excel 工作簿中,并且完全相同:

18.png

在每个工作簿中都有一个单一的宏,它只是保存要在以下位置执行的命令:

19.png

运行后,它将通过 MSHTA 下载并执行 hxxp://www.asianexportglass[.]shop/p/25.html 上的文件内容。该网站的屏幕截图如下图所示。

20.png

网站看起来合法

该文件在文档中间包含一个嵌入的混淆脚本作为注释。

21.png

网站隐藏评论

取消转换脚本会显示下图中所示的代码,该代码从 BitBucket 片段下载下一个有效负载 (hxxps://bitbucket[.]org/!api/2.0/snippets/12sds/pEEggp/8cb4e7aef7a46445b9885381da074c86ad0d01d6/files/snippet.txt)并使用名为 calsaasdendersw 的计划任务建立持久性,该任务每 83 分钟运行一次,并再次使用 MSHTA 执行 hxxp://www.coalminners[.]shop/p/25.html 中包含的脚本。

22.png

未转换的脚本

BitBucket 网站上托管的代码段包含进一步混淆的 PowerShell 代码和两个编码和压缩的二进制文件。

这两个文件中的第一个(SHA256: 23fcaad34d06f748452d04b003b78eb701c1ab9bf2dd5503cf75ac0387f4e4f8)是使用 CSharp-RunPE 的 C# 反射加载器。该工具用于挖空一个进程并在其中注入另一个可执行文件,在本例中,键盘记录器有效负载将放置在 aspnet_compiler.exe 进程中。

23.png

执行dotNet程序集中包含的方法的PowerShell命令

请注意调用 Execute 方法的 projFUD.PA 类。 Morphisec 在 2021 年发布了一个名为“揭示 Snip3 Crypter,一种高度规避的 RAT 加载器”的博客,他们在其中分析了一个加密器即服务,并使用该工件对加密器的开发者进行指纹识别。

两个文件中的第二个(SHA256:cddca3371378d545e5e4c032951db0e000e2dfc901b5a5e390679adc524e7d9c)是 OriginLogger 有效负载。

OriginLogger 配置

如前所述,此分析的初衷是自动化并从键盘记录器中提取与配置相关的详细信息。为了实现这一点,我首先查看了如何使用与配置相关的字符串。

我不会深入研究恶意软件的任何实际功能,因为它是相当标准的,并且反映了对原有Agent Tesla 变体的分析。为了开始提取与配置相关的细节,我需要弄清楚用户提供的数据是如何存储在恶意软件中的。结果很简单,生成器将获取动态字符串值并将它们连接成一个巨大的文本块,然后将其编码并存储在一个字节数组中,以便在运行时进行解码。一旦恶意软件运行并命中需要字符串的特定函数,例如将屏幕截图上传到的 HTTP 地址,它会将偏移量和字符串长度传递给函数,然后该函数将在块中的该位置显示出文本。

为了说明这一点,你可以在下面看到用于主要文本块的解码逻辑。

224.png

OriginLogger 明文块解码

每个字节通过字节数组中的字节索引进行异或运算,并再次通过值 170 进行异或运算以显示明文。

对于生成器生成的每个示例,此文本块将根据配置的不同而有所不同,因此偏移量和定位将发生变化。查看下图中显示的原始文本很有帮助,但如果不将其连接起来观察,就很难确定边界在哪里结束或开始。

25.png

明文数据块

当需要分析恶意软件时,它也没有帮助,因为你无法辨别什么时候或在哪里使用了哪些内容。为了解决下一个问题,我需要了解OriginLogger如何处理拼接。

下面你可以看到负责分割字符串的函数,后面是包含偏移量和长度的各个方法的开头。

26.png

OriginLogger 字符串函数

在本例中,如果恶意软件在某个时间点调用了 B() 方法,它会将 2、2、27 传递给图像顶部的混淆后的无名函数。第一个整数用于存储解码字符串的数组索引。然后将第二个整数(offset)和第三个整数(length)传递给GetString函数以获取文本。对于这个特定条目,结果值(如下所示)在创建它上传的 HTML 页面期间使用,以显示被盗数据。

微信截图_20220919110744.png

了解字符串解析的工作原理后,我就可以自动提取这些字符串。首先,查看底层中间语言 (IL) 汇编指令会有所帮助。

27.png

用于字符串函数的 OriginLogger IL 指令

对于每一个这样的查找,函数块的结构将保持不变。在上图中的索引 6-8 处,你将看到三个 ldc.i4.X 指令,其中 X 指示一个整数值,该整数值将在调用之前描述的拼接函数之前被推入堆栈。这种整体结构创建了一个框架,然后可以使用该框架来匹配二进制文件中的所有相应函数以进行解析。

利用这一点,我编写了一个脚本来识别编码的字节数组,确定异或值,然后以恶意软件使用的相同方式拼接解码的块。此时,你可以滚动浏览解码的字符串并查找感兴趣的内容。一旦识别出某些内容,知道了偏移量和随后的函数名,就可以利用恶意软件了。

28.png

OriginLogger 解码字符串

此时,我开始重命名混淆的方法以反映它们的实际值,这使得分析更容易。

29.png

OriginLogger FTP 上传函数

需要注意的是,通过将字符串类型指定为委托并识别感兴趣的令牌,可以使用 de4dot 及其动态字符串解密功能来实现相同的字符串反混淆,这对于单个文件分析非常有效。

下图是2020年3月上传的Chrome密码恢复代码:

30.png

Chrome 密码恢复

将上图与带有重命名方法的OriginLogger示例代码进行比较,如下图所示。

31.png

OriginLogger Chrome 密码窃取函数

通过工件识别 OriginLogger

使用这个工具,我提取了1917个不同的配置,这可以深入了解所使用的泄露方法,并允许基于底层基础设施对样本进行聚类。例如,为将键盘记录器和屏幕截图数据上传到的示例配置的 一个URL 是 hxxps://agusanplantation[.]com/new/new/inc/7a5c36cee88e6b.php。该 URL 不再处于活动状态,因此我开始搜索有关它的历史信息,以了解这些 HTTP POST 请求的接收端是什么。通过将域插入 URLScan.io,它会在同一目录中显示面板的登录页面,但更重要的是,在四个月前扫描此主机时,在此主机上观察到了 OriginLogger Web 面板(SHA256:c2a4cf56a675b913d8ee0cb2db3864d66990e940566f57cb97a9161bd262f271)。

32.png

域的 URLScan.io 扫描历史记录

同样,其中一种泄露方法是通过 Telegram 木马。为了使用它们,OriginLogger 需要包含一个 Telegram 木马令牌,以便恶意软件可以与之交互。这为分析正在使用的基础设施提供了另一个独特的机会。在这种情况下,我可以使用令牌以相当于 whoami 命令的方式查询 Telegram,并观察木马创建者使用的名称。下面是一些显示相关命名的示例。

33.png

恶意基础设施

与其他商业销售的键盘记录器一样,OriginLogger 被全球范围内的各种各样的人用于各种恶意目的。

SMTP 仍然是用于泄露数据的主要机制,这很可能是因为:

流量将比其他包含的协议能更好地与正常用户流量融合在一起。攻击者获得被盗的电子邮件账户相对容易。

电子邮件提供商通常提供大量存储空间。

在1909个样本中,被盗数据有296个唯一的电子邮件收件人地址和334个用于发送数据的唯一电子邮件帐户凭证。

FTP在1888个示例中配置,使用56个惟一的FTP服务器和79个惟一的FTP帐户,多个帐户登录到不同的目录,可能基于不同的活动。在56个可访问的服务器中,只有11个被限制,有442个唯一的受害者,有些受害者被记录了数百次。

Web上传到OriginLogger面板的功能紧随其后,并在1866个示例中进行了配置,上传到92个惟一的url。在分析这些url时,用于上传的PHP文件在文件名中显示了字母数字字符的模式,在目录结构中显示了两个额外的模式。查看下图所示的web面板的源代码,可以看到PHP文件名是一些随机字节的MD5值,放在/inc/(传入)目录中。

34.png

用于setup.php的OriginLogger源代码

注意,许多键盘记录器购买者可能没有太多技术经验,并且倾向于使用为他们创造一切的“全方位服务”供应商。我怀疑这是许多 URI 具有相似结构的原因。例如,下面结构始终重复:

微信截图_20220919110839.png

目录的第一级显示不太可能自动生成的值,这可能与帐户相关:

35.png

同样,此目录结构将 inc 更改为 mawa 并将 webpanel 附加到名称:

36.png

对于最后一种泄露方法,我们在1732个样本中发现了Telegram,其中 181 个独特的 Telegram 木马接收被盗数据。除了能够为木马发出 whoami 之外,我们还能够查询与上传被盗信息的渠道相关的信息。

37.png

主要渠道

最后,一个不经常使用的功能是 OriginLogger 能够在感染受害者系统后下载额外的有效负载。在本文讨论的示例中,只有两个配置为下载其他恶意软件。

总结

OriginLogger 与 Agent Tesla 非常相似,是一种商品化的键盘记录器恶意软件,它们之间具有许多重叠的相似之处和代码,但区分两者以进行跟踪和理解非常重要。虽然键盘记录器基本上都是为低级的攻击者服务的,但其危害性也不容小觑。


2019 年 3 月 4 日,键盘记录恶意软件Agent Tesla被发现。最近,研究人员发现了OriginLogger,这是一个基于Agent Tesla的恶意软件。

我将在本文介绍 OriginLogger 键盘记录器恶意软件,看看它如何处理配置变量的字符串混淆,以及我在查看提取的配置时发现的内容。

Palo Alto Networks 客户通过 Cortex XDR 和具有云交付安全服务(包括 WildFire 和高级威胁预防)的下一代防火墙获得 OriginLogger 及其前身恶意软件 Agent Tesla 的保护。

OriginLogger的发现过程

在搜索过程中,我偶然发现了一个销售“完全无法检测”(FUD)工具的人在 2018 年发布的 YouTube 视频。此人展示了带有链接的 OriginLogger 工具,该链接可以从一个已知的网站购买该工具,该网站会传播恶意软件、漏洞利用等。

1.png

OriginLogger的部分功能

2.png

OriginLogger的全部功能

此外,他们还展示了 Web 面板和恶意软件生成器。

3.png

OriginLogger Web 面板

4.png

OriginLogger 生成器

上图显示的生成器图像对我来说特别有趣,因为它提供了一个默认字符串:facebook、twitter、gmail、instagram、movie、skype、porn、hack、whatsapp、discord,这可能是这个应用程序独有的。果然,在 VirusTotal 上的内容搜索显示了 2022 年 5 月 17 日上传的一个匹配文件(SHA256:595a7ea981a3948c4f387a5a6af54a70a41dd604685c72cbd2a55880c2b702ed)。

5.png

VirusTotal 搜索字符串

由于缺少依赖项,下载并尝试运行此文件会导致错误。但是,知道生成器的文件名 OriginLogger.exe,允许我扩展搜索并找到一个包含运行OriginLogger所需的所有文件的Zip归档文件 (SHA256: b22a0dd33d957f6da3f1cd9687b9b00d0ff2bdf02d28356c1462f3dbfb8708dd)。

6.png

Zip 压缩文件中的捆绑文件

settings.ini 文件包含生成器将使用的配置,在下图中我们可以看到 SmartWords 下列出的先前搜索字符串。

7.png

OriginLogger Builder settings.ini 文件

文件 profile.origin 包含客户在购买 OriginLogger 时注册的嵌入式用户名/密码。

8.png

OriginLogger 生成器登录屏幕

有趣的是,如果你逆向配置文件中的值,就会显示明文密码。

9.png

profile.origin 文件的内容

10.png

OriginLogger 生成器登录屏幕,以明文形式显示密码

当用户登录时,生成器会尝试向 OriginLogger 服务器进行身份验证以验证订阅服务。

此时,我有了两个版本的构建器。第一个(b22a0d*)包含在Zip文件中,编译于2020年9月6日。另一个包含SmartWords字符串(595a7e*)的版本是在2022年6月29日编译的,大约在第一个版本的两年之后。

更高版本通过 TCP/3345 向 IP 23.106.223[.]46 发出身份验证请求。自 2022 年 3 月 3 日起,此 IP 已解析到域 originpro[.]me。此域已解析为以下 IP 地址:

11.png

第二个 IP,204.16.247[.]26,由于解析了这些其他 OriginLogger 相关域而脱颖而出:

12.png

这个尝试连接到一个不同的IP地址进行身份验证。

13.png

PCAP 显示远程 IP 地址

与 originpro[.]me 关联的 IP 地址不同,74.118.138[.]76 不直接解析为任何 OriginLogger 域,而是解析为 0xfd3[.]com。在此域上逆向显示它包含mail.originlogger[.]com的DNS MX和TXT记录。

从 2022 年 3 月 7 日左右开始,相关域开始解析为 IP 23.106.223[.]47,它在最后一个八位字节中比用于 originpro[.]me 的 IP(使用 46)高一个值。

这两个 IP 地址共享了多个 SSL 证书:

14.png

共享 SSL 证书

以IP 23.106.223开头的两个服务器的RDP登录屏幕。X显示有多个帐户的Windows Server 2012 R2服务器。

15.png

RDP登录界面为23.106.223[.]

在进一步搜索该域时,我发现了用户 0xfd3 的 GitHub 配置文件,其中包含下图中所示的两个存储库。

16.png

用户 0xfd GitHub

滴管

由于 Agent Tesla 和 OriginLogger 都是商业化的键盘记录器,因此初始 dropper在不同的活动中会有很大的差异,不应被视为两者都是独一无二的。我将以下内容作为攻击释放 OriginLogger 的真实示例来展示,并表明它们可能非常复杂和模糊。

初始诱饵文档是一个Microsoft Word文件(SHA256: ccc8d5aa5d1a682c20b0806948bf06d1b5d11961887df70c8902d2146c6d1481)。打开时,该文件显示一张德国公民的护照照片以及一张信用卡。我不太确定这对普通用户有多大的吸引力,但无论如何,你都会注意到图像下方包含许多 Excel 工作表,如下图所示。

17.jpeg

诱饵文件

这些工作表中的每一个都包含在单独的嵌入式 Excel 工作簿中,并且完全相同:

18.png

在每个工作簿中都有一个单一的宏,它只是保存要在以下位置执行的命令:

19.png

运行后,它将通过 MSHTA 下载并执行 hxxp://www.asianexportglass[.]shop/p/25.html 上的文件内容。该网站的屏幕截图如下图所示。

20.png

网站看起来合法

该文件在文档中间包含一个嵌入的混淆脚本作为注释。

21.png

网站隐藏评论

取消转换脚本会显示下图中所示的代码,该代码从 BitBucket 片段下载下一个有效负载 (hxxps://bitbucket[.]org/!api/2.0/snippets/12sds/pEEggp/8cb4e7aef7a46445b9885381da074c86ad0d01d6/files/snippet.txt)并使用名为 calsaasdendersw 的计划任务建立持久性,该任务每 83 分钟运行一次,并再次使用 MSHTA 执行 hxxp://www.coalminners[.]shop/p/25.html 中包含的脚本。

22.png

未转换的脚本

BitBucket 网站上托管的代码段包含进一步混淆的 PowerShell 代码和两个编码和压缩的二进制文件。

这两个文件中的第一个(SHA256: 23fcaad34d06f748452d04b003b78eb701c1ab9bf2dd5503cf75ac0387f4e4f8)是使用 CSharp-RunPE 的 C# 反射加载器。该工具用于挖空一个进程并在其中注入另一个可执行文件,在本例中,键盘记录器有效负载将放置在 aspnet_compiler.exe 进程中。

23.png

执行dotNet程序集中包含的方法的PowerShell命令

请注意调用 Execute 方法的 projFUD.PA 类。 Morphisec 在 2021 年发布了一个名为“揭示 Snip3 Crypter,一种高度规避的 RAT 加载器”的博客,他们在其中分析了一个加密器即服务,并使用该工件对加密器的开发者进行指纹识别。

两个文件中的第二个(SHA256:cddca3371378d545e5e4c032951db0e000e2dfc901b5a5e390679adc524e7d9c)是 OriginLogger 有效负载。

OriginLogger 配置

如前所述,此分析的初衷是自动化并从键盘记录器中提取与配置相关的详细信息。为了实现这一点,我首先查看了如何使用与配置相关的字符串。

我不会深入研究恶意软件的任何实际功能,因为它是相当标准的,并且反映了对原有Agent Tesla 变体的分析。为了开始提取与配置相关的细节,我需要弄清楚用户提供的数据是如何存储在恶意软件中的。结果很简单,生成器将获取动态字符串值并将它们连接成一个巨大的文本块,然后将其编码并存储在一个字节数组中,以便在运行时进行解码。一旦恶意软件运行并命中需要字符串的特定函数,例如将屏幕截图上传到的 HTTP 地址,它会将偏移量和字符串长度传递给函数,然后该函数将在块中的该位置显示出文本。

为了说明这一点,你可以在下面看到用于主要文本块的解码逻辑。

224.png

OriginLogger 明文块解码

每个字节通过字节数组中的字节索引进行异或运算,并再次通过值 170 进行异或运算以显示明文。

对于生成器生成的每个示例,此文本块将根据配置的不同而有所不同,因此偏移量和定位将发生变化。查看下图中显示的原始文本很有帮助,但如果不将其连接起来观察,就很难确定边界在哪里结束或开始。

25.png

明文数据块

当需要分析恶意软件时,它也没有帮助,因为你无法辨别什么时候或在哪里使用了哪些内容。为了解决下一个问题,我需要了解OriginLogger如何处理拼接。

下面你可以看到负责分割字符串的函数,后面是包含偏移量和长度的各个方法的开头。

26.png

OriginLogger 字符串函数

在本例中,如果恶意软件在某个时间点调用了 B() 方法,它会将 2、2、27 传递给图像顶部的混淆后的无名函数。第一个整数用于存储解码字符串的数组索引。然后将第二个整数(offset)和第三个整数(length)传递给GetString函数以获取文本。对于这个特定条目,结果值(如下所示)在创建它上传的 HTML 页面期间使用,以显示被盗数据。

微信截图_20220919110744.png

了解字符串解析的工作原理后,我就可以自动提取这些字符串。首先,查看底层中间语言 (IL) 汇编指令会有所帮助。

27.png

用于字符串函数的 OriginLogger IL 指令

对于每一个这样的查找,函数块的结构将保持不变。在上图中的索引 6-8 处,你将看到三个 ldc.i4.X 指令,其中 X 指示一个整数值,该整数值将在调用之前描述的拼接函数之前被推入堆栈。这种整体结构创建了一个框架,然后可以使用该框架来匹配二进制文件中的所有相应函数以进行解析。

利用这一点,我编写了一个脚本来识别编码的字节数组,确定异或值,然后以恶意软件使用的相同方式拼接解码的块。此时,你可以滚动浏览解码的字符串并查找感兴趣的内容。一旦识别出某些内容,知道了偏移量和随后的函数名,就可以利用恶意软件了。

28.png

OriginLogger 解码字符串

此时,我开始重命名混淆的方法以反映它们的实际值,这使得分析更容易。

29.png

OriginLogger FTP 上传函数

需要注意的是,通过将字符串类型指定为委托并识别感兴趣的令牌,可以使用 de4dot 及其动态字符串解密功能来实现相同的字符串反混淆,这对于单个文件分析非常有效。

下图是2020年3月上传的Chrome密码恢复代码:

30.png

Chrome 密码恢复

将上图与带有重命名方法的OriginLogger示例代码进行比较,如下图所示。

31.png

OriginLogger Chrome 密码窃取函数

通过工件识别 OriginLogger

使用这个工具,我提取了1917个不同的配置,这可以深入了解所使用的泄露方法,并允许基于底层基础设施对样本进行聚类。例如,为将键盘记录器和屏幕截图数据上传到的示例配置的 一个URL 是 hxxps://agusanplantation[.]com/new/new/inc/7a5c36cee88e6b.php。该 URL 不再处于活动状态,因此我开始搜索有关它的历史信息,以了解这些 HTTP POST 请求的接收端是什么。通过将域插入 URLScan.io,它会在同一目录中显示面板的登录页面,但更重要的是,在四个月前扫描此主机时,在此主机上观察到了 OriginLogger Web 面板(SHA256:c2a4cf56a675b913d8ee0cb2db3864d66990e940566f57cb97a9161bd262f271)。

32.png

域的 URLScan.io 扫描历史记录

同样,其中一种泄露方法是通过 Telegram 木马。为了使用它们,OriginLogger 需要包含一个 Telegram 木马令牌,以便恶意软件可以与之交互。这为分析正在使用的基础设施提供了另一个独特的机会。在这种情况下,我可以使用令牌以相当于 whoami 命令的方式查询 Telegram,并观察木马创建者使用的名称。下面是一些显示相关命名的示例。

33.png

恶意基础设施

与其他商业销售的键盘记录器一样,OriginLogger 被全球范围内的各种各样的人用于各种恶意目的。

SMTP 仍然是用于泄露数据的主要机制,这很可能是因为:

流量将比其他包含的协议能更好地与正常用户流量融合在一起。攻击者获得被盗的电子邮件账户相对容易。

电子邮件提供商通常提供大量存储空间。

在1909个样本中,被盗数据有296个唯一的电子邮件收件人地址和334个用于发送数据的唯一电子邮件帐户凭证。

FTP在1888个示例中配置,使用56个惟一的FTP服务器和79个惟一的FTP帐户,多个帐户登录到不同的目录,可能基于不同的活动。在56个可访问的服务器中,只有11个被限制,有442个唯一的受害者,有些受害者被记录了数百次。

Web上传到OriginLogger面板的功能紧随其后,并在1866个示例中进行了配置,上传到92个惟一的url。在分析这些url时,用于上传的PHP文件在文件名中显示了字母数字字符的模式,在目录结构中显示了两个额外的模式。查看下图所示的web面板的源代码,可以看到PHP文件名是一些随机字节的MD5值,放在/inc/(传入)目录中。

34.png

用于setup.php的OriginLogger源代码

注意,许多键盘记录器购买者可能没有太多技术经验,并且倾向于使用为他们创造一切的“全方位服务”供应商。我怀疑这是许多 URI 具有相似结构的原因。例如,下面结构始终重复:

微信截图_20220919110839.png

目录的第一级显示不太可能自动生成的值,这可能与帐户相关:

35.png

同样,此目录结构将 inc 更改为 mawa 并将 webpanel 附加到名称:

36.png

对于最后一种泄露方法,我们在1732个样本中发现了Telegram,其中 181 个独特的 Telegram 木马接收被盗数据。除了能够为木马发出 whoami 之外,我们还能够查询与上传被盗信息的渠道相关的信息。

37.png

主要渠道

最后,一个不经常使用的功能是 OriginLogger 能够在感染受害者系统后下载额外的有效负载。在本文讨论的示例中,只有两个配置为下载其他恶意软件。

总结

OriginLogger 与 Agent Tesla 非常相似,是一种商品化的键盘记录器恶意软件,它们之间具有许多重叠的相似之处和代码,但区分两者以进行跟踪和理解非常重要。虽然键盘记录器基本上都是为低级的攻击者服务的,但其危害性也不容小觑。


在趋势科技最近发布的漏洞报告中,研究团队的Guy Lederfein和Dusan Stevanovic详细介绍了Sophos防火墙最近打过补丁的代码注入漏洞。该漏洞是由于对发送到Controller终端的“JSON”参数中提交的JSON key进行了不正确的验证。成功利用此漏洞可能导致以根用户的权限执行远程代码。以下是关于CVE-2022-3236的介绍。

Sophos最近修复了Sophos Firewall v19.0 MR1(19.0.1)及以前版本中的代码注入漏洞。此漏洞是由于对发送到Controller终端的“JSON”参数中提交的JSON key进行了不正确的验证。未经身份验证的远程攻击者可以通过向受影响的服务器发送精心编写的请求来利用此漏洞。成功利用此漏洞可能导致使用根用户的权限进行远程代码执行。

漏洞利用

Sophos Firewall是一种网络安全解决方案,它可以部署在专门构建的设备、云网络(AWS/Azure)、虚拟设备或x86 Intel硬件上的软件设备上。防火墙应用支持多种网络安全特性,包括应用感知路由、TLS检测、深层包检测、远程接入VPN、日志、报表等。Sophos Firewall公开了一个web管理控制台,用于通过TCP端口4444上的HTTPS管理设备的配置。此外,Sophos Firewall公开了一个用户门户,用于更新用户的详细信息或通过TCP端口443上的HTTPS下载身份验证客户端。

HTTP是RFC 7230-7237和其他RFC中描述的请求/响应协议。客户端向服务器发送请求,服务器又将响应发送回客户端。HTTP请求由请求行、各种标题、空行和可选消息正文组成:

其中CRLF表示新行序列回车(CR),后跟换行(LF)。根据使用的方法和Content-Type标头,参数可以在RequestURI或消息正文中作为名称-值对从客户端传递到服务器。例如,使用GET方法传递一个名为“param”、值为“1”的参数的简单HTTP请求可能如下所示:

使用POST方法的相应HTTP请求可能如下所示:

JavaScript对象表示法(JSON)是一种数据交换格式,用于创建设备可解析、人类可读的输出。JSON对象具有以下语法:

1.对象用花括号{}括起来。

2.对象由逗号(“,”)字符分隔的零个或多个项目组成。

3.项目由秘钥和值组成。秘钥的值由冒号(“:”)字符分隔。

4.秘钥必须是用引号括起来的字符串。

5.值必须是有效的类型。JSON定义了7种值类型:字符串、数字、对象、数组、true、false和null。

6.数组是用方括号[]括起来的对象。

7.数组由零个或多个字符串、数字、JSON对象、数组、布尔值或由逗号(“,”)字符分隔的空类型对象组成。

JSON对象示例如下:   {“name”:”bob”, “age”:30}。

由Sophos Firewall公开的web管理和用户门户web界面都运行在Apache httpd服务器后面的Jetty服务器上。通过这些接口发出的配置和诊断请求通过请求提交给Controller servlet。这个servlet基于模式HTTP请求参数检索适当的EventBean对象。例如,如果模式HTTP请求参数设置为151或451,则分别调用WebAdminAuth或UserPortalAuth类来处理请求。在每个类中,都会调用CSCClient类的generateAndSendAjaxEvent()方法。

该方法解析json HTTP请求参数,并修改解析对象中的特定字段。然后调用send()方法,该方法反过来调用_send(),后者根据相关EventBean对象的模式添加模式JSON参数。然后,它将创建的JSON对象作为字符串(包括适当的标头)通过TCP或UDP端口299发送到本地CSC服务器。

当CSC服务器接收到Jetty服务器提交的JSON对象时,它会验证通过Perl脚本CyberAPIArch.pm中的validateJSON()方法提交的JSON对象。如果JSON对象包含一个名为_discriminator的项,则调用getValidationHash()方法。该方法遍历_discriminator Perl哈希的每个秘钥,表示字段名。每个字段名都与一个描述字段值和对象名之间映射的JSON对象相关联。解析收到的JSON对象时解析的一些Perl对象(natrule、securitypolicy、hotspot等)包含一个带有_discriminator项的模板,其中包含字段值及其关联对象之间特定字段名的映射。该方法遍历字段值,以检查提交的JSON对象是否包含具有引用名称和值的字段。如果是,它将检索关联的对象名,并尝试使用eval函数将其解析为一个对象。

Sophos防火墙存在代码注入漏洞,此漏洞是由于对发送到Controller终端的“JSON”参数中提交的JSON key进行了不正确的验证。可以在HTTP请求中设置_discriminator项,经过一些修改后,这个JSON对象被发送到CSC服务器。但是,_discriminator项目集是未经修改发送的。一旦使用Perl脚本CyberAPIArch.pm的validateJSON() 方法被调用时,它将检测这个项并调用getValidationHash()。Perl方法遍历$hashObj哈希对象,该对象包含一个名为_discriminator的项,其值是一个嵌套的哈希,其中的值项设置为发送的原始请求中的_discriminator项的值。

此值项被视为包含映射到对象名称的字段值的嵌套哈希。因此,如果最初提交的JSON对象包含一个名为value的项,其值设置为这个嵌套哈希中的一个值,则将使用eval函数解析关联的对象名称。由于原始请求中的_discriminator项可以设置为带有值和对象名称之间的任意映射的JSON对象,因此可以提交恶意对象并将其连接到eval函数中,从而导致代码注入。

Sophos尝试使用RequestCheckFilter Java对象对请求参数(包括JSON对象)执行输入验证。该过滤器检测带有非ASCII可打印字符的请求参数和JSON key。但是,仍然可以提交包含ASCII可打印字符的任意请求参数和JSON key,包括_discriminator项。

未经身份验证的远程攻击者可以通过向目标服务器发送精心编写的请求来利用此漏洞。成功利用此漏洞可能导致在服务器上运行任意Perl命令,从而导致以root用户的权限执行远程代码。

源代码

下面的代码片段摘自Sophos Firewall 19.0.1版本,并由趋势科技添加了额外的注释。

来自反编译的Java类cyberoam.sessionmanagement.RequestCheckFilter:

来自Perl脚本CyberAPIArch.pm:

检测攻击

为了检测试图利用该漏洞的攻击,检测设备必须监视并解析端口443/TCP和4444/TCP上的流量。请注意,流量是用SSL/TLS加密的。在继续进行下一步骤之前,检测设备必须对流量进行解密。

基于被监视的TCP端口,检测设备必须对包含以下字符串的Request- URI的HTTP GET和POST请求进行检测:

对Webadmin Controller终端(TCP端口4444)的请求可以使用多部分/表单数据编码。

Multipart/form-data 由多个部分组成,每个部分都包含一个Content Disposition标头。每个部分由一串字符分隔。分隔部分的字符串由Content-Type标题行上的boundary关键字定义,它被设置为" multipart/form-data "。Content-Disposition标头包含一个名称参数,描述要返回的表单元素。每个部分中可能会出现额外的标题行。每一行由一个新的行序列分隔。标头文件以两个连续的新行结束。下面是表单元素的数据,如果对象被分离并存储在一个单独的文件中,则filename参数提供要使用的建议文件名。下面是一个文件项的Content-Disposition标头示例,其中boundary关键字是" TMSR ":

如果发现对上述终端的请求,检测设备必须根据Content-Type标头中描述的编码解析其参数,并搜索json参数。如果发现,检测设备必须使用以下任何合适的方法检查json参数值。

方法1:如果检测设备能够解析JSON,它必须将JSON参数解析为JSON对象。检测设备必须解析密钥为字符串“_discriminator”的任何项(可能嵌套)。如果被发现,应该认为该流量是恶意的,因为利用该漏洞的攻击很可能正在进行中。

方法2:如果检测设备不具备解析JSON的能力,则必须将JSON参数作为字符串进行检查,并检查其是否包含字符串“_discriminator”。如果被发现,应该认为该流量是恶意的,因为利用该漏洞的攻击很可能正在进行中。

需要注意的其他事项:

1.参数名称和值可能是URL编码的,必须在应用上述检测之前进行解码;

2.URI和参数名称(“json”)和值(“_discriminator”)的字符串匹配必须以区分大小写的方式执行;

3.HTTP标头名称(即“Content-Type”)和值(即“multipart/form data”)的字符串匹配必须以不区分大小写的方式执行。

在趋势科技最近发布的漏洞报告中,研究团队的Guy Lederfein和Dusan Stevanovic详细介绍了Sophos防火墙最近打过补丁的代码注入漏洞。该漏洞是由于对发送到Controller终端的“JSON”参数中提交的JSON key进行了不正确的验证。成功利用此漏洞可能导致以根用户的权限执行远程代码。以下是关于CVE-2022-3236的介绍。

Sophos最近修复了Sophos Firewall v19.0 MR1(19.0.1)及以前版本中的代码注入漏洞。此漏洞是由于对发送到Controller终端的“JSON”参数中提交的JSON key进行了不正确的验证。未经身份验证的远程攻击者可以通过向受影响的服务器发送精心编写的请求来利用此漏洞。成功利用此漏洞可能导致使用根用户的权限进行远程代码执行。

漏洞利用

Sophos Firewall是一种网络安全解决方案,它可以部署在专门构建的设备、云网络(AWS/Azure)、虚拟设备或x86 Intel硬件上的软件设备上。防火墙应用支持多种网络安全特性,包括应用感知路由、TLS检测、深层包检测、远程接入VPN、日志、报表等。Sophos Firewall公开了一个web管理控制台,用于通过TCP端口4444上的HTTPS管理设备的配置。此外,Sophos Firewall公开了一个用户门户,用于更新用户的详细信息或通过TCP端口443上的HTTPS下载身份验证客户端。

HTTP是RFC 7230-7237和其他RFC中描述的请求/响应协议。客户端向服务器发送请求,服务器又将响应发送回客户端。HTTP请求由请求行、各种标题、空行和可选消息正文组成:

其中CRLF表示新行序列回车(CR),后跟换行(LF)。根据使用的方法和Content-Type标头,参数可以在RequestURI或消息正文中作为名称-值对从客户端传递到服务器。例如,使用GET方法传递一个名为“param”、值为“1”的参数的简单HTTP请求可能如下所示:

使用POST方法的相应HTTP请求可能如下所示:

JavaScript对象表示法(JSON)是一种数据交换格式,用于创建设备可解析、人类可读的输出。JSON对象具有以下语法:

1.对象用花括号{}括起来。

2.对象由逗号(“,”)字符分隔的零个或多个项目组成。

3.项目由秘钥和值组成。秘钥的值由冒号(“:”)字符分隔。

4.秘钥必须是用引号括起来的字符串。

5.值必须是有效的类型。JSON定义了7种值类型:字符串、数字、对象、数组、true、false和null。

6.数组是用方括号[]括起来的对象。

7.数组由零个或多个字符串、数字、JSON对象、数组、布尔值或由逗号(“,”)字符分隔的空类型对象组成。

JSON对象示例如下:   {“name”:”bob”, “age”:30}。

由Sophos Firewall公开的web管理和用户门户web界面都运行在Apache httpd服务器后面的Jetty服务器上。通过这些接口发出的配置和诊断请求通过请求提交给Controller servlet。这个servlet基于模式HTTP请求参数检索适当的EventBean对象。例如,如果模式HTTP请求参数设置为151或451,则分别调用WebAdminAuth或UserPortalAuth类来处理请求。在每个类中,都会调用CSCClient类的generateAndSendAjaxEvent()方法。

该方法解析json HTTP请求参数,并修改解析对象中的特定字段。然后调用send()方法,该方法反过来调用_send(),后者根据相关EventBean对象的模式添加模式JSON参数。然后,它将创建的JSON对象作为字符串(包括适当的标头)通过TCP或UDP端口299发送到本地CSC服务器。

当CSC服务器接收到Jetty服务器提交的JSON对象时,它会验证通过Perl脚本CyberAPIArch.pm中的validateJSON()方法提交的JSON对象。如果JSON对象包含一个名为_discriminator的项,则调用getValidationHash()方法。该方法遍历_discriminator Perl哈希的每个秘钥,表示字段名。每个字段名都与一个描述字段值和对象名之间映射的JSON对象相关联。解析收到的JSON对象时解析的一些Perl对象(natrule、securitypolicy、hotspot等)包含一个带有_discriminator项的模板,其中包含字段值及其关联对象之间特定字段名的映射。该方法遍历字段值,以检查提交的JSON对象是否包含具有引用名称和值的字段。如果是,它将检索关联的对象名,并尝试使用eval函数将其解析为一个对象。

Sophos防火墙存在代码注入漏洞,此漏洞是由于对发送到Controller终端的“JSON”参数中提交的JSON key进行了不正确的验证。可以在HTTP请求中设置_discriminator项,经过一些修改后,这个JSON对象被发送到CSC服务器。但是,_discriminator项目集是未经修改发送的。一旦使用Perl脚本CyberAPIArch.pm的validateJSON() 方法被调用时,它将检测这个项并调用getValidationHash()。Perl方法遍历$hashObj哈希对象,该对象包含一个名为_discriminator的项,其值是一个嵌套的哈希,其中的值项设置为发送的原始请求中的_discriminator项的值。

此值项被视为包含映射到对象名称的字段值的嵌套哈希。因此,如果最初提交的JSON对象包含一个名为value的项,其值设置为这个嵌套哈希中的一个值,则将使用eval函数解析关联的对象名称。由于原始请求中的_discriminator项可以设置为带有值和对象名称之间的任意映射的JSON对象,因此可以提交恶意对象并将其连接到eval函数中,从而导致代码注入。

Sophos尝试使用RequestCheckFilter Java对象对请求参数(包括JSON对象)执行输入验证。该过滤器检测带有非ASCII可打印字符的请求参数和JSON key。但是,仍然可以提交包含ASCII可打印字符的任意请求参数和JSON key,包括_discriminator项。

未经身份验证的远程攻击者可以通过向目标服务器发送精心编写的请求来利用此漏洞。成功利用此漏洞可能导致在服务器上运行任意Perl命令,从而导致以root用户的权限执行远程代码。

源代码

下面的代码片段摘自Sophos Firewall 19.0.1版本,并由趋势科技添加了额外的注释。

来自反编译的Java类cyberoam.sessionmanagement.RequestCheckFilter:

来自Perl脚本CyberAPIArch.pm:

检测攻击

为了检测试图利用该漏洞的攻击,检测设备必须监视并解析端口443/TCP和4444/TCP上的流量。请注意,流量是用SSL/TLS加密的。在继续进行下一步骤之前,检测设备必须对流量进行解密。

基于被监视的TCP端口,检测设备必须对包含以下字符串的Request- URI的HTTP GET和POST请求进行检测:

对Webadmin Controller终端(TCP端口4444)的请求可以使用多部分/表单数据编码。

Multipart/form-data 由多个部分组成,每个部分都包含一个Content Disposition标头。每个部分由一串字符分隔。分隔部分的字符串由Content-Type标题行上的boundary关键字定义,它被设置为" multipart/form-data "。Content-Disposition标头包含一个名称参数,描述要返回的表单元素。每个部分中可能会出现额外的标题行。每一行由一个新的行序列分隔。标头文件以两个连续的新行结束。下面是表单元素的数据,如果对象被分离并存储在一个单独的文件中,则filename参数提供要使用的建议文件名。下面是一个文件项的Content-Disposition标头示例,其中boundary关键字是" TMSR ":

如果发现对上述终端的请求,检测设备必须根据Content-Type标头中描述的编码解析其参数,并搜索json参数。如果发现,检测设备必须使用以下任何合适的方法检查json参数值。

方法1:如果检测设备能够解析JSON,它必须将JSON参数解析为JSON对象。检测设备必须解析密钥为字符串“_discriminator”的任何项(可能嵌套)。如果被发现,应该认为该流量是恶意的,因为利用该漏洞的攻击很可能正在进行中。

方法2:如果检测设备不具备解析JSON的能力,则必须将JSON参数作为字符串进行检查,并检查其是否包含字符串“_discriminator”。如果被发现,应该认为该流量是恶意的,因为利用该漏洞的攻击很可能正在进行中。

需要注意的其他事项:

1.参数名称和值可能是URL编码的,必须在应用上述检测之前进行解码;

2.URI和参数名称(“json”)和值(“_discriminator”)的字符串匹配必须以区分大小写的方式执行;

3.HTTP标头名称(即“Content-Type”)和值(即“multipart/form data”)的字符串匹配必须以不区分大小写的方式执行。