在 S3 存储桶中检测 Stripe 密钥与 Amazon Macie 安全博客
  • 21

使用 Amazon Macie 检测 S3 桶中的 Stripe 密钥

关键要点

学会如何通过 Amazon Macie 识别和保护 Stripe API 密钥,确保安全性。Stripe API 密钥应严格控制,避免意外泄露,例如提交到 GitHub 或记录在日志中。使用 Amazon Macie 的新数据标识符 STRIPECREDENTIALS 来检测商户密钥。

在构建应用程序时,许多客户使用 Amazon Web Services (AWS) 提供的 Stripe 全球支付服务,以加速产品上市和增加收入。在处理 Stripe 服务的凭证时,客户必须确保其安全性和正确性。这些凭证类似于 AWS API 密钥,允许访问 Stripe 账户并处理真实资金,因此 Stripe 的 API 密钥必须保密并受到良好的管理。当 Stripe API 密钥不小心提交到 GitHub、记录到日志或上传到 Amazon Simple Storage Service (Amazon S3) 时,必须使其失效并重新发行。

为了满足客户减少潜在暴露 Stripe API 密钥的需求,我们与 Stripe 合作开发了新的托管数据标识符,客户可以利用它来发现和保护 Stripe API 密钥。

“我真的很高兴我们能够与 AWS 合作,在 Amazon Macie 中引入新的托管数据标识符。AWS 和 Stripe 的共同客户现在可以扫描 S3 桶以检测暴露的 Stripe API 密钥。” 马丁普尔, Stripe 云安全高级工程师

在本文中,我们将展示如何使用 Amazon Macie 中的新托管数据标识符来发现和保护您的 Stripe API 密钥。

关于 Stripe API 密钥

Stripe 为企业提供支付处理软件和服务,帮助他们从全球客户那里接受在线支付。

Stripe 通过在请求中包含 API 密钥来验证 API 请求。Stripe 采取多种措施帮助客户保护其密钥安全。用户可以生成仅能访问模拟测试数据的 测试模式密钥,这些密钥不会处理真实资金。Stripe 鼓励客户在测试和开发过程中只使用测试 API 密钥,以减少意外泄露实时密钥或意外生成真实费用的风险。

Stripe 还支持可公开使用的密钥,这些密钥可以在您的 Web 或移动应用的客户端代码中公开显示,以收集支付信息。

本文重点关注 实时模式密钥,因为它们主要安全风险,因为它们能够访问真实数据并造成资金流动。对此类密钥应严格保护,通过限制只能从特定 IP 范围内读取或写入特定 API 资源来增强安全性,但即使有这些限制,也应谨慎使用实时模式密钥。

Stripe 密钥具有独特的前缀,例如用于密钥的 sklive 和用于受限密钥的 rklive,以便于检测。

Amazon Macie

Amazon Macie 是一项完全托管的服务,使用机器学习ML和模式匹配来发现和帮助保护敏感数据,例如个人可识别信息。Macie 也提供详细的数据可见性,帮助用户符合各种合规要求,例如通用数据保护条例GDPR和健康保险可携带性与责任法案HIPAA。

Macie 提供了一套 托管数据标识符,使配置和采用变得更加简单。托管数据标识符是预构建的可自定义模式,可以自动识别敏感数据,例如信用卡号码、社会安全号码和电子邮件地址。

现在,Macie 提供了一个新的托管数据标识符 STRIPECREDENTIALS,您可以使用该标识符来识别 Stripe API 密钥。

配置 Amazon Macie 检测 Stripe 凭证

在本部分中,我们将展示如何使用托管数据标识符 STRIPECREDENTIALS 来检测 Stripe API 密钥。我们建议您在用于实验和探索的 AWS 账户中执行这些教程步骤,然后再在生产环境中进行检测。

先决条件

以下是执行此操作的先决条件:

在您的 AWS 账户中启用 Amazon Macie。有关说明,请参见 入门 Amazon Macie。如果您在 AWS Organizations 中进行此教程,请将您的账户设为 授权 Macie 管理员账户,并通过 Organizations 在至少一个成员账户中 启用 Macie。然后在成员账户中执行以下步骤。

创建示例数据

第一步是在 AWS 账户的 S3 桶中创建一些示例对象。这些对象包含类似于 Stripe 密钥的字符串。您稍后将使用示例数据演示 Macie 如何检测 Stripe 密钥。

创建示例数据步骤:打开 S3 控制台并 创建一个 S3 桶。在本地创建四个文件,将以下模拟敏感数据粘贴到这些文件中,然后上传到桶中。

