写点什么

细思极恐:后门代码被隐藏在 npm 模块中,差点就得逞

  • 2018-05-13
  • 本文字数:1596 字

    阅读完需:约 5 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

npm Registry 中没有哪个软件包可以以一种触发后门程序的方式使用恶意模块,虽然未发布到 Registry 的应用程序直接使用恶意模块的能力很小,但它超出了我们的分析范围。

初始报告

来自社区的最初报告显示,该软件包 getcookies 潜藏后门程序,而 express-cookies 和 http-fetch-cookies 依赖于 getcookies,而 mailparser 依赖于 http-fetch-cookies。

系统诊断

收到报告后,npm 的安全团队开始对其进行诊断。诊断的目的是确定报告中提到的软件包是否真的含有恶意代码,如果有,其影响的范围将会有多大。

这里不会披露后门程序的所有信息,但我们会给出在审查过程中得到的一些重点信息。

后门程序通过解析用户提供的 HTTP request.headers,寻找专门为后门程序提供三种不同命令的格式化数据。

JSON.stringify(req.headers).replace(/g([a-f0-9]{4})h((?:[a-f0-9]{2})+)i/gi, (o, p, v) => {})

我们可以在这里看到头文件被字符串化,搜索结果的格式为:gCOMMANDhDATAi

可用的控制流代码:

  • 0xfffe- 重置代码缓冲器
  • 0xfffa- 通过调用 vm.runInThisContext 和提供 module.exports、require、req、res 和 next 参数运行缓冲器内的代码。
  • default - 将远程代码加载到内存中运行。

这些控制代码允许攻击者将任意代码输入到正在运行的服务器运行。

除了后门程序代码,这些模块的其他方面也引起我们的关注:

  • 基于反向图像搜索,发布 getcookies 的用户上的配置文件图像看起来像是一张股票照片。
  • GitHub 用户链接的这些 npm 包是在三月份创建的。
  • getcookies、express-cookies 和 http-fetch-cookies 的下载次数在几个星期前激增,这似乎与依赖于 http-fetch-cookie 的 mailparser 版本相关。

模块的依赖关系

虽然 mailparser 已被弃用,但 mailparser 每周的下载量仍能达到 64,000 次,经过调查,我们发现已发布的依赖于 http-fetch-cookies 的 mailparser 版本并未以任何方式使用过该模块,从而消除了后门程序所带来的风险。我们推测,mailparser 所需的 http-fetch-cookies 会在将来发动攻击或者为了增加 express-cookies 的下载次数而增加其合法性。

因此,mailparser 用户在过去没有受到影响,只有直接需要和使用 express-cookies 或 getcookies 软件包的用户才会受到影响。

采取的行动

对此,npm 官方采取了如下措施:

  • 删除了 dustin87 用户和撤销发布 getCookies,express-cookies 和 http-fetch-cookies;
  • 删除了依赖于 http-fetch-cookies 模块的 3 个 mailparser 版本;
  • 重置 mailparser 作者的 npm tokens 以防止未经授权的发布。

如何看待这次事件

早在 2017 年 8 月,npm 团队就曾删除了 38 个 JavaScript npm 软件包,这些包在受感染的项目中被盗取了环境变量。而目前,npm Registry 已经拥有将近 70 万个软件包和 1000 万用户,这足以吸引攻击者们的注意。

npm 官方似乎也意识到了问题的严重性,他们最近也开始进行了一些行动,上个月,npm 收购了 ^ Lift Security 和 Node Security Platform,并将 Baldwin 并入 npm 团队中,致力于解决 npm Registry 和 npm 应用程序的安全问题。同时,他们在最近新发布的 npm 6 中也加入了安全功能,如安装不受信任或易受攻击的模块时,系统会自动发出警报。

原文链接

https://blog.npmjs.org/post/173526807575/reported-malicious-module-getcookies

前端之巅

「前端之巅」是 InfoQ 旗下关注大前端技术的垂直社群。紧跟时代潮流,共享一线技术,欢迎关注。

活动推荐

