技术拆解:黑客是如何利用memfd_create让你的服务器CPU飙升却查不到文件的?

admin 2026-01-30 17:53:40 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文档剖析了恶意PyPI包sympy-dev利用memfd_create实施无文件攻击的原理。攻击者通过逻辑炸弹触发,在内存中加载XMRig挖矿程序,实现磁盘零痕迹。建议开发者严查依赖源、锁定版本并监控网络流量,以防范此类驻留内存威胁。 综合评分: 88 文章分类: 恶意软件,供应链安全,漏洞分析,安全意识,逆向分析


cover_image

技术拆解:黑客是如何利用 memfd_create 让你的服务器 CPU 飙升却查不到文件的?

原创

Kit Chung Kit Chung

安全圈动向

2026年1月30日 07:50 广东

大家好,作为整天和代码打交道的工程师,我们最信任的命令可能就是 pip install 了。

但如果我告诉你,你只是想引入一个数学计算库,结果却给生产环境的服务器装上了一个“吸血鬼”,而且这个吸血鬼还练就了一身“隐身术”,连普通的杀毒软件和文件监控都扫描不到它,你怕不怕?

最近,Python 官方仓库 PyPI 上就出了这么个“幺蛾子”。一个名为 sympy-dev 的恶意包,在短短几天内就把一千多名开发者骗得团团转。

今天,我不光要告诉大家避坑,更想带大家硬核拆解一下:这帮黑客到底用了什么底层技术,能在 Linux 系统里做到“踏雪无痕”?

01 “李鬼”上位:最朴素的骗局

这次的主角叫 sympy-dev

搞数据科学和算法的朋友都知道 SymPy,那是 Python 界做符号数学计算的神器。黑客这回玩的是经典的 Typosquatting(名称抢注)

  • 名称误导:

    起名 sympy-dev,让你误以为这是官方发布的开发预览版。很多老鸟为了尝鲜新功能,往往会对带有 -dev 后缀的包放松警惕。

  • 全盘照抄:

    它直接复制粘贴了正版 SymPy 的项目描述。在 PyPI 页面上看,除了名字,其他几乎一模一样。

虽然这个包在 2026 年 1 月 24 日已经被下架,但在上线后的短短一周里,已经被下载了 1100 多次。这意味着,可能至少有上千个开发环境或服务器已经“中招”。

02 核心拆解:Linux 下的“无文件”攻击

如果只是简单的挖矿,那这文章也就没啥技术含量了。这个恶意包最骚的地方在于它的隐蔽性

  1. 触发机制:逻辑炸弹(Logic Bomb)

普通的恶意软件一安装就会疯狂运行,很容易被发现。但 sympy-dev 很鸡贼。

它修改了原版库的代码,把恶意逻辑埋藏在特定的多项式运算函数里。 也就是说,你 import 进来可能没事,甚至跑一些简单的功能也没事。只有当你调用了特定的数学函数时,恶意代码才会像地雷一样被引爆。

  1. 骚操作:memfd_create 系统调用

这是本文的重点。安全研究员 Kirill Boychenko 在分析中指出,这个恶意包在 Linux 主机上部署 XMRig 挖矿程序时,使用了一种极其隐蔽的手段。

它没有像传统病毒那样:下载病毒文件 -> 保存到硬盘 -> 运行 -> 删除。因为任何落地到磁盘(Disk)的文件,都有可能被文件系统监控(如 inotify)或杀毒软件扫描到。

它用的是 memfd_create

技术原理全过程:

  1. 内存创建:

    恶意代码调用 Linux 的 memfd_create() 系统调用。这个函数允许你在 RAM(内存)中创建一个“匿名文件”。这个文件在文件系统中是不可见的,它只存在于内存里。

  2. Payload 注入:

    接着,它从远程 C2 服务器(IP: 63.250.56[.]54)拉取恶意的 ELF 二进制文件(挖矿程序),直接写入这个内存文件描述符。

  3. 内存执行:

    最后,通过 /proc/self/fd/ 路径,它直接从内存中执行这个二进制文件。

这种技术被称为 驻留内存 攻击。黑客利用了 Linux 的特性,实现了无文件执行。除非你对内存进行取证分析,否则在硬盘上你连个病毒尸体都找不到。

这种手法之前在著名的 FritzFrog 和 Mimo 僵尸网络攻击中也出现过,属于高阶玩家的操作。

03 细思极恐:这不仅仅是挖矿

很多同学可能会说:“嗨,不就是挖个矿嘛,顶多服务器卡一点。”

大错特错!

虽然 Socket 的分析报告显示,目前的 Payload 主要是配置了 XMRig 用 CPU 挖矿(还贴心地禁用了 GPU 以免动静太大,并在端口 3333 上通信),但这仅仅是黑客想让你看到的。

本质上,这是一个通用的 Python 加载器。

这意味着黑客拥有了你 Python 进程的所有权限。今天他可以让它下载挖矿程序,明天他就可以修改远程 JSON 配置,让它下载一个勒索软件,或者直接反弹一个 Shell 把你的数据库拖库。

🛡️ 防御建议

  • 1. 严查依赖源:

    别迷信 -dev-beta 这种后缀。除非是官方文档明确指出的测试源,否则只认准官方发布的正式包名。

  • 2. 锁定依赖版本:

    在生产环境中,务必使用 poetry.lock 或 pip-tools 生成的包含 hash 校验的 requirements 文件。这能确保你安装的包指纹是唯一的。

  • 3. 监控网络出口:

    这种恶意包通常需要回连 C2 服务器。如果你的内网服务器突然开始向陌生的公网 IP 发起大量连接,防火墙报警就是最后的救命稻草。

最后总结一下:

技术在进步,黑客的手段也在进化。从简单的脚本投毒到现在的利用 syscall 做无文件攻击,攻防对抗永远在升级。

别让你的服务器,成了黑客免费的“矿机”。


你有遇到过类似的依赖库坑吗?

或者对这种“无文件攻击”有什么看法?

欢迎在评论区一起聊聊!


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:安全圈动向 Kit Chung Kit Chung《技术拆解:黑客是如何利用 memfd_create 让你的服务器 CPU 飙升却查不到文件的?》

评论:0   参与:  0