PCI-DSS合规性

我们正在开发一个新的软件(实际上只是一个单一的PHP脚本),收集持卡人信息并将其存储在MySQL数据库中。 显然,我们正在采取一切安全措施(防火墙,防病毒,SELinux,限制性访问机器),但我们正试图了解在采取何种措施之前我们需要采取的措施。

由于客户是第四级商户(没有实际的交易,只是存储持卡人信息),我们需要出去找什么扫描?

很明显,我们需要扫描服务器/ IP,但是PHP脚本收集数据呢?

不幸的是,持卡人数据存储电子商务环境受到最严格的PCI-DSS要求(typesD)的限制。

注:人们会告诉你,一级商人受到比四级更严格的规则。 这是不正确的。 只有一级商人才需要进行审核,但是如果您是违反规定的四级人员,您将受到一些重大的处罚和法律责任。

您需要遵循的完整规则列表如下: https : //www.pcisecuritystandards.org/documents/pci_saq_d.pdf

在您的应用程序开发过程中,您需要特别注意要求1-4。

通常,我build议小商店尽可能外包持卡人的数据存储,甚至购物车的东西,以减less头痛和责任。 NetSuite,PayPal,Google Checkout等等都可以帮到你。

首先,确保你必须存储卡的详细信息。 如果有可能,你可以避免,那么我build议你尽一切努力这样做。 通常会有卡处理网关,允许您处理“重复交易”,从而为首次交易提供卡的详细信息,然后给予交易ID以便重复交易。

但是,如果你不能避免存储,那么你需要考虑以下几点

至于扫描,有许多在线PCI-DSS认可的扫描供应商。 这些可以在PCI-DSS网站上经过批准的扫描供应商页面上find。 我完全可以推荐Qualys 。 我们使用它们,它们非常易于使用,并协助您完成SAQ。

至于PHP脚本,关于如何开发代码的要求很less,因为开发人员必须采用最佳实践和各种安全代码开发标准。 对于testing和生产环境还有大量的要求。

处理卡数据的脚本的开发已经在“需求6:开发和维护安全系统和应用程序”

卡数据的存储由“要求3:保护存储卡数据”中的要求覆盖。 然而,这一节涵盖了所有forms的存储,如纸质收据或电子…

然而,实现卡数据的存储是相当棘手的,因为不仅卡数据必须被encryption,而且用于encryption数据的密钥必须被encryption,并且第二密钥只应由两个单独的负责人知道。 然而,由于PCI DSS的“精神”不仅确保绝对合规性,而且在不能保证合规性的领域,因此有足够的审计来追踪和归属数据访问。

在这方面的一些相关部分是卡数据存储的要求3.4,手动密钥pipe理和分离知识的3.6.6,但由于你的环境可能有其他几个其他的,所以我会留意你阅读和理解要求和testing程序。

不幸的是,我不能直接链接到PCI DSS标准的相关部分,因为它是PDF。

最后,不要忘记,PCI-DSS不是“尽力而为”的标准。 您必须遵守每项要求才能符合信用卡提供商的要求。 如果您不能满足要求或者不适用,您必须要有补偿控制措施,或者必须注明“不适用”的要求并解释原因。 PCI-DSS是“全部或全部”

不幸的是,PCI合规不存在真正的“一刀切”的答案,因此所需的步骤将因情况而异。 找出需要的最好方法是通过PCI DSS自我评估问卷 。

根据您的描述以及PCI DSS SAQ准则 (pdf)中的信息,听起来您需要通过SAQ D工作,但是您需要仔细检查其是否正确。 如果您在其中某个步骤中遇到任何具体问题,请随时更新您的问题,然后查看是否可以添加更多具体信息。

我全心全意推荐购买梭子鱼Web应用防火墙。 我不为他们工作,但它是一个伟大的产品(虽然有一个相当陡峭的学习曲线),并提供了“ 开箱即用 ”的PCI合规性。

我并不是说不进行常规的代码审计或修正错误,但是通过适当调整/configuration的Web应用程序防火墙,您可以减轻您甚至不知道存在的风险和漏洞。