Understanding npm Developers' Practices, Challenges, and Recommendations for Secure Package Development
本研究通过一项针对 75 名 npm 包开发者的混合方法调查,调查了他们的安全感知、实践与挑战,结果显示,尽管安全是一个优先事项,但开发者面临着时间限制和工具局限性等显著障碍,从而提出了通过改进检测工具、文档和教育来增强生态系统可信度的建议。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下软件开发的世界,它是一座名为 Node City 的巨大、繁忙的城市。在这座城市里,几乎每一栋建筑(一个应用或网站)都不是从零开始建造的,而是通过将预制的乐高积木拼接在一起而成的。这些积木被称为 npm 包。它们有超过 200 万个,每月被下载数十亿次。
那些制造、维护和分发这些积木的人是 npm 开发者。他们是这座城市的建筑师和守护者。
这篇论文就像是一场市政厅会议,研究人员询问了 75 位这样的“积木制造者”:“你觉得你的积木有多安全?什么事情让你彻夜难眠?以及你使用什么工具来维护城市的安全?”
以下是他们的发现,用简单的语言解释如下:
1. “我知道这很重要,但是……”的悖论
开发者们一致认为:安全性超级重要。 他们非常在意这一点。然而,当被问及如何评价他们自己制作的积木的安全性时,大多数人给出了“C+”或“B-”的分数。他们没有说:“我的积木是完美的。”他们说:“它们还可以,但不是很好。”
- 类比: 这就像一位厨师知道食品安全至关重要,但承认:“我的厨房很干净,但我并不百分之百确定我有没有在汤里留下一点点灰尘。”他们重视安全,但也知道自己的工作并非无懈可击。
2. 三大可怕怪物(威胁)
当被问及最令他们恐惧的是什么时,开发者指出了三个主要怪物:
- 供应链攻击: 想象一下,有一个小偷潜入了存放积木的仓库,把一块安全的红积木换成了一枚炸弹。这是排名第一的恐惧。
- 依赖项漏洞: 你的积木本身可能很安全,但它粘连在另一块有裂缝的积木上。如果那块积木坏了,你的也会跟着倒塌。
- 恶意代码: 有人在积木内部故意设置陷阱。
3. 工具问题:“垃圾邮件文件夹”难题
开发者拥有检查这些怪物的工具(比如 npm audit 或 Dependabot)。但只有 40% 的人对这些工具感到满意。
- 类比: 想象一下,你的厨房里装了一个烟雾报警器。它运行得很好,但每次你烤面包或打开窗户时,它都会响。久而久之,你会产生警报疲劳。你会开始忽略那个鸣叫声,因为你心想:“哦,又是烤面包机在响。”
- 开发者表示,这些工具经常针对一些其实并不危险的事情大喊“危险!”(误报)。这让他们感到疲惫,导致他们在真正的火灾发生时也不太愿意去听从。
4. 他们如何解决问题
当开发者发现积木上有裂缝时,他们通常会迅速行动。
- 流程: 他们会检查裂缝有多严重,修复它,然后立即发布一个新版本。
- “弃用”策略: 如果他们依赖的某块积木被遗弃了(没有人再维护它)或者已知有无法修复的裂缝,他们就会停止使用它。这就像意识到某个供应商已经破产,所以立即更换了新的供应商。
5. 路障(为什么这很难)
为什么他们不能把一切都做得完美?最大的障碍是时间。
- 类比: 想象一下,你正在盖房子,而此时有人不断地递给你新的蓝图,要求你粉刷墙壁,并告诉你去修理屋顶。你根本没有足够的时间去检查每一个钉子是否安全。
- 其他障碍包括工具过于复杂、由于太多警报产生的“噪音”,以及管理数以千计的积木连接关系时的极高复杂度。
6. 他们的愿望清单
如果城市议会(npm)可以实现三个愿望来让城市更安全,以下是开发者提出的请求:
- 更好的探测器: 能够阻止对着烤面包尖叫、只在真正起火时才尖叫的工具。他们想要的是更聪明的工具,而不只是更多的工具。
- 更清晰的说明: 关于如何安全构建的更好指南和文档。
- 更多的支持: 他们希望得到资金上的帮助或激励。安全需要时间,他们希望为花费时间进行安全工作而获得回报。
有一点他们特别强调: 他们不希望工具在未经询问的情况下自动为他们修复积木。他们对机器人尝试修补漏洞持谨慎态度,因为机器人可能会修错地方。他们更倾向于在了解问题所在后,由自己动手进行修复。
核心总结
npm 开发者们初衷良好且意识到了危险,但他们感到力不从心。他们试图用一些有时会“虚报军情”的工具,来守护一座庞大且相互连接的城市,而且他们正面临时间匮乏的问题。为了让软件世界变得更安全,我们需要给他们更智能、更安静的工具,更清晰的说明,以及更多的时间来把工作做好。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。