npm 新型定时攻击或导致软件供应链安全风险
原标题:
New npm timing attack could lead to supply chain attacks
原文链接:
据 Beepingcomputer 消息,安全研究人员发现了一种npm定时攻击,它会泄露私有软件包的名称,因此攻击者可以基于此公开发布恶意克隆软件包,以欺骗开发者使用它们。
该攻击的原理是利用在开发者搜索私有软件包时与库中的软件包相匹配时返回“404 Not Found”错误的微小时间差。虽然响应时间的差异只有几百毫秒,但这足以确定一个私有软件包是否存在,进而对包进行冒充。
企业为内部项目和某些软件产品创建私有软件包,以最大限度地减少其开发团队陷入错别字攻击的风险,并保密代码和功能。
企业让私有软件包一直处于私密状态是非常重要的,否则攻击者可以创建克隆或用有错别字的软件包以迷惑企业员工下载并在软件项目中使用它。如果开发者和内部软件测试人员没有发现这一纰漏,产品直达终端用户从而造成供应链的安全风险。
在一份由Aqua威胁研究团队出品的报告中指出,攻击者越来越关注软件供应链攻击,2021年针对软件供应链的攻击活动数量比往年翻了3倍。
定时攻击详情
npm包含了一个 registry API,它允许用户下载已存在的软件包,并检查包是否存在以及在特定范围内接收所有包的信息。当使用npm镜像仓库来下载不存在或者已经设为私密的软件包时,网站会返回一个 404 HTTP 的错误代码,这意味着无法找到软件包。

在npm中对一个API请求响应 404 Not Found
Aqua通过使用该API检查他们在npm上创建的私有软件包是否存在,并比较 404 HTTP 错误与API检查不存在的包的响应时间,从而发现了npm定时攻击。
研究人员通过检查5次某个软件包名称是否存在来进行测试。他们发现,npm响应请求所需的平均时间存在差异,这使他们能够分辨出一个软件包是私有的还是不存在的。具体而言,当私有软件包存在时其平均响应时间是648毫秒,而当其不存在时响应时间下降为101毫秒。

