抖音|嵌入式开发:DevSecOps为嵌入式安全带来深度防御

抖音|嵌入式开发:DevSecOps为嵌入式安全带来深度防御

文章图片

抖音|嵌入式开发:DevSecOps为嵌入式安全带来深度防御

虽然安全的应用程序代码本身不能在不安全的环境中提供足够的保护 , 但它确实在考虑安全性的系统中发挥着关键作用 。 无论首选的开发生命周期是什么 , 这都是正确的 。 因此 , 嵌入式开发团队越来越接受DevOps原则 , 而其他人则更喜欢传统上与功能安全标准相关的V型 , 如航空航天的DO-178C、汽车的ISO26262和医疗设备的IEC62304 。
从DevOps到DevSecOps进行纵深防御
DevOps方法集成了开发和运营团队 , 专门用于应对不断变化的环境 。 DevOps为许多嵌入式应用程序带来了明显的好处 。 例如 , 通过更加集成的产品开发 , 可以更快地满足新的市场需求 , 也许最重要的是 , 应用程序补丁和更新(如汽车软件的空中传送(OTA)安全性)可以比其他方法更快地应用 。
DevSecOps代表开发安全操作 , 它以DevOps原则为基础 , 采用“左移”原则进行扩展 , 在每次软件迭代中尽早并持续地设计和测试安全性 。
纵深防御与过程模型
传统上 , 安全嵌入式代码验证的实践在很大程度上是被动的 。 代码是根据相对宽松的指导原则开发的 , 然后进行性能、渗透、负载和功能测试 , 以识别漏洞 。
更主动的方法可以确保代码在设计上是安全的 , 这意味着一个系统化的嵌入式开发过程 , 在这个过程中 , 代码是按照安全编码标准编写的 , 可追溯到安全需求 , 并经过测试 , 以证明在开发过程中符合这些需求 。
这种主动式方法的一种解释是将安全相关的最佳实践集成到V型软件开发生命周期中 , 这是功能安全领域的开发人员所熟悉的 。 由此产生的安全软件开发生命周期(SSDLC)代表了专注于安全的应用程序开发人员的一个转变 , 确保漏洞是在系统之外设计的 。

左移:这意味着什么
任何开发安全关键应用程序的人都应该熟悉“左移”原则背后的概念 , 因为多年来 , 功能安全标准要求采用类似的方法 。 因此 , 以下在功能安全领域得到验证的最佳实践也适用于安全关键应用:
从一开始就确定需求
未记录的需求会导致各方沟通错误 , 并造成返工、更改、错误修复和安全漏洞 。 为确保嵌入式开发顺利进行 , 所有团队成员必须以同样的方式了解产品的所有部分及其开发过程 。 明确定义的功能和安全需求有助于确保它们做到这一点 。
这些需求很可能为V-model开发人员定义一个完整的系统 , 而仅仅是应用DevSecOps的开发人员的一个迭代 。 然而 , 原则仍然是一样的 。 这并不是说软件永远不能用作“智能建模粘土”来创建概念验证 , 但此类实验的最终结果应该是明确定义的需求和适当开发的生产代码 , 以满足这些需求 。
提供双向可追溯性
双向可追溯性意味着可追溯性路径可以向前和向后维护 , 而自动化使其在不断变化的项目环境中更易于维护 。
正向可追溯性表明 , 所有需求都反映在嵌入式开发过程的每个阶段 , 包括实现和测试 。 通过应用影响分析 , 可以评估变更需求或失败测试用例的后果 。 然后可以重新测试修改后的实施 , 以提供继续遵守双向可追溯性原则的证据 。
反向可追溯性同样重要 , 它强调了不满足任何特定需求的代码 。 否则 , 疏忽、错误的逻辑、功能爬行和恶意后门方法的插入可能会引入安全漏洞或错误 。
安全嵌入式应用程序的任何妥协都需要一个更改的或新的需求 , 并且需要对源代码开发工程师很长时间没有接触到的内容立即做出响应 。 在这种情况下 , 自动跟踪可以隔离所需的内容 , 并仅对受影响的功能进行自动测试 。