Software engineers regularly use JavaScript and Python for both front-end and back-end automation tasks. On top of JavaScript and Python, there are several frameworks to facilitate automation tasks further. Some of these frameworks are Node Manager Package (npm) and Python Package Index (PyPi), which are open source (OS) package libraries. The public registries npm and PyPi use to host packages allow any user with a verified email to publish code. The lack of a comprehensive scanning tool when publishing to the registry creates security concerns. Users can report malicious code on the registry; however, attackers can still cause damage until they remove their tool from the platform. Furthermore, several packages depend on each other, making them more vulnerable to a bad package in the dependency tree. The heavy code reuse creates security artifacts developers have to consider, such as the package reach. This project will illustrate a high-level overview of common risks associated with OS registries and the package dependency structure. There are several attack types, such as typosquatting and combosquatting, in the OS package registries. Outdated packages pose a security risk, and we will examine the extent of technical lag present in the npm environment. In this paper, our main contribution consists of a survey of common threats in OS registries. Afterward, we will offer countermeasures to mitigate the risks presented. These remedies will heavily focus on the applications of Machine Learning (ML) to detect suspicious activities. To the best of our knowledge, the ML-focused countermeasures are the first proposed possible solutions to the security problems listed. In addition, this project is the first survey of threats in npm and PyPi, although several studies focus on a subset of threats.
翻译:软件工程师定期使用 JavaScript 和 Python 前端和后端自动化任务。 在 JavaScript 和 Python 上, 有一些框架可以进一步便利自动化任务。 有些框架是节点管理软件包(npm) 和 Python 软件包索引(PyPi), 它们是开放源( OS) 软件库。 公共登记册 npm 和 PyPi 用于托管软件包, 允许拥有经核实的电子邮件的用户发布代码。 在向登记册发布时, 缺乏全面的扫描工具造成了安全关切。 用户可以在登记册上报告恶意的代码; 但是, 攻击者仍然可以造成损害, 直到他们从平台上移除工具。 此外, 有几个软件包包彼此依赖对方, 使他们更容易在依赖树中的坏的软件包包包包( Pyp PyPi) 索引( PyPyPi) 。 大量再利用代码创建安全物品开发者必须考虑, 如软件包到达软件包。 该项目将展示一个高层次的密码登记册和包依赖结构结构结构结构。 。 有一些可能的攻击类型,, 。 在系统内部数据库中, 将进行我们目前的系统定位数据库中, 将研究中, 将开始 将进行 将显示一个安全风险 。