自动化在开发安全物联网产品中的关键作用

自动化在开发安全物联网产品中的关键作用,第1张

自动化在开发安全物联网产品中的关键作用

开发团队不断面临挑战,以确保其物联网产品的机密性、完整性和可用性。众所周知的漏洞不断暴露在连接的产品中。开发人员通常缺乏识别和关闭新漏洞所需的专业知识和时间。需要能够帮助开发人员和安全工程师实现其安全物联网产品目标的工具

软件开发的早期,人工分析代码的质量缺陷和漏洞。这种类型的代码检查仍在敏捷同行评审过程中使用,并可能用于应用程序中的高价值代码,但无法扩展以满足现代技术的需求。例如,麦肯锡公司的一份报告指出,现代汽车中有超过 1.5 亿条软件代码行 (SLoC)。试图手动审查此代码并仍然按时将产品推向市场是不可能的。

确定安全要求

为了定义自动化安全测试,团队必须首先了解产品威胁。威胁模型应该是任何团队开展的第一项活动。威胁模型通常是很少阅读的静态文档,但是,如今有一些工具可以将威胁模型数据与用户故事联系起来,并支持创建可在整个开发过程中运行的自动化测试。

一个有用的例子是WE45的机器人脚本库。质量保证团队使用机器人框架来创建行为驱动开发 (BDD) 测试。WE45 开发了脚本,允许工程师在威胁模型中定义附加到用户故事的误用案例,然后将这些误用案例直接链接到自动化测试。这是基于附加工具的使用,例如 YAML 脚本、OWASP ZAP 和其他 SAST/DAST 工具。

无论是使用这样的框架还是从头开始,团队都必须能够建立安全需求积压。安全要求可以来自许多来源。产品团队根据监管要求、最佳实践指南、安全技术实施指南 (STIG) 以及威胁模型来定制需求。这些需求被捕获为产品积压中的功能用户故事或验收测试。

这有效地创建了一个安全需求可追溯性矩阵 (SRTM),可用于支持自动化安全测试的创建和执行。安全用户故事可以标记为待办事项中的安全故事。此外,这些故事应包括允许链接回安全需求源的元数据(例如 IA 控制编号或 STIG 标识符),还应包括与源自需求的自动化测试相关的元数据(例如,自动化测试) ID)。这允许自动化框架或其他工具对原始需求具有完全的可追溯性。

当需要测试物联网启用的新型功能时,基础设施或对等应用程序模拟器也可以证明是有用的。一个例子——之前开发的一个仿真器用于测试支持车对车 (V2V) 通信的复杂汽车加密证书管理系统。测试团队在项目开始时定义了错误用例,并设计了一个模拟器来自动运行这些错误用例。这通过在应用层识别系统的功能安全要求,然后将负面测试用例构建到模拟器中来测试整个功能线程。例如,

将安全性集成到产品设计中

一旦记录了安全要求,产品设计阶段就可以从基于模型的安全测试 (MBST) 等方法中受益。MBST 可用于验证产品设计中是否满足安全要求。MBST 基于需求的正式建模。今天的产品团队采用敏捷开发方法,这意味着设计过程在一系列开发冲刺中迭代。这使设计人员能够根据在冲刺期间开发的代码上执行的安全工具的反馈,不断地重新评估其设计的网络安全态势。

例如,对物联网产品的扫描可能会发现对敏感配置文件的读取访问权限未在设备内得到适当限制。结果通知开发人员需要在文件系统中实施更多限制性特权。可以设置工具以自动在 JIRA 中打开问题,以根据适用的行业最佳实践建议重新审视产品访问控制模型的设计,例如“实施基于角色的访问控制”和“需要提升的访问权限”敏感数据”,允许设计团队更新安全架构。

在每个冲刺期间执行这些扫描的安全工具可以配置为自动运行。开源自动化框架(如Guantlt)直接为 git 提供插件,以支持预提交检查,自动提醒开发人员在其桌面上已引入基本错误。这允许开发人员在提交之前纠正错误。

可以设置持续集成工具,例如 Jenkins、Bamboo、Travis、Buildbot、Thoughtworks 等,以集成在每个构建上自动运行的安全测试工具。例如,Jenkins 结合了警告下一代插件,该插件收集和可视化各种安全分析工具收集的问题。这包括代码分析和运行时应用程序安全工具。还有一些工具(例如 CodeBurner)可以有效地管理多个静态分析测试工具的执行和报告。

可以自动化不同的安全工具来识别已知漏洞。例如,静态代码分析可以识别和报告代码中的已知签名。这些对于识别配置问题、硬编码凭据、第三方库中的漏洞以及映射到CVE的漏洞等问题非常有用。

物联网设备固件分析的二进制分析也可用于有效识别已知漏洞,目前有可用的工具,例如 VDOO 的Vision,可以分析基于 LinuxAndroid 和 Widows 平台的物联网产品。通常用于识别代码质量问题的工具也可以在 CI 中自动运行,并且可以支持快速识别基本问题。其中包括 findbugs、sonarqube 和复制/粘贴检测器 (CPD) 等工具作为示例。

更深入的测试可以被纳入 CI 以开始识别潜在的零日漏洞。这些漏洞尚不为人所知,但可能由专门的安全研究人员或不良行为者发现。基于符号执行的工具可以有效地发现未知漏洞,但即使是小型二进制文件也可能需要数小时才能运行。符号测试分析程序以确定导致程序执行的输入。一些工具,如 VDOO 的 Vision 可以集成到 CI 环境中,为开发人员提供快速固件分析和更深入的分析能力,旨在识别未知和已知漏洞。

了解基础知识

虽然安全自动化是一个强大的工具,但它并不是物联网产品安全开发的灵丹妙药。开发团队仍然需要一些最低水平的网络安全知识和专业知识来识别独特的产品威胁和解释测试工具输出,以及确保物联网硬件和软件组件的集成。所有开发人员都有责任至少对与其产品相关的安全问题有基本的了解,并且每个产品团队都应该拥有了解如何运行和解释自动化安全工具输出的安全工程支持。
 

  审核编辑:汤梓红

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2418812.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-01
下一篇 2022-08-01

发表评论

登录后才能评论

评论列表(0条)

保存