软件供应链安全:等两周再更新

VSole2023-10-13 17:14:18

通过在开源软件包中插入恶意代码来迅速将恶意软件传播到整个软件供应链中是恶意分子常用的攻击手段。然而,最新的研究发现,如果用户等待大约14天后再将这些软件包更新到最新版本,就可以避免受到软件包劫持攻击的不良影响。

JFrog的研究人员对各种开源软件包的受攻击情况进行了调查,发现其中一些软件包的下载量多达数亿次。此外,他们还分析了攻击被发现所需的时间跨度,以及在不良影响得以解决之前该软件包被下载的次数。

最终结果表明,在发现恶意代码并制定解决问题的更新方案时,项目的开发人员或维护者可能需要花费不同的时间,这个时间范围从数小时到超过一周不等。因此,在通常情况下,等待大约两周的时间再进行开源软件包的更新是一个相对安全的选择。

对于那些在最新版本发布后等待大约14天再进行软件包更新的用户来说,他们大概率可以避免遭受软件包劫持攻击的影响。因为在这两周的时间内,软件包劫持攻击通常会被察觉到,恶意版本的软件包也会被移除或修复,从而降低了用户受到攻击的风险。

软件包劫持的激增

软件包劫持是指外部威胁者或项目开发者与维护者本人在软件包的更新中插入恶意代码的情况。此类事件一旦发生,用户察觉到异常也只是时间问题。要么是由于劫持的恶意负载,要么是因为用户仔细检查了软件包代码的变化。对于攻击者来说,相比于发现并利用关键的零日漏洞,入侵代码库网站上的开发者账户往往更加简单。所以说,软件包劫持比传统的漏洞攻击更容易实施,并且能够造成更为广泛的影响。

发现问题所需时间

JFrog的研究人员旨在找出从一个软件包被劫持(被黑客篡改或植入恶意代码)开始,到软件包的用户意识到存在问题,并与项目的开发人员合作发布修复更新所需的时间。这个特定的时间段非常重要,因为在这段时间内,使用该软件包的用户更容易成为攻击的目标。

为了确定一个确切的检测时间范围,他们从两个角度来对多种软件包劫持示例进行评估:外部软件包劫持和内部软件包劫持。

前者是指第三方攻击者将恶意代码注入到软件包中。这可以通过劫持代码维护者的账户或将恶意代码伪装成合法的项目贡献来实现。而后者则是指合法的开发人员或维护者故意将恶意代码注入到软件包中,这通常是作为一种抗议行为。

外部软件包劫持

典型的外部软件包劫持案例包括去年12月针对机器学习开发人员的恶意代码依赖劫持,其目标是PyTorch Python库,以及分别在2021年10月和2021年11月,对"ua-parser-js"和"coa"软件包的独立攻击,其中涉及一个加密货币挖矿程序。

这些劫持行为对开发者社区来说可能会带来严重的潜在影响。PyTorch是一个被广泛使用的库,当前下载量已超过1.8亿次。ua-parser-js接近10亿次,而coa是GitHub上超过500万个开源仓库的基石,每周下载约900万次。

就PyTorch软件包劫持而言,用户花了五天的时间才发现有问题,在这期间该软件包就被下载了超过3,000次;而研究人员发现,parser和coa的用户仅花了几小时就检测到了软件包中的恶意软件。

内部软件包劫持

JFrog团队还调查了三个内部人员发起软件包劫持攻击的例子,其中两个发生在2022年1月,分别是备受Node.js开发人员欢迎的"colors"和"faker" npm两个软件包。在这两个软件包中,作者通过添加一个无限循环来破坏软件包,以抗议大公司不为开源社区做贡献的情况。

这种劫持对依赖这些软件包的软件项目造成了严重的损害,并且研究人员发现,在这些恶意版本发布后的两天内就被发现了。

另外,在2022年3月,一名开发人员向node-ipc软件包中添加了一段恶意代码,用于破坏俄罗斯和白俄罗斯的计算机文件系统,以抗议俄罗斯对乌克兰的入侵。在这种情况下,根据JFrog的说法,从发布恶意版本的软件包后,开发人员花了相当长的时间(大约8天)才察觉到该问题。

进一步的补救措施

除了等待大约两周时间再更新软件包到最新版本以外,开发人员和组织还可以事先对这些软件包进行严格地审核,再将软件包引入到其应用之中,来应对软件供应链攻击的威胁。可用的策展工具可以帮助组织定义一组规则,以确定开发人员可以访问哪些软件包,或者阻止下载那些14天内发布的第三方软件包。这有助于避免从公共存储库下载存在潜在安全风险的软件包。

