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

百家 作者:腾讯安全应急响应中心 2021-04-30 18:21:08

文|腾讯洋葱反入侵系统

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

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接