PWA、Web 框架、UI 与动画、Node… 大前端的下一站在哪里?前端工程师的价值和成长路径是什么?GMTC2018 上,来自 Google、Facebook、BAT 等 60+ 国内外一线前端大牛,将与你面对面探讨大前端领域最新技术趋势和实践,想要升职加薪就快来吧!扫描下方二维码或点击“阅读原文”了解更多大会详情!

目前大会 8 折热销中,团购更优惠,购票咨询:18514549229(同微信)

2018-05-13 19:003276
用户头像

发布了 83 篇内容, 共 52.5 次阅读, 收获喜欢 187 次。

关注

评论

发布
暂无评论
发现更多内容

一个普通IT人的20年奋斗:从小白到编程教育布道者

编程启航栈

技术人成长

区块链U卡APP的测试

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

彩讯股份战略投资中科酷原,布局量子计算产业

彩讯股份300634

能源行业指标体系建设与 AI 数智化落地:技术方案 + 实践路径

袋鼠云数栈

人工智能 数字化转型 数据治理 能源行业 数据指标体系

2026全球人工智能终端展

AIOTE智博会

人工智能展会 人工智能博览会 人工智能展 人工智能览会 深圳人工智能展

AI口语APP的功能优化

北京木奇移动技术有限公司

软件外包公司 APP外包公司 AI英语口语

直击WAIC | 百度袁佛玉:加速具身智能技术及产品研发,助力场景应用多样化落地

百度Geek说

微帧GPU视频硬编优化引擎:面向人工智能大时代的AI算法与硬编协同优化方案

微帧Visionular

彩讯股份入选法制日报社“2024政法智能化建设创新方案”

彩讯股份300634

Hello World背后藏着什么秘密?一行代码看懂Java的“跨平台”魔法

poemyang

编译原理 字节码 Java虚拟机

SAKE:基于激活导向的知识编辑技术

qife122

知识编辑 最优传输

闲鱼商品列表API技术文档

tbapi

闲鱼API 闲鱼商品详情接口 闲鱼商品列表接口 闲鱼数据采集

企业落地Data Agent,一共需要几步?

字节跳动数据平台

大数据 Data Agent 数据智能体

活动租赁互动LED舞池特点和场景使用

Dylan

活动 LED LED display LED显示屏 LED屏幕

哈尔滨等保测评:为什么必须做?不做后果有多严重?

等保测评

哈尔滨等保测评:3分钟读懂核心要点

等保测评

哈尔滨等保测评:个人信息保护与数字安全防线

等保测评

区块链U卡APP的运维

北京木奇移动技术有限公司

区块链U卡APP的安全性

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

藏在数据血缘里的功能 从混乱到精准治理

郑州埃文科技

【苍狮技术团队】Dify v1.7.0重磅更新:全面支持OAuth 2.0认证、插件智能升级与工作流优化,一键脚本部署,无需科学上网。

苍狮技术团队

WAIC·2025|中国移动发布"灵犀2.0"智能体,彩讯股份作为核心伙伴共启AI Agent新篇章

彩讯股份300634

基于 Amazon Nova 实现优化呼叫中心导航场景

亚马逊云科技 (Amazon Web Services)

KWDB 分布式部署过程与 deploy.sh cluster -i 命令分析

KaiwuDB

[鸿蒙征文] 小支同学的学习笔记《HarmonyOS 开发入门:构建首个 HelloWorld 应用》

巴库一郎

闲鱼商品详情API技术文档

tbapi

闲鱼API 闲鱼商品详情接口 闲鱼数据采集

“上海有AI”,一座城市的智惠答卷

Alter

抖音集团基于Paimon的流式数据湖应用实践

Apache Flink

大数据 flink 实时计算 paimon

轻松搞定!KaiwuDB单节点裸机部署(二进制安装包版)

KaiwuDB

如何安装CST的Linux版本

思茂信息

仿真 Linux、 CST Studio Suite

LazyLLM 教程 | 第 2 讲:10 分钟上手一个最小可用 RAG 系统

商汤万象开发者

细思极恐:后门代码被隐藏在npm模块中,差点就得逞_语言 & 开发_覃云_InfoQ精选文章