此外,开发人员和组织还需要学会识别可能包含恶意代码的软件包,从而避免在自己的项目中使用这些受感染的软件包。

数世咨询点评

等待两周再更新软件包的行为是一种权衡安全性和便利性的做法。该策略的优点在于能够确保新版本相对稳定和安全,以降低用户受到恶意软件包或供应链攻击的风险。

但同时,该行为也会带来一定的麻烦,例如增加项目复杂性、延迟安全补丁以及降低开发速度等,其适用性存在一定的限制。

因此,决策是否采用此策略应该基于具体情况、风险评估以及项目需求来进行权衡。此外,组织还可以通过使用数字签名来验证软件包的完整性,以及定期审查代码和依赖项等方式来提高项目的供应链安全性。

软件软件安全
本作品采用《CC 协议》,转载必须注明作者和本文链接
随着 5G、云计算、人工智能、大数据、区块链等技术的日新月异,数字化转型进程逐步推进,软件已经成为日常生产生活必备要素之一,渗透到各个行业和领域。
软件供应链安全风险解析 随着互联网的迅猛发展,软件供应链安全事件近年来频繁发生。软件供应链安全具有威胁对象种类多、极端隐蔽、涉及纬度广、攻击成本低回报高、检测困难等特性。软件供应链中的任意环节遭受攻击,都会引起连锁反应,甚至威胁到国家网络安全。
由中国信通院指导、悬镜安全主办的中国首届DevSecOps敏捷安全大会(DSO 2021)现场,《软件供应链安全白皮书(2021)》正式发布。
安全要求》给出了软件供应链安全保护目标,规定了软件供应链组织管理和供应活动管理的安全要求;适用于指导软件供应链中的需方、供方开展组织管理和供应活动管理,可为第三方机构开展软件供应链安全测试和评估提供依据,也可为主管监管部门提供参考。
随着 5G、云计算、人工智能、大数据、区块链等技术的日新月异,数字化转型进程逐步推进,软件已经成为日常生产生活必备要素之一,渗透到各个行业和领域。容器、中间件、微服务等技术的演进推动软件行业快速发展,同时带来软件设计开发复杂度不断提升,软件供应链也愈发复杂,全链路安全防护难度不断加大。近年来,软件供应链安全事件频发,对于用户隐私、财产安全乃至国家安全造成重大威胁,自动化安全工具是进行软件供应链安全
随着容器、微服务等新技术日新月异,开源软件成为业界主流形态,软件行业快速发展。但同时,软件供应链也越来越趋于复杂化和多样化,软件供应链安全风险不断加剧,针对软件供应链薄弱环节的网络攻击随之增加,软件供应链成为影响软件安全的关键因素之一。近年来,全球针对软件供应链的安全事件频发,影响巨大,软件供应链安全已然成为一个全球性问题。全面、高效地保障软件供应链的安全对于我国软件行业发展、数字化进程推进具有重
随着软件技术的飞速发展和软件开发技术的不断进步,软件开发和集成过程中常会应用第三方软件产品或开源组件,其供应链中软件安全性和可靠性逐步成为软件产业面临的重要安全问题。近年来大量涌现的软件供应链安全事件则具有不同的特点,攻击软件供应链相较于攻击软件本身,难度和成本显著降低,影响范围一般显著扩大,并且由于攻击发生后被供应链上的多次传递所掩盖,难以被现有的计算机系统安全防范措施识别和处理。
针对软件供应链的网络攻击,常常利用系统固有安全漏洞,或者预置的软件后门开展攻击活动,并通过软件供应链形成的网链结构将攻击效果向下游传播给供应链中所有参与者。近年来,软件供应链网络攻击事件频发,影响越来越大。据 Accenture 公司调查,2016 年 60% 以上的网络攻击是供应链攻击。装备软件供应链安全事关国家安全、军队安全,一旦出现安全风险将会给国家和军队带来重大安全挑战,产生的后果不堪设想。
尤其是SolarWinds 事件,爆发之迅猛,波及面之大,社会影响之深,潜在威胁之严重,令世界为之震惊,堪称过去近十年来最重大的网络安全事件。据美国司法部披露,黑客已向其内部邮件系统渗透,受影响人数多达司法部员工邮件账户总数的三分之一,其第二阶段重大受害机构之一。
VSole
网络安全专家