软安科技助力AIGC 确保嵌入式开发稳定安全软安科技助力AIGC 确保嵌入式开发稳定安全
发布时间: 2024-08-09
浏览次数: 85 次

软安科技(展位号:1S55)

8月27-29日约您观展!


AIGC 在编写脚本语言/前端代码的领域已经展露了非凡的能力,那么在嵌入式开发中,对于C/C++的语言能力又如何呢?


AIGC 生成代码质量如何?

01

一个简单的要求

当我们向 chatGPT4提出一个简单的要求。

图片


会得到一个传递数组的函数,chatGPT也可以针对性能要求修改为传递指针。

图片


因为这个需求非常简单,生成的函数代码也只有5行,完成了逻辑上的需求。加上main函数,所有的代码都在一个cpp文件里面完成,运行起来没有问题,开源的静态代码分析工具扫描也没有问题。

02

真实的嵌入式环境会如何?

真实的嵌入式环境往往比这要复杂得多,例如我们用AI写一个过滤函数。

图片


会得到如下结果:

图片


当我们简单的将两个函数一起在main里面使用时,问题出现了。


图片

图片


软安静态代码分析工具在检测中会报出空指针解引用的问题。因为我们生成的 incrementArray 函数在处理入参指针时,并没有对其进行非空判断,而是依赖调用的main 函数上下文保证非空。但是 checkThreshold 函数恰好可能返回一个空指针,这样程序运行时就可能发生空指针解引用而崩溃了。


当然这个问题非常浅显,我们甚至肉眼都可以看出来,但是当checkTreshould变的非常复杂,我们不能一眼就判断返回值是否为空时,就需要借助工具来帮助我们了。当然,如果是在同一对话中让AI把两个函数放在一起,AI可能在处理checkTreshould 返回值时检查是否为空。


图片

图片


或者我们在提出第一个需求时,强调AI必须对入参进行保护,那么空指针的问题不会发生。但是究竟应该在函数内进行非空判断,还是在调用时进行非空判断,不同的编码风格会有不同选择。


图片

图片


如果所有的代码都由AI一次性生成,那么在统一风格下,可能不会有大问题。但是对于嵌入式编码来说,一个中等复杂的项目总代码行数可能轻易的上万级别,即使AIGC 工具不设置生成代码限制,这对当前的算力也是十分有挑战的。其次,嵌入式项目都包含一定的硬件相关的驱动代码(代码库),这部分代码依照硬件手册,多样化且不一定开源,只能以输入的形式提供给AI。


即使不存在信息泄露,让AI准确的理解和使用基本上是不可能。所以当程序员寻求AI帮助时,往往只是辅助片段代码,这种情况下就会出现上述的问题。


AIGC 生成代码合规性如何?

如果我们的嵌入式代码有符合MISRA规则的需求,那么AIGC又能提供什么帮助呢?在MISRA CPP 2008的上下文中询问同样的问题,会生成:

图片

我们发现生成的代码并没有完全遵守规范,比如7-1-1 “A variable which is not modified shall be const qualified.”

图片

当我们让 chatGPT 按照“规则7-1-1”重新生成时,它遵循的是另一条与7-1-1无关的规则。


当我们以文字的形式而不是代号描述规则时,它可以准确的解决违规问题。通过软安静兮源代码检测工具,我们发现生成的代码还是带有其他规范的问题(如6-5-5:单个函数应该仅有一个退出点)。

图片

总体来说,AIGC 是能够生成一段自身无质量安全问题的代码,但在嵌入式编码需要使用AI来辅助生成某个函数或者片段代码时,它的质量保证就不能确保了,需要静态代码分析工具,特别是具有跨函数分析能力、全局分析能力的工具来检查生成结果。


软安静兮源代码检测工具

如何能够帮助我们用好AIGC

不可否认的是,AIGC作为人类发明的最伟大的工具之一对开拓编码思维、提高编码速度是有帮助的。但是在嵌入式开发中,对代码效率和安全性要求都非常高的时候,还需要一款专业的静态代码分析工具来弥补AIGC的准确性和专业性。


软安静兮源代码检测工具(英文名:StatiCode)是一款自主研发的静态代码分析工具,具有完全的自主知识产权。


作为一款基于编译的静态代码分析工具,相较于非编译的静态代码分析工具,软安静兮在分析深度以及分析准确率上有明显的优势。默认支持上十种主流编译器(包括 Clang、GCC、Tasking、S32D、Keil、MSVC、Hightec、ARM Clang、ARM GCC等),在最真实的环境检测代码的语法和底层逻辑。


由于对效率和扩展性的双向追求,C/C++是一个对专业性要求极高的语言,并且还在不断更新,也是容易触发质量安全漏洞的语言之一。软安静兮支持多个版本的C/C++,并支持包括资源泄露、越界访问等在内的诸多检查器。


在针对代码的质量和安全方面,众多专业的组织也制定了行业规范。软安静兮支持最新的编码规范MISRA C、C++ 2023,也支持主流的 MISRA C 2012,MISRA C++ 2008、 AUTOSAR、CERT、 CWE Top 25和 OWASP Top 10。


针对嵌入式的开发环境,软安静兮源代码检测工具也提供了灵活的部署方式,包括容器部署、本机部署、一体机部署等。广泛支持国产操作系统环境。具有简洁且用户友好的操作界面及功能,能够快速地一键式开启扫描任务。同时也提供丰富的接口和API,支持市面主流的CI/CD工具链,融入开发流程。


在嵌入式系统开发过程中,通过SAST工具能够在早期发现潜在问题,在软件发布前及时进行修复,这样的结合不仅在软件开发的不同阶段提供了更全面的安全保障,也有助于避免在嵌入式系统中出现可能导致功能失败或信息泄露的潜在问题。



图片


elexcon深圳国际电子展由创意时代与博闻创意创立于2004年,已成为备受海内外电子行业关注的年度专业电子展之一,是展示技术实力、拓展行业合作的重要平台。更多展会详情请登录www.elexcon.com 展位、赞助商及演讲人申请请联系:0755-88311535



联系电话:
0755-88311535