当前位置:首页 > 厂商动态 > IAR
[导读]近年来,国内电子公司和芯片设计企业大举进攻汽车、医疗和工业等高可靠应用(mission-critical)领域,为自己找到了摆脱红海的新领域。但是高可靠应用多数都需要功能安全认证,在许多行业在诸如汽车、航空电子、医疗和工业控制等行业,是很常见甚至是必须的工作。这些认证通过必要的流程和测试来填写功能安全清单,一直以来都是一个非常困难的事情,但有一些方法可以加快您的认证。

近年来,国内电子公司和芯片设计企业大举进攻汽车、医疗和工业等高可靠应用(mission-critical)领域,为自己找到了摆脱红海的新领域。但是高可靠应用多数都需要功能安全认证,在许多行业在诸如汽车、航空电子、医疗和工业控制等行业,是很常见甚至是必须的工作。这些认证通过必要的流程和测试来填写功能安全清单,一直以来都是一个非常困难的事情,但有一些方法可以加快您的认证。

虽然可以对研发过程进行大量的微调以加快您的认证,但一切现代电子信息系统都从软件即代码质量开始。但如何能够确保代码质量呢?幸运的是,使用一些简单的方法,可以几乎立即提升您的代码质量,并尽可能地减少痛苦。

从标准中获得帮助

作为一家产品被全球近五万家企业/机构采用的嵌入式开发工具提供商,IAR的研发工程师评估在C99中,代码规范中有大约190种模棱两可之处。也就是在C99中,有190种不同的合乎句法的C结构,在C语言规范中没有明确说明。实际上,进入C18,情况会变得有一点糟糕,在C++中,情况会更加糟糕,这里需要引入多继承和虚拟继承的概念。当然,编译器必须把您的源代码变成具体的代码,所以它必须对代码的含义选择一种解释,然后用它来运行。

这在实践中意味着,您可以得到不同的编译器,它们对源代码有不同的解释。在一个高可靠的系统中,这是一个如同噩梦般的场景;特别是由于许多公司为了追求尽快通过功能安全认证,为了方便测试在多个平台上交叉编译他们的代码。可以想象,这对您获得认证的时间会有多么非常糟糕的影响,因为您不得不围绕所有这些情况进行测试,以证明代码的可重复性和可靠性。

怎样才能破解这个难题呢?简短的答案是,避免模棱两可的情况出现在您的代码中。但如何做到这一点呢?使用像MISRA这样的编码标准可以快速解决这个难题,因为这些标准就是为了让您避免掉入代码中那些常见类型的陷阱。这些标准还倡导编码要安全可靠,以减少您代码中的漏洞数量。但是,怎样才能确保我们遵循这些标准呢?幸运的是,功能安全标准提供了一种方法。

标准需要代码分析

几乎每一个功能安全标准都需要您对您的代码进行静态分析,并且强烈建议您对您的代码进行运时(或动态)分析。这些标准中影响最广的是IEC 61508,涵盖了一般与安全相关的系统。在该标准的C.4.2这一节中,对于安全完整性等级(SIL)1以上的产品,不建议使用没有消除模棱两可和危险行为的编码标准的C语言。

换句话说,如果您想为您的产品获得SIL 2-4等级的认证,您必须使用静态分析来让您的代码更加稳固。这是为什么呢?这些静态分析工具可以迫使开发者实施诸如MISRA的编码标准。此外,静态和运时分析可以帮助您提高代码质量,快速指出您何时的编码行为是有风险的,特别是存在上述编码标准中模棱两可的情况。

然而,当您使用这类自动化工具时,也会对您的认证时间线产生巨大影响。许多组织使用难以配置、难用的代码分析工具,这些工具在构建服务器上运行,作为每日构建的一部分。这对您的帮助并不是很大,因为个体开发者并没有得到即时的反馈,他们并不知道自己刚刚写的代码有什么问题。此外,有时这些工具发出的警告信息是难以理解的,开发者们要弄清楚是什么意思,以及怎样修正代码才能让警告消失,这浪费了他们的时间。

换句话说,安全性认证不是要突出项目的优点(高性能),而是要尽量找出项目的弱点(漏洞),所以要尽可能地选用被最大量开发人员群体验证过的开发工具,或者是“见多识广”的开发工具系统。全球有超过15万开发人员在使用IAR提供的IAR Embedded Workbench开发工具来完成其各种嵌入式项目,通过与其中许多“高手”开发人员沟通发现:如果您能在开发过程中进行代码分析--在正式构建之前--那么漏洞就像是从来没有过一样。您项目的漏洞会比较低,这正是认证机构想要的,因为这意味着您有一个非常成熟的开发组织。

让代码分析成为日常工作流程的一部分

IAR的工程师们见过许多来自各行各业的公司,我们注意到的是,配置起来越容易使用的代码分析工具越简单,开发人员就更有可能使用它们,这样能够帮助开发人员更快完成项目实现产品上市。让这些自动化工具成为开发者工具箱的一部分,意味着您可以在编写应用程序时检查和改进代码质量,同时可以在“区域”内了解这部分代码要做什么以及它如何与系统中的其他模块进行交互。为了有效地做到这一点,这些工具必须被整合到日常工作流程中。

在浏览其他人对整合代码分析的看法时,IAR的工程师发现谷歌在ACM出版物上发表了一篇文章,探讨了代码分析的优点。虽然文章对他们的整个代码库,包括C、C++和Java进行了全面的考察,但他们的结果非常明确:

“在开发过程的早期就能发现编译器错误,并且能够整合到开发人员的工作流程中。我们发现扩大编译器的检查集对提高 Google的代码质量是有效的。”

