原标题:

New npm timing attack could lead to supply chain attacks

原文链接:

https://www.bleepingcomputer.com/news/security/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 新型定时攻击或导致软件供应链安全风险的更多相关文章

  1. Kubernetes 时代的安全软件供应链

    点击下载<不一样的 双11 技术:阿里巴巴经济体云原生实践> 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击上方图片即可下载! 作者 汤志敏  阿里云 ...

  2. SLSA 框架与软件供应链安全防护

    随着软件供应链攻击浪潮愈演愈烈,Google 发布了一系列指南来确保软件包的完整性,旨在防止影响软件供应链的未经授权的代码修改.新的 Google SLSA 框架(Supply-chain Level ...

  3. CSO视角:Sigstore如何保障软件供应链安全?

    本文作者 Chris Hughes,Aquia的联合创始人及CISO,拥有近20年的网络安全经验. SolarWinds 和 Log4j 等影响广泛的软件供应链攻击事件引起了业界对软件供应链安全的关注 ...

  4. Seal 0.4 发布:软件供应链安全洞察更上一层楼!

    今天,我们很高兴宣布 Seal 0.4 已正式发布!在上一个版本中,Seal 完成了从单一产品到全链路平台的转变,通过全局视图帮助用户掌握软件开发生命周期各个环节的安全状况. 在 Seal 0.4 中 ...

  5. CNCF社区首个!KubeEdge达到软件供应链SLSA L3等级

    摘要:在v1.13.0版本中,KubeEdge项目已达到 SLSAL3等级(包括二进制和容器镜像构件),成为CNCF社区首个达到SLSA L3等级的项目. 本文分享自华为云社区<CNCF社区首个 ...

  6. 华为V-ISA信誉安全体系:对付新型DDoS攻击的利器

        华为Anti-DDoS解决方案基于华为颇具传统优势的专业软硬件平台开发,在防护机制中,引入先进的检测机制,提供了业内首创的“V-ISA”信誉安全体系,是业界唯一单机可提供超百G DDoS防御能 ...

  7. 基于 Docker 的现代软件供应链

    [编者按]本文作者为 Marc Holmes,主要介绍一项关于现代软件供应链的调查结果.本文系国内 ITOM 管理平台 OneAPM 编译呈现,以下为正文. 3 月初,为了了解软件供应链的现状以及 D ...

  8. OpenSSF安全计划:SBOM将驱动软件供应链安全

    在 软件成分分析(SCA)一文中,我们简单提到软件物料清单(SBOM)在安全实践中的价值. 本期文章将带你深入了解 "SBOM 无处不在"计划是什么,以及 SBOM 对未来软件供应 ...

  9. 同时大量连接导致的DDOS攻击,导致收发器宕机,用户大面积超时掉线

    前段时间一个客户改成电信网通自动路由后(当然和这个没有关系,但是客户一般没有分析能力,会多想),用户经常大面积掉线,用户才180多个,在线最多也才120多,十分苦恼,原先帮其维护的技术人员,只是远程诊 ...

  10. MySQL意外关闭, 导致软件崩溃而无法启动的解决办法

    在初次搭建XAMPP,Apache和MySQL都可以正常启动,一旦关机重启XAMPP时,发现Apache可以正常启动:而MySQL却不能正常运行,会碰到 Error: MySQL shutdown u ...

随机推荐

  1. influxdb报错:cache-max-memory-size exceeded

    转载请注明出处: influxdb报错日志: 该错误信息表示 InfluxDB 引擎超过了缓存最大内存大小.这意味着 InfluxDB 的缓存使用量超出了配置的限制. 要解决此问题,可以采取以下步骤来 ...

  2. typeid关键词

    typeid是c++的关键字,typeid操作符的返回结果是名为type_info的标准库类型的对象的引用(在头文件typeinfo中定义) ISO C++标准并没有确切定义type_info,它的确 ...

  3. 《最新出炉》系列初窥篇-Python+Playwright自动化测试-31-JavaScript的调用执行-上篇

    1.简介 在做web自动化时,有些情况playwright的api无法完成以及无法应对,需要通过或者借助第三方手段比如js来完成实现,比如:去改变某些元素对象的属性或者进行一些特殊的操作,本文讲解pl ...

  4. 黑客玩具入门——9、Burp Suite

    Burp Suite是一款集成化的渗透测试工具,包含了很多功能,可以帮助我们快速完成对web应用程序的渗透测试和攻击.Burp Suite是由Java语言编写,因为Java是可以跨平台的,所以Burp ...

  5. 基于DotNetty实现一个接口自动发布工具 - 通信实现

    基于 DotNetty 实现通信 DotNetty : 是微软的 Azure 团队,使用 C#实现的 Netty 的版本发布.是.NET 平台的优秀网络库. 项目介绍 OpenDeploy.Commu ...

  6. STL常用函数

    STL简介 \(STL\)是\(Standard\) \(Template\) \(Library\)的简称,中文名称为标准模板库,从根本上讲, 就是各种\(STL\)容器的集合,容器可以理解为能够实 ...

  7. Reactor实战,创建一个简单的单线程Reactor(理解了就相当于理解了多线程的Reactor)

    单线程Reactor package org.example.utils.echo.single; import java.io.IOException; import java.net.InetSo ...

  8. [CF1844G] Tree Weights

    题目描述 You are given a tree with $ n $ nodes labelled $ 1,2,\dots,n $ . The $ i $ -th edge connects no ...

  9. [转载] Winform WebBrowser 使用 Edge 内核

    原文地址 C# 设置 WebBrowser 使用 Edge 内核_c# webbrowser 内核 - CSDN 博客 原文内容 1. 问题描述 用 C# 写了一个小工具, 需要显示网页上的内容, 但 ...

  10. 安装NETDATA集群监控面板

    安装NETDATA集群监控面板 介绍 官方链接 演示网页:https://my-netdata.io/ 官方首页:http://netdata.cloud/ 文档地址:http://docs.netd ...