如今,在DevOps当中建立安全体系显得比以往任何时候都更加重要。《2021年企业DevOps技能提升报告》指出,56%的受访者表示DevSecOps已经成为自动化工具中的一大必备要素。然而,DevSecOps方法不只是简单添加安全工具与实践,与任何其他DevOps方法一样,其中也离不开文化、流程与技术。
如果不能以战略性方式在企业当中实施DevSecOps,则很容易出现安全障碍或问题。而明智的选择,则有望帮助我们从起步阶段就回避掉这些潜在陷阱。在本文中,我们邀请多位行业专家分享自己的真知灼见,下面来看他们总结出的八个DevSecOps“大坑”:
1. 急功近利,总想要一蹴而就
“实现目标的关键,在于分多个步骤从小处入手。最好是以试点项目为起点,确定一支负责实施DevSecOps管道与流程的项目兼跨职能团队(涵盖应用开发、运营、安全等)。此外,还应确定目标、使用案例并为迭代工作做好准备。如果团队运作良好,请记录实施过程与结果,并据此确定商业价值,例如更快的上市时间或者预先解决安全问题的能力。”——Kirsten Newcomer,红帽公司云安全战略总监
2. 将扫描工具添加至CI/CD(持续集成/持续交付)管道当中,但却没能充分运用扫描结果
“为了扫描而扫描,往往只会带来一种虚假的安全感并引发大量噪声。最重要的应该是考虑如何将安全扫描中发现的问题,切实转化为可操作的补救行动。”Rob Cuddy,HCL Technologies公司全球应用程序安全布道师
3. 避免文化包袱
“团队在十多年前开始实施DevOps时,首先需要确立的就是文化定位。DevOps从本质上强调的是协作、同理心与创新。未能正确理解文化的团队,将很难完成应用程序的构建、测试、持续部署与运行。DevSecOps的情况也是一样,团队只会有更多的文化包袱需要解决。开发人员与安全人员长期以来总是关注着不同的目标,导致双方产生严重分歧。开发者更关注产品开发速度,安全部门则重视如何降低风险。“
“事实是,安全性只是代码质量的另一部分,交付高质量代码符合所有团队的基本利益。谁能围绕这一点达成团结并建立起相应文化,谁就会获得茁壮成长的良好态势。而那些专注于战术实施、但却忽略掉文化研究及相关挑战的团队,则一定会身陷困境。”——Joni Klippert,StackHawk公司联合创始人兼CEO
4. 不理解工具,投入过快,扰乱既有工程流程
“为了确保更高的成功率,最好缓慢地每次引入一种安全控制,并确保结果对团队确有价值。持续监控并改进安全流程,最大程度减少业务中断。其中包括评估结果、调节扫描工具并尽可能减少指向工程团队的误报。如果无法完成这种文化转变,则DevSecOps大概率会陷入失败。”
“左移的意义,是在软件项目开发或产品启动之初,就保证将一切角色和职责清晰简明地委派给每一位参与者。将DevSecOps和安全带入人们已经熟悉的工作体系当中。把工程师们已经在使用的工具与安全流程融合得越好,起步阶段就会越简单。”——Dheeraj Nayal,DevOps研究院全球社区大使兼亚太、中东与非洲区域负责人
5. 未能得到高层领导认同
“与DevOps类似,DevSecOps的本质并不是团队或者角色,而是一种文化。不解决文化方面的问题,单是在现有团队/流程中添加一个安全/DevSecOps工程师角色,并不足以达到与预期相符的回报。而文化通常源自高层,因此要建立正确的文化体系,必须保证高层领导团队支持DevSecOps。”——David Slater,Tasktop公司云产品价值流负责人
6. 将自动化安全检查引入交付管道,但未能考虑到反馈循环
“在处理较为陈旧的代码库时,企业可能已经识别出大量缺陷。但「为每个缺陷创建一个Jira工单」的默认响应方式无法解决问题。另一种常见的陷阱则是低估了采取新方法所需要的时间。要使DevSecOps取得成功,必须要让交付团队亲自参与解决方案构建。”——Peter Maddison,Xodiac公司创始人
7. 对安全集成不加反思
“也就是在未经认真讨论的情况下匆忙引入某种工具或者流程。团队实施了变更,但并没有对变更本身的含义进行协同探索。安全不应该是一种硬性叫停的机制;相反,更有意义的思考应该是「新的集成元素是否会引入新的风险?」”
“在运维方面,这样的讨论也同样适用:如果发现安全漏洞,我们该先做点什么来遏止住问题,又该怎样避免未来发生类似的问题?与DevOps领域的陷阱一样,只要发现有「坑」,人们应该通过回溯确定更多未来可以改进的地方。”——Mark Peters,Novetta公司技术负责人
8. 一旦工件通过DevSecOps的审查,即授予100%的安全信任
“DevSecOps不是终点,而是一段持续而漫长的旅程。只要能时刻认清这一现实,我们就不会落入DevSecOps的泥潭。”——Sharath Dodda,TD公司IT开发经理