0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是完备静态分析?

北汇信息POLELINK 2022-11-11 10:16 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在开发安全、可靠和合规的软件时,完备静态分析是一种有益的实践。本篇文章中,我们将讨论完备分析与静态分析的不同之处,为什么它很重要,以及完备静态代码分析的工作原理

什么是完备静态分析?

完备静态分析是指分析结果的完整性或"健全性"。对于提供可靠性分析结果的静态分析工具,这意味着如果软件中存在特定的错误,缺陷或漏洞,那么该工具将出具相关的报告。

如果出现存在争议的问题,那么工具将以某种形式提出警告*,这样一来任何问题都会的得到诊断。

(*备注:这些在Helix QAC中被归类为可能的问题,如果不需要完备分析,则可以禁用。)

完备静态分析不同于其他静态分析的地方在于,后者的结果可能基于在一定时间或资源内可能发生的事情。

鉴于对程序的运行时行为进行建模需要某些近似值(例如,缺乏对程序输入或操作系统状态的知识),完备分析需要过度近似。

过度近似可以保证没有假阴性(对于给定的漏洞类型),而低近似值通常优先考虑没有误报。

poYBAGNtlomAdgNyAAGjiPgMAAg485.png

其他形式的静态分析没有表现出这种严格性,并且可能包含低近似和过近似的混合。

也许完备和不完备的分析工具所得出的结果可能都会为程序的特定部分提供一份清晰的运行状态证明,但是完备分析引擎提供了额外的保证,即印证这一结论的所有可能性和所有路径都已得到验证。

完备静态分析的工作原理

在提到完备分析时,我们通常会考虑更复杂的程序间和程序内控制和数据流分析形式,正如当今最先进的静态分析工具所采用的那样。

与更简单的代码语法和语义分析不同,控制流和数据流静态分析通常与检测更复杂的问题相关联,例如:

  • 空指针取消引用
  • 阵列或缓冲区下溢和溢出
  • 未初始化对象的使用
  • 内存分配和取消分配异常
  • 数字溢出、下溢和环绕
  • 除以零
  • 死代码
  • 数据争用、死锁和其他并发冲突

控制和数据流分析是一项高计算负载的任务,因为必须考虑系统的所有可能输入以及通过系统所有可能的控制流路径。事实上,由于控制流和数据流分析的暴力穷举算法会导致分析时间指数暴涨,因此很少采用该方案。符号执行和抽象解释算法将是一个更优雅的选择。

根据Roberto Amadini、Graeme Gange、Peter Schachte、Harald Søndergaard和Peter J.Stuckey的抽象解释、符号执行和约束,“抽象解释是一个静态分析框架,用于完备的过度近似程序的所有可能运行时状态。”。

而“符号执行是一个可访问性分析框架,它试图探索程序的所有可能的执行路径”。抽象解释和符号执行在执行期间以不变性或路径条件的形式维持约束,该路径条件确定可以执行哪些路径,并且可以在各种数据源中保持哪些值。

然而,需要注意的是,虽然抽象解释是完备的,但符号执行却不是。

为什么完备静态分析很重要?

健全性是安全关键软件系统中的一个重要因素,特别是因为它保证软件不包含任何正在检查的编码缺陷。也就是说,完备分析可用于显示软件中没有错误。

因此,在汽车系统的ISO 26262功能安全(FuSa)标准中,抽象解释分析被明确引用为软件单元验证方法(表7,方法1i)。

如何使用Helix QAC 执行完备静态分析

由于能够提供深入和高度准确的分析结果,Helix QAC在30多年来一直是一个值得信赖的静态代码分析工具。Helix QAC能够进行良好的静态分析,是需要满足严格合规要求的严格监管和安全关键行业的首选工具。

但是,为了在Helix QAC项目中启用完备分析,需要执行某些步骤:

poYBAGNtloiATUbtAAKTVrTm6kA962.png