5次请求的响应时间
研究人员认为这是由于npm本身的缓存机制及API架构导致了这种信息泄露的可行性。
黑客可以尝试“全盲”字典式攻击,或者在目标组织的公开软件包中总结命名规律,以推导出可能的私有软件包名称。此外,在线信息中可能包含包的历史信息,所以攻击者可以利用它们来确定哪些公开包可能在后来会转为私密。
在后一种情况下,使用克隆包的潜在风险是较为隐蔽的,因为一个曾经公开的包的旧副本可能仍保留足够的功能,并依旧在软件产品中发挥作用。
GitHub 将不会修复这一问题
Aqua 曾于2022年3月向 GitHub 报告这一bug,但在3月25日时被告知由于架构限制将不会修复它。“由于架构所限,我们无法防止由于确定npm中是否存在特定私有软件包而产生的定时攻击”。
研究人员指出企业可以采取预防性措施,如经常在npm中检索可疑软件包,这些包常会以重复或相似的名字来迷惑开发人员。此外,由于npm不允许在公开的仓库中上传同名软件包,企业可以创建与私有包相似或重复名字的公开软件包来阻止恶意包的创建。
总而言之,维护软件供应链安全是一项复杂且极具挑战的工作,需要企业时刻关注软件开发各个阶段的安全。Seal 软件供应链防火墙为用户提供软件开发生命周期全阶段的端到端全局可视化,并且能快速识别和定位安全风险,根据漏洞严重等级评分确定修复优先级。
npm 新型定时攻击或导致软件供应链安全风险的更多相关文章
- Kubernetes 时代的安全软件供应链
点击下载<不一样的 双11 技术:阿里巴巴经济体云原生实践> 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击上方图片即可下载! 作者 汤志敏 阿里云 ...
- SLSA 框架与软件供应链安全防护
随着软件供应链攻击浪潮愈演愈烈,Google 发布了一系列指南来确保软件包的完整性,旨在防止影响软件供应链的未经授权的代码修改.新的 Google SLSA 框架(Supply-chain Level ...
- CSO视角:Sigstore如何保障软件供应链安全?
本文作者 Chris Hughes,Aquia的联合创始人及CISO,拥有近20年的网络安全经验. SolarWinds 和 Log4j 等影响广泛的软件供应链攻击事件引起了业界对软件供应链安全的关注 ...
- Seal 0.4 发布:软件供应链安全洞察更上一层楼!
今天,我们很高兴宣布 Seal 0.4 已正式发布!在上一个版本中,Seal 完成了从单一产品到全链路平台的转变,通过全局视图帮助用户掌握软件开发生命周期各个环节的安全状况. 在 Seal 0.4 中 ...
- CNCF社区首个!KubeEdge达到软件供应链SLSA L3等级
摘要:在v1.13.0版本中,KubeEdge项目已达到 SLSAL3等级(包括二进制和容器镜像构件),成为CNCF社区首个达到SLSA L3等级的项目. 本文分享自华为云社区<CNCF社区首个 ...
- 华为V-ISA信誉安全体系:对付新型DDoS攻击的利器
华为Anti-DDoS解决方案基于华为颇具传统优势的专业软硬件平台开发,在防护机制中,引入先进的检测机制,提供了业内首创的“V-ISA”信誉安全体系,是业界唯一单机可提供超百G DDoS防御能 ...
- 基于 Docker 的现代软件供应链
[编者按]本文作者为 Marc Holmes,主要介绍一项关于现代软件供应链的调查结果.本文系国内 ITOM 管理平台 OneAPM 编译呈现,以下为正文. 3 月初,为了了解软件供应链的现状以及 D ...
- OpenSSF安全计划:SBOM将驱动软件供应链安全
在 软件成分分析(SCA)一文中,我们简单提到软件物料清单(SBOM)在安全实践中的价值. 本期文章将带你深入了解 "SBOM 无处不在"计划是什么,以及 SBOM 对未来软件供应 ...
- 同时大量连接导致的DDOS攻击,导致收发器宕机,用户大面积超时掉线
前段时间一个客户改成电信网通自动路由后(当然和这个没有关系,但是客户一般没有分析能力,会多想),用户经常大面积掉线,用户才180多个,在线最多也才120多,十分苦恼,原先帮其维护的技术人员,只是远程诊 ...
- MySQL意外关闭, 导致软件崩溃而无法启动的解决办法
在初次搭建XAMPP,Apache和MySQL都可以正常启动,一旦关机重启XAMPP时,发现Apache可以正常启动:而MySQL却不能正常运行,会碰到 Error: MySQL shutdown u ...
随机推荐
- k8s Rabbitmq安装部署
安装方式 kubectl apply -f rabbitmq.yaml -n yunda-dev-cache rabbitmq.yaml ##创建PV # 注意更换存储方式 --- apiVersio ...
- 🔥🔥TCP协议:三次握手、四次挥手,你真的了解吗?
什么是TCP网络分层 应⽤层 应用层是网络协议栈中的最顶层,主要负责应用程序之间的通信.其中一种常见的应用层协议是HTTP协议,它定义了应用程序之间如何传递报文. 传输层 传输层是为两台主机之间的应用 ...
- mobaxterm软件的使用
MobaXterm是一款功能强大的多功能远程计算机管理软件,可以在Windows操作系统下运行,支持SSH.Telnet.RDP.VNC等协议 一.软件下载与安装 下载地址:https://mobax ...
- Dom 的理解和操作
dom 文本对象模型 12种节点类型 一.node类型 js中所有节点类型都继承自node类型 每个节点都有一个nodeType属性,表明节点类型:判断节点类型,if(somenode.nodeTy ...
- picgo+GitHub搭建图床
picgo+GitHub 搭建图床 目录 picgo+GitHub 搭建图床 图床的概念 使用 GitHub 创建图床服务器 在 GitHub 上面新建仓库 生成 token 令牌 创建 img 分支 ...
- 趋势指标(一)MACD指标
MACD称为异同移动平均线,是从双指数移动平均线发展而来的,由快的指数移动平均线(EMA12)减去慢的指数移动平均线(EMA26)得到快线DIF,再用2×(快线DIF-DIF的9日加权移动均线DEA) ...
- 学习JavaScript的第一天
JavaScript概述 JavaScript的介绍 js属于一门面向对象的编程语言 属于跨平台 面向对象(oop) 以对象方式实现所有的功能 跨平台:js代码不论是在什么样的操作系统上执行结果都是一 ...
- Silverlight工作流控件功能缺失,Windows Server操作系统 IIS添加WCF功能
注: Silverlight工作流控件,如果在网页中打不开,则要判断是否缺少Silverlight工作流控件的插件程序,如果不是则可以进行一下步骤检查,如果是以下原因则是:由于IIS版本问题,安装后可 ...
- stm32存储器:Flash
先擦除后写入,stm32内置flash擦或写时,必须打开外部/内部高速振荡器. 擦除操作 以页为单位,每页1024个字节 起始地址0x0800 0000 擦写时要避开用户程序存储区 最多擦写10万次 ...
- java当中组件和窗口的相容问题(里面包含了这些方法的作用)
窗口也称为容器,在书中大部分称为容器,这里主要讲的是底层容器. JFrame():创建一个无标签的窗口. JFrame(String s):创建标题为s的窗口 setBounds(int a,int ...