针对安全关键应用C/C++代码的深度静态分析工具Goanna
Goanna是一个针对C/C++安全可靠性进行深度静态分析的工具,为安全性的嵌入式软件提供全球领先的静态C/C++代码分析解决方案。作为确保符合例如DO-178B、ISO26262等安全标准的重要组成部分,Goanna结合了最新的程序验证研究,并可以与IDE和构建服务器无缝结成,从而为用户提供一个简单而强大的桌面解决方案来提高创建代码的信心。Goanna产品已被全球汽车、军工、医疗、关键任务的嵌入式系统等行业广泛应用进行软件验证。
Goanna产品是由澳大利亚Red Lizard公司研发,在中国由北汇信息负责Goanna产品的市场营销和技术支持服务。
Goanna的特性:
在错误进入产品前及早发现:Goanna的深度静态分析只需要源代码就可以自动化地找到C/C++程序中的错误,不需要编译、模拟或者执行代码。通过在开发生命周期最早期的阶段发现错误,用户可以实现以下目标:提高代码质量;降低成本;节约开发时间;使产品更快进入市场。
Goanna可以与大部分IDE和配置环境集成,将强大的深度静态分析部署在用户指尖,只需要点击就可以执行,而不需要冗长的安装成本或者中断用户已有的工作流程;
独一的追踪模拟器:Goanna可以直接在用户的IDE中“重现”复杂缺陷的跟踪,让用户可以更快地精确定位缺陷的根本原因;
灵活的增量分析:Goanna生成被分析函数的数字指纹,确保只会分析上次执行之后被修改的部分代码,从而防止函数在未被改变的情况下产生重分析的潜在费用,实现快速测试周期而不需要等待可能数小时的重新分析;
行业标准:Goanna可以提供符合一些行业安全规范的验证,例如: MISRA C:2004;MISRA C++:2008;CERT;CWE,从而帮助客户通过一些标准的认证,例如ISO26262,DO-178B等;
可自定义的检查:可以非常容易地根据用户的标准和需求来自定义检查;
获奖的技术:Goanna采用先进的获得Turing奖的模型检查技术,提供所有执行路径提供高效的完全路径覆盖,甚至非常复杂的函数可以;
路径敏感的完整代码分析:Goanna独特的专利技术提供的完整的程序间分析可以发现调用链中深度的缺陷,甚至可以跨越多个函数和文件,例如空指针不能获得通过并在其它函数中取消其引用;
抽象数据跟踪:Goanna可以自动跟踪变量的潜在范围,实现程序中所有点上的取值、大小和地址的计算,从而非常容易地查找出在动态测试和人工检查很容易错过的缺陷,例如发现可能的缓冲区溢出或者不可行路径等;
超过250个有很高价值的检查:空指针错误;数组越界;字符串溢出;内存泄露;内存损坏;双重释放;安全性缺陷;坏的结构;未初始化变量;死代码;算术错误;可移植性缺陷;除零;不安全的库;加上无限可能的用户自定义的检查;等等
可视的图形化报告:缺陷可以通过一个易于使用的Web接口被即时地绘制成图形化的报告,提供缺陷历史和问题领域。高亮的图表使开发人员能够在错误出现的时候立即识别出故障点并尽快地解决。
集成的仪表盘和度量:通过和基于Sonar的仪表盘的集成,Goanna还可以提供附加的静态分析、圈复杂度分析、代码覆盖率分析以及重复度量指标等信息。