数据流深度需要设置为最大值(5),这将添加多个 -prodoption,如上面的屏幕截图所示。(请参阅 QAC 或 QAC++ 组件手册中的"分析超时"部分,了解为什么这些"超时"设置对于声音分析是必需的。

此外,“df::inter=5”和“inter-TU Analysis”虽然不是完备分析所必需的,但可以以额外的计算成本启用,以减少需要报告的可能问题的数量。这些设置的效果是启用程序间和程序内分析。

选择Helix QAC进行完备静态分析

亲身体验Helix QAC完备静态分析对代码质量和健全性的影响,立即联系北汇信息以免费试用。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 代码
    +关注

    关注

    30

    文章

    4941

    浏览量

    73155
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    关于晶振的静态电容与动态电容

    静态电容与动态电容 C0与C1 的区别是什么呢?
    的头像 发表于 11-21 15:38 4106次阅读
    关于晶振的<b class='flag-5'>静态</b>电容与动态电容

    什么是CVE?如何通过SAST/静态分析工具Perforce QAC 和 Klocwork应对CVE?

    本文将为您详解什么是CVE、CVE标识符的作用,厘清CVE与CWE、CVSS的区别,介绍CVE清单内容,并说明如何借助合适的静态分析工具(如Perforce QAC/Klocwork),在软件开发早期发现并修复漏洞。
    的头像 发表于 10-31 14:24 288次阅读
    什么是CVE?如何通过SAST/<b class='flag-5'>静态</b><b class='flag-5'>分析</b>工具Perforce QAC 和 Klocwork应对CVE?

    知识分享 | 使用MXAM进行AUTOSAR模型的静态分析:Embedded Coder与TargetLink模型

    知识分享在知识分享栏目中,我们会定期与读者分享来自MES模赛思的基于模型的软件开发相关Know-How干货,关注公众号,随时掌握基于模型的软件设计的技术知识。使用MXAM进行AUTOSAR模型的静态
    的头像 发表于 08-27 10:04 498次阅读
    知识分享 | 使用MXAM进行AUTOSAR模型的<b class='flag-5'>静态</b><b class='flag-5'>分析</b>:Embedded Coder与TargetLink模型

    汽车软件团队必看:基于静态代码分析工具Perforce QAC的ISO 26262合规实践

    ISO 26262合规指南,从ASIL分级到工具落地,手把手教你用静态代码分析(Perforce QAC)实现高效合规。
    的头像 发表于 08-07 17:33 871次阅读
    汽车软件团队必看:基于<b class='flag-5'>静态</b>代码<b class='flag-5'>分析</b>工具Perforce QAC的ISO 26262合规实践

    如何正确选购功率半导体器件静态参数测试机?

    主要的功率半导体器件特性分为静态特性、动态特性、开关特性。这些测试中最基本的测试就是静态参数测试。静态参数主要是指本身固有的,与其工作条件无关的相关参数。主要包括:栅极开启电压、栅极击穿电压、源极漏
    的头像 发表于 08-05 16:06 593次阅读
    如何正确选购功率半导体器件<b class='flag-5'>静态</b>参数测试机?

    知识分享 | MXAM入门简介:使用MXAM进行静态测试

    ,还能够根据分析结果自动优化模型。本文为您介绍广受认可的静态测试工具——MES Model Examiner® (MXAM)。通过本文,您将深入了解MXAM如何帮助您
    的头像 发表于 07-23 17:09 1491次阅读
    知识分享 | MXAM入门简介:使用MXAM进行<b class='flag-5'>静态</b>测试

    动态BGP与静态BGP的区别?

    的 IP,只要远端发起 BGP 握手,且来自 AS 65002,即自动建立对等关系。四、实战应用场景分析场景一:传统运营商边界路由器 使用静态 BGP BGP 对等关系固定,变化极少 需要手动管理
    发表于 06-24 06:57

    详解ADC电路的静态仿真和动态仿真

    ADC电路主要存在静态仿真和动态仿真两类仿真,针对两种不同的仿真,我们存在不同的输入信号和不同的数据采样,因此静态仿真和动态仿真是完全不同的两个概念,所以设置的参数不同。
    的头像 发表于 06-05 10:19 1533次阅读
    详解ADC电路的<b class='flag-5'>静态</b>仿真和动态仿真

    揭秘ABAQUS强大到超乎想象的分析功能有哪些?

    和研究人员解决复杂工程问题的得力助手。本文将深入探讨ABAQUS那些强大到超乎想象的分析功能,揭示它如何在不同领域发挥关键作用。 一、静态与动态分析的双剑合璧 ABAQUS的核心功能之一是其强大的
    的头像 发表于 05-21 16:15 532次阅读
    揭秘ABAQUS强大到超乎想象的<b class='flag-5'>分析</b>功能有哪些?

    鲲云科技推出全新智慧化工AI视频分析解决方案

    鲲云科技提供功能完备的 AI 视频分析平台,平台支持多种流媒体服务平台接入,通过 AI 计算集群实现现场秒级预警、智能管控、实时取证,分析数据在安全管理中心有多元的可视化呈现,且开放灵活,可与第三方平台无缝衔接,满足客户不同场景
    的头像 发表于 05-10 14:02 1387次阅读

    DA9233高效、超低静态电流降压稳压器和超低静态电流 LDO数据手册

    DA9233 是一款高效、超低静态电流降压稳压器和超低静态电流 LDO,采用紧凑型 I2C 可配置 WLCSP 封装。降压稳压器还具有超低输出纹波(10mV)。 该器件适用于需要低纹波和高效电源
    的头像 发表于 04-08 18:07 620次阅读
    DA9233高效、超低<b class='flag-5'>静态</b>电流降压稳压器和超低<b class='flag-5'>静态</b>电流 LDO数据手册

    集成电路设计中静态时序分析介绍

    本文介绍了集成电路设计中静态时序分析(Static Timing Analysis,STA)的基本原理、概念和作用,并分析了其优势和局限性。   静态时序
    的头像 发表于 02-19 09:46 1310次阅读

    ADC的静态指标有专用的分析工具吗?

    请问:ADC的静态指标有专用的分析工具吗?该指标很少在评估ADC指标时使用,是否该指标不重要,应用中什么情况下需要评估该指标? 另外ADC的SNR = 6.02*N + 1.76 +10*log10(fs/2BW) 当被采样信号为单音时 该BW为多少?
    发表于 02-08 08:13

    英诺达发布全新静态验证产品,提升芯片设计效率

    了重要一步,将为中国芯片产业的发展注入新的活力。 静态验证作为一种业界普遍使用的验证方法,通过对设计的源代码进行深入分析,能够发现设计中的潜在问题。与动态仿真验证和形式化验证相结合,静态验证可以显著提高验证的覆盖率,帮助设计师在
    的头像 发表于 12-24 16:53 1165次阅读

    静态路由和链路聚合的通信原理

    静态路由和链路聚合的通信原理
    发表于 12-23 16:59 10次下载