您现在的位置是:人工智能 >>正文
软件开发中的密码与密钥管理
人工智能87817人已围观
简介让我们深入探讨 DevOps 和 DevSecOps 管道中密码密钥管理的各个方面。当今的数字业务有望以闪电般的速度创新、执行和发布产品。自动化工具的广泛采用,加上 DevOps 和DevSecOps ...
让我们深入探讨 DevOps 和 DevSecOps 管道中密码密钥管理的软件各个方面。
当今的密码密钥数字业务有望以闪电般的速度创新、执行和发布产品。管理自动化工具的软件广泛采用 ,加上 DevOps 和DevSecOps 工具,密码密钥有助于这些企业实现更高的管理开发速度和更快的反馈循环。这最终有助于缩短发布周期并以迭代方式提高产品质量 。软件
尽管向微服务和容器化应用程序的密码密钥转变以及开源的采用正在帮助开发人员更快地交付产品,但它们也带来了与合规性和安全性相关的高防服务器管理挑战。根据 1Password 的软件Hidden In Plain Sight 报告 ,企业中的密码密钥 DevOps 和 IT 团队不断面临由机密泄露 、机密共享不安全和手动机密管理等带来的管理挑战 。
管理大型项目的软件 API 密钥 、密码 、密码密钥加密密钥等机密信息非常复杂 。管理让我们在本文中深入探讨机密管理的各个方面。
什么是密码密钥管理?简而言之,密码是亿华云非人类特权凭证 ,为开发人员提供访问应用程序、容器等资源的权限 。类似于密码管理 ,秘密管理是一种将秘密(例如,访问令牌 、密码、API 密钥等)存储在具有更严格访问控制的安全环境中的做法。
随着应用程序的复杂性和规模随着时间的推移而增长 ,管理密码可能会变得混乱。源码下载此外 ,可能会出现跨技术堆栈的不同块共享秘密的情况。这可能会造成严重的安全威胁 ,因为它会为恶意行为者打开后门来访问您的应用程序 。
密码管理确保敏感信息永远不会被硬编码 ,并且只能以加密格式提供。与 RBAC(基于角色的访问控制)一起安全访问敏感数据是密码管理的秘诀。
密码密钥管理的挑战在许多情况下 ,云计算开发人员可能不小心在他们的代码或配置文件中使用了硬编码的纯文本格式凭证 。如果将包含机密的相应文件推送到 GitHub(或任何其他流行的代码托管平台)上指定的公共存储库 ,对业务的影响可能会很大 。
多云基础设施、容器化应用程序、IoT/IIoT、CI/CD 和类似进步所提供的好处可以通过同时关注秘密的有效管理来最大限度地利用 。对开发和 DevOps 团队进行应用程序安全教育是源码库在团队中建立安全第一文化的最重要步骤。
以下是 DevOps 和 DevSecOps 团队在管理机密时面临的主要挑战:
密码密钥蔓延这种情况通常发生在团队(和/或组织)的密码分布在整个组织中时。数字优先的组织越来越多地使用容器和基于云的工具来提高开发人员的速度、节省成本并加快发布速度。同样的原则也适用于基于物联网应用程序的开发和测试 。
根据应用程序的规模和复杂性,香港云服务器机密很可能分布在 :
基于容器化微服务的应用程序(例如,Kubernetes、OpenShift、Nomad)自动化 E2E 测试/跟踪平台(例如 ,Prometheus 、Graphite)内部开发的工具/流程应用服务器和数据库DevOps 工具链以上列表中的项目因应用程序的规模、大小和复杂性而异。提供 RBAC 、使用强旋转密码和避免密码共享是团队/组织内每个级别都必须遵循的一些简单实践。
云开发人员和测试工具的激增无论项目的大小和规模如何 ,开发团队都希望最大限度地利用 GCP(谷歌云平台) 、Microsoft Azure 、AWS(亚马逊网络服务) 、Kubernetes 等云开发工具 。
云工具肯定会加快与开发和测试相关的流程,但必须在使用它们的同时将安全实践放在首位 。用于访问相应云平台的密钥(例如 AWS 密钥)的任何泄露都可能导致经济损失。

