Amazon CodeGuru Reviewer推出新功能识别硬编码密钥并用Amazon Secrets Manager进行保护

本文主要是介绍Amazon CodeGuru Reviewer推出新功能识别硬编码密钥并用Amazon Secrets Manager进行保护,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

81858bd4fb3338b108d3f44d39b90d8f.gif

Amazon CodeGuru https://aws.amazon.com /codeguru/ 通过扫描和分析 Java 和 Python 应用程序来帮助提高代码质量并实现自动化的代码审查。Amazon CodeGuru Reviewer 可以检测代码中的潜在缺陷和错误。例如,它可就安全漏洞、资源泄漏、并发问题、错误输入验证以及偏离亚马逊云科技最佳实践等问题提出改进建议。

最广为人知的一个安全实践是集中管理密码、API 密钥和一般凭证等密钥。与许多面临严格时间要求的其他开发人员一样,我经常会在管理和使用代码中的密钥方面走捷径,在本地开发过程中使用纯文本环境变量或将静态密钥进行硬编码,然后在无意中将它们提交。当然,我总是非常后悔,希望有一种自动化的方法来检测和保护我所有存储库中的这些密钥。

我很高兴地宣布 Amazon CodeGuru Reviewer 新推出密钥检测器功能,这是一种自动化的工具,可帮助开发人员检测源代码或配置文件中的密钥,例如密码、API 密钥、SSH 密钥和访问令牌。

这种新推出的检测器在代码审查过程中使用机器学习(ML)来识别硬编码的密钥,从而帮助您确保所有新代码在合并和部署之前未包含硬编码的密钥。除 Java 和 Python 代码之外,密钥检测器还可以扫描配置和文档文件。在补救措施方面,Amazon CodeGuru Reviewer 建议使用 Amazon Secrets Manager https://aws.amazon.com/secrets-manager/ 来保护密钥,这是一项托管式的服务,可让您安全并自动地存储、轮换、管理和检索凭证、API 密钥以及其他各种类型的密钥。

这项新功能包含在Amazon CodeGuru Reviewer 服务中,无需额外付费,并支持常见的 API 提供商,例如 亚马逊云科技、Atlassian、Datadog、Databricks、GitHub、Hubspot、Mailchimp、Salesforce、SendGrid、Shopify、Slack、Stripe、Tableau、Telegram 和 Twilio。查看完整列表请扫描下方二维码。

41c23d1753a845173071fcec1cac3fe4.png

密钥检测器操作演示

首先,我从 Amazon Secrets Manager 控制台中选择 Amazon CodeGuru。此新的工作流允许我关联一个新的存储库并运行完整的存储库分析,目的是识别硬编码的密钥。

aebf97948560a5eb72988b3bb875c7ee.png

关联新存储库只需要几秒钟即可完成。我连接我的 GitHub 账户,然后选择一个名为 hawkcd https://github.com/alexcasalboni/hawkcd 的存储库,其中包含了一些 Java、C#、JavaScript 和配置文件。

84bf4e3d25be504eac158d4ca8d604ab.png

几分钟后,我完整的存储库关联成功并完成了完整扫描。我还可以看一下一个名为 DemoFullRepositoryAnalysisSecrets 的演示存储库分析。进入您的亚马逊云科技账户后,您可以在 Amazon CodeGuru 控制台的 Full repository analysis(完整存储库分析)下找到此演示。

820cdb7d03dda3dcc284ec770c94f097.png

我选中该存储库分析并找到了 42 条建议,其中包括一个针对硬编码密钥的建议(您可以用 Type=Secrets 条件来筛选推荐)。Amazon CodeGuru Reviewer 在 .travis.yml 文件中发现了硬编码的亚马逊云科技访问密钥 ID。

该建议强调了安全存储这些密钥的重要性,提供了有关此问题的更多信息的链接,并建议轮换识别出的密钥,以确保将来不会被作恶者再次利用。

c6ff6ac1878cd1868ed6527d6b90b313.png

Amazon CodeGuru Reviewer 允许我跳转到该密钥所在的准确文件和代码行,从而更深入地了解上下文,验证文件历史记录并快速采取行动。

9ab54c610f5c8e1cb1c226f956e24809.png

最后但并非最不重要的一点是,该建议包括一个 Protect your credential(保护您的凭证)按钮,让我可以快速跳转到 Amazon Secrets Manager 控制台,并使用正确的名称和值创建一个新密钥。

e316f93aba7336d3d255c5060888e40a.png

我将删除源代码中的纯文本密钥,然后更新我的应用程序以从 Amazon Secrets Manager 获取密钥值。在许多情况下,您可以保留当前的配置结构,并使用现有参数来存储密钥名称,但不存储密钥值。

