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

文|腾讯洋葱反入侵系统

vspiders、七夜、柯南

概述

4月11日,腾讯洋葱反入侵团队监测到一起PyPI软件供应链攻击事件,经过追溯疑似是由境外APT组织FIN8首次使用该手法进行的针对性攻击。

攻击者在PyPI官方仓库伪造上传了guzzlehttp恶意包,该恶意包通过伪造著名PHP库 guzzlehttp/guzzle的名称 ,诱导用户认为是官方包的Python版本而进行下载安装,试图窃取 chrome浏览器用户数据、社交账号数据(微信、QQ、Telegram、Skype等),桌面文件、主机数据等敏感信息。

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

事件影响

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恶意包感染地区分布如下图所示:

供应链攻击手法

1. 采用跨平台抢注手法

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

2. 项目主页伪装

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

恶意样本分析

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

1. 植入Python后门

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

2. 敏感信息窃取

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

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

通过分析,恶意二进制样本首先会对win环境进行检测,包括对路径、用户名和网络进行初始化判断。

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

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

否则默认发送全部信息。

其中收集的敏感信息列表如下:

  • 微信、QQ、Telegram、Skype等社交账号数据

  • Chrome浏览器:包括cookies、书签、历史、设置、最常访问、网页缓存和登录信息

  • PC桌面文件

  • 主机信息:系统名称,用户名,MAC,IP,进程列表

IOC

域名:

cdn-93887294.img.sj.mozilla.work

collect-sync.jsdelivrs.com

app.omitrezor.com

MD5:

d6ca8e84e08a5bc3976edb84db09c33d

溯源追踪

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

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

经过分析发现,该域名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组织发起,用于利用新型供应链攻击窃取用户敏感信息。

总结

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

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

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

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

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

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

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

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

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

关于洋葱EDR

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

附录

1. https://attack.mitre.org/groups/G0061/

2.https://valhalla.nextron-systems.com/info/rule/APT_FIN8_NET_Stager_Jun19_1

3.https://packagist.org/packages/guzzlehttp/guzzle

4. https://github.com/guzzle/guzzle/

 

我们是TSRC

互联网安全的守护者

用户数据安全的保卫者

我们找漏洞、查入侵、防攻击

与安全行业精英携手共建互联网生态安全

期待正能量的你与我们结盟!

微信号:tsrc_team

  • 0
    点赞
  • 4
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值