在最近的调查中,超过60%的受访者认为物联网的安全是最重要的电子设计嵌入式革命的调查表明,这些对他们的设计很重要。但这意味着什么,我们如何做到这一点?
在范围的一端是初始系统设计,在另一端是确保应用程序不会崩溃和不受损害的测试。后者的问题在于,就像修复bug一样,测试成本会随着开发过程的进展而呈指数级增长,而且需要测试的潜在项目的数量也会随之增加。
开发是一个迭代的过程,在这个过程中会引入和修正错误。这包括与安全性和安全性相关的bug,以及影响预期应用程序使用的功能bug。这就是编码标准、静态分析和动态分析发挥作用的地方,因为它们减轻了开发人员创建无错误代码的负担。不幸的是,目前的情况并不好。
根据Barr集团的2017年嵌入式系统安全与安全调查:
- 9%的物联网设计师没有将他们的源代码保存在版本控制系统中
- 56%的人不定期检查源代码中的bug和安全漏洞
- 60%的人不使用静态分析工具检查源代码
- 25%的人没有bug数据库或其他系统来跟踪已知的问题
- 37%的人没有使用书面的编码标准,其他人没有始终如一地执行
同样,我们的嵌入式革命调查显示,只有43%的人有一个编码标准。编码标准有时是内部开发的,但许多采用了标准编码实践,如MISRA C/ c++。
并不是所有的公司都在他们的开发过程中使用编码标准电子设计的2017嵌入式革命调查)。
使用静态分析工具的结果更糟。问题在于,编码标准的自动检查和静态分析工具的使用可以显著减少未检测到的缺陷的数量,这些缺陷需要在设计过程的后期进行修复。使用这些工具和程序的时间和金钱成本并不小,但回报是显著的,因为随着软件从开发人员转移到现场,修复漏洞的成本呈指数级增长。
LDRA营销副总裁Jim McElroy说:“静态分析是识别和消除潜在编码缺陷、弱点和漏洞的基本能力。”“当在早期和整个开发过程中使用静态分析时,可以分析和报告代码的清晰度、可维护性和可测试性,并帮助开发人员坚持编码标准,如MISRA和CERT。这可以在早期消除潜在的问题,而修复这些问题的成本更低。”
趋势表明,越来越多的公司和开发者使用了编码标准和分析工具,但随着物联网设备的数量达到数十亿,我们仍然远远不能提供安全可靠的产品。