Table of Contents
Fetching ...

Evaluating the Language-Based Security for Plugin Development

Naisheng Liang, Alex Potanin

TL;DR

The paper investigates security vulnerabilities in plugin development with a focus on language-based security and its limitations in preventing access-control breaches. It implements test plugins in IntelliJ (Java) and VS Code (JavaScript) to evaluate language-based controls and contrasts them with capability-based approaches such as Wyvern. Findings show that malicious plugin functionalities can be published and operate without triggering safeguards, indicating gaps in current security measures and the need for fine-grained access control strategies. The work contributes practical insights for IDE ecosystems and developers, highlighting trade-offs between language-based and capability-based security and outlining directions for enhanced plugin security and tooling.

Abstract

With the increasing popularity of plugin-based software systems, ensuring the security of plugins has become a critical concern. When users install plugins or browse websites with plugins from an untrusted source, how can we be sure that they do have any undesirable functions implicitly? In this research, we present a comprehensive study on language-based security mechanisms for plugin development. We aim to enhance the understanding of access control vulnerabilities in plugins and explore effective security measures by introducing a capability-based system. We also developed and evaluated test plugins to assess the security mechanisms in popular development environments such as IntelliJ IDEA and Visual Studio Code by utilising Java, JavaScript, and associated APIs and frameworks. We also explore the concept of capability-based module systems as an alternative approach to plugin security. A comparative analysis is conducted to evaluate the effectiveness of capability-based systems in addressing access control vulnerabilities identified in earlier sections. Finally, recommendations for improving plugin security practices and tools will be presented, emphasizing the importance of robust security measures in the ever-evolving landscape of software plugins.

Evaluating the Language-Based Security for Plugin Development

TL;DR

The paper investigates security vulnerabilities in plugin development with a focus on language-based security and its limitations in preventing access-control breaches. It implements test plugins in IntelliJ (Java) and VS Code (JavaScript) to evaluate language-based controls and contrasts them with capability-based approaches such as Wyvern. Findings show that malicious plugin functionalities can be published and operate without triggering safeguards, indicating gaps in current security measures and the need for fine-grained access control strategies. The work contributes practical insights for IDE ecosystems and developers, highlighting trade-offs between language-based and capability-based security and outlining directions for enhanced plugin security and tooling.

Abstract

With the increasing popularity of plugin-based software systems, ensuring the security of plugins has become a critical concern. When users install plugins or browse websites with plugins from an untrusted source, how can we be sure that they do have any undesirable functions implicitly? In this research, we present a comprehensive study on language-based security mechanisms for plugin development. We aim to enhance the understanding of access control vulnerabilities in plugins and explore effective security measures by introducing a capability-based system. We also developed and evaluated test plugins to assess the security mechanisms in popular development environments such as IntelliJ IDEA and Visual Studio Code by utilising Java, JavaScript, and associated APIs and frameworks. We also explore the concept of capability-based module systems as an alternative approach to plugin security. A comparative analysis is conducted to evaluate the effectiveness of capability-based systems in addressing access control vulnerabilities identified in earlier sections. Finally, recommendations for improving plugin security practices and tools will be presented, emphasizing the importance of robust security measures in the ever-evolving landscape of software plugins.
Paper Structure (51 sections, 5 figures, 1 table)

This paper contains 51 sections, 5 figures, 1 table.

Figures (5)

  • Figure 1: Workflow of basic highlighter
  • Figure 2: Workflow of basic highlighter with file manipulator
  • Figure 3: Workflow of basic highlighter with network manipulator
  • Figure 4: Publishing of IntelliJ plugins
  • Figure 5: Publishing of VS Code extensions