关键词:pykafka、供应链攻击、恶意软件
1.摘要
Sonatype的研究人员上周报告了一个通过恶意Python包"pymafka"进行的供应链攻击,该包被上传到流行的PyPI代码源。该软件包试图通过名称仿冒感染用户:希望寻找合法的"pykafka"软件包的受害者可能会打错查询语句而下载恶意软件。
虽然名称仿冒似乎是一种成功率很低的感染目标的方式,但它并没有阻止威胁行为者去尝试,这是我们在最近几周看到的第二次使用这种方法的攻击。上周,SentinelLabs报道了CrateDepression,这是一个针对Rust软件库的名称仿冒攻击,目标是MacOS和Linux用户。
这两次攻击都利用了红队工具,在macOS设备上投放有效载荷,向操作者发出"信标"。在"pymafka"的案例中,攻击者进一步利用了一种非常特殊的加壳和混淆方法来掩盖Mach-O有效载荷的真实性质,事实上,如此特殊的方法我们以前只在野外见过一次,那次是作为OSX.Zuru活动的一部分。
虽然加壳、混淆和信标的使用在Windows攻击中十分常见,但直到现在还很少看到它们被用来针对MacOS目标。在这篇文章中,我们回顾了这些攻击技战术是如何在pymafka和其他攻击中出现的,并为防御者提供指标,以帮助检测它们在macOS端点上的使用。
2.Pymafka的文字攻击
我们简单地回顾一下第一阶段的攻击,以便于了解情况。pymakfa包如此命名是希望用户能将其与pykafka混淆,后者是一个在企业中广泛使用的Python的Kafka客户端。Kafka本身被描述为"一个开源的分布式事件流平台,被成千上万的公司使用",包括"80%的财富100强公司",这一描述相当清楚地表明了攻击者的兴趣。
pymafka软件包包含一个Python脚本,用于监视主机并确定其操作系统。
图 1:setup.py脚本为不同的平台进行不同的逻辑,包括macOS
如果设备运行的是macOS,它就会连接到C2并下载一个名为"MacOs"的Mach-O二进制文件,然后将其写入/var/tmp(又称/private/var/tmp)目录,取文件名为"zad"。
威胁分析人员应注意,/var/tmp与标准的/tmp目录(又称/private/tmp)不同,也与Darwin用户的$TMPDIR目录不同,这两个目录都是恶意软件有效载荷的更典型目的地。因此,/var/tmp这个很少使用的位置可能不会被一些安全工具扫描或监控。
也许还值得注意的是,"MacOs"本身就是一个错字。苹果公司使用的这个词是以"MacOS"(每个应用程序捆绑包内的目录名称,包含程序可执行文件)或"macOS"(操作系统的官方名称,取代了"OSX")出现的。系统中没有苹果公司的二进制文件以"MacOs"这个词作为名称。然而,"MacOs"只是作为文件的名称,因为它是远程存储的,在跨URL数据的大小写搜索中可能是有用的,但正如我们上面指出的,可执行文件是以"zad"写入本地文件系统。
3.加壳和混淆的有效载荷
该有效载荷是用UPX加壳的,这是一种十分常见的技术,用于逃避某些类型的静态扫描工具。除了pymafka之外,UPX最近还被用于oRat的Mac变体、用于OSX.Zuru和用于DazzleSpy的变体中,但比加壳更有趣的是在解压二进制文件中发现的混淆。
该混淆行为与OSX.Zuru活动的有效载荷有很大的重叠之处。在该活动中,威胁者通过搜索引擎中的赞助链接分发了一系列复杂的木马应用程序,包括iTerm、Navicat、SecureCRT和微软远程桌面。对木马程序的选择表明,威胁者的目标是使用后台工具进行SSH和其他远程连接以及进行商业数据库管理的用户。
这些木马程序在/private/tmp/GoogleUpdate投放了一个UPX加壳的Mach-O,使用了我们在pymafka有效载荷中观察到的同样的混淆技术。在这两种情况下,有效载荷执行CobaltStrike信标的功能,与远程操作员联系,以进一步执行任务。
OSX.Zuru解压后的二进制文件和pymafka解压后的二进制文件在大小上有很大不同,前者为5.7Mb,后者为3.6Mb,但对这些部分的分析表明它们经过了一个共同的混淆机制。特别是,__cstring和__const部分不仅大小相同,而且在两个二进制文件中的哈希值也完全相同。
图 2:突出显示的数据是Zuru和pymafka有效载荷所共有的
这两个可执行文件在所有节也显示出非常相似的熵值。
图 3:OSX.Zuru有效载荷(左)和pymafka有效载荷(右)的熵值情况
在这一点上,我们并不是说这些活动是相互关联的;不同的行为者有可能围绕着一套类似的攻击技战术而联合起来,使用共同的工具或技术来混淆CobaltStrike的有效载荷。
4. 滥用红队工具进行入侵
更广泛地说,我们关于供应链攻击的报告描述了威胁者如何使用PoseidonMythic有效载荷作为其感染链的第二阶段。Mythic,像CobaltStrike一样,是一个合法的工具,旨在模拟真实世界的攻击,供红色团队使用。与CobaltStrike不同,Mythic是开源软件,可以"按原样"使用,也可以随意改编。
这两个框架都非常善于模拟真实世界的攻击,以至于真实世界的攻击者都将这些框架作为常用的工具。虽然关于CobaltStrike和对运行Windows和Windows服务器的企业的攻击已经有一段时间了,但在针对macOS的活动中这是一个相对较新的发展。但是,正如那句老电影里说的,"如果你建立它,他们就会来"。
5. 检测pymafka和类似攻击
对于安全团队来说,这意味着要确保你有很好的覆盖面,以抵御常见的红队工具和框架,这些工具和框架很容易被攻击者利用。测试你的安全软件是否能检测到使用类似攻击技战术的攻击。
寻找这种特殊混淆技术的威胁分析人员可以考虑猎取具有__TEXT.__cstring部分的二进制文件,该部分的MD5哈希值为c5a055de400ba07ce806eabb456adf0a,并且二进制文件具有类似的熵分布,如上所示。
6. 结论
到目前为止,我们对pymafka活动背后的威胁者还所知甚少,除了他们喜欢仿冒的软件和使用名称仿冒本身表明他们对破坏多个企业的兴趣浓厚而不管这些企业的行业性质。虽然高度针对性的攻击隐藏在大规模入侵技术背后以掩盖真正的目标并不是完全完全不可能,但更简单的解释是,这可能是一个具有普通"犯罪软件目标"的活动--窃取数据、出售访问权、投放赎金软件等等。
从我们的角度来看,有趣的是,我们现在看到的可能是针对其他企业平台常用的攻击技战术开始"镜像"到MacOS设备和Mac用户。对于那些仍然认为Mac电脑比Windows电脑更安全的企业来说,这应该是一个值得思考和关注的问题。安全团队应考虑相应地调整其风险评估。
7.攻击指标
文件 | SHA1 | |
pymafka-1.0.tar.gz |
| |
setup.py |
| |
MacOs(UPXpacked) |
| |
zad(unpacked) |
|
路径
/var/tmp/zad
网络指标
141.164.58.147
39.107.154.7
参考链接:https://www.sentinelone.com/labs/use-of-obfuscated-beacons-in-pymafka-supply-chain-attack-signals-a-new-trend-in-macos-attack-ttps/
编辑|李昊
审校|何双泽、金矢
本文为CNTIC编译整理,不代表本公众号观点,转载请保留出处与链接。
声明:本文来自国家网络威胁情报共享开放平台,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。