开源安全基金会(OpenSSF)发布了 npm 最佳实践指南,以帮助 JavaScript 和 TypeScript 开发人员降低使用开源依赖项相关的安全风险。OpenSSF Best Practice Group 发布的 npm 最佳实践指南,重点关注 npm 的依赖管理和供应链安全,涵盖各个领域,例如如何设置安全的 CI 配置、如何避免依赖混淆以及如何应对劫持依赖导致的后果。随着开发人员越来越多地共享和使用依赖项,依赖项在促进更快地开发和创新的同时,带来的风险也随之增加。

开源依赖项可能带来重大安全风险

OpenSSF 的贡献者表示,虽然看起来使用开源依赖项的好处远大于其坏处,但依赖项导致的安全风险可能很大,大到有些企业(尤其是中小型企业)甚至无力承受。此外,和任何其它软件一样,依赖项可能存在漏洞或被劫持的可能,这将会在很大程度上影响使用其的项目。

同时,Linux 基金会开源供应链安全主管 David A. Wheeler 强调,相比使用依赖项本身带来的安全风险,开发人员使用开源依赖项带来的最大安全风险是低估了直接和间接依赖项中的漏洞可能产生的影响。 不可否认的是任何软件都可能出现缺陷,如果使用不慎,可能会严重影响相关的软件供应链。然而很多时候,大部分依赖项都是不可见的,因此对应的安全风险更大。但缓解开源依赖项风险的解决方案并不是停止使用软件,而是智慧地使用软件,并为发现漏洞及时更新组件做好充分的准备。

当然,制定一套有效的依赖安全管理策略是十分具有挑战性的,因为这其中涉及的问题并非开发人员所熟悉的解决方案。而 npm 最佳实践指南能够为开发人员及其组织在面临此类问题时提供帮助,让他们能够更从容、更安全地使用和管理开源依赖项。指南概述了 npm 可用的供应链安全功能,描述了与使用依赖项相关的风险,并提出在不同项目阶段降低风险的建议。

解决开源风险的依赖管理要点

npm 最佳实践指南主要侧重于依赖管理,其中详细介绍了开发人员能够采取的一些帮助减少潜在威胁的步骤。例如在指南中明确提出,使用依赖项的第一步是研究其来源、可信度和安全状况。同时,指南还特别指出开发人员需要提防域名仿冒攻击,比如有时攻击者会创建一个看起来像官方的软件包名称来诱导用户安装恶意软件包,那么这时开发人员就需要通过识别软件包的 GitHub 存储库,并且评估其可信度(参考贡献者数量,星级等)。

同时指南还强调,在确定感兴趣的 GitHub 项目后,开发人员应当确定相应包的名称,并使用 OpenSSF Security Scorecards来了解依赖项当前的安全状况。同时,开发人员还应当使用 deps.dev 了解传递依赖项的安全状况,并使用 npm-audit了解项目依赖项中现有的漏洞。

在此指南中也提到可重复安装(Reproducible installation)能够为企业提供安全优势,因为它能够确保每次安装软件包时都使用准确的依赖项副本,在依赖项存在漏洞时快速识别潜在的网络危害、缓解恶意依赖项等威胁,以及检测包损坏。

与此同时,指南中还提到开发人员还应当使用锁定文件,该文件使用加密哈希(cryptographic hashes)实现哈希固定(hash pinning)。哈希固定通知包管理器(package manager)每个依赖项的预期哈希,而不是信任镜像仓库。然后,包管理器在每次安装期间验证每个依赖项的 hash 是否保持不变。任何对依赖项的恶意更改都会被检测到并被拒绝。

需要注意的是,依赖关系的持续维护也很重要,开发人员需要定期更新,以配合新漏洞密钥的披露和修补。为了管理企业的依赖关系,建议使用 dependabot 或 renovatebot 等工具。这些工具提交合并请求,开发人员可以查看这些请求并将其合并到默认分支中。此外,如果要删除依赖项,开发人员应当定期运行 npm-prune 并提交合并请求。

参考链接:

https://openssf.org/blog/2022/09/01/npm-best-practices-for-the-supply-chain/

https://github.com/ossf/scorecard