fa5477ae1a7c13dec097d6152602c858.png

安全存储好密钥后,Amazon Secrets Manager 还会为我提供可以使用 Amazon SDK  https://aws.amazon.com/tools/ 以多种编程语言获取我的新密钥的代码片段。这些代码段包含了必要的Amazon SDK 调用,以及错误处理、解密和解码逻辑,从而为我节省了时间。

92c123ede837f5967ce51b8fb7c5564d.png

前面我演示了如何运行完整的存储库分析,当然也可以对每个新的拉取请求持续执行相同的分析,以帮助防止未来出现密钥硬编码和其他问题。

Amazon CodeGuru Reviewer 

现在支持此功能

Amazon CodeGuru Reviewer 密钥检测器功能已在所有提供Amazon CodeGuru Reviewer 的区域开放,无需额外付费。

如果您是Amazon CodeGuru Reviewer 新用户,则可以免费试用 90 天,使用不超过 10 万行代码的存储库。无论您的代码是托管在 Amazon CodeCommit https://aws.amazon.com/codecommit/ 、BitBucket 还是 GitHub 上,都可在几分钟内连接到存储库并开始完整扫描。如果您使用的是 GitHub,还可以参阅 GitHub 操作集成(请扫描下发二维码获取内容)。

2fde0063bf58f92352b1505e64c75ff7.png

有关密钥检测器功能的更多信息,请参阅技术文档(请扫描下方二维码获取内容)。

fe755412d79076e55d46d4ab34ec0bcc.png

本篇作者

5a110d09d1eb041031401d930bd78945.png

Alex Casalboni

高级软件工程师 &云布道者

Alex是亚马逊云科技的布道师,对网络技术和音乐充满热情。自2011年以来,他一直在开发网络产品,并用他的经验帮助其他开发者学习。他对编码的热爱遍及Python和JavaScript社区,他喜欢为开源项目做贡献,比如Amazon Lambda Power Tuning。

f950be67bf22abb9e232336960ad0aba.gif

5c8979d380f44ac1728a543e838e5b8e.gif

听说,点完下面4个按钮

就不会碰到bug了!

791f712d54f4a8040c53be8208404225.gif

这篇关于Amazon CodeGuru Reviewer推出新功能识别硬编码密钥并用Amazon Secrets Manager进行保护的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/291463

相关文章

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

Python使用自带的base64库进行base64编码和解码

《Python使用自带的base64库进行base64编码和解码》在Python中,处理数据的编码和解码是数据传输和存储中非常普遍的需求,其中,Base64是一种常用的编码方案,本文我将详细介绍如何使... 目录引言使用python的base64库进行编码和解码编码函数解码函数Base64编码的应用场景注意

Java实现文件图片的预览和下载功能

《Java实现文件图片的预览和下载功能》这篇文章主要为大家详细介绍了如何使用Java实现文件图片的预览和下载功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... Java实现文件(图片)的预览和下载 @ApiOperation("访问文件") @GetMapping("

Java进行文件格式校验的方案详解

《Java进行文件格式校验的方案详解》这篇文章主要为大家详细介绍了Java中进行文件格式校验的相关方案,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、背景异常现象原因排查用户的无心之过二、解决方案Magandroidic Number判断主流检测库对比Tika的使用区分zip

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

SpringIntegration消息路由之Router的条件路由与过滤功能

《SpringIntegration消息路由之Router的条件路由与过滤功能》本文详细介绍了Router的基础概念、条件路由实现、基于消息头的路由、动态路由与路由表、消息过滤与选择性路由以及错误处理... 目录引言一、Router基础概念二、条件路由实现三、基于消息头的路由四、动态路由与路由表五、消息过滤

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

Spring Boot 3.4.3 基于 Spring WebFlux 实现 SSE 功能(代码示例)

《SpringBoot3.4.3基于SpringWebFlux实现SSE功能(代码示例)》SpringBoot3.4.3结合SpringWebFlux实现SSE功能,为实时数据推送提供... 目录1. SSE 简介1.1 什么是 SSE?1.2 SSE 的优点1.3 适用场景2. Spring WebFlu

基于SpringBoot实现文件秒传功能

《基于SpringBoot实现文件秒传功能》在开发Web应用时,文件上传是一个常见需求,然而,当用户需要上传大文件或相同文件多次时,会造成带宽浪费和服务器存储冗余,此时可以使用文件秒传技术通过识别重复... 目录前言文件秒传原理代码实现1. 创建项目基础结构2. 创建上传存储代码3. 创建Result类4.