代码AI自动生成,是时候冷静下来思考如何保障代码安全?
自从AI聊天被推出之后,其热度就一直是高居不下。身边的小伙伴们和其是什么都交流:日常聊天,国际局势,宇宙真理,人生哲学。。。最让人痴迷的就是,它真的什么都可以回答上来一点:
而对于研发小伙伴来说,自从用上了AI聊天,随便哪道LeetCode hard一遍AC就再也不是梦想:
甚至在有些项目开发中,遇到困难的时候,也会去交流一番:
AI自动输出代码
随着越来越多代码带上了AI的思路与“影子”,身边小伙伴们也从一开始惊叹于人工智能语言处理工具强大的功能,自动输出代码的状态中渐渐冷静了下来。因为,既然AI自己就会写代码了,效率还这么高,那还需要我们程序员吗?想着想着,很多刚开始工作的小伙伴就会出一身冷汗,“这才刚毕业找到工作,就要开始担心失业了”?
但是,我们需要再冷静下来思考下,AI当前强大能力的来源是什么?是在海量数据的基础上,持续进行着大量的训练,以此来构建出回答“某类问题”的模板,而AI自然语言交流工具则会基于这个模板/“规则”去回答大家的问题。别的场景我们暂且不论,在输出代码的场景下,遇到一些复杂的条件,往往我们会发现AI提供的代码和预期的结果是有偏差的;甚至我们得小心,会不会有人刻意去训练AI,帮助其更“高效率”地输出一些恶意代码呢?而这些偏差和恶意,只有我们人类程序员借助各类工具,基于“真相”,才能对它们进行验证,确保这些代码是可信的。
因此,我们可以说,代码编写/软件研发的模式可能会因为AI的介入而发生转型(在问答间学习了更多的思路,受到启发诞生了更深度的想法,AI更高效的输出代码),但是高质量有安全的代码还是需要人类的介入,也就是说,研发人员会永远被需要。
安全扫描代码
在写代码的场景,小错误会导致现网事故影响用户体验,大错误则会带来经济上的巨额损失,设备财产的“绑架”,甚至生命安全上的威胁。
那么AI带来的自动生成便利的同时,我们该如何保障它们的质量与安全呢?这时候,就需要工具来对其进行管控。只要能将AI的负面影响控制住,那么AI也能像如今的互联网一样在生活中随处可见。
而这类工具,很万幸已然存在。
还是在那个需要苦苦思索思路,敲出行行代码的年代,开发人员就一直在有意或无意地生产问题代码。针对代码的质量与安全,SAST静态应用安全测试应运而生。作为一种白盒测试,它能通过分析源代码来发现代码层面的质量问题与安全漏洞。因此,不管我们是编码者还是committer,在面对自己写的/别人写的代码的时候,都应该使用好SAST工具对源代码进行扫描与管控,以最低的代价在编码阶段就找出漏洞。
工具推荐
华为云已于2023年1月正式推出SAST工具:CodeArts Check代码检查服务,帮助用户有效管控代码质量。其提供的“代码编写-代码合并-版本发布”三层缺陷防护体系,针对代码的可读、可维护、安全、可靠、可测试、高效、可移植等方面进行全面的分析;支持海量源代码的风格、质量和安全检查,可实现百亿行大规模并行扫描,并提供完善的修改指导和趋势分析。
服务体验链接:
1、CodeArts Check 云服务:https://www.huaweicloud.com/product/codecheck.html
2、CodeArts Check VSCode IDE插件:
https://marketplace.visualstudio.com/items?itemName=HuaweiCloud.codecheck
3、CodeArts Check Jetbrains IDEA插件:
https://plugins.jetbrains.com/plugin/20956-huawei-cloud-codearts-check
参考资料
1、https://www.reuters.com/technology/chatgpt-sets-record-fastest-growing-user-base-analyst-note-2023-02-01/
2、https://en.wikipedia.org/wiki/Static_application_security_testing
- 点赞
- 收藏
- 关注作者
评论(0)