使用补丁和未补丁版本的并发执行的软件组件的受控更新
Controlled Update of Software Components using Concurrent Exection of Patched and Unpatched Versions
摘要:
软件补丁是一种消除软件组件中漏洞的常用方法,以使IT系统更加安全。然而,在许多情况下,由于应用程序的关键性质,软件修补是不可能的,特别是当提供应用程序的供应商仅在特定配置中保证正确操作时。在本文中,我们提出了一种方法来解决这个问题。这个想法是并发运行未打补丁和打补丁的应用程序实例,未打补丁的应用程序实例具有完全的控制权,而打补丁的应用程序实例的输出仅用于比较,以观察由于引入错误而导致的差异。为了测试这个想法,我们开发了一个允许我们并行运行Web应用程序的系统,并测试了三个Web应用程序。实验结果表明,该方法从技术层面上对Web应用程序具有良好的应用前景。此外,我们还讨论了该系统的潜在限制和一般的想法,两个实例应该运行多长时间,以便能够以一定的概率声称修补版本没有引入任何新的错误,两个应用程序实例同时运行的拟议系统的其他潜在用例,以及该系统与不同类型的应用程序(如SCADA系统)的潜在用途。
英文摘要:
Software patching is a common method of removing vulnerabilities in software components to make IT systems more secure. However, there are many cases where software patching is not possible due to the critical nature of the application, especially when the vendor providing the application guarantees correct operation only in a specific configuration. In this paper, we propose a method to solve this problem. The idea is to run unpatched and patched application instances concurrently, with the unpatched one having complete control and the output of the patched one being used only for comparison, to watch for differences that are consequences of introduced bugs. To test this idea, we developed a system that allows us to run web applications in parallel and tested three web applications. The experiments have shown that the idea is promising for web applications from the technical side. Furthermore, we discuss the potential limitations of this system and the idea in general, how long two instances should run in order to be able to claim with some probability that the patched version has not introduced any new bugs, other potential use cases of the proposed system where two application instances run concurrently, and finally the potential uses of this system with different types of applications, such as SCADA systems.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。