本文字数: 1600, 阅读完需: 8 分钟
在这场演讲中,Brian Beach 探讨了 Amazon CodeWhisperer 如何助力构建更加安全的应用程序。他阐释了 CodeWhisperer 如何通过扫描代码发现安全漏洞、利用生成式人工智能提供修复建议,以及从亚马逊云科技文档中获取推荐。该演讲重点阐述了 CodeWhisperer 如何实现更快速的代码审查、自动生成文档,并跟上最新的安全最佳实践,同时还通过引用跟踪和定制化功能来解决知识产权问题。
以下是小编为您整理的本次演讲的精华,共1300字,阅读时间大约是6分钟。
在这个科技飞速发展的时代,生成式人工智能(Generative AI)的出现带来了一场变革性的浪潮,重塑了我们对应用程序开发和安全性的认知。作为亚马逊云科技(Amazon Web Services,亚马逊云科技) Next Gen Developer Experience社区的技术主管,Brian Beach站在观众面前,他的话语承载着一种范式转移,承诺将彻底革新整个行业。Gartner预测,在未来两年内,将有高达80%的企业拥抱并使用这项开创性技术构建解决方案,这凸显了当前话题的紧迫性和重要性。
作为创新的先锋,亚马逊云科技一直在努力推出一系列全面的服务和功能,以促进生成式人工智能的无缝集成。在基础层面上,亚马逊云科技提供了来自NVIDIA和其他第三方供应商的强大GPU实例阵容,使用户能够以前所未有的灵活性托管、构建和训练模型。然而,Brian也意识到了这种强大力量所伴随的固有挑战,承认在这个基础层面上需要进行大量的无差别繁重工作来保证服务器的安全、修补和管理。
为此,亚马逊云科技在2022年推出了Amazon Bedrock,这是一种精心设计的解决方案,旨在简化模型托管的同时,保留用户对模型选择、向量数据库和嵌入模型等关键方面的控制权。在Bedrock奠定的基础之上,亚马逊云科技在2023年的re:Invent(Amazon Web Services Summit)上推出了Amazon CodeWhisperer,这是一套旨在推动开发过程走向未来的能力。
布莱恩的重点集中在两个关键组成部分:Amazon CodeWhisperer Developer和Amazon CodeWhisperer Business。Amazon CodeWhisperer Developer是一套专门为加速开发人员、IT专业人士、安全工程师和运营团队工作而量身定制的工具集合,它使用户能够以前所未有的速度和精度更快地工作、更高效地编写代码并识别安全问题。与此同时,Amazon CodeWhisperer Business是一项开创性的功能,它使组织能够引入自己独特的知识和信息,让用户可以提出问题并获得量身定制的回应。这一功能在公司的云卓越中心内创建人力资源政策、旅行政策和IT安全政策方面具有巨大潜力,确保组织知识能够无缝地融入开发过程。
为了说明生成式人工智能在创建安全应用程序方面的变革潜力,布莱恩展示了一个引人入胜的演示场景。假设他扮演一名安全工程师,负责对一个使用TypeScript构建并在ECS上运行的电子商务应用程序中的虚假评论系统进行安全审查和修复问题。布莱恩开始了一段展示CodeWhisperer强大功能的旅程。
演示从布莱恩审查审计结果开始,结果显示该应用程序没有正确验证产品输入,导致虚假评论误导客户并侵蚀了信任。审计员提出了关于用户身份验证、内容验证,甚至评分范围验证(确保评分在1到5星之间)的建议。
利用Amazon CodeWhisperer Business,布莱恩深入探究了应用程序的历史背景,发现多年来一直存在不当语言、不当图像,甚至广告渗透到评论系统的问题,但这些问题长期被忽视。CodeWhisperer无缝地引入了来自Jira和Confluence等来源的数据,为布莱恩提供了全面的情况理解,无需手动筛选无数票证和文档。
接下来,Brian探索了亚马逊云科技安全最佳实践,演示了CodeWhisperer如何指导用户浏览庞大的文档资料,提供相关建议和进一步阅读的链接。当询问关于容器扫描的问题时,CodeWhisperer立即建议使用Amazon ECR的内置功能,加速了Brian的学习过程,并确保他获取最新和最相关的信息。
转移到亚马逊云科技控制台,Brian展示了Amazon ECR的容器扫描功能,CodeWhisperer在此协助他识别和解决安全发现。最新的扫描显示了许多发现,其中一些可追溯到2020年,包括Brian未积极使用的软件包中的漏洞。在CodeWhisperer的指导下,Brian能够剔除这些未使用的软件包,并通过使用轻量级基础镜像(如Amazon Linux或Alpine)来优化应用程序。
演示的核心集中在审查和保护应用程序的代码库。Brian利用CodeWhisperer进行全面的安全扫描,在项目中发现了11个问题,其中10个在主应用程序文件中。CodeWhisperer检测到了SQL注入、硬编码密码和输入验证问题等漏洞,并提供了代码修复和建议,简化了补救过程。
值得注意的一个发现是允许传入有效载荷高达4兆字节,这使应用程序容易受到拒绝服务攻击。CodeWhisperer建议缩小此限制以增强安全性。此外,CodeWhisperer还发现了一些敏感信息被记录的实例,可能存在潜在风险。为解决硬编码密码漏洞,CodeWhisperer生成了将密码外部化并在运行时作为环境变量传入的代码。当Brian寻求在ECS中注入密码到环境变量的指导时,CodeWhisperer提供了使用亚马逊云科技Secrets Manager、Parameter Store和其他非亚马逊云科技解决方案等建议。
为了解决虚假评论的核心问题,Brian与CodeWhisperer进行了反复探讨,构思并实施了范围验证检查,确保评分在1到5星之间。CodeWhisperer还协助重写了SQL查询,防止用户对同一产品提交多个评分,这是维护数据完整性的关键步骤。通过利用CodeWhisperer的自动补全功能和注释,Brian能够迅速实施这些变更。
在整个演示过程中,CodeWhisperer无缝集成了亚马逊云科技文档,为诸如在ECS中将密码注入为环境变量等主题提供指导。这种集成消除了不断切换上下文的需要,使Brian能够专注于手头的任务,同时利用亚马逊云科技文档中丰富的知识。
接下来,Brian展示了CodeWhisperer代理的强大功能,演示了它们如何通过分析代码库、反向工程API请求和响应负载以及记录单个API,来生成全面的自述文件。这种能力不仅提高了代码的可维护性,而且还促进了开发团队内部的知识转移和协作。
但是,代理的功能不仅限于生成文档。Brian强调了它们处理更复杂任务的能力,例如在单个操作中添加新的API(路由器、模型、视图、控制器和单元测试)。这种自动化和效率水平是一个游戏规则改变者,使开发人员能够专注于更高层次的任务,而CodeWhisperer处理复杂的细节。
在演讲的最后,Brian阐明了CodeWhisperer的其他功能,进一步巩固了它在安全应用程序开发领域的变革力量地位。Transform代理协助将代码库从旧语言或框架升级到较新版本,减少技术债务,并确保应用程序保持最新和安全。这一功能解决了开发团队面临的一个常见挑战,简化了升级过程,并最大限度地降低了引入漏洞的风险。
此外,CodeWhisperer的参考跟踪功能能够追踪并归属源自开源代码的建议,允许用户保持知识产权的完整性。通过提供透明度和归属,CodeWhisperer使组织能够在遵守许可和归属要求的同时,拥抱开源贡献。
最后,定制化功能使组织能够针对其私有库、SDK和代码库对CodeWhisperer进行训练,确保其建议与公司的独特实践和代码库保持一致,进一步提高其效率和相关性。
总之,Brian Beach的演讲生动描绘了生成式人工智能,尤其是亚马逊CodeWhisperer,在创建更安全应用程序方面的变革潜力。通过利用这些尖端工具,开发人员、安全工程师和IT专业人员可以加速工作流程,更有效地识别和修复漏洞,并保持代码库的安全性和最新状态,从而提高应用程序的整体安全态势。随着世界拥抱生成式人工智能革命,亚马逊云科技站在前沿,赋予组织利用这一技术的能力,开启创新和安全的新领域。
下面是一些演讲现场的精彩瞬间:
传统上,开发人员一直专注于通过持续集成/持续交付(CI/CD)解决方案或基础设施代码(如CDK和CloudFormation)以及所有SDK等来提高工作效率。
然而,现在可以明显看出,生成式人工智能正在改变这一切。
通过代码分析,发现了多个安全漏洞,如SQL注入、硬编码密码等,并提供了使用生成式AI修复这些漏洞的建议。
开发人员可以轻松发现代码中的问题并获得解决方案,无需离开当前环境,这都归功于人工智能生成的建议和集成的文档。
在演示环节,演讲者展示了如何利用生成式AI的帮助快速实现审计员所要求的功能,包括范围验证、重写SQL查询以及防止重复评论等,体现了生成式AI在提高工作效率方面的优势。
演讲者还展示了如何使用生成式AI来创建项目的自述文件(README),以解决糟糕的文档问题。
通过代码分析和自动生成,reInforce可以快速为项目生成文档、单元测试等,大大提高开发效率。
在这场富有洞见的演讲中,亚马逊云科技的技术主管Brian Beach深入探讨了生成式人工智能在创建更安全的应用程序方面的变革潜力。他强调了企业对生成式人工智能的快速采用,以及亚马逊云科技推出的一系列服务,包括Amazon Bedrock和Amazon CodeWhisperer,旨在简化开发过程。
首先,Beach阐述了Amazon CodeWhisperer Developer如何通过提供智能辅助加快开发进度,从代码生成和安全扫描到文档和重构。其次,他展示了Amazon CodeWhisperer Business,它能够吸收组织的知识,使开发人员能够查询和利用内部政策、最佳实践和治理框架。第三,Beach演示了生成式人工智能如何无缝集成到各种亚马逊云科技体验中,提高整个开发生命周期的生产力和安全性。
通过全面的演示,Beach展现了安全工程师如何利用生成式人工智能更有效地进行安全审查、实施输入验证和修复漏洞。他展示了代理的强大功能,可以执行生成文档和升级代码库等复杂任务。Beach最后强调了其他功能,如知识产权管理的参考跟踪和利用组织专有知识的模型定制。
总的来说,Beach的演讲强调了生成式人工智能在创建更安全、更高效的应用程序方面的变革潜力,使开发人员和安全专业人士能够加快工作流程,同时保持健全的安全实践。