余 航,许 博
(陆军工程大学 指挥控制工程学院,江苏 南京 210007)
对于软件系统,尤其是具有关键任务使命的系统而言,确保任务执行不中断、具备持续运行能力、保证使命任务的完成至关重要。 事实上,许多风险都会对系统服务产生严重影响,例如自然灾害、硬件故障、性能过载、错误配置、软件漏洞、恶意程序、敌对攻击等[1],故障风险的增加会严重降低已部署服务的质量,甚至导致服务完全中断。
在安全领域,尽管许多科研人员仍然致力于构建更加健全的外部安防体系,试图将威胁拒止于受保护的系统之外,但一旦研究人员精心构建的防被线被突破之后,所有的努力都将功亏一篑。 鉴于当前网络环境的复杂性、威胁形式的多样性以及威胁的不可预测性,利用传统的外部防御手段来实现无懈可击的保护是不现实的。 并且复杂的安防系统会因为过于臃肿而导致资源的严重消耗以及系统网络性能的下降[2],因此需要改变思维方式,考虑当外部防御失败后的状况。 也就是说,系统必须考虑在面对已经到来的破坏情况下,如何确保服务得以持续,保证任务使命得以完成。
系统抵抗风险可能带来的破坏性并在灾害、故障、攻击到来时维持服务持续运行、确保使命必达的能力通常被称为系统韧性。自美国国防部于2014年提出并推行“网络韧性”以来,“韧性”一词便在计算机领域受到广泛关注。
韧性多用于表示实体或系统在发生扰动后快速恢复到常态的能力[3]。……