En

FIN8 APT组织新动作:一起 “精心布置” 的定向窃密活动

作者:腾讯洋葱反入侵系统|七夜、vspiders、conan公布时间:2021-04-30阅读次数:1314评论:0

分享

作者: [腾讯洋葱反入侵系统] vspiders、七夜、柯南

1. 概述

4月11日,腾讯洋葱反入侵团队监测到一起PyPI软件供应链攻击事件,经过追溯疑似是由境外APT组织 FIN8首次使用该手法进行的针对性攻击,攻击者在PyPI官方仓库伪造上传了guzzlehttp恶意包,该恶意包通过伪造著名PHP库 guzzlehttp/guzzle的名称 ,诱导用户认为是官方包的Python版本而进行下载安装,试图窃取 chrome浏览器用户数据、社交账号数据(微信、QQ、Telegram、Skype等),桌面文件、主机数据等敏感信息。

由于guzzlehttp/guzzle库非常流行,受众很广,而且国内开源镜像站均同步于PyPI官方仓库,所以该问题不仅会通过官方仓库,还会通过各个开源镜像站影响用户,导致影响范围成倍扩大。目前已通知官方下架,从下载量统计仅PyPI官方渠道就有数百名用户被攻击,国内镜像站感染用户数暂无统计数据。

2. 事件影响

(1) 境外APT组织 FIN8 定向攻击

经过溯源定位确认此次软件供应链攻击是由FIN8 组织发起的定向攻击,攻击目标是guzzlehttp/guzzle库的用户。

FIN8 是⼀个⽹络⾦融犯罪组织,它的典型攻击模式是从销售点(PoS)的环境中窃取
⽀付卡的数据,特别是针对零售商、餐馆和酒店⾏业的销售点。该组织⾄少从2016年以来就⼀直很活跃,但是在2019年中期沉寂了1年多时间,在2020年回归之后,陆续被国外安全⼚家发现并追踪其最新攻击⾏为,FIN8组织详细介绍见附录文章。

此外根据国内外公开的FIN8攻击报告统计,此次发现的软件供应链攻击行为尚属首次,疑似FIN8组织在软件供应链上尝试新的攻击方式。

(2) guzzlehttp/guzzle简介

guzzlehttp/guzzle 是一个非常流行的PHP库,主要应用场景是作为 HTTP客户端,特点是可以便捷发送HTTP请求,并能与Web服务快速集成。guzzlehttp/guzzle使用范围广,影响力大,拥有庞大的用户量。