作者说,将静态分析检查整合到编译器工作流程中,并使其作为错误出现,极大地提高了对工具调查结果的关注度,这意味着他们的代码质量最后会很高。再往下看,他们谈到了一项调查,这项调查面向最近遇到编译器错误以及已经收到修复同一问题补丁的开发者:

“谷歌开发者认为,在编译时标记的问题(与已提交的代码补丁不同)能捕捉到更严重的漏洞;例如,编译过程中标记的问题里面有74%被调查参与者认为是‘真正的问题’,相比之下,在已提交的代码中发现的问题只有21%。”

文章还谈到了将代码分析作为工作流程一部分的重要性,指出当他们通过静态分析工具自动运行提交的代码并邀请工程师查看分析仪表板时,很少有工程师跟进到底。在编译过程中的即时反馈让静态分析使用起来更简单,也更难被忽视。因此,他们选择在每个人的工作流程中默认加入静态分析。谷歌团队认为,代码分析工具要想取得成功,一定要让开发人员感觉到他们用了这些工具,并从中受益,并且很享受用这些工具。

但是,在工作流程中加入代码分析,您期望看到什么样的结果呢?有一件事情是可以期望实现的,那就是提高应用程序的整体安全性,因为高质量代码可以消除漏洞去利用诸如缓冲区溢出和非法指针等机会,如该文所述。虽然这本身就是使用代码分析的一个很好的理由,但有时很难说服人们相信“一针不补,十针难缝”这句格言,您需要更显著的结果来说服开发者和管理层,让他们信服代码分析的好处。

Stefan Wagner等人的一篇论文使用经验数据来计算代码分析工具与传统测试在不同代码库上的优势。他们的结果很有说服力:在769个被识别到的漏洞中,76%是被代码分析工具发现,只有4%是在传统测试中发现,其余20%在代码审查中发现。如果能在开始测试前就消除75%的漏洞,那么能多快地实现软件的平均故障间隔时间(MTTF)目标?答案是 “非常快”。仅仅是看测试节省下来的时间和金钱,即可发现对代码分析工具的投资就是值得的,更不用说缩短产品上市周期省下的时间。这些都是功能安全认证机构喜欢看到的流程类型,因为它极大地降低了最终产品仍然含有漏洞的风险。

高质量的代码让您在通往功能安全的道路上快速前进

加快功能安全认证之路的关键是提高代码质量。提高代码质量,可以降低您的产品漏洞率,这意味着可以更快地达到软件发布标准,让您的开发组织在功能安全认证机构看来非常成熟。虽然您永远不可能确切地知道一个应用程序中还有多少漏洞,但尽早地多使用代码分析工具可以减少漏洞的数量。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

2023年10月18日,中国在第三届“一带一路”国际合作高峰论坛期间发布《全球人工智能治理倡议》,围绕人工智能发展、安全、治理三方面系统阐述了人工智能治理中国方案。

关键字: 人工智能 大模型 代码

我们看到这么多的安全问题,部分原因在于我们对待安全的方式:安全性通常被认为是事后考虑的问题,是在开发结束时才添加到设备上的东西。然而,复杂的系统,尤其是嵌入式系统,有一个很大的攻击面,这让攻击者有机可乘,能够在“盔甲”上...

关键字: 代码 嵌入式系统 软件漏洞

新富人群财务需求多元发展,投顾服务迎来新机遇 上海2023年9月20日 /美通社/ -- 2023年9月19日,上海交通大学上海高级金融学院(高金)与全球领先的金融服务机构嘉信理财(Charles Schwab)联合发...

关键字: BSP ADVANCED INA 代码

北京2023年9月14日 /美通社/ -- 生物医药高科技公司诺诚健华(港交所代码:09969;上交所代码:688428)今日宣布,新型蛋白酪氨酸磷酸酶SHP2变构抑制剂ICP-189联用针对表皮生长因子受体(EGFR)...

关键字: IC HP 代码 ARMA

上海2023年9月1日 /美通社/ -- 2023上半年,安集科技(股票代码:688019)市场拓展规划成效显现,营业收入稳健增长。 全球半导体产业挑战持续存在的情形下,安集科技秉承发扬"克难攻坚,敢打硬...

关键字: 安集科技 BSP 代码 半导体材料

国际酒店运营商升级其在线支付功能 上海2023年8月28日 /美通社/ -- 加拿大金融科技公司Nuvei Corporation(以下简称“Nuvei”或“公司”)(纳斯达克代码:NVEI)(多伦多证券交易所代码:N...

关键字: 代码 IP SE 纳斯达克

2023年上半年收入7.459亿元 同比增长5.1% 毛利率水平上升 海外收入同比增长65.4% 香港2023年8月22日 /美通社/ -- 金邦达宝嘉控股有限公司及其附属公司(以下合称「金邦达」、「...

关键字: 数字化 代码 嵌入式软件 COM

我们经常对正在进行数字化转型的亚马逊云科技客户建议,将云迁移视为其数字化转型的一部分,数字化转型本身必须由业务成果驱动。其中治理计划的有效性决定了云迁移和数字化转型的成功与否。数字化转型中的云迁移总有结束的时候,但是如果...

关键字: 代码 数字化 云服务

广州及苏州生产基地产品均实现"出口"零突破 北京2023年8月21日 /美通社/ -- 百济神州(纳斯达克代码:BGNE;香港联交所代码:06160;上交所代码:688235)是一家全球性生物科技公...

关键字: 神州 代码 TI PD

北京2023年8月16日 /美通社/ -- 百奥赛图(北京)医药科技股份有限公司("百奥赛图",股票代码02315.HK)宣布"千鼠万抗TM"按计划实现重要里程碑进展,抗体业务板块...

关键字: ICE COM GEN 代码
关闭