恶意 PyPI 包通过编译后的 Python 代码绕过检测
编译:代码卫士
数字化时代,软件无处不在。软件如同社会中的“虚拟人”,已经成为支撑社会正常运转的最基本元素之一,软件的安全性问题也正在成为当今社会的根本性、基础性问题。
随着软件产业的快速发展,软件供应链也越发复杂多元,复杂的软件供应链会引入一系列的安全问题,导致信息系统的整体安全防护难度越来越大。近年来,针对软件供应链的安全攻击事件一直呈快速增长态势,造成的危害也越来越严重。
为此,我们推出“供应链安全”栏目。本栏目汇聚供应链安全资讯,分析供应链安全风险,提供缓解建议,为供应链安全保驾护航。
注:以往发布的部分供应链安全相关内容,请见文末“推荐阅读”部分。
安全研究员发现了针对 PyPI 仓库的新型攻击手段,利用编译后的 Python 代码绕过应用安全工具的检测。
ReversingLabs 分析师 Karlo Zanki 发布报告指出,“这可能是利用 Python 字节码 (PYC) 文件可被直接执行这一事实的首个供应链攻击。”这一程序包名为 fshec2,Python 团队在2023年4月17日收到报告后将其删除。
PYC 文件是编译后的字节码文件,是在 Python 程序执行时由 Python 解释器生成的。Python 文档中提到,“当首次导入模块时(或者创建当前编译文件时修改源文件时),应当在包含 .py 文件的目录的 _pycache_子目录中创建包含所编译代码的 .pyc 文件。”该程序包中包含三个文件:_init_.py、main.py和full.pyc,而最后一个文件含有恶意功能。
Zanki 指出,“该程序包的入口点位于 _init_.py文件中,该文件从另一个明文文件 main.py 中导入函数,而main.py文件中包含的 Python 源代码负责加载位于full.pyc文件中的 Python 编译模块。”该加载通过 importlib 程序包加载并执行位于 .pyc 文件中的代码来实现。
通过分析 PYC 文件可发现,它被 配置为收集用户名、主机名和目录列表以及提取命令在源自硬编码服务器 (13.51.44[.]246 的主机上执行。
分析人员还观察到,该模块下载并运行负责提取文件中新命令的另外一个 Python 脚本,而该脚本可被威胁者操纵,发布不同指令。进一步检查命令和控制服务器发现,配置不当问题可导致攻击者通过文件ID下载文件,这说明攻击很可能并非由复杂攻击者执行。
威胁行动者采用不同混淆技术躲避安全解决方案的检测。Zanki 表示,“从 fshec2 程序包中发现的加载器脚本中包含最少量的 Python 代码并执行简单操作:加载编译后的 Python 模块,而碰巧这个模块是恶意的。”
技嘉固件组件可被滥用为后门,影响700万台设备,易触发供应链攻击
MSI UEFI 签名密钥遭泄漏 恐引发“灾难性”供应链攻击
OilRig APT 组织或在中东地区发动更多 IT 供应链攻击
流行的 NPM 包依赖关系中存在远程代码执行缺陷
速修复!热门npm 库 netmask 被曝严重的软件供应链漏洞,已存在9年
Npm 恶意包试图窃取 Discord 敏感信息和浏览器文件
微软“照片”应用Raw 格式图像编码器漏洞 (CVE-2021-24091)的技术分析
速修复!热门npm 库 netmask 被曝严重的软件供应链漏洞,已存在9年
SolarWinds 供应链事件后,美国考虑实施软件安全评级和标准机制
找到软件供应链的薄弱链条
GitHub谈软件供应链安全及其重要性
揭秘新的供应链攻击:一研究员靠它成功入侵微软、苹果等 35 家科技公司开源软件漏洞安全风险分析
开源OS FreeBSD 中 ftpd chroot 本地提权漏洞 (CVE-2020-7468) 的技术分析
集结30+漏洞 exploit,Gitpaste-12 蠕虫影响 Linux 和开源组件等限时赠书|《软件供应链安全—源代码缺陷实例剖析》新书上市
热门开源CI/CD解决方案 GoCD 中曝极严重漏洞,可被用于接管服务器并执行任意代码
GitKraken漏洞可用于盗取源代码,四大代码托管平台撤销SSH密钥
因服务器配置不当,热门直播平台 Twitch 的125GB 数据和源代码被泄露
彪马PUMA源代码被盗,称客户数据不受影响
https://thehackernews.com/2023/06/malicious-pypi-packages-using-compiled.html
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。