Skip to main content
QUICK REVIEW

[论文解读] Security Issues in Language-based Sofware Ecosystems.

Ruturaj K. Vaidya, Lorenzo De Carli|arXiv (Cornell University)|Mar 6, 2019
Advanced Malware Detection Techniques参考文献 17被引用 18
一句话总结

本文系统分析了以 npm 和 PyPI 为代表的基于语言的软件生态系统(LBEs)中固有的安全漏洞,揭示了其设计——偏好代码复用和自动化依赖管理——为隐蔽的自动化攻击创造了温床。研究结论认为,尽管完全自动检测恶意软件包可能不可行,但开发者使用的风险评估工具和指标可显著降低被利用的风险。

ABSTRACT

Language-based ecosystems (LBE), i.e., software ecosystems based on a single programming language, are very common. Examples include the npm ecosystem for JavaScript, and PyPI for Python. These environments encourage code reuse between packages, and incorporate utilities - package managers - for automatically resolving dependencies. However, the same aspects that make these systems popular - ease of publishing code and importing external code - also create novel security issues, which have so far seen little study. We present an a systematic study of security issues that plague LBEs. These issues are inherent to the ways these ecosystems work and cannot be resolved by fixing software vulnerabilities in either the packages or the utilities, e.g., package manager tools, that build these ecosystems. We systematically characterize recent security attacks from various aspects, including attack strategies, vectors, and goals. Our characterization and in-depth analysis of npm and PyPI ecosystems, which represent the largest LBEs, covering nearly one million packages indicates that these ecosystems make an opportune environment for attackers to incorporate stealthy attacks. Overall, we argue that (i) fully automated detection of malicious packages is likely to be unfeasible; however (ii) tools and metrics that help developers assess the risk of including external dependencies would go a long way toward preventing attacks.

研究动机与目标

  • 调查基于语言的软件生态系统(LBEs)如 npm 和 PyPI 中固有的系统性安全问题。
  • 理解 LBEs 的设计如何在拥有安全的软件包管理器和依赖解析工具的前提下,仍使隐蔽的自动化攻击成为可能。
  • 通过近一百万个软件包的大规模实证分析,对大型 LBE 中的攻击策略、攻击向量和目标进行特征刻画。
  • 评估在这些生态系统中完全自动化检测恶意软件包的可行性。
  • 提出以开发者风险评估为重点的实用缓解策略,而非依赖自动化检测。

提出的方法

  • 对 npm 和 PyPI 这两个最大的 LBEs 中真实世界安全事件的系统性分析。
  • 收集并分析近一百万个来自 npm 和 PyPI 的软件包,以识别恶意行为的模式。
  • 基于生态系统中观察到的入侵模式,对攻击策略、向量和目标进行分类。
  • 评估现有工具(如软件包管理器)在检测恶意软件包方面的局限性。
  • 识别即使在单个软件包和工具被修补后依然存在的设计层面漏洞。
  • 基于生态系统特征和软件包元数据,开发一种风险评估框架,以指导开发人员决策。

实验结果

研究问题

  • RQ1在 npm 和 PyPI 等基于语言的软件生态系统中,主要的攻击策略是什么?
  • RQ2攻击者如何利用软件包管理器和依赖解析的设计缺陷来部署隐蔽的恶意代码?
  • RQ3尽管已有安全工具,为何在 LBE 中完全自动化检测恶意软件包在根本上不可行?
  • RQ4哪些软件包特征使其更可能成为恶意或被入侵的软件包?
  • RQ5如何让开发人员更好地评估引入外部依赖的风险?

主要发现

  • 研究发现,LBE 的架构本质上允许隐蔽攻击,即使使用安全工具,检测也极为困难。
  • 对近一百万个软件包的分析表明,恶意软件包通常模仿合法软件包,并利用依赖链中的信任关系。
  • 攻击者普遍使用社会工程学和依赖混淆技术来入侵生态系统,且许多攻击在长时间内未被发现。
  • 研究证实,由于攻击者使用高度复杂和混淆的技术,自动化检测恶意软件包几乎不可能成功。
  • 面向开发人员的风险评估工具和指标被确认为缓解 LBE 威胁的最可行路径。
  • 研究结果表明,仅通过修补软件包或工具中的漏洞无法确保安全——必须通过架构和流程层面的解决方案来解决系统性设计缺陷。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。