法律硕士:安全编码的(非)完美人性化方法?

出版日期:2024 年 2 月 1 日
作者:Pieter Danhieux
案例研究

法律硕士:安全编码的(非)完美人性化方法?

出版日期:2024 年 2 月 1 日
作者:Pieter Danhieux
查看资源
查看资源
黑暗中的笔记本电脑,屏幕上透出条纹光。
黑暗中的笔记本电脑,屏幕上透出条纹光。

这篇文章的一个版本出现在 黑暗阅读.它已被更新并在此转发。

最新的人工智能工具一经推出,就引起了人们的热议,开发人员和编码狂热者纷纷使用这些工具一键生成代码。安全专家很快就指出,在许多情况下,生成的代码质量低劣、易受攻击,如果落入缺乏安全意识的人之手,可能会导致不安全的应用程序和网络开发大量涌向毫无戒心的消费者。

还有一些人掌握了足够的安全知识,却将其用于作恶。每一次令人惊叹的人工智能壮举,似乎都会有同样的技术被用于邪恶目的的反击。网络钓鱼、深度伪造诈骗视频、恶意软件制作、一般的脚本恶作剧......这些破坏性活动都能以更快的速度、更低的门槛实现。

当然,也有很多点击率很高的广告,把这种工具吹捧为革命性的,或者至少在与 "一般 "人类技能相匹配的情况下能够胜出。虽然法律硕士式的人工智能技术将不可避免地改变我们处理许多方面工作的方式,而不仅仅是软件开发,但我们必须退一步,考虑头条新闻之外的风险。 

作为编码伴侣,它的缺陷也许是它最 "人性化 "的特质。

低劣的编码模式是其主流解决方案

由于 ChatGPT 是在数十年的现有代码和知识库基础上训练出来的,因此,尽管它神奇而神秘,但也存在着人们在浏览代码时所面临的常见缺陷,这一点也不足为奇。糟糕的编码模式是普遍现象,这仍然需要具有安全意识的驱动程序通过提出正确的问题和提供正确的工程提示来生成安全的编码示例。 

即便如此,也不能保证所提供的代码片段从安全角度来看是准确和实用的;正如 Mike Shema 发现的那样,该技术容易产生幻觉,甚至在被要求执行某些特定 JSON 操作时编造出不存在的库。这可能会导致威胁行为者进行 "幻觉蹲守",他们很乐意伪装成 ChatGPT 信心十足地推荐的编造库来制作恶意软件。

归根结底,我们必须面对这样一个现实:总体而言,我们并没有期望开发人员具备足够的安全意识,作为一个行业,我们也没有让他们做好充分准备,将编写安全代码作为一种默认状态。这一点在输入 ChatGPT 的海量训练数据中显而易见,而且我们可以预期,至少在最初阶段,它的输出结果也同样缺乏安全性。开发人员必须能够识别安全漏洞,并自行修复或设计更好的提示,以获得更稳健的结果。

斯坦福大学的研究人员进行了首次大规模用户研究,考察用户如何与人工智能编码助手互动,以解决各种与安全相关的功能:

"我们观察到,与对照组的参与者相比,能够使用人工智能助手的参与者更有可能在大多数编程任务中引入安全漏洞,但也更有可能将其不安全的答案评为安全答案"。

这说明人们默认信任人工智能编码工具的输出结果,认为它们生成的代码总是固有安全的,而事实上并非如此。


考虑到这一点以及未来不可避免的人工智能威胁,开发人员现在比以往任何时候都更需要磨练自己的安全技能,并提高代码质量标准,无论其来源如何。

好心办坏事

人工智能编码伴侣的流行不足为奇,尤其是当开发人员面临着越来越多的责任、越来越紧迫的期限,以及肩负着公司创新的雄心壮志时。然而,即使用心良苦,如果在使用人工智能进行编码时缺乏可操作的安全意识,也将不可避免地导致明显的安全问题。所有使用 AI/ML 工具的开发人员都将生成更多代码,而代码的安全风险程度将取决于他们的技能水平。企业需要清楚地认识到,未经培训的人员肯定会更快地生成代码,但他们也会加快技术安全债务的速度。

