SpellBound:抵御软件包误拼抢注
软件工程
2020-03-10 v1 密码学与安全
摘要
基于单一编程语言的软件仓库的包管理器非常常见。例子包括npm(JavaScript)和PyPI(Python)。这些工具鼓励代码复用,使开发者导入外部包变得轻而易举。不幸的是,仓库的规模以及发布包的便利性助长了误拼抢注行为:上传与极热门包名称相似的包,通常以攫取该热门包部分安装量为目的。误拼抢注具有严重的负面影响,导致开发者导入恶意包,或者——如我们所展示的——未纳入近期安全更新的代码克隆。为解决此问题,我们提出SpellBound,一个用于向开发者识别并报告潜在错误导入的工具。SpellBound实现了一种新颖的误拼抢注检测技术,基于对npm和PyPI的深入分析。我们的技术利用名称间词汇相似度模型,并进一步纳入包流行度的概念。该方法在安装发生前标记出将以未知/极少使用的包替代名称相似的热门包的情况。我们在npm和PyPI上评估了SpellBound,结果令人鼓舞:SpellBound在产生有限警告(占总包安装的0.5%)和低开销(仅占包安装时间的2.5%)的同时标记出误拼抢注案例。此外,SpellBound使我们确认了已知误拼抢注案例,并发现了一个由npm安全团队下架处理的高关注度未知误拼抢注案例。
引用
@article{arxiv.2003.03471,
title = {SpellBound: Defending Against Package Typosquatting},
author = {Matthew Taylor and Ruturaj K. Vaidya and Drew Davidson and Lorenzo De Carli and Vaibhav Rastogi},
journal= {arXiv preprint arXiv:2003.03471},
year = {2020}
}