亚马逊开发出新的AI软件:以在开源代码中寻找私人数据,防止意外


2021年12月13日消息,亚马逊最近开发了一项名为“Secrets Detector”的新AI软件,可以查看公开可用的源代码并识别潜在的私人信息。开源代码和代码库存在哪些挑战,新服务将做什么,工程师可以采取哪些措施来避免此类错误?

开源代码和代码库存在哪些挑战?


闭源和开源之间的战斗已经持续了几十年,而且双方都不愿承认。他们都有自己的优点和缺点。例如,闭源软件可以说更安全,因为黑客无法访问源代码,这阻碍了他们发现缺陷的能力。但是,进入最终版本的错误只能由拥有源代码的人修复,这可能永远不会发生。


开源则恰恰相反; 公开源代码允许任何人深入研究代码并且更容易发现缺陷。但是,开源社区通常允许第三方对代码的贡献和建议,这样可以更快地识别和修补错误。开源代码还有一个额外的好处,即用户可以完全透明地看到代码在做什么,这使得添加恶意代码变得非常困难。


开源代码的公共性质 意味着工程师需要非常小心发布的内容. 例如,物联网项目无疑会使用 API 密钥、用户名和密码等凭据,因此在发布之前必须从文件中取出这些凭据。如果文件托管在一个用户控制已发布文件的位置,这很容易做到,但引入 GIT 等服务会使这变得极其困难。


多个人可以拥有一个项目的所有权,所有这些人都可以推拉代码,并且只需要其中一个人留下个人详细信息。当考虑到诸如 GIT 之类的服务具有保留旧代码副本和跟踪更改的版本控制时,这个问题变得更糟。因此,删除在某些上传文件中找到的 API 密钥可能仍然存在于其他拉取请求中并在版本控制中进行跟踪。


亚马逊向 CodeGuru 发布秘密检测


去年,亚马逊发布了一款名为 CodeGuru 的智能软件管理器,通过检查语法、结构和整体代码质量来帮助用户创建高质量的代码。认识到版本控制和开源代码面临的安全挑战,亚马逊最近发布了最新的CodeGuru 的服务称为 Secretes Detection.


在机器学习的支持下,新系统可以通过代码识别潜在的私人信息,包括用户名、密码、凭据和 API 密钥。亚马逊希望新系统能够防止此类数据的意外发布,尤其是对于广泛使用的软件。Secretes Detection 可以阻止的一个例子是 2017 年优步设计工程师无意中发布了 AWS 凭证。


CodeGuru 开发人员可以免费使用 Secrets Detection,并且有望成为软件版本控制方面的重大改变者。此外,新系统将允许检查包括 Java 和 Python 在内的代码以及配置文件和文档。


工程师可以采取哪些措施来防止意外发布凭据?


对于开发者来说,版本控制是一个 开发过程的重要组成部分. 如果在修改代码和推出新版本时没有采取适当的预防措施,可能会发生意外的公开暴露。只需要一名精疲力竭的开发人员对源代码进行一些更改以纠正缺陷,然后在不删除凭据的情况下推送最新版本。

工程师可以使用的一种方法是将凭证与代码分离,然后创建一个无法更新的空白配置文件。提取源代码的用户拥有自己的凭证文件的本地副本,其中包含他们自己的私人数据。在进行代码更改然后发布时,版本控制系统会忽略凭证文件。


然而,这种方法 取决于工程师对安全重要性的理解并将所有私人数据放入他们自己的本地凭证文件中。工程师仍然能够覆盖引用具有绝对值的外部凭证文件的变量。


这就是为什么像亚马逊的 Secrets Detector 这样的软件系统对工程师来说非常强大的原因。如果有两名以上的工程师在从事编码项目,则应特别注意存储哪些信息、如何存储以及在哪里存储。



文章内容来自网络,如有侵权,联系删除、联系电话:023-85238885

参与评论

请回复有价值的信息,无意义的评论将很快被删除,账号将被禁止发言。

评论区