即使是我们对 ChatGPT 的初步测试(2023 年 4 月)也显示,它会生成一些非常基本的错误,而这些错误可能会带来毁灭性的后果。当我们要求它使用 MySQL 数据库在 PHP 中创建一个登录例程时,功能代码很快就生成了。但是,它默认在数据库中以明文存储密码,在代码中存储数据库连接凭证,并使用可能导致 SQL 注入的编码模式(不过,它确实对输入参数进行了一定程度的过滤,并吐出了数据库错误)。从任何角度看,这些都是新手错误:

ChatGPT 的建议并不一定安全,在某些情况下可能会有危险。


进一步的提示确保了错误得到纠正,但纠正错误需要大量的安全知识。

当然,就像初级开发人员的技能无疑会随着时间的推移而提高一样,我们也期待人工智能/ML 的能力会不断提高。一年后,它可能不会再犯如此明显和简单的安全错误。但是,这将会大大提高追踪更严重、更隐蔽、更非同小可的安全错误所需的安全技能。

我们在发现和修复安全漏洞方面仍然准备不足,而人工智能扩大了这一差距

虽然 "向左转移 "的说法已经流传多年,但事实仍然是,对于大多数组织而言,开发人员严重缺乏实用的安全知识,我们必须更加努力地提供合适的工具和教育,帮助他们继续前行。

目前,我们还没有做好准备来应对我们习以为常的安全漏洞,更不用说像提示注入和幻觉蹲守等人工智能带来的新问题了,这些问题代表着全新的攻击载体,将像野火一样燎原。人工智能编码工具确实代表着开发人员编码武器库的未来,但现在就必须进行安全使用这些生产力武器的教育。

想了解更多信息?下载我们的最新白皮书。
查看资源
查看资源

作者

皮特-丹休

Pieter Danhieux是全球公认的安全专家,拥有超过12年的安全顾问经验,并在SANS担任首席讲师8年,教授如何针对和评估组织、系统和个人的安全弱点的攻击性技术。2016年,他被评为澳大利亚最酷的科技人士之一(Business Insider),被授予年度网络安全专业人士(AISA - 澳大利亚信息安全协会),并持有GSE、CISSP、GCIH、GCFA、GSEC、GPEN、GWAPT、GCIA认证。

想要更多吗?

在博客上深入了解我们最新的安全编码见解。

我们广泛的资源库旨在增强人类对安全编码技术提升的方法。

查看博客
想要更多吗?

获取关于开发者驱动的安全的最新研究

我们广泛的资源库充满了有用的资源,从白皮书到网络研讨会,让你开始使用开发者驱动的安全编码。现在就去探索它。

资源中心

法律硕士:安全编码的(非)完美人性化方法?

出版日期:2024 年 2 月 1 日
作者:Pieter Danhieux

这篇文章的一个版本出现在 黑暗阅读.它已被更新并在此转发。

最新的人工智能工具一经推出,就引起了人们的热议,开发人员和编码狂热者纷纷使用这些工具一键生成代码。安全专家很快就指出,在许多情况下,生成的代码质量低劣、易受攻击,如果落入缺乏安全意识的人之手,可能会导致不安全的应用程序和网络开发大量涌向毫无戒心的消费者。

还有一些人掌握了足够的安全知识,却将其用于作恶。每一次令人惊叹的人工智能壮举,似乎都会有同样的技术被用于邪恶目的的反击。网络钓鱼、深度伪造诈骗视频、恶意软件制作、一般的脚本恶作剧......这些破坏性活动都能以更快的速度、更低的门槛实现。

当然,也有很多点击率很高的广告,把这种工具吹捧为革命性的,或者至少在与 "一般 "人类技能相匹配的情况下能够胜出。虽然法律硕士式的人工智能技术将不可避免地改变我们处理许多方面工作的方式,而不仅仅是软件开发,但我们必须退一步,考虑头条新闻之外的风险。 

作为编码伴侣,它的缺陷也许是它最 "人性化 "的特质。

低劣的编码模式是其主流解决方案

由于 ChatGPT 是在数十年的现有代码和知识库基础上训练出来的,因此,尽管它神奇而神秘,但也存在着人们在浏览代码时所面临的常见缺陷,这一点也不足为奇。糟糕的编码模式是普遍现象,这仍然需要具有安全意识的驱动程序通过提出正确的问题和提供正确的工程提示来生成安全的编码示例。 

