PCI DSS 要求 6.4.2 开发/测试环境之间的职责分离

信息安全 遵守 pci-dss
2021-08-24 19:59:12

6.4.2 分配到开发/测试环境的人员和分配到生产环境的人员之间是否存在职责分离?

这里的职责分离是什么意思?它是在http://www.sans.edu/research/security-laboratory/article/it-separation-duties的意义上还是别的什么意思?“测试和生产环境之间”的表述真的让我感到困惑,看起来他们的意思是应该有不同的系统管理员来进行测试和生产?还是他们只是意味着开发人员不应该访问生产环境?

3个回答

当然,在做出判断时接受您的 QSA 的判断总是最明智的,但是在您自己的内部合规工作期间,我建议您查看导航 PCI-DSS:了解需求的意图文档要求。

查看该文档的第 32 页,我们看到以下关于要求 6.4.2 的内容

减少有权访问生产环境和持卡人数据的人员数量可将风险降至最低,并有助于确保访问权限仅限于有业务需要了解的个人。

此要求的目的是确保开发/测试功能与生产功能分开。例如,开发人员可以使用具有提升权限的管理员级别帐户在开发环境中使用,并拥有一个单独的帐户,该帐户具有对生产环境的用户级别访问权限。

在一个人执行多个角色的环境中(例如应用程序开发和对生产系统实施更新),应分配职责,以便在没有独立检查点的情况下,任何人都无法对流程进行端到端控制。例如,将开发、授权和监控的责任分配给不同的个人。

所以,通过最严格的阅读,是的。开发人员可以访问开发系统,并且可能具有对生产环境的用户角色访问权限,但单独的个人将实际执行应用程序安装/管理和生产环境的系统管理。正如上一段所讨论的,所有这一切的真正目的是没有一个人可以对服务进行端到端的管理控制。他们想要的是对流程有可见性的多人,这样没有一个人可以在开发中做出改变并将它们毫无疑问地投入生产。

所以,只要有可能,官方建议最好用一张图片来概括。

segregation_of_roles

然而,在严肃的实践中,您需要弄清楚如何最好地管理审计和/或隔离,同时记录您的流程并最终让您的 QSA 正确处理它。

PCI-DSS 是一组非常广泛(和解释性)的规则 - 所以这个答案可能最好由 QSA 来回答(除了意见/异端之外的任何东西)。

然而,我们的解释是环境必须是独立的,但不一定在物理上独立的硬件上。使用 VPS/虚拟化是安全地划分物理服务器并仍然保持 PCI 合规性而不落入“每个角色一台机器”规则的好方法。

这是这个特定项目的问题。仅根据措辞进行评估时,似乎很清楚,不同的环境需要不同的人。然而,许多公司和 QSA 甚至认为这是一条单向之路。如果您可以访问开发并进行开发,那么您不应该访问生产。

这样做的问题是,有权访问生产的个人也不应该有权访问开发。通过访问开发环境,他们将能够对为保护环境中的数据而采取的任何安全措施进行逆向工程。所以看 Code 和 Data 的模型,你必须在各个层面上将两者分开。有权访问代码的人不应访问数据,而有权访问数据的人不应访问代码。开发环境需要与其他公司运营分开。生产 DBA 不应访问或控制开发 DB。