注意:这篇文章不仅适用于已经被黑客攻击的组织......IEC 62443是一个公认的通用标准,适用于制造、能源、运输、医疗和其他许多关键部门。

 

这篇文章是8个系列的第三集,涵盖了任何旨在满足工业和自动化控制系统网络安全现状的组织所要实施的主要做法。基于一种务实的方法,本文指导你如何在你目前的组织流程中处理与安全开发生命周期(IEC 62443-4-1)有关的需求定义。

 

为了系统地开发安全产品,必须在整个软件生命周期中强调安全,这样的结果被认为是设计上的安全。因此,普通软件生命周期的每个阶段都必须通过安全实践来加强。这导致了一个安全的开发生命周期,如下图所示(在一个简化的概述)。在这第三集里,我们将重点讨论在早期阶段验证软件部分所需的良好实践,即代码分析和安全审查。

这个过程是必须的,以确保实施正确地涵盖安全设计(关于安全设计的更多信息,见本系列第二篇)及其相关的安全要求,并遵循实施的最佳实践。

 

IEC 62443-4-1对这种做法描述如下。

  • "拥有这个过程意味着产品供应商对实施及其设计进行了一套全面的安全审查。不同类型的审查通常会被用来解决不同的目标。例如,人工审查通常是针对实施设计进行的,以验证需求是否得到满足,以及实施是否能充分保护人们免受预期存在的威胁。此外,人工源代码审查可用于检查源代码对最佳实践的遵守情况(见8.4),自动静态源代码分析可用于识别异常情况,包括代码中的安全漏洞以及与给定编程规则的不一致"。

如上所述,静态分析工具在软件开发的编码和集成阶段提供关键支持。下图显示了静态和动态分析工具在软件开发生命周期中的叠加情况。在开发和维护阶段确保持续的代码质量,可以大大降低软件中安全和可靠性问题的成本和风险。

作为提醒,ISA/IEC 62443标准强调了深度防御的理念(通过利用安全实践的多个方面的多层防御来进行保护),采用安全设计的方法。在这种情况下,开发工具、自动化以及静态和动态分析工具在 "安全准则 "和 "安全实施 "中起着关键作用。.

安全知识

 

该标准定义了在设计和实施方面对安全专业知识的需求,同时也定义了现代工具和技术,包括静态分析工具。在安全实施方面,该标准对静态代码分析(SCA)工具所起的作用非常清楚。第5.5节(安全专业知识)说。
 

  • "拥有这个过程意味着被分配到安全相关过程的人员有证据显示他们的相关资格。这不仅包括安全方面的知识,还包括使用任何与安全相关的标准(如编码标准)、技术(如最佳实践)和工具(如静态分析工具)的知识。"

静态代码分析

 

源代码的静态代码分析(SCA)用于识别安全编码错误,如缓冲区溢出、空指针解读,以及任何其他违反所支持平台的定义编码规则的行为。如果有的话,SCA应使用所使用语言的工具来完成。此外,静态代码分析应在软件被改变时进行。使用这种自动工具肯定被IEC 62443-4-1认为是一种良好的做法,同时也要进行人工审查,检查源代码是否符合最佳实践。

总结
&nbsp

在不排除人工方法和审查的情况下,自动化在成功遵循IEC 62443-4-1最佳实践中发挥了关键作用。包括静态和动态分析的测试自动化增加了错误和漏洞检测的范围,同时减少了整体工作量。

即使62443合规性不是最终目标,代码分析和一般的安全审查也应该被视为任何组织实施和处理的主要活动之一,以确保在特定的开发生命周期中获得某种信任。
&nbsp

如果你有任何关于代码分析、一般安全审查和/或认证标准的问题,请不要犹豫,与我们的网络安全专家联系。Kilian Marty