OpenSSF发布npm 最佳实践指南,应对开源依赖风险的更多相关文章

  1. 如何让HTTPS站点评级达到A+? 还得看这篇HTTPS安全优化配置最佳实践指南

    0x00 前言简述 SSL/TLS 简单说明 描述: 当下越来越多的网站管理员为企业站点或自己的站点进行了SSL/TLS配置, SSL/TLS 是一种简单易懂的技术,它很容易部署及运行,但要对其进行安 ...

  2. ASP.NET Core Web API 最佳实践指南

    原文地址: ASP.NET-Core-Web-API-Best-Practices-Guide 介绍 当我们编写一个项目的时候,我们的主要目标是使它能如期运行,并尽可能地满足所有用户需求. 但是,你难 ...

  3. [转]ASP.NET Core Web API 最佳实践指南

    原文地址: ASP.NET-Core-Web-API-Best-Practices-Guide 转自 介绍# 当我们编写一个项目的时候,我们的主要目标是使它能如期运行,并尽可能地满足所有用户需求. 但 ...

  4. Python编程之美:最佳实践指南PDF高清完整版免费下载|百度云盘|Python新手到进阶

    百度云盘:Python编程之美:最佳实践指南PDF高清完整版免费下载 提取码:1py6 内容简介 <Python编程之美:最佳实践指南>是Python用户的一本百科式学习指南,由Pytho ...

  5. Python 最佳实践指南 2018 学习笔记

    基础信息 版本 Python 2.7 Python 3.x Python2.7 版本在 2020 年后不再提供支持,建议新手使用 3.x 版本进行学习 实现 CPython:Python的标准实现: ...

  6. 转载:Google 官方应用架构的最佳实践指南 赞👍

    官方给的实践指南,很有实际的指导意义,  特别是对一些小公司,小团队,给了很好的参考意义. 原文地址: https://developer.android.com/topic/libraries/ar ...

  7. PYTHON 最佳实践指南(转)

    add by zhj: 本文参考了The Hitchhiker's Guide to Python,当然也加入了作者的一些东西.The Hitchhiker's Guide to Python 的gi ...

  8. Android最佳实践指南

    Updated on 2016/1/6 修正了一些翻译段落欢迎转载,但请保留译者链接:http://www.jianshu.com/p/613d28a3c8a0 Lessons learned fro ...

  9. Redis 混合存储最佳实践指南

    Redis 混合存储实例是阿里云自主研发的兼容Redis协议和特性的云数据库产品,混合存储实例突破 Redis 数据必须全部存储到内存的限制,使用磁盘存储全量数据,并将热数据缓存到内存,实现访问性能与 ...

  10. HTTPS安全加固配置最佳实践指南

    转载自:https://www.bilibili.com/read/cv16067729?spm_id_from=333.999.0.0 0x02 HTTPS安全加固指南 描述: 当你的网站上了 HT ...

随机推荐

  1. 23. 从零用Rust编写正反向代理,流控小姐姐的温柔一刀!

    wmproxy wmproxy已用Rust实现http/https代理, socks5代理, 反向代理, 静态文件服务器,四层TCP/UDP转发,内网穿透,后续将实现websocket代理等,会将实现 ...

  2. 线上JAVA应用平稳运行一段时间后出现JVM崩溃问题

    一.问题是怎么发现的 系统是一个定时任务系统,需要定时执行业务代码,业务代码主要是访问MYSQL数据库和缓存进行操作,该开始启动,系统日志一切正常,但是运行一段时间到凌晨后,系统就自动崩溃了,java ...

  3. Vue 2.x源码学习:render方法、模板解析和依赖收集

    内容乃本人学习Vue2源码的一点笔记,若有错误还望指正. 源码版本: vue: 2.6 vue-loader: 13.x vue-template-compiler: 2.6 之前的相关学习笔记: 应 ...

  4. (Good topic)快慢指针:链表的中间结点 (3.23leetcode每日打卡)

    给定一个带有头结点 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点.   示例 1: 输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3, ...

  5. 🔥🔥通过访问URL地址,5分钟内渗透你的网站!很刑很可拷!

    今天我来带大家简单渗透一个小破站,通过这个案例,让你深入了解为什么很多公司都需要紧急修复各个中间件的漏洞以及进行URL解析拦截等重要操作.这些措施的目的是为了保护网站和系统的安全性.如果不及时升级和修 ...

  6. 电子元器件工厂的金蝶 ERP 与赛意 WMS 系统数据集成平台进行对接

    项目背景 国内某晶振集成电路研发单位,涵盖从产品开发.设计.生产.销售.服务等各个环节.需要全面建成以ERP.WMS.BOM.PLM.DMS.SRM.OA 为核心的企业信息系统,支持研发.生产.营销. ...

  7. RLHF · PBRL | B-Pref:生成多样非理性 preference,建立 PBRL benchmark

    论文题目:B-Pref: Benchmarking Preference-Based Reinforcement Learning,2021 NeurIPS Track Datasets and Be ...

  8. 公司oa是什么?一般公司oa有什么样功能?

    公司OA(Office Automation)是指通过计算机和信息技术来实现办公自动化的系统. 它提供了一系列的功能和工具,用于协调.管理和处理公司内部的日常事务和流程.OA系统旨在提高工作效率.加强 ...

  9. 从根上理解elasticsearch(lucene)查询原理(2)-lucene常见查询类型原理分析

    大家好,我是蓝胖子,在上一节我提到要想彻底搞懂elasticsearch 慢查询的原因,必须搞懂lucene的查询原理,所以在上一节我分析了lucene查询的整体流程,除此以外,还必须要搞懂各种查询类 ...

  10. 学习tinyriscv(1):安装tinyriscv的工具链

    因为毕设是CPU的低功耗设计,所以开始看cpu,打算还是先从这个tinyriscv学起,昨天把环境下好了,第一步是用git去clone代码,这个首先要下载git,然后在目标文件夹鼠标右键,选择&quo ...