论文部分内容阅读
随着云计算与业务场景深度融合,云原生作为解决如何将应用程序迁移至云计算环境的技术体系与方法论,加速了“应用上云”进程,促进了应用程序以云原生应用(Cloud-Native Applications)完成交付的新业态形成。云原生应用基于微服务架构将复杂应用程序解耦为多个功能单一、支持独立开发、基于容器独立部署的微服务,提高了应用交付与迭代速度。然而,随着云原生应用的规模加剧膨胀,微服务化、容器化且基于Dev Ops完成开发交付的云原生应用逐渐呈现出高开放、高复杂、高动态的特征,云原生应用的弹性(Resilience)受到攻击面增大和资源管理易失效的影响。首先,高开放Dev Ops软件供应链给云原生应用引入更多的漏洞后门,其次,高复杂与高动态的微服务架构及容器化运行环境也使得现有的安全威胁治理技术及资源供应技术有效性不足。因此,如何在高开放、高复杂、高动态的云原生环境中抵御安全威胁、保障服务可用,进而增强云原生应用弹性具有重要研究意义。本文从Dev Ops软件供应链、微服务架构及容器化运行环境三个层面给云原生应用引入的问题出发,面向抵御安全威胁、保障服务可用的目标,展开对云原生应用的弹性增强关键技术研究。在Dev Ops软件供应链层面,针对高开放的软件供应链下微服务漏洞后门难以治理的问题,研究内生安全微服务构建方法,增强微服务对漏洞后门的容忍能力;在微服务架构层面,针对微服务之间复杂调用关系引起云原生应用攻击面难以管控的问题,研究微服务多维动态防御策略,提高云原生应用的攻击面治理能力;在容器化运行环境层面,一方面,针对容器虚拟技术轻量化引起多应用同驻攻击风险难以防御的问题,研究多应用微服务放置算法,降低多应用同驻攻击的破坏范围;另一方面,针对容器冷启动引起云原生应用难以适应突发工作负载的问题,研究微服务主动资源分配方法,以保障云原生应用在突发工作负载下的服务可用性。本文的主要研究内容及主要贡献如下:1.提出了一种基于动态异构冗余架构的内生安全微服务构建方法(Sec Ingress)。该方法以动态、异构、冗余的微服务给攻击者呈现时空不确定的攻击面为切入点,增强微服务对漏洞后门的容忍能力。首先,基于微服务API网关构建了可无缝融入到云原生环境的Sec Ingress框架,该框架基于异构微服务执行体对同一网络攻击呈现出不同响应的特点,通过比较异构冗余微服务执行体响应数据的异同并选择输出,发现并处置利用漏洞后门实施的网络攻击。在此基础上,提出了一种基于存贮模型优化的自适应表决策略,提高Sec Ingress对微服务基于持久性连接、断续传输响应数据的适应性。最后,实现了Sec Ingress的原型系统并进行实验评估,结果表明,自适应表决策略相对于现有表决策略表决效率更高且资源开销更小,基于Sec Ingress构建的内生安全微服务的可利用漏洞数量、网络威胁数量相对于普通微服务分别降低55.10%、41.70%。2.提出了一种基于深度强化学习的微服务多维动态防御策略(D2RA)。该策略以攻击过程需分多步进行为切入点,通过微服务动态变换与动态清洗的动态防御策略,实现云原生应用攻击面动态化及攻击破坏可恢复,提高云原生应用的攻击面治理能力。为达到最优的动态防御策略,首先建立刻画动态防御策略与云原生应用安全性、资源开销及服务可用性映射关系的微服务系统模型。接着,提出一种基于深度强化学习的微服务动态防御策略优化算法,为云原生应用提供抵御安全威胁同时维持云原生应用服务可用性的多维动态防御策略。最后,基于仿真实验验证了该策略的有效性,结果表明,该策略在防御有效性和服务质量方面相对于现有动态防御策略分别提高19.07%和42.31%。3.提出了一种面向容器同驻攻击的多云原生应用微服务放置算法(Ms CPA)。该算法以关键微服务受到同驻攻击时威胁范围更广为切入点,通过优化多应用微服务在计算集群中的放置策略,降低多应用之间同驻攻击的破坏范围。首先,根据攻击载荷可基于同驻攻击及微服务调用关系在多个云原生应用之间传播的威胁模型,给出了计算节点集群中的多个云原生应用的同驻攻击风险的评估方法。接着,通过将多应用的关键微服务分散放置在不同的计算节点,避免关键的微服务因同驻攻击而扩大威胁传播范围,增强多应用场景下对同驻攻击的防御能力。最后,基于仿真实验对所提出的算法进行评估,结果表明,该算法与其它容器放置算法相比,多应用同驻攻击风险降低了18.74%,计算节点负载均衡性能提高了15.43%。4.提出了面向容器冷启动的微服务主动资源供应方法(Cushion)。该方法以工作负载调度反应速度更快为切入点,通过结合基于预留热备容器的工作负载调度与容器扩缩容,实现对突发工作负载的快速适应能力。首先,建立基于长短期记忆网络的工作负载预测模型,对微服务的工作负载进行预测;接着,建立微服务性能模型自动化构建框架以生成微服务的响应时延模型与冷启动时延模型,分别预测工作负载所需的微服务的容器副本及这些容器副本启动所需的时间;在此基础上,提出基于预留热备容器的工作负载调度与容器扩缩容的主动资源供应方法,提高微服务在动态及突发工作负载下的服务可用性;最后,通过实验对Cushion进行评估,结果表明Cushion与现有容器资源供应方法相比,基准微服务的服务等级目标(Service Level Objective,SLO)违规降低9.12倍,吞吐量提高23.75%。