DevOps可以帮助软件开发和IT从僵化的瀑布式开发脱离出来,转为更灵活的敏捷开发,使开发团队能够更快地解决问题、降低代码复杂性并加快产品交付。
既然DevOps有这么多的好处,那么对于希望确保软件开发过程安全的开发团队来说,下一步自然是采用类似的方法来解决安全问题。
本篇文章将解释企业如何通过将DevSecOps集成到嵌入式软件开发生命周期 (SDLC) 中,使得开发达到现代速度的同时也能确保安全性。
什么是DevSecOps?
开发、安全和运营:DevSecOps将这些实践结合在一起,以便从第一行代码开始,直到最后一次产品更新,在整个过程中及时发现并解决安全问题。
虽然DevOps流程有助于加快软件发布周期,但这种争分夺秒的做法可能会引入漏洞,从而引发由恶意软件、加密问题以及不当访问控制和验证导致的网络攻击。这就是为什么要尽早确保软件的安全,或者说,采用DevSecOps来实践“左移”安全的方法非常重要。
DevSecOps是一个持续的过程,将安全性集成到DevOps工作流中,有助于简化开发流程、减少投入生产所需的时间。DevSecOps的目标是在CI和CD流水线出现漏洞时,对其进行识别和修复。即时修复意味着修复缺陷更容易、更快速、成本更低,从而减少了对发布时间与开发人员工作的影响。
如何开始使用嵌入式软件的DevSecOps 101
随着人工智能(AI)、机器学习(ML)、物联网(IoT)和基于云的系统等先进技术兴起,通过DevSecOps来保护软件的需求也与日俱增——大多数企业都明白其紧迫性。根据云安全联盟(Cloud Security Alliance)的一份报告,90%的企业正在转向DevSecOps方法,近一半的受访者已经在实施或改进了他们的方法。
但是,嵌入式软件还有一些独特的安全挑战:
-
在目标上运行的安全应用会被有限的CPU和内存所限制;
-
应用程序的安全性不仅取决于应用程序本身的设计,还取决于与其相关的库和硬件依赖关系的安全性;
-
连接性的增强会增加潜在的攻击面;
-
该领域的产品一般使用寿命较长,黑客有更多时间研究设备;
-
开发人员不一定具备网络安全专业知识,以提供安全代码。
要想在嵌入式软件市场竞争中立于不败之地,并在现代工作流程中构建安全性,嵌入式软件开发团队可以从人员、流程和工具入手,构建DevSecOps的基础。
嵌入式软件DevSecOps 101的三大基础
-
人员。为了确保代码安全,应确保不仅是安全团队,每个人和每个功能团队都需要对产品的安全性负责;
-
流程。将安全性嵌入到每一个开发任务中——这样,安全任务将成为一种习惯;
-
工具。通过将技术(例如像Perforce的Klocwork这样的静态分析工具)集成到现有的CI / CD流水线中,以相对较低的成本获得成功。
DevSecOps的7个最佳实践
DevSecOps提倡自动化而非手动流程,以实现以下最佳实践:
-
培养协作文化。安全性是人员、流程和工具之间的共同责任。培养DevSecOps思维意味着DevSecOps领导者应该促进团队中的透明度、尊重和信任,以便尽可能高效地做出安全决策;
-
将安全性集成到增量开发中。将工作分解为小的、可管理的部分,支持在流程的早期进行测试,并提高安全SDLC的整体效率;
-
使用基础架构即代码(IaC)。DevSecOps的基础架构即代码是指通过代码而不是手动流程来配置和管理安全资源,从而减少运行安全检查所需的工作量和专业知识;
-
强制执行应用程序安全测试(AST)。AST可提高代码覆盖率,减少手动工作,并确保代码库的安全。例如,SAST非常适合在开发生命周期的早期进行测试,而DAST侧重识别软件运行时发现漏洞;
-
收集指标和度量。安全指标有助于团队对漏洞识别和修复实践进行微调;
-
可追溯性。可追溯性是指在整个SDLC过程中跟踪软件组件的能力。对于代码审查、最大程度减少漏洞,以及与安全编码标准和客户期望保持一致来说,这个过程至关重要。
-
持续反馈。有效的监控和反馈框架可帮助相关人员做出决策和权衡(在DevSecOps组件的功能、质量、成本和影响之间),最好是在问题的当下就做出决策和权衡。
SAST如何帮助您构建DevSecOps的基础
SAST工具,如Klocwork,可帮助嵌入式软件团队在编码过程中识别缺陷、漏洞和合规性问题。
SAST工具适用于整个开发流水线,通过IDE插件、CI/CD集成和夜间扫描等功能,在一个与您的工作环境相关联的中央数据库中提供结果。
此外,Klocwork还能帮助您实现DevSecOps流水线的自动化,同时执行CWE、CERT和OWASP等关键安全标准。
作者简介:
斯图尔特·福斯特(Stuart Foster)
Klocwork和Helix QAC产品经理,Perforce
斯图尔特·福斯特在移动和软件开发方面拥有超过10年的丰富经验,负责管理消费应用和企业软件的产品开发。目前,他负责管理Klocwork和Helix QAC——Perforce的代码质量管理解决方案。他致力于开发符合客户业务需求的产品、特性和功能,并帮助开发人员生成安全、可靠、无缺陷的代码。斯图尔特拥有Carleton大学的信息技术、交互式多媒体和设计学士学位,以及Algonquin应用艺术与技术学院的多媒体设计高级文凭。
文章来源:https://bit.ly/45VJSoo