DevSecOps的探索和落地
DevSecOps是一种全新的安全理念,作用和意义建立在“每个人都对安全负责”的理念之上,通过加强内部安全测试,主动搜寻安全漏洞,及时修复漏洞、控制风险,实现与业务流程的良好整合。
自2012年Gartner提出DevSecOps概念以来,践行DevSecOps发展的企业却很少,原因很大一个关键是安全会抑制DevOps的敏捷性。如何在不影响DevOps敏捷性的基础上,把安全融入DevOps进程,开发出DevSecOps呢?
如何让DevSecOps融入IT开发中?
1、实现安全自动化
首先,自动化降低了管理不当和产生bug的概率,而管理不当和bug是导致操作事故、意外停机时间和安全攻击成功的原因。
其次,高水平的自动化,不再需要安全专业人士参与,不需要手动配置安全设置,从而不影响DevOps环境的灵活性。如身份和访问管理(IAM)、防火墙、漏洞扫描、应用安全测试等等这些集成的和自动化的安全控制,在自动化工具链中贯穿DevOps的整个生命周期。
2、实现连续响应和检测机制
首先,对于关键应用程序的用户登录/注销、交易、互动、网络活动与系统活动,实现紧密的监控设计。
其次,利用监测数据建立应用程序的“正常”基线,以检测有意义的偏差。当不寻常的活动造成硬件故障、软件故障、bug、内部威胁或攻击时,在DevOps团队、产品团队、平台团队和安全运营中心团队中,分享监测数据。
最后,自动化部署欺骗和诱骗服务,会更容易识别攻击者。越来越多地,这些方法使用先进的行为分析和机器学习来辨识风险信息。
3、以客户为中心
推动DevSecOps,需要合理解决信息安全的抑制性问题。因为安全专家考虑的是如何保护企业资产的安全,而业务专家关注的是如何冒险满足客户的需求以增加收入。这些原则性的差异会导致双方产生极大的摩擦。
而以客户为中心,可以协调业务与安全之间的关系,从而确保制定准确、完备的安全策略,同时也可以减少复杂性造成的风险控制障碍。此外,安全计划及产出可以适应客户需求和业务产出,其中的复杂性也可以通过自动化和报告进行展示。
4、需要团队协同合作
DevSecOps需要开发、运维和安全这三方面人员的通力合作,站在对方的视角客观看待问题。具体到开发人员而言,不仅仅需要开发技能,还需要对运维及安全有了解,对运维人员和安全人员也是一样,需要各自扩充不同领域的通用技能与知识。
网友评论