1、guzzlehttp/guzzle所在github仓库 (https://github.com/guzzle/guzzle/) star数量:20.7k,fork数量:2.2k , 在2020年最流行的100个PHP库排行榜中排名第8,迭代更新接近10年。

2、根据 PHP Package Repository(https://packagist.org/packages/guzzlehttp/guzzle) 的数据统计,guzzlehttp/guzzle库 已下载安装 263,628,670 次,有至少 4,905 PHP框架/应用对此库有依赖。

(3) 受影响用户地区分布

根据PyPI官方仓库的下载记录,在guzzlehttp恶意包从4月11日上线到4月15日被官方下架期间,仅从PyPI官方仓库下载就达数百次,来源IP涉及超过6个国家或地区。

但由于PyPI代理源的普遍使用,大部分用户并不会直接从PyPI官方仓库进行下载安装,因此实际感染数量将远大于此。guzzlehttp恶意包感染地区分布如下图所示:

3. 供应链攻击手法

(1) 采用跨平台抢注手法

跨平台抢注指的是 软件包官方仅在单一平台提供软件的下载和安装,而在其他平台没有提供相应方式,攻击者可以通过在不同平台注册相同或相似的包名上传恶意软件,诱导用户下载安装。这种方式对拥有庞大用户量的软件包,尤其有效。

(2) 项目主页伪装

为了增加迷惑性,对guzzlehttp钓鱼包所在的PyPI仓库主页进行一定程度的伪装,直接复用guzzlehttp/guzzle官方对软件包的描述,同时将项目链接替换为 guzzlehttp/guzzle官方github仓库地址。

4. 恶意样本分析

guzzlehttp钓鱼包在执行安装时,会将两个b64编码内容解密并落地到文件执行,主要会释放两个文件。

(1) 植入Python后门

第一个b64字符串 解码文件为一个python后门,通过app.omitrezor.com进行通讯,并远程执行该C&C服务器返回的指令。代码如下:

(2) 敏感信息窃取

第二个b64字符串解码后的文件功能主要用于macos、windows的敏感信息窃取。

根据系统的不同,分别使用php脚本和exe进行信息窃密,两个文件的功能相似,都会窃取机器的各种敏感数据并压缩后发送至collect-sync.jsdelivrs.com。

通过分析,恶意二进制样本首先会对win进行检测,主要会对路径、uname和网络进行初始化判断。

之后恶意文件会获取机器的IP、mac、hostname等信息,并将消息封装发送至远程CC。

该恶意样本提供了两种运作方式,如果执行时带有参数,则通过指令获取指定的敏感信息

否则默认发送全部信息。

收集的敏感信息列表如下:
● 微信、QQ、Telegram、Skype等社交账号数据
● Chrome浏览器:包括cookies、书签、历史、设置、最常访问、网页缓存和登录信息
● PC桌面文件
● 主机信息:系统名称,用户名,MAC,IP,进程列表

5.IOC

域名:
cdn-93887294.img.sj.mozilla.work
collect-sync.jsdelivrs.com
app.omitrezor.com

MD5:
d6ca8e84e08a5bc3976edb84db09c33d

6. 溯源追踪

(1) 木马样本的通信地址2020年曾经被FIN8组织多次使用

经分析恶意样本通信域名cdn-93887294.img.sj.mozilla.work,发现其中的 mozilla.work 并非mozilla官方使用的域名,在2020年8月通过域名服务商NameCheap注册。

  1. Domain Name: MOZILLA.WORK
  2. Registry Domain ID: D_01C33DB7_83EF59A6AF9648C680151F591F3C00EF_00000173B05DC62F-WORK
  3. Registrar WHOIS Server: whois.namecheap.com
  4. Registrar URL: https://www.namecheap.com/
  5. Updated Date: 2020-08-12T07:29:02Z
  6. Creation Date: 2020-08-02T18:10:02Z
  7. Registry Expiry Date: 2021-08-02T18:10:02Z
  8. Registrar: NameCheap, Inc.
  9. Registrar IANA ID: 1068

经过分析发现,该域名cdn-93887294.img.sj.mozilla.work是一个伪造的cdn域名,结合威胁情报跟踪追溯到 FIN8 APT组织,历史上至少两个以上的FIN8 APT 木马曾与该地址存在过通信。

上图中已定性的FIN8木马 IOC信息如下:
SHA-256:
cb4b6c107d58ddbb0d3f1725c3097b416c20e700bbfa9dfe2f8b97ad5ca9eeed
3b52ee03e6b7e04148a8e76598519fde54e01508b8f5651394008ef76805809a

(2) 窃密木马样本 和 FIN8 历史某样本高度相似


通过mozilla.work 域名和发现时间进行关联,找到以上FIN8历史样本,发现hxxp://cdn-93887294.img.sj.mozilla.work/qs/urlsc.exe 的代码结构与本次供应链攻击的样本 hxxp://cdn-93887294.img.sj.mozilla.work/collect.exe 极其相似。

由此推测本次供应链攻击事件是FIN8组织发起,用于利用新型供应链攻击窃取用户敏感信息。

7. 总结

近几年脚本语言社区因管控薄弱、攻击成本低成为软件供应链攻击的重灾区,到目前为止,腾讯洋葱反入侵系统已经发现多起严重的软件源投毒事件,并向业界提前发出通知。

1、NPM遭遇供应链投毒攻击窃取K8S集群凭证

2、PyPI 官方仓库遭遇covd恶意包投毒

3、PyPI 官方仓库遭遇request恶意包投毒

4、腾讯洋葱反入侵系统检测到多例恶意Python库供应链投毒

5、 知名端口转发工具rinetd遭高仿投毒

同时,我们秉承共建安全生态的原则,主动向外界分享了洋葱反入侵系统针对软件源投毒场景的检测方案。

源头之战,不断升级的攻防对抗技术 —— 软件供应链攻击防御探索

兵无常势,水无常形,黑客投毒的手法越来越隐蔽,攻防对抗的难度也随之不断升级,唯有一直紧跟技术发展趋势,持续不断进阶,才能在安全攻防对抗中取得先机。

关于洋葱反EDR

“洋葱”端点检测与响应系统(EDR,又名反入侵系统)是腾讯公司安全平台部自研的服务器安全系统,担负着数百万服务器、虚拟机、镜像的安全基线管理、入侵检测和应急响应。

附录:

https://attack.mitre.org/groups/G0061/
https://valhalla.nextron-systems.com/info/rule/APT_FIN8_NET_Stager_Jun19_1
https://packagist.org/packages/guzzlehttp/guzzle
https://github.com/guzzle/guzzle/

评论留言

提交评论 您输入的漏洞名称有误,请重新输入