由Bill Graham,Technical营销专家,Gammatech
介绍
STUXNET恶意软件是在2010年成为公众知识的嵌入式设备安全性的唤醒呼叫。它的复杂性和目的明确表示工业控制系统和用于控制和监控关键基础设施的嵌入式系统面临风险。机器到机器(M2M)和物联网(物联网)的现实意味着越来越多的设备正在部署并彼此连接。这种连接既是物联网的承诺(数据收集,智能控制,分析等)及其阿基里斯的脚跟。凭借无处不在的连接来威胁威胁–在最近的IOT讨论中,安全性得到了如此高调。
安全第一设计
安全性并不一直是嵌入式设备的主要关注点—假设连接是当地的,并在可信的运营商和设备手中。然而,Stuxnet快速证明了即使是本地访问也无法信任,因为它受到通过局域网连接的可编程逻辑控制器(PLC)的受感染的PC和笔记本电脑。现代设备需要连接到网络(通常是互联网),这些设备需要更严重地关注安全性和在开发生命周期早期应用安全原则。
软件开发生命周期中的软件安全性
安全第一设计方法意味着将安全性集成为软件开发生命周期(SDLC)中的首要任务。开发人员和项目经理可以预期这些关键阶段至少有以下类型的活动:
图1:安全过程叠加在软件设计生命周期上。
- 要求阶段:一旦提供系统范围的威胁评估,可以理解设备威胁表面。在要求阶段,可以引入特定于安全特定要求,以及已知的“滥用案例”(使用攻击者可能遵循的情况)和风险分析。如下所列的安全要求被介绍和占。这个阶段至关重要,因为它是安全成为一个已知的发展项目目标,具有适当的风险管理,调度和成本核算。
- 设计和架构:随着候选架构变得可用,审查必须包括安全方面(先前,他们可能没有)。根据已知的威胁评估和安全要求评估架构为此开发阶段增加了额外的维度。在此阶段,应创建测试计划,包括遵循所感知的“滥用案例”的安全分析。
- 代码开发:在编码阶段,遵循安全指南和编码标准至关重要。使用静态分析等自动化工具是关键,以确保不会引入产品中的漏洞。在此阶段,包括安全分析的测试和测试自动化是重要的。
- 集成和测试:作为整个系统,开始采取表格,子系统和系统测试将在集成之前找到漏洞和部署到市场。自动渗透测试工具可以在此阶段非常有帮助,以发现漏洞中可能无法在早期开发阶段被占用。用于部署的最终产品的包装和配置是最终阶段的关键。确保开箱即用的产品尽可能安全地阻止我们今天在连接的设备中看到的许多安全问题。
- 部署和维护:当产品进入市场并启动广泛部署时,安全漏洞会呈指数级成本昂贵。设计具有安全性的产品的产品不太可能最终有一个安全漏洞,但公司必须准备持续处理安全性。设计具有更新固件和软件的能力的产品对于迅速地解决新发现的问题至关重要。然而,由于产品经过维护和修订,安全性是一个持续关注的问题,并且需要以迭代方法馈送新的漏洞和威胁。
安全要求
确保嵌入式设备需要许多考虑因素。可能超越现有功能要求的安全要求的主要示例如下:
- 用户身份验证 - 为不同类别的用户验证用户访问和强制权限。
- 防篡改阻力 - 防止物理和软件更改为允许绕过安全功能的设备。
- 安全存储 - 确保存储的数据受到保护免受在线和脱机访问,包括加密文件存储和数字版权管理(DRM)等技术。
- 安全通信 - 保持数据传输安全性,但也可以防止通过连接通道(网络,USB等)的不需要的访问。虽然网络连接是最重要的,但其他频道很容易攻击。
- 可靠性和可用性–在持续的攻击面前保持设备的安全操作。
Sast Tools在安全 - 第一方法中的作用
静态应用安全测试(SAST)工具在开发的编码和集成阶段提供关键支持。确保在开发和维护阶段的连续代码质量,大大降低了软件中安全性和质量问题的成本和风险。特别是,它提供了以下一些好处:
•连续源代码质量和安全保证
•受污染的数据检测和分析
•第三方代码评估
•安全编码标准执行
结论
在IOT和M2M系统中,必须设计安全性并未添加,以避免重大的业务风险和成本。一种仔细的方法,包括了解设备的攻击表面和使用自动分析可以大大降低这种风险。工具有一个重要的作用,可以帮助设备开发人员质量,安全性和安全性。
关于作者
Bill Graham是一个经验丰富的嵌入式软件开发经理,具有多年的开发,技术产品营销和产品管理经验。
可以在[email protected]在线到达比尔