file1stripe publishable key sklivecpegcLxKILlrXYNIuqYhGXoy

file2sklivecpegcLxKILlrXYNIuqYhGXoyskliveabcdcLxKILlrXYNIuqYhGXoyskliveefghcLxKILlrXYNIuqYhGXoystripe payment skliveijklcLxKILlrXYNIuqYhGXoy

file3sklivecpegcLxKILlrXYNIuqYhGXoystripe api key skliveabcdcLxKILlrXYNIuqYhGXoy

file4stripe secret key sklivecpegcLxKILlrXYNIuqYhGXoy

注意: 上述文件中的密钥为模拟数据,与实际的实时 Stripe 密钥无关。

创建包含 STRIPECREDENTIALS 托管数据标识符的 Macie 任务

使用 Macie,您可以扫描 S3 桶以查找敏感数据和安全风险。在此步骤中,您将运行一次 Macie 任务以扫描 S3 桶并查看结果。

创建包含 STRIPECREDENTIALS 的 Macie 任务步骤:打开 Amazon Macie 控制台,在左侧导航栏中选择 Jobs。在右上角,选择 Create job。

选择要让 Macie 扫描的桶或指定桶的条件,然后选择 Next。

查看 S3 桶的详细信息,例如估计成本,然后选择 Next。

在 Refine the scope 页面,选择 Onetime job,然后选择 Next。

注意:在您成功测试后,可以按照您的选择的频率安排任务扫描 S3 桶。

tk加速器安卓在 Managed data identifier options 中,选择 Custom,然后选择 Use specific managed data identifiers。在 Select managed data identifiers 中,搜索 STRIPECREDENTIALS,然后选择它。选择 Next。

输入任务名称和可选描述,然后选择 Next。

在 S3 存储桶中检测 Stripe 密钥与 Amazon Macie 安全博客查看任务详细信息,然后选择 Submit。Macie 将立即创建并启动该任务,任务将运行一次。当任务的 Status 显示为 Complete 时,选择该任务,然后从 Show results 下拉菜单中选择 Show findings。

现在可以查看 S3 桶中敏感数据的发现。如图所示,Macie 在四个文件中检测到了 Stripe 密钥,并将发现分类为 High 严重性。您可以在 Macie 控制台中查看和管理这些发现,使用 Macie API 进行进一步分析,或者将它们发送到 Amazon EventBridge 进行自动处理,或发布到 AWS Security Hub 以提供全面的安全状态视图。

响应意外泄露的 Stripe API 密钥

如果您在 S3 桶中发现 Stripe 实时模式密钥或其他敏感数据,可以通过 Stripe 仪表板 滚动您的 API 密钥 来撤销对受损密钥的访问并生成新密钥。这可以确保该密钥无法用于恶意的 API 请求。确保将替代密钥安装到需要它的生产服务中。从长远来看,您还可以采取措施了解密钥泄露的路径,以帮助避免再次出现此问题。

结论

在这篇文章中,您了解了在 AWS 上保护 Stripe API 密钥的重要性。通过使用 Amazon Macie 和托管数据标识符,定期审查并限制对 S3 桶的访问,培训开发人员遵循安全最佳实践,以及监控日志和代码库,您可以帮助减轻密钥暴露和潜在安全漏洞的风险。遵循这些做法,您可以为 AWS 上的敏感数据提供强大的安全态势。

如果您对这篇文章有反馈,请在下面的 Comments 部分提交评论。如果您对这篇文章有任何问题,请在 Amazon Macie rePost 上开始新线程。

文章作者

Koulick GhoshKoulick 是 AWS Security 的高级产品经理,常驻华盛顿州西雅图。他喜欢与客户交谈,探讨 AWS Security 服务如何帮助改善安全性。空闲时,他喜欢弹吉他、阅读以及探索太平洋西北地区。

Sagar GandhaSagar 是 AWS 经验丰富的高级技术客户经理,擅长协助大型客户提供企业支持。他提供有关最佳实践的专业指导,方便客户接触主题专家,并提供可操作的见解,以优化 AWS 支出、工作负载和事件。工作之外,Sagar 喜欢和孩子们共度时光。

Mohan MustiMohan 是 AWS 的高级技术客户经理,驻达拉斯。他帮助客户在 AWS 上架构和优化应用。在业余时间,他喜欢和家人共度时光和露营。

标签:Amazon Macie,Amazon S3,凭证,密钥,PCI,个人可识别信息,安全博客,敏感数据发现