FCon7折倒计时最后一周:日程已上线70%!查看详情>>> 了解详情
写点什么

npm 的安全困扰:仅有 9.27% 的开发者使用 2FA

  • 2020-01-14
  • 本文字数:1388 字

    阅读完需:约 5 分钟

npm的安全困扰:仅有9.27%的开发者使用2FA


作为 JavaScript 生态系统中最大的包管理器,npm 正遭遇安全困扰。其开发人员中,仅有 9.27%的人使用 2FA,这意味着绝大多数 npm 开发人员的账户处于不安全状态。一旦黑客窃取开发人员账户,后果相当严重。


近日,npm 安全副总裁 Adam Baldwin 发推文称,npm JavaScript 库的所有维护者中,只有 9.27%的人使用 2FA(双因素认证)来保护其账户。



这一数字竟如此之低!


Adam Baldwin 表示,开发人员账户安全已经成为 npm 安全团队关注的主要问题。


从安全角度考虑,npm 安全团队希望 2020 年,有更多的 npm 开发者使用 2FA。


2FA,即双因素认证,它是一种相对更安全的认证方法。与传统单一的密码认证不同,2FA 使用两种不同的元素,合并在一起,来确认使用者的身份。比如,我们常用的手机短信验证码验证就是 2FA 的一种形式。


NPM,全称是 Node Package Manager。它不仅是 JavaScript 生态系统中最大的 JavaScript 包管理器,而且还是所有编程语言中最大的包存储库,拥有超过 350000 个索引库


此外,它每个星期大约有 30 亿次的下载量,包含超过 600000 个包(package)。



而这种“地位”和影响力,也让 npm 成为供应链攻击的主要目标。黑客会入侵开发人员的 npm 账户,从而在其库中插入恶意代码。


最近几年,这类事件层出不穷:


  1. 2019 年 7 月,有开发者在 purescript npm 安装程序中发现一些恶意代码。原来是有攻击者获取了 @shinnn(purescript npm 安装程序原始作者)的 npm 账户,随后在 purescript npm 安装程序中插入恶意代码。

  2. 2019年6月,黑客向 npm 发布一个“useful”的包(electron-native-notify),等到它被目标(某应用程序)使用后更新包内容,加入恶意代码。而某应用程序又是 Agama 加密货币钱包的一部分。

  3. 2018年11月,npm 下载量超过 200 万的 package 被注入了恶意代码,黑客利用该恶意代码访问热门 JavaScript 库,目标是 copay(开源比特币钱包)及其衍生产品的用户,以此窃取用户的数字货币。

  4. 2018 年 7 月,黑客利用恶意代码破坏 ESLint 库。该恶意代码被设计用来窃取其他开发人员的 npm 证书。

  5. 2018 年 5 月,黑客试图在名为 getcookies 的流行 npm 包中隐藏后门。


一份发表的学术研究表明,大多数 npm 软件包“彼此交织在一起”,并且入侵 20 个备受瞩目的开发人员账户,就可能使黑客植入被整个 npm 生态系统一半使用的恶意代码。


因此,确保 npm 库所有者的账户安全应该是未来的重中之重。


或许,Mozilla 的做法提供了一种不错的方式。Mozilla 最近宣布,从 2020 年 1 月起,所有 Firefox 浏览器扩展程序的开发人员都必须为其账户启用 2FA,才能更新其扩展程序。


此前,InfoQ 在《npm安全事故频频发生,程序员都绝望了》的文章中报道过,有一位名叫 Sebastian K 的网友认为 npm(客户端和 registry)是一个有缺陷的系统,需要完全替换,新系统应具有这些功能:


  • 没有 unscoped 的包;

  • 作用域是 1 对 1 绑定到单个用户或组织;

  • 发布包必须要双因子验证,包必须通过 GPG 签名;

  • 除 registry 的维护人员外,任何人都不允许取消发布包;

  • 不允许在最终版本中使用模糊依赖项版本,我曾多次目睹在新克隆之后,运行 npm install 时修改项目的包锁定文件,下载了比锁定文件中指定的更高版本的可传递依赖项。


