Page 53 - 《软件学报》2021年第10期
P. 53

戴启铭  等:DevSecOps:DevOps 下实现持续安全的实践探索                                            3025


                 力 [59] .它利用了代码混淆技术,让应用程序中的代码变得混乱和复杂,使应用程序的二进制文件更加难以分析,
                 进而增强了应用程序的防护能力.此外,应用屏蔽技术也能够保护应用软件的资产安全,极大地提高了逆向工程
                 所需的工作量,能够有效阻止盗版、数字信息盗窃等情况的出现,从而让企业在同类产品的竞争中占据一定的
                 优势.
                    为缩短产品的发布周期,让用户尽早享受到新的产品和功能,发布阶段的相关安全实践也应当以自动化的
                 方式进行.在保证产品质量和组织利益的前提下,通过对产品添加额外的安全保护,以保证高质量产品的发布过
                 程.在完成产品发布后,组织将会在实际生产环境中部署上线该版本的产品.
                 3.1.6    部署阶段
                    部署阶段会将待发布的版本部署到生产环境中,并让其持续地对外提供服务.DevOps 提倡的是持续部署,
                 它需要以自动化的方式简化整个部署过程并完成上线.因此,对即将部署上线的产品和基础设施的安全保护也
                 应当集成到这个自动化的过程中,这些实践能够切实消除运维人员的操作风险,实现对所交付的产品的进一步
                 加固.为此,我们总结了以下几点实践.
                       强化云部署
                    由于 DevOps 与云技术结合得十分紧密,运维人员在多云环境中进行安全部署时更需要考虑上线后的诸多
                 问题.比如:在确保系统安全的情况下,如何保障计算资源的高可用、如何实现相对均衡的负载、如何对存储资
                 源进行合理分配等.为解决好上述问题,在对基础设施中的众多组件进行安全配置时                             [18] ,有时需要依赖运维人员
                 的个人经验,但这无疑会增加基础设施的安全风险.强化云部署将通过验证的部署准则和经过测试的配置集成
                 到一套框架中,并依赖自动安全配置检测机制来加快部署进程,避免发生错误的部署                             [60] .这大大简化了运维人员
                 的操作,也能够强化对基础设施的集中式管理.
                       容器加固
                    容器技术的出现,极大地方便了软件的开发和部署.对容器进行安全加固,是 DevSecOps 中必要的一项安全
                 措施 [61] .Taylor 也强调了企业在转向 DevSecOps 的过程中,保障容器安全的重要性             [62] .容器技术具有轻量级、灵
                 活性高、低成本等优势        [63] ,但由于容器本身的权限较大,将容器部署到基础设施中时,必须对它采取安全加固措
                 施,以减小潜在的攻击面.常见的加固措施相对较多,可以通过容器原生的安全功能设置访问控制组、清除不必
                 要的 root 权限等方式进行加固,也可以使用外部工具,如 Bench Security 脚本,对容器安全进行测评和必要的修
                 补,还可以对容器镜像进行安全扫描以保证镜像源的完整性等.
                    DevOps 强调自动化软件部署过程,但这一过程仍离不开运维人员的参与.运维人员需要根据组织的基础设
                 施、可能的部署方式等实际情况制定最佳的部署方案,完成线上的部署工作.当待发布版本的部署上线后,产品
                 便运行在生产环境下对外提供服务,组织就开始了对它的日常运维工作.
                 3.1.7    运维阶段
                    在日常的运维过程中,线上的产品时常会受到来自外部或内部的恶意攻击,从而丧失正常提供服务的能力
                 或造成大量信息泄露等安全问题,可能给企业造成巨大的负面影响.为保障线上产品的稳定和安全,运维团队应
                 当与安全团队紧密配合,在实际的生产中去检验产品和服务的安全性能,积极提高组织处理突发安全问题的能
                 力.为此,我们总结了以下几种典型实践.
                       红蓝对抗
                    红蓝对抗是一种在生产环境下模拟网络持续攻防场景,提高企业的安全防御能力的一项实践                                  [21] .它能够在
                 了解企业实际安全状况的基础上,针对企业重要的核心业务模拟真实的网络攻防,从而揭示系统实际存在的脆
                 弱环节,帮助业务提升安全能力.红蓝对抗的范围较广,涉及外网安全、内网安全、数据库安全等多个方面,并与
                 系统的实际业务场景紧密结合.在持续的对抗中,组织内部也需要不同团队之间的互相沟通、配合,共同抵御来
                 自内部或者外部的网络攻击.
                       混沌工程
                    混沌工程是一项在生产环境中对软件系统进行实验的方法,其目的是为了建立系统能够成功抵抗意外情
   48   49   50   51   52   53   54   55   56   57   58