您已经使用用于身份验证的组件(如密码、视网膜扫描、物理密钥以及加密/解密等)保护了连接物联网 (IoT) 的系统。但是仅仅建造这些东西是不够的。您必须确定它们都能正常工作,并且代码不包含任何可能授予黑客访问权限的缺陷。安全性需要在项目一开始就使用安全协议并继续到应用程序中的功能元素来构建。获得这种保证的一个强大工具是动态分析。
动态分析检查已编译的运行代码,并将其关联回源代码。它是一套工具中的主要组件,包括代码覆盖率、需求可追溯性和静态分析。当然,这意味着动态分析只是制作安全应用程序所需的重要部分之一。但是,在执行代码时对其进行分析有两个优点:
1. 它可以通过使用代码覆盖率来指示已执行或测试的部分来衡量我们测试的有效性。这意味着它还可以识别不需要或可以作为黑客网关的“死”代码。
2. 它可以利用自动测试生成和手动测试来检查应用程序在面对预期和意外输入时的行为。此类输入可以来自用户,也可以来自传感器。它让我们看到系统在这种情况下会做什么,以及这对安全和安保意味着什么。
手动和自动生成的测试都应与程序的要求相关。具有可来回追溯到代码的需求对于理解系统的预期行为至关重要。此外,无论所需的覆盖级别如何,将代码行为链接回需求的能力都有助于确保我们的正确操作。这对于安全要求尤其重要。如果您可以看到代码的行为方式,并且可以将其链接回安全要求,则可以测试这些要求的有效性(例如,通过模拟攻击)并确定它们是否足够或应该改进。
动态分析不仅用于测试已完成的程序。它还可用于单元和集成测试中的巨大优势。结合静态分析,查看未编译的代码,可用于自动生成测试用例、测试工具和整个框架,以验证不同团队的工作并将它们顺利集成到整个系统中。了解控制流和数据流的能力可以深入了解数据(以变量、参数等形式)是如何作的。这使我们能够看到软件组件之间的依赖关系,以及每个组件是否从呈现的数据中产生预期的结果。
如前所述,动态分析是一组可以一起使用的工具之一。当与静态分析结合使用以测试安全属性时,这通常被标识为混合应用程序安全测试或 HAST。静态分析用于检查编码标准的合规性,以便使用 MISRA 或 CERT C 等标准消除代码漏洞。它还可用于在执行之前确定软件组件之间的数据和控制流关系和依赖关系。从静态分析的角度清理代码后,它可以转向动态分析,其中代码将接受自动生成的测试和使用预期和意外输入的手动测试。
因此,在静态分析和需求可追溯性等补充工具的支持下,动态分析可以大大有助于确保安全、安全和最终可认证的软件工作。
审核编辑:郭婷
-
物联网
+关注
关注
2902文章
44163浏览量
370562 -
IOT
+关注
关注
186文章
4166浏览量
196072
发布评论请先 登录
相关推荐
评论