此外,npm 安全副总裁 Adam Baldwin 还披露了一些其他数据


  • 2019 年发布的安全公告:595

  • npm 数据库的安全警报总数:1285

  • 错误吊销到 the registry 或 GitHub 的 npm 令牌数:737


2020-01-14 08:523397
用户头像
万佳 前InfoQ编辑

发布了 677 篇内容, 共 322.4 次阅读, 收获喜欢 1786 次。

关注

评论

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

一键接入 ChatGPT,让你的QQ群变得热闹起来

极客飞兔

人工智能 聊天机器人 openai ChatGPT

你知道目前master分支目前多大吗?

坚果

OpenHarmony

软件测试 | Spring Boot的RESTful设计与实现

测吧(北京)科技有限公司

测试

软件测试 | ECharts简介与安装

测吧(北京)科技有限公司

测试

软件测试 | Android与iOS在app测试时有什么区别?

测吧(北京)科技有限公司

测试

4月 · CSM认证周末班【提前报名特惠】“全球金牌课程”CST导师亲授

ShineScrum捷行

软件测试 | parametrize实现参数化

测吧(北京)科技有限公司

测试

博睿数据入选中国信通院《高质量数字化转型产品及服务全景图》

博睿数据

可观测性 智能运维 博睿数据 信通院 高质量发展

OpenHarmonyApp启动页后记

白晓明

云数据库 HarmonyOS OpenHarmony 云函数 AppGallery Connect

软件测试 | Spring Boot集成Swargger

测吧(北京)科技有限公司

测试

软件测试 | python跨平台API对接

测吧(北京)科技有限公司

测试

软件测试 | python数据持久化技术

测吧(北京)科技有限公司

测试

2022 IoTDB Summit:IoTDB PMC侯昊男《Apache IoTDB首创时序顺乱序分离存储引擎 IoTLSM》

Apache IoTDB

数据库 IoTDB

瓴羊Quick BI提供移动端自助分析解决方案, 易于性高于 Fine BI、 Smart BI

流量猫猫头

大数据 数据分析

软件测试 | Vuetify框架

测吧(北京)科技有限公司

测试

研讨会回顾 | Perforce版本控制工具Helix Core入华十年,携手龙智赋能企业大规模研发

龙智—DevSecOps解决方案

版本控制 数字资产 游戏开发 数字资产管理 芯片研发

十年业务开发总结,如何做好高效高质量的价值交付

阿里技术

质量保障 交付质量

软件测试/测试开发 | 测试平台开发-前端开发之数据展示与分析

测试人

软件测试 自动化测试 测试开发 测试平台

4道数学题,求解极狐GitLab CI 流水线|第4题:合并列车

极狐GitLab

ci DevOps pipeline runner 合并列车

软件测试 | Spring Boot异常处理

测吧(北京)科技有限公司

测试

软件测试 | 后端web开发框架

测吧(北京)科技有限公司

测试

ChatGPT开放API,上来就干到最低价,可以人手一个ChatGPT了

引迈信息

低代码 快速开发 openai ChatGPT

从智能进化模型看用友BIP的AI平台化能力

用友BIP

人工智能 用友 数智化 用友BIP

主题别名(Topic Alias)-MQTT 5.0新特性

EMQ映云科技

物联网 IoT mqtt 企业号 3 月 PK 榜 主题别名

软件测试/测试开发 | 学做测试平台开发-Vuetify 框架

测试人

软件测试 测试开发 测试平台

软件测试 | Java数据持久化技术

测吧(北京)科技有限公司

测试

软件测试 | 为什么使用Spring Boot

测吧(北京)科技有限公司

测试

Atlassian Server用户新选择 | 数据中心产品是否适合您的企业(3)?

龙智—DevSecOps解决方案

Server Atlassian Jira 数据中心版

软件测试 | pytest测试框架

测吧(北京)科技有限公司

测试

软件测试 | YAML是什么?

测吧(北京)科技有限公司

测试

软件测试 | 跨平台API对接

测吧(北京)科技有限公司

测试

  • 扫码添加小助手
    领取最新资料包
npm的安全困扰:仅有9.27%的开发者使用2FA_安全_万佳_InfoQ精选文章