即便如此,也不能保证所提供的代码片段从安全角度来看是准确和实用的;正如 Mike Shema 发现的那样,该技术容易产生幻觉,甚至在被要求执行某些特定 JSON 操作时编造出不存在的库。这可能会导致威胁行为者进行 "幻觉蹲守",他们很乐意伪装成 ChatGPT 信心十足地推荐的编造库来制作恶意软件。

归根结底,我们必须面对这样一个现实:总体而言,我们并没有期望开发人员具备足够的安全意识,作为一个行业,我们也没有让他们做好充分准备,将编写安全代码作为一种默认状态。这一点在输入 ChatGPT 的海量训练数据中显而易见,而且我们可以预期,至少在最初阶段,它的输出结果也同样缺乏安全性。开发人员必须能够识别安全漏洞,并自行修复或设计更好的提示,以获得更稳健的结果。

斯坦福大学的研究人员进行了首次大规模用户研究,考察用户如何与人工智能编码助手互动,以解决各种与安全相关的功能:

"我们观察到,与对照组的参与者相比,能够使用人工智能助手的参与者更有可能在大多数编程任务中引入安全漏洞,但也更有可能将其不安全的答案评为安全答案"。

这说明人们默认信任人工智能编码工具的输出结果,认为它们生成的代码总是固有安全的,而事实上并非如此。


考虑到这一点以及未来不可避免的人工智能威胁,开发人员现在比以往任何时候都更需要磨练自己的安全技能,并提高代码质量标准,无论其来源如何。

好心办坏事

人工智能编码伴侣的流行不足为奇,尤其是当开发人员面临着越来越多的责任、越来越紧迫的期限,以及肩负着公司创新的雄心壮志时。然而,即使用心良苦,如果在使用人工智能进行编码时缺乏可操作的安全意识,也将不可避免地导致明显的安全问题。所有使用 AI/ML 工具的开发人员都将生成更多代码,而代码的安全风险程度将取决于他们的技能水平。企业需要清楚地认识到,未经培训的人员肯定会更快地生成代码,但他们也会加快技术安全债务的速度。

即使是我们对 ChatGPT 的初步测试(2023 年 4 月)也显示,它会生成一些非常基本的错误,而这些错误可能会带来毁灭性的后果。当我们要求它使用 MySQL 数据库在 PHP 中创建一个登录例程时,功能代码很快就生成了。但是,它默认在数据库中以明文存储密码,在代码中存储数据库连接凭证,并使用可能导致 SQL 注入的编码模式(不过,它确实对输入参数进行了一定程度的过滤,并吐出了数据库错误)。从任何角度看,这些都是新手错误:

ChatGPT 的建议并不一定安全,在某些情况下可能会有危险。


进一步的提示确保了错误得到纠正,但纠正错误需要大量的安全知识。

当然,就像初级开发人员的技能无疑会随着时间的推移而提高一样,我们也期待人工智能/ML 的能力会不断提高。一年后,它可能不会再犯如此明显和简单的安全错误。但是,这将会大大提高追踪更严重、更隐蔽、更非同小可的安全错误所需的安全技能。

我们在发现和修复安全漏洞方面仍然准备不足,而人工智能扩大了这一差距

虽然 "向左转移 "的说法已经流传多年,但事实仍然是,对于大多数组织而言,开发人员严重缺乏实用的安全知识,我们必须更加努力地提供合适的工具和教育,帮助他们继续前行。

目前,我们还没有做好准备来应对我们习以为常的安全漏洞,更不用说像提示注入和幻觉蹲守等人工智能带来的新问题了,这些问题代表着全新的攻击载体,将像野火一样燎原。人工智能编码工具确实代表着开发人员编码武器库的未来,但现在就必须进行安全使用这些生产力武器的教育。

想了解更多信息?下载我们的最新白皮书。

我们希望得到您的许可,向您发送有关我们产品和/或相关安全编码主题的信息。我们将始终以最谨慎的态度对待您的个人资料,绝不会将其出售给其他公司用于营销目的。

提交
要提交表格,请启用 "分析 "cookies。完成后,请随时再次禁用它们。