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.
翻译:随着基于插件的软件系统日益普及,确保插件的安全性已成为一个关键问题。当用户安装来自不可信来源的插件或浏览包含此类插件的网站时,我们如何确保它们不会隐含任何不良功能?在本研究中,我们对插件开发中的基于语言的安全机制进行了全面研究。我们旨在通过引入一种基于能力(capability)的系统,加深对插件中访问控制漏洞的理解,并探索有效的安全措施。我们还开发并评估了测试插件,以评估在IntelliJ IDEA和Visual Studio Code等流行开发环境中,使用Java、JavaScript及相关API和框架的安全机制。此外,我们探索了基于能力的模块系统作为插件安全的替代方案。通过比较分析,评估了基于能力的系统在解决前文所述访问控制漏洞方面的有效性。最后,提出了改进插件安全实践与工具的建议,强调了在不断发展的软件插件领域中,稳健安全措施的重要性。