在存储库中公开公开的 AWS 凭证
鉴于如此多的风险,DevOps 和开发团队必须确保任何类型的密钥在公共领域(例如 GitHub 存储库)中都不会以人类可读的格式提供。专注于社区主导增长 (CLG) 以宣传其产品或开发人员工具的组织需要确保其用户不会将任何密钥公开遗漏!如果密钥可公开访问 ,黑客可能出于恶意原因利用您的平台。
用于管理机密的手动流程、使用第三方资源(例如 API)时的数据安全以及安全镜头的端到端可见性是组织在机密管理方面面临的其他挑战 。
密码密钥管理最佳实践在安全管理机密方面没有一种放之四海而皆准的方法 ,因为这在很大程度上取决于基础设施 、产品要求和其他此类变化因素 。
撇开变量不谈 ,这里有一些关于高效和可扩展的秘密管理的最佳实践:
使用 RBAC(基于角色的访问控制)每个项目和组织都有敏感数据和资源 ,必须只能由受信任的用户和应用程序访问。系统中的任何新用户都必须分配默认权限(即最小访问控制)。提升的权限必须仅对项目或组织中的少数成员可用 。
管理员(或超级管理员)必须有权根据需要添加或撤销其他成员的权限 。权限升级也必须根据需要进行,并且只能在有限的时间内进行。在授予/撤销权限时必须添加适当的注释 ,以便所有相关的项目涉众都具有完整的可见性。
使用安全保险库简单来说,保险库是一种主要用于保护任何敏感信息(例如,密码、API 密钥、证书等)的工具。以人类可读的形式在本地存储机密信息是管理机密信息最糟糕的方法之一。
这就是安全保险库非常有用的地方 ,因为它们为任何秘密提供了统一的接口 ,并提供了详细的审计日志。通过指定访问权限(授权) ,安全保险库还可用于检测基于角色的访问控制 (RBAC)。Hashicorp Vault Helm chart和Vault for Docker是两个流行的保险库管理器,可用于运行保险库服务、访问和存储机密等 。
由于大多数应用程序都利用了云的潜力 ,因此在数据传输或静止时关注数据安全性非常重要。这就是 EaaS(加密即服务)可用于在静态存储数据之前将应用程序的加密需求卸载到保管库的地方。
定期轮换密钥几周或几个月后重置密钥是一种很好的安全做法。一种做法是手动重新生成密钥 ,因为使用这些秘密的应用程序可能会在日志文件或集中式日志记录系统中留下痕迹。攻击者可以获得对日志的后门访问并使用它来泄露秘密。
此外 ,同事可能会无意中向组织外部泄露机密 。为避免此类情况,建议在相应的机密管理工具中启用机密轮换。例如 ,AWS Secrets Manager 中的 Secrets Manager 轮换使用 AWS Lambda 函数来更新密钥和数据库 。
最重要的是,团队应该有适当的实践来检测对系统的未授权访问。这将有助于在对业务造成重大损害之前采取适当的措施 。
为什么要在 DevSecOps 管道中实施机密管理?只有在 CI/CD 管道中对代码进行自动化测试,才能实现加速发布周期和更快的开发人员反馈 。在 CI 管道中运行的测试可能需要访问关键的受保护资源,如数据库、HTTP 服务器等 。
甚至在 Docker 容器内运行单元测试也是一种常见做法 ,但开发人员和 QA 需要确保秘密不存储在 Dockerfile 中。秘密管理工具可以与流行的 CI/CD 工具(例如 Jenkins)结合使用,从而在集中位置管理密钥和其他秘密 。秘密也通过加密和令牌化存储 。
Tags:
转载:欢迎各位朋友分享到网络,但转载请说明文章出处“算法与编程”。http://www.bzli.cn/html/168e699825.html
相关文章
应用实时安全防护探索
人工智能随着数字化转型进程的不断加快,应用程序安全作为安全防护关键一环,日益成为企业安全运营关注的焦点,运营人员需要为应用程序提供最佳的安全保护。当前常用的安全防护措施被视为一种附加安全层,它通过增加防御机制 ...
【人工智能】
阅读更多电商平台使用的物流API的安全风险
人工智能电子商务平台的物流 API 如果出现安全漏洞,则消费者的个人信息会被大量暴露。物流 API 整合了企业和第三方供应商之间的数据和服务,以解决各种市场需求。如果 API 集成不当,可能会出现泄露个人身份 ...
【人工智能】
阅读更多苹果设备被曝“内核”漏洞,细节成迷
人工智能作者 | 云昭8月20日晚,“苹果曝出严重安全漏洞”登顶微博热搜榜第一。苹果披露了iPhone、iPad和Mac的严重安全漏洞,这些漏洞可能会让攻击者完全控制这些设备。“果粉”们不得不连夜更新系统。事 ...
【人工智能】
阅读更多