开发者如何安全地使用生成式人工智能
生成式人工智能的安全使用方法
如果您从事软件开发,或者在技术行业的任何领域工作,您无疑会参与讨论、阅读关于生成人工智能(AI)平台的头条新闻,甚至试用过。简而言之,这项新兴且快速发展的技术无处不在。
然而,除了AI代码生成工具带来的更高生产力的令人兴奋的承诺——GitHub认为,由于AI提高了开发者的生产力,全球GDP可能会增加超过1.5万亿美元——还存在着增加的风险。这些风险包括对代码质量的担忧,因为AI模型可以生成难以理解和解释的复杂代码。
此外,还存在着知识产权所有权复杂性的风险,因为关于AI生成的代码的知识产权、所有权和版权的讨论仍在继续。随着这项技术的发展,指导将会更加清晰,但这需要时间。当前,如果使用AI生成的代码,而该代码是在开源软件上进行训练的,那么不遵守该软件的许可要求可能构成侵犯版权的行为。
最后,AI生成的代码可能包含一些漏洞,尽管这是无意的。例如,如果AI是在存在安全漏洞的代码上进行训练的,那么它将生成存在安全漏洞的代码。简单来说:垃圾进,垃圾出。
以安全为先
那么,开发人员如何确保在不冒险安全的情况下充分利用生成AI呢?
- 将生成AI视为初级编码伙伴:开发人员在使用生成AI编码工具时应该期望代码质量较低且包含漏洞。
- 保持警惕:通过AI提示泄露机密信息是一个重大的隐私风险,目前对于服务如何真正处理客户数据的理解还很有限。
- 加强代码审查:与传统编码一样,代码审查是软件开发生命周期(SDLC)中的重要过程。审查AI生成代码的安全性和质量非常重要,因为它可能在表面上看起来是连贯的,但在测试之后并不一定正确和安全。
- 持续进行培训:考虑到审查和测试AI生成的代码非常重要,对于负责提示和交付最终产品、应用程序或服务的软件开发人员来说,他们需要对安全编码有很好的理解。这些专业人员需要接受如何识别和解决漏洞的培训,并且随着威胁形势的快速演变,这种培训还需要持续进行,以最大程度地赋予SDLC中的每个人能力。
通过这些准则,确实有可能在提高生成AI所能带来的生产力与代码安全和质量之间取得平衡。然而,在这种平衡的基础上,必须持续进行程序化的安全编码培训,以使生成AI成为一个有用的工具,而不是不安全代码的源头。