SAMMY works best on screens 1024px wide or larger.
6.1: All security policies and operational procedures that are identified in Requirement 6 are: (a) Documented, (b) Kept up to date, (c) In use, (d) Known to all affected parties.
  • Examine documentation and interview personnel to verify that security policies and operational procedures identified in Requirement 6 are managed in accordance with all elements specified in this requirement.
Description

Requirement 6.1.1

Purpose

Requirement 6.1.1 is about effectively managing and maintaining the various policies and procedures specified throughout Requirement 6. While it is important to define the specific policies or procedures called out in Requirement 6, it is equally important to ensure they are properly documented, maintained, and disseminated.

Good Practice

It is important to update policies and procedures as needed to address changes in processes, technologies, and business objectives. For these reasons, consider updating these documents as soon as possible after a change occurs and not only on a periodic cycle.

Definitions

Security policies define the entity's security objectives and principles. Operational procedures describe how to perform activities, and define the controls, methods, and processes that are followed to achieve the desired result in a consistent manner and in accordance with policy objectives.

Requirement 6.1.2

Purpose

If roles and responsibilities are not formally assigned, personnel may not be aware of their day-to-day responsibilities and critical activities may not occur.

Good Practice

Roles and responsibilities may be documented within policies and procedures or maintained within separate documents. As part of communicating roles and responsibilities, entities can consider having personnel acknowledge their acceptance and understanding of their assigned roles and responsibilities.

Examples

A method to document roles and responsibilities is a responsibility assignment matrix that includes who is responsible, accountable, consulted, and informed (also called a RACI matrix).

6.1: Roles and responsibilities for performing activities in Requirement 6 are documented, assigned, and understood.
  • Examine documentation to verify that descriptions of roles and responsibilities for performing activities in Requirement 6 are documented and assigned.
  • Interview personnel responsible for performing activities in Requirement 6 to verify that roles and responsibilities are assigned as documented and are understood.
Description

Requirement 6.1.1

Purpose

Requirement 6.1.1 is about effectively managing and maintaining the various policies and procedures specified throughout Requirement 6. While it is important to define the specific policies or procedures called out in Requirement 6, it is equally important to ensure they are properly documented, maintained, and disseminated.

Good Practice

It is important to update policies and procedures as needed to address changes in processes, technologies, and business objectives. For these reasons, consider updating these documents as soon as possible after a change occurs and not only on a periodic cycle.

Definitions

Security policies define the entity's security objectives and principles. Operational procedures describe how to perform activities, and define the controls, methods, and processes that are followed to achieve the desired result in a consistent manner and in accordance with policy objectives.

Requirement 6.1.2

Purpose

If roles and responsibilities are not formally assigned, personnel may not be aware of their day-to-day responsibilities and critical activities may not occur.

Good Practice

Roles and responsibilities may be documented within policies and procedures or maintained within separate documents. As part of communicating roles and responsibilities, entities can consider having personnel acknowledge their acceptance and understanding of their assigned roles and responsibilities.

Examples

A method to document roles and responsibilities is a responsibility assignment matrix that includes who is responsible, accountable, consulted, and informed (also called a RACI matrix).

6.2: Bespoke and custom software are developed securely, as follows: (a) Based on industry standards and/or best practices for secure development, (b) In accordance with PCI DSS (for example, secure authentication and logging), (c) Incorporating consideration of information security issues during each stage of the software development lifecycle.
  • Examine documented software development procedures to verify that processes are defined that include all elements specified in this requirement.
Description

Requirement 6.2.1

Purpose

Developing bespoke and custom software securely helps prevent the introduction of vulnerabilities during the development process. Using industry standards and best practices for secure development provides a foundation for building secure software.

Good Practice

Software development processes should incorporate security at every stage of the development lifecycle. Developers should be trained in secure coding practices and should have access to secure development resources and tools.

Requirement 6.2.2

Purpose

Software development personnel need to understand common software vulnerabilities and how to prevent them through secure coding practices. Without this knowledge, developers may inadvertently introduce vulnerabilities into the software.

Good Practice

Training should cover common vulnerabilities relevant to the programming languages and frameworks used, including those listed in industry resources such as the OWASP Top 10. Training should be provided at least annually and should be updated to reflect current threats.

Requirement 6.2.3

Purpose

Reviewing bespoke and custom software before release helps identify and correct security vulnerabilities before they can be exploited in production. Code reviews provide an opportunity to catch issues that automated tools may miss.

Good Practice

Code reviews should be performed by individuals other than the original developer. Both manual and automated review techniques should be used. Reviews should verify that code is developed according to secure coding guidelines and that common vulnerabilities have been addressed.

Requirement 6.2.3.1

Purpose

Manual code reviews complement automated tools by providing deeper analysis of business logic and complex security issues that automated tools may not detect. Having reviews performed by someone other than the original author provides an independent perspective.

Good Practice

Manual code reviews should focus on areas with the highest risk, including authentication, authorization, input validation, and data protection. Reviewers should have knowledge of secure coding practices and common vulnerabilities.

Requirement 6.2.4

Purpose

Understanding and addressing common software attack techniques helps developers build more resilient applications. By considering how attackers might exploit the software, developers can implement countermeasures during development rather than after deployment.

Good Practice

Development practices should address at minimum common vulnerabilities including injection attacks (SQL, LDAP, XPath, OS command), buffer overflows, insecure cryptographic storage, insecure communications, improper error handling, and cross-site scripting (XSS).

Examples

Common software attack techniques include injection attacks, buffer overflows, insecure cryptography, cross-site scripting, cross-site request forgery, and improper access controls.

6.2: Software development personnel working on bespoke and custom software are trained at least once every 12 months as follows: (a) On software security relevant to their job function and development languages, (b) Including secure software design and secure coding techniques, (c) Including, if security testing tools are used, how to use the tools for detecting vulnerabilities in software.
  • Examine software development procedures to verify that processes are defined for training of software development personnel developing bespoke and custom software that includes all elements specified in this requirement.
  • Examine training records and interview personnel to verify that software development personnel working on bespoke and custom software received software security training that is relevant to their job function and development languages in accordance with all elements specified in this requirement.
Description

Requirement 6.2.1

Purpose

Developing bespoke and custom software securely helps prevent the introduction of vulnerabilities during the development process. Using industry standards and best practices for secure development provides a foundation for building secure software.

Good Practice

Software development processes should incorporate security at every stage of the development lifecycle. Developers should be trained in secure coding practices and should have access to secure development resources and tools.

Requirement 6.2.2

Purpose

Software development personnel need to understand common software vulnerabilities and how to prevent them through secure coding practices. Without this knowledge, developers may inadvertently introduce vulnerabilities into the software.

Good Practice

Training should cover common vulnerabilities relevant to the programming languages and frameworks used, including those listed in industry resources such as the OWASP Top 10. Training should be provided at least annually and should be updated to reflect current threats.

Requirement 6.2.3

Purpose

Reviewing bespoke and custom software before release helps identify and correct security vulnerabilities before they can be exploited in production. Code reviews provide an opportunity to catch issues that automated tools may miss.

Good Practice

Code reviews should be performed by individuals other than the original developer. Both manual and automated review techniques should be used. Reviews should verify that code is developed according to secure coding guidelines and that common vulnerabilities have been addressed.

Requirement 6.2.3.1

Purpose

Manual code reviews complement automated tools by providing deeper analysis of business logic and complex security issues that automated tools may not detect. Having reviews performed by someone other than the original author provides an independent perspective.

Good Practice

Manual code reviews should focus on areas with the highest risk, including authentication, authorization, input validation, and data protection. Reviewers should have knowledge of secure coding practices and common vulnerabilities.

Requirement 6.2.4

Purpose

Understanding and addressing common software attack techniques helps developers build more resilient applications. By considering how attackers might exploit the software, developers can implement countermeasures during development rather than after deployment.

Good Practice

Development practices should address at minimum common vulnerabilities including injection attacks (SQL, LDAP, XPath, OS command), buffer overflows, insecure cryptographic storage, insecure communications, improper error handling, and cross-site scripting (XSS).

Examples

Common software attack techniques include injection attacks, buffer overflows, insecure cryptography, cross-site scripting, cross-site request forgery, and improper access controls.

6.2: Bespoke and custom software is reviewed prior to being released into production or to customers, to identify and correct potential coding vulnerabilities, as follows: (a) Code reviews ensure code is developed according to secure coding guidelines, (b) Code reviews look for both existing and emerging software vulnerabilities, (c) Appropriate corrections are implemented prior to release.
  • Examine documented software development procedures and interview responsible personnel to verify that processes are defined that require all bespoke and custom software to be reviewed in accordance with all elements specified in this requirement.
  • Examine evidence of changes to bespoke and custom software to verify that the code changes were reviewed in accordance with all elements specified in this requirement.
Description

Requirement 6.2.1

Purpose

Developing bespoke and custom software securely helps prevent the introduction of vulnerabilities during the development process. Using industry standards and best practices for secure development provides a foundation for building secure software.

Good Practice

Software development processes should incorporate security at every stage of the development lifecycle. Developers should be trained in secure coding practices and should have access to secure development resources and tools.

Requirement 6.2.2

Purpose

Software development personnel need to understand common software vulnerabilities and how to prevent them through secure coding practices. Without this knowledge, developers may inadvertently introduce vulnerabilities into the software.

Good Practice

Training should cover common vulnerabilities relevant to the programming languages and frameworks used, including those listed in industry resources such as the OWASP Top 10. Training should be provided at least annually and should be updated to reflect current threats.

Requirement 6.2.3

Purpose

Reviewing bespoke and custom software before release helps identify and correct security vulnerabilities before they can be exploited in production. Code reviews provide an opportunity to catch issues that automated tools may miss.

Good Practice

Code reviews should be performed by individuals other than the original developer. Both manual and automated review techniques should be used. Reviews should verify that code is developed according to secure coding guidelines and that common vulnerabilities have been addressed.

Requirement 6.2.3.1

Purpose

Manual code reviews complement automated tools by providing deeper analysis of business logic and complex security issues that automated tools may not detect. Having reviews performed by someone other than the original author provides an independent perspective.

Good Practice

Manual code reviews should focus on areas with the highest risk, including authentication, authorization, input validation, and data protection. Reviewers should have knowledge of secure coding practices and common vulnerabilities.

Requirement 6.2.4

Purpose

Understanding and addressing common software attack techniques helps developers build more resilient applications. By considering how attackers might exploit the software, developers can implement countermeasures during development rather than after deployment.

Good Practice

Development practices should address at minimum common vulnerabilities including injection attacks (SQL, LDAP, XPath, OS command), buffer overflows, insecure cryptographic storage, insecure communications, improper error handling, and cross-site scripting (XSS).

Examples

Common software attack techniques include injection attacks, buffer overflows, insecure cryptography, cross-site scripting, cross-site request forgery, and improper access controls.

6.2: If manual code reviews are performed for bespoke and custom software prior to release to production, code changes are: (a) Reviewed by individuals other than the originating code author, and who are knowledgeable about code-review techniques and secure coding practices, (b) Reviewed and approved by management prior to release.
  • If manual code reviews are performed for bespoke and custom software prior to release to production, examine documented software development procedures and interview responsible personnel to verify that processes are defined for manual code reviews to be conducted in accordance with all elements specified in this requirement.
  • Examine evidence of changes to bespoke and custom software and interview personnel to verify that manual code reviews were conducted in accordance with all elements specified in this requirement.
Description

Requirement 6.2.1

Purpose

Developing bespoke and custom software securely helps prevent the introduction of vulnerabilities during the development process. Using industry standards and best practices for secure development provides a foundation for building secure software.

Good Practice

Software development processes should incorporate security at every stage of the development lifecycle. Developers should be trained in secure coding practices and should have access to secure development resources and tools.

Requirement 6.2.2

Purpose

Software development personnel need to understand common software vulnerabilities and how to prevent them through secure coding practices. Without this knowledge, developers may inadvertently introduce vulnerabilities into the software.

Good Practice

Training should cover common vulnerabilities relevant to the programming languages and frameworks used, including those listed in industry resources such as the OWASP Top 10. Training should be provided at least annually and should be updated to reflect current threats.

Requirement 6.2.3

Purpose

Reviewing bespoke and custom software before release helps identify and correct security vulnerabilities before they can be exploited in production. Code reviews provide an opportunity to catch issues that automated tools may miss.

Good Practice

Code reviews should be performed by individuals other than the original developer. Both manual and automated review techniques should be used. Reviews should verify that code is developed according to secure coding guidelines and that common vulnerabilities have been addressed.

Requirement 6.2.3.1

Purpose

Manual code reviews complement automated tools by providing deeper analysis of business logic and complex security issues that automated tools may not detect. Having reviews performed by someone other than the original author provides an independent perspective.

Good Practice

Manual code reviews should focus on areas with the highest risk, including authentication, authorization, input validation, and data protection. Reviewers should have knowledge of secure coding practices and common vulnerabilities.

Requirement 6.2.4

Purpose

Understanding and addressing common software attack techniques helps developers build more resilient applications. By considering how attackers might exploit the software, developers can implement countermeasures during development rather than after deployment.

Good Practice

Development practices should address at minimum common vulnerabilities including injection attacks (SQL, LDAP, XPath, OS command), buffer overflows, insecure cryptographic storage, insecure communications, improper error handling, and cross-site scripting (XSS).

Examples

Common software attack techniques include injection attacks, buffer overflows, insecure cryptography, cross-site scripting, cross-site request forgery, and improper access controls.

6.2: Software engineering techniques or other methods are defined and in use by software development personnel to prevent or mitigate common software attacks and related vulnerabilities in bespoke and custom software, including but not limited to the following: (a) Injection attacks, including SQL, LDAP, XPath, or other command, parameter, object, fault, or injection-type flaws, (b) Attacks on data and data structures, including attempts to manipulate buffers, pointers, input data, or shared data, (c) Attacks on cryptography usage, including attempts to exploit weak, insecure, or inappropriate cryptographic implementations, algorithms, cipher suites, or modes of operation, (d) Attacks on business logic, including attempts to abuse or bypass application features and functionalities through the manipulation of APIs, communication protocols and channels, client- side functionality, or other system/application functions and resources. This includes cross-site scripting (XSS) and cross-site request forgery (CSRF), (e) Attacks on access control mechanisms, including attempts to bypass or abuse identification, authentication, or authorization mechanisms, or attempts to exploit weaknesses in the implementation of such mechanisms, (f) Attacks via any “high-risk” vulnerabilities identified in the vulnerability identification process, as defined in Requirement 6.3.1.
  • Examine documented procedures and interview responsible software development personnel to verify that software engineering techniques or other methods are defined and in use by developers of bespoke and custom software to prevent or mitigate all common software attacks as specified in this requirement.
Description

Requirement 6.2.1

Purpose

Developing bespoke and custom software securely helps prevent the introduction of vulnerabilities during the development process. Using industry standards and best practices for secure development provides a foundation for building secure software.

Good Practice

Software development processes should incorporate security at every stage of the development lifecycle. Developers should be trained in secure coding practices and should have access to secure development resources and tools.

Requirement 6.2.2

Purpose

Software development personnel need to understand common software vulnerabilities and how to prevent them through secure coding practices. Without this knowledge, developers may inadvertently introduce vulnerabilities into the software.

Good Practice

Training should cover common vulnerabilities relevant to the programming languages and frameworks used, including those listed in industry resources such as the OWASP Top 10. Training should be provided at least annually and should be updated to reflect current threats.

Requirement 6.2.3

Purpose

Reviewing bespoke and custom software before release helps identify and correct security vulnerabilities before they can be exploited in production. Code reviews provide an opportunity to catch issues that automated tools may miss.

Good Practice

Code reviews should be performed by individuals other than the original developer. Both manual and automated review techniques should be used. Reviews should verify that code is developed according to secure coding guidelines and that common vulnerabilities have been addressed.

Requirement 6.2.3.1

Purpose

Manual code reviews complement automated tools by providing deeper analysis of business logic and complex security issues that automated tools may not detect. Having reviews performed by someone other than the original author provides an independent perspective.

Good Practice

Manual code reviews should focus on areas with the highest risk, including authentication, authorization, input validation, and data protection. Reviewers should have knowledge of secure coding practices and common vulnerabilities.

Requirement 6.2.4

Purpose

Understanding and addressing common software attack techniques helps developers build more resilient applications. By considering how attackers might exploit the software, developers can implement countermeasures during development rather than after deployment.

Good Practice

Development practices should address at minimum common vulnerabilities including injection attacks (SQL, LDAP, XPath, OS command), buffer overflows, insecure cryptographic storage, insecure communications, improper error handling, and cross-site scripting (XSS).

Examples

Common software attack techniques include injection attacks, buffer overflows, insecure cryptography, cross-site scripting, cross-site request forgery, and improper access controls.

6.3: Security vulnerabilities are identified and managed as follows: (a) New security vulnerabilities are identified using industry-recognized sources for security vulnerability information, including alerts from international and national computer emergency response teams (CERTs), (b) Vulnerabilities are assigned a risk ranking based on industry best practices and consideration of potential impact, (c) Risk rankings identify, at a minimum, all vulnerabilities considered to be a high-risk or critical to the environment, (d) Vulnerabilities for bespoke and custom, and third-party software (for example operating systems and databases) are covered.
  • Examine policies and procedures for identifying and managing security vulnerabilities to verify that processes are defined in accordance with all elements specified in this requirement.
  • Interview responsible personnel, examine documentation, and observe processes to verify that security vulnerabilities are identified and managed in accordance with all elements specified in this requirement.
  • For example, a vulnerability initially identified as low risk could become a higher risk later. Additionally, vulnerabilities individually considered to be low or medium risk could collectively pose a high or critical risk if present on the same system, or if exploited on a low-risk system that could result in access to the CDE.
Description

Requirement 6.3.1

Purpose

New security vulnerabilities are constantly being discovered. Without a process to identify and manage these vulnerabilities, organizations may remain exposed to known security flaws that could be exploited.

Good Practice

Organizations should subscribe to vulnerability notification services, review vulnerability databases regularly, and have a process for assessing the risk of newly identified vulnerabilities to their environment. Critical and high vulnerabilities should be prioritized for remediation.

Examples

Sources for security vulnerability information include vendor security bulletins, the National Vulnerability Database (NVD), CVE databases, and industry-specific vulnerability tracking services.

Requirement 6.3.2

Purpose

Maintaining an inventory of bespoke and custom software helps organizations track what software they have developed and ensure it is all covered by the vulnerability management process. Without an inventory, some software components may be overlooked.

Good Practice

The software inventory should include all bespoke and custom software, as well as third-party software components and libraries incorporated into the software. The inventory should be kept up to date as software is added, modified, or removed.

Requirement 6.3.3

Purpose

Known security vulnerabilities in software are frequently exploited by attackers. Installing security patches promptly reduces the window of opportunity for exploitation and helps maintain the security of system components.

Good Practice

Critical security patches should be installed within one month of release. A process should be in place to evaluate, test, and deploy patches in a timely manner. If a patch cannot be applied immediately, compensating controls should be implemented to mitigate the risk.

6.3: An inventory of bespoke and custom software, and third-party software components incorporated into bespoke and custom software is maintained to facilitate vulnerability and patch management.
  • Examine documentation and interview personnel to verify that an inventory of bespoke and custom software and third-party software components incorporated into bespoke and custom software is maintained, and that the inventory is used to identify and address vulnerabilities.
  • Examine software documentation, including for bespoke and custom software that integrates third-party software components, and compare it to the inventory to verify that the inventory includes the bespoke and custom software and third-party software components.
Description

Requirement 6.3.1

Purpose

New security vulnerabilities are constantly being discovered. Without a process to identify and manage these vulnerabilities, organizations may remain exposed to known security flaws that could be exploited.

Good Practice

Organizations should subscribe to vulnerability notification services, review vulnerability databases regularly, and have a process for assessing the risk of newly identified vulnerabilities to their environment. Critical and high vulnerabilities should be prioritized for remediation.

Examples

Sources for security vulnerability information include vendor security bulletins, the National Vulnerability Database (NVD), CVE databases, and industry-specific vulnerability tracking services.

Requirement 6.3.2

Purpose

Maintaining an inventory of bespoke and custom software helps organizations track what software they have developed and ensure it is all covered by the vulnerability management process. Without an inventory, some software components may be overlooked.

Good Practice

The software inventory should include all bespoke and custom software, as well as third-party software components and libraries incorporated into the software. The inventory should be kept up to date as software is added, modified, or removed.

Requirement 6.3.3

Purpose

Known security vulnerabilities in software are frequently exploited by attackers. Installing security patches promptly reduces the window of opportunity for exploitation and helps maintain the security of system components.

Good Practice

Critical security patches should be installed within one month of release. A process should be in place to evaluate, test, and deploy patches in a timely manner. If a patch cannot be applied immediately, compensating controls should be implemented to mitigate the risk.

6.3: All system components are protected from known vulnerabilities by installing applicable security patches/updates as follows: (a) Patches/updates for critical vulnerabilities (identified according to the risk ranking process at Requirement 6.3.1) are installed within one month of release, (b) All other applicable security patches/updates are installed within an appropriate time frame as determined by the entity’s assessment of the criticality of the risk to the environment as identified according to the risk ranking process at Requirement 6.3.1.
  • Examine policies and procedures to verify processes are defined for addressing vulnerabilities by installing applicable security patches/updates in accordance with all elements specified in this requirement.
  • Examine system components and related software and compare the list of installed security patches/updates to the most recent security patch/update information to verify vulnerabilities are addressed in accordance with all elements specified in this requirement.
Description

Requirement 6.3.1

Purpose

New security vulnerabilities are constantly being discovered. Without a process to identify and manage these vulnerabilities, organizations may remain exposed to known security flaws that could be exploited.

Good Practice

Organizations should subscribe to vulnerability notification services, review vulnerability databases regularly, and have a process for assessing the risk of newly identified vulnerabilities to their environment. Critical and high vulnerabilities should be prioritized for remediation.

Examples

Sources for security vulnerability information include vendor security bulletins, the National Vulnerability Database (NVD), CVE databases, and industry-specific vulnerability tracking services.

Requirement 6.3.2

Purpose

Maintaining an inventory of bespoke and custom software helps organizations track what software they have developed and ensure it is all covered by the vulnerability management process. Without an inventory, some software components may be overlooked.

Good Practice

The software inventory should include all bespoke and custom software, as well as third-party software components and libraries incorporated into the software. The inventory should be kept up to date as software is added, modified, or removed.

Requirement 6.3.3

Purpose

Known security vulnerabilities in software are frequently exploited by attackers. Installing security patches promptly reduces the window of opportunity for exploitation and helps maintain the security of system components.

Good Practice

Critical security patches should be installed within one month of release. A process should be in place to evaluate, test, and deploy patches in a timely manner. If a patch cannot be applied immediately, compensating controls should be implemented to mitigate the risk.

6.4: For public-facing web applications, new threats and vulnerabilities are addressed on an ongoing basis and these applications are protected against known attacks as follows: (a) Reviewing public-facing web applications via manual or automated application vulnerability security assessment tools or methods as follows: – At least once every 12 months and after significant changes. – By an entity that specializes in application security. – Including, at a minimum, all common software attacks in Requirement 6.2.4. – All vulnerabilities are ranked in accordance with requirement 6.3.1. – All vulnerabilities are corrected. – The application is re-evaluated after the corrections. OR, (b) Installing an automated technical solution(s) that continually detects and prevents web-based attacks as follows: – Installed in front of public-facing web applications to detect and prevent web- based attacks. – Actively running and up to date as applicable. – Generating audit logs. – Configured to either block web-based attacks or generate an alert that is immediately investigated.
  • For public-facing web applications, ensure that either one of the required methods is in place as follows: • If manual or automated vulnerability security assessment tools or methods are in use, examine documented processes, interview personnel, and examine records of application security assessments to verify that public- facing web applications are reviewed in accordance with all elements of this requirement specific to the tool/method. OR • If an automated technical solution(s) is installed that continually detects and prevents web- based attacks, examine the system configuration settings and audit logs, and interview responsible personnel to verify that the automated technical solution(s) is installed in accordance with all elements of this requirement specific to the solution(s).
Description

Requirement 6.4.1

Purpose

Public-facing web applications are continuously targeted by new attack techniques and vulnerabilities. Addressing new threats on an ongoing basis helps ensure that these applications remain protected against known attacks.

Good Practice

Organizations should monitor for new threats and vulnerabilities affecting their web applications and implement protections promptly. This may include deploying web application firewalls, applying patches, or updating application code to address new vulnerabilities.

Requirement 6.4.2

Purpose

Automated technical solutions such as web application firewalls (WAFs) can detect and prevent web-based attacks in real time. WAFs provide an additional layer of protection for public-facing web applications beyond secure coding practices.

Good Practice

WAFs should be configured to detect and block common web attacks such as SQL injection, cross-site scripting, and other OWASP Top 10 vulnerabilities. WAF rules should be updated regularly to address new threats. The WAF should be placed in front of public-facing web applications to inspect all traffic.

Requirement 6.4.3

Purpose

Payment page scripts can be modified by attackers to capture cardholder data as it is entered by the cardholder. Managing and monitoring scripts on payment pages helps prevent unauthorized modifications and protects cardholder data during entry.

Good Practice

All scripts loaded and executed on payment pages should be authorized, have their integrity verified, and be inventoried. A mechanism should be in place to detect unauthorized modifications to scripts. Content Security Policy (CSP) headers and Subresource Integrity (SRI) can help manage and verify payment page scripts.

6.4: For public-facing web applications, an automated technical solution is deployed that continually detects and prevents web-based attacks, with at least the following: (a) Is installed in front of public-facing web applications and is configured to detect and prevent web-based attacks, (b) Actively running and up to date as applicable, (c) Generating audit logs, (d) Configured to either block web-based attacks or generate an alert that is immediately investigated.
  • For public-facing web applications, examine the system configuration settings and audit logs, and interview responsible personnel to verify that an automated technical solution that detects and prevents web-based attacks is in place in accordance with all elements specified in this requirement.
Description

Requirement 6.4.1

Purpose

Public-facing web applications are continuously targeted by new attack techniques and vulnerabilities. Addressing new threats on an ongoing basis helps ensure that these applications remain protected against known attacks.

Good Practice

Organizations should monitor for new threats and vulnerabilities affecting their web applications and implement protections promptly. This may include deploying web application firewalls, applying patches, or updating application code to address new vulnerabilities.

Requirement 6.4.2

Purpose

Automated technical solutions such as web application firewalls (WAFs) can detect and prevent web-based attacks in real time. WAFs provide an additional layer of protection for public-facing web applications beyond secure coding practices.

Good Practice

WAFs should be configured to detect and block common web attacks such as SQL injection, cross-site scripting, and other OWASP Top 10 vulnerabilities. WAF rules should be updated regularly to address new threats. The WAF should be placed in front of public-facing web applications to inspect all traffic.

Requirement 6.4.3

Purpose

Payment page scripts can be modified by attackers to capture cardholder data as it is entered by the cardholder. Managing and monitoring scripts on payment pages helps prevent unauthorized modifications and protects cardholder data during entry.

Good Practice

All scripts loaded and executed on payment pages should be authorized, have their integrity verified, and be inventoried. A mechanism should be in place to detect unauthorized modifications to scripts. Content Security Policy (CSP) headers and Subresource Integrity (SRI) can help manage and verify payment page scripts.

6.4: All payment page scripts that are loaded and executed in the consumer’s browser are managed as follows: (a) A method is implemented to confirm that each script is authorized, (b) A method is implemented to assure the integrity of each script, (c) An inventory of all scripts is maintained with written business or technical justification as to why each is necessary.
  • Examine policies and procedures to verify that processes are defined for managing all payment page scripts that are loaded and executed in the consumer’s browser, in accordance with all elements specified in this requirement.
  • Interview responsible personnel and examine inventory records and system configurations to verify that all payment page scripts that are loaded and executed in the consumer’s browser are managed in accordance with all elements specified in this requirement.
Description

Requirement 6.4.1

Purpose

Public-facing web applications are continuously targeted by new attack techniques and vulnerabilities. Addressing new threats on an ongoing basis helps ensure that these applications remain protected against known attacks.

Good Practice

Organizations should monitor for new threats and vulnerabilities affecting their web applications and implement protections promptly. This may include deploying web application firewalls, applying patches, or updating application code to address new vulnerabilities.

Requirement 6.4.2

Purpose

Automated technical solutions such as web application firewalls (WAFs) can detect and prevent web-based attacks in real time. WAFs provide an additional layer of protection for public-facing web applications beyond secure coding practices.

Good Practice

WAFs should be configured to detect and block common web attacks such as SQL injection, cross-site scripting, and other OWASP Top 10 vulnerabilities. WAF rules should be updated regularly to address new threats. The WAF should be placed in front of public-facing web applications to inspect all traffic.

Requirement 6.4.3

Purpose

Payment page scripts can be modified by attackers to capture cardholder data as it is entered by the cardholder. Managing and monitoring scripts on payment pages helps prevent unauthorized modifications and protects cardholder data during entry.

Good Practice

All scripts loaded and executed on payment pages should be authorized, have their integrity verified, and be inventoried. A mechanism should be in place to detect unauthorized modifications to scripts. Content Security Policy (CSP) headers and Subresource Integrity (SRI) can help manage and verify payment page scripts.

6.5: Changes to all system components in the production environment are made according to established procedures that include: (a) Reason for, and description of, the change, (b) Documentation of security impact, (c) Documented change approval by authorized parties, (d) Testing to verify that the change does not adversely impact system security, (e) For bespoke and custom software changes, all updates are tested for compliance with Requirement 6.2.4 before being deployed into production, (f) Procedures to address failures and return to a secure state.
  • Examine documented change control procedures to verify procedures are defined for changes to all system components in the production environment to include all elements specified in this requirement.
  • Examine recent changes to system components and trace those changes back to related change control documentation. For each change examined, verify the change is implemented in accordance with all elements specified in this requirement.
Description

Requirement 6.5.1

Purpose

Without a formal change control process, changes to system components may introduce vulnerabilities or disrupt critical business processes. Change control processes help ensure that all changes are properly planned, tested, approved, and documented.

Good Practice

The change control process should include documentation of the change, impact analysis, approval by authorized personnel, testing in a non-production environment, and back-out procedures. Changes should be tested for security impact before deployment.

Requirement 6.5.2

Purpose

Using production data in development and test environments can expose sensitive data to personnel who do not need access to it. Separating development/test environments from production helps protect production data and systems.

Good Practice

Development and test environments should be separate from production environments. Production data, especially PANs, should not be used in development or test environments. If production data must be used, it should be sanitized or masked before use.

Requirement 6.5.3

Purpose

Using production data for testing can expose sensitive account data to unauthorized individuals. Pre-production environments typically have weaker security controls than production environments, increasing the risk of exposure.

Good Practice

Test data and accounts should be removed before production systems become active. If production data must be used for testing, it should be sanitized by masking, truncating, or randomizing sensitive data elements before use.

Requirement 6.5.4

Purpose

Reviewing custom code before deployment to production helps identify and correct security vulnerabilities before they can be exploited. This is especially important for changes to bespoke and custom software.

Good Practice

Code reviews should cover all custom code changes before deployment to production. Reviews should verify that code is developed in accordance with secure coding guidelines and that common vulnerabilities have been addressed.

Requirement 6.5.5

Purpose

Development and pre-production environments may have different configurations and security settings than production. Understanding these differences helps ensure that security controls are not inadvertently weakened when changes are promoted to production.

Good Practice

Development environments should mirror production security configurations as closely as possible. Known differences should be documented and considered during the change management process.

Requirement 6.5.6

Purpose

Test data and accounts that remain in production systems can be exploited by attackers. Removing test data and accounts before systems go live helps prevent unauthorized access and reduces the attack surface.

Good Practice

A process should be in place to verify that all test data, test accounts, and custom application accounts used during development are removed or disabled before the system is deployed to production.

6.5: Upon completion of a significant change, all applicable PCI DSS requirements are confirmed to be in place on all new or changed systems and networks, and documentation is updated as applicable.
  • Examine documentation for significant changes, interview personnel, and observe the affected systems/networks to verify that the entity confirmed applicable PCI DSS requirements were in place on all new or changed systems and networks and that documentation was updated as applicable.
Description

Requirement 6.5.1

Purpose

Without a formal change control process, changes to system components may introduce vulnerabilities or disrupt critical business processes. Change control processes help ensure that all changes are properly planned, tested, approved, and documented.

Good Practice

The change control process should include documentation of the change, impact analysis, approval by authorized personnel, testing in a non-production environment, and back-out procedures. Changes should be tested for security impact before deployment.

Requirement 6.5.2

Purpose

Using production data in development and test environments can expose sensitive data to personnel who do not need access to it. Separating development/test environments from production helps protect production data and systems.

Good Practice

Development and test environments should be separate from production environments. Production data, especially PANs, should not be used in development or test environments. If production data must be used, it should be sanitized or masked before use.

Requirement 6.5.3

Purpose

Using production data for testing can expose sensitive account data to unauthorized individuals. Pre-production environments typically have weaker security controls than production environments, increasing the risk of exposure.

Good Practice

Test data and accounts should be removed before production systems become active. If production data must be used for testing, it should be sanitized by masking, truncating, or randomizing sensitive data elements before use.

Requirement 6.5.4

Purpose

Reviewing custom code before deployment to production helps identify and correct security vulnerabilities before they can be exploited. This is especially important for changes to bespoke and custom software.

Good Practice

Code reviews should cover all custom code changes before deployment to production. Reviews should verify that code is developed in accordance with secure coding guidelines and that common vulnerabilities have been addressed.

Requirement 6.5.5

Purpose

Development and pre-production environments may have different configurations and security settings than production. Understanding these differences helps ensure that security controls are not inadvertently weakened when changes are promoted to production.

Good Practice

Development environments should mirror production security configurations as closely as possible. Known differences should be documented and considered during the change management process.

Requirement 6.5.6

Purpose

Test data and accounts that remain in production systems can be exploited by attackers. Removing test data and accounts before systems go live helps prevent unauthorized access and reduces the attack surface.

Good Practice

A process should be in place to verify that all test data, test accounts, and custom application accounts used during development are removed or disabled before the system is deployed to production.

6.5: Pre-production environments are separated from production environments and the separation is enforced with access controls.
  • Examine policies and procedures to verify that processes are defined for separating the pre- production environment from the production environment via access controls that enforce the separation.
  • Examine network documentation and configurations of network security controls to verify that the pre-production environment is separate from the production environment(s).
  • Examine access control settings to verify that access controls are in place to enforce separation between the pre-production and production environment(s).
Description

Requirement 6.5.1

Purpose

Without a formal change control process, changes to system components may introduce vulnerabilities or disrupt critical business processes. Change control processes help ensure that all changes are properly planned, tested, approved, and documented.

Good Practice

The change control process should include documentation of the change, impact analysis, approval by authorized personnel, testing in a non-production environment, and back-out procedures. Changes should be tested for security impact before deployment.

Requirement 6.5.2

Purpose

Using production data in development and test environments can expose sensitive data to personnel who do not need access to it. Separating development/test environments from production helps protect production data and systems.

Good Practice

Development and test environments should be separate from production environments. Production data, especially PANs, should not be used in development or test environments. If production data must be used, it should be sanitized or masked before use.

Requirement 6.5.3

Purpose

Using production data for testing can expose sensitive account data to unauthorized individuals. Pre-production environments typically have weaker security controls than production environments, increasing the risk of exposure.

Good Practice

Test data and accounts should be removed before production systems become active. If production data must be used for testing, it should be sanitized by masking, truncating, or randomizing sensitive data elements before use.

Requirement 6.5.4

Purpose

Reviewing custom code before deployment to production helps identify and correct security vulnerabilities before they can be exploited. This is especially important for changes to bespoke and custom software.

Good Practice

Code reviews should cover all custom code changes before deployment to production. Reviews should verify that code is developed in accordance with secure coding guidelines and that common vulnerabilities have been addressed.

Requirement 6.5.5

Purpose

Development and pre-production environments may have different configurations and security settings than production. Understanding these differences helps ensure that security controls are not inadvertently weakened when changes are promoted to production.

Good Practice

Development environments should mirror production security configurations as closely as possible. Known differences should be documented and considered during the change management process.

Requirement 6.5.6

Purpose

Test data and accounts that remain in production systems can be exploited by attackers. Removing test data and accounts before systems go live helps prevent unauthorized access and reduces the attack surface.

Good Practice

A process should be in place to verify that all test data, test accounts, and custom application accounts used during development are removed or disabled before the system is deployed to production.

6.5: Roles and functions are separated between production and pre-production environments to provide accountability such that only reviewed and approved changes are deployed.
  • Examine policies and procedures to verify that processes are defined for separating roles and functions to provide accountability such that only reviewed and approved changes are deployed.
  • Observe processes and interview personnel to verify implemented controls separate roles and functions and provide accountability such that only reviewed and approved changes are deployed.
Description

Requirement 6.5.1

Purpose

Without a formal change control process, changes to system components may introduce vulnerabilities or disrupt critical business processes. Change control processes help ensure that all changes are properly planned, tested, approved, and documented.

Good Practice

The change control process should include documentation of the change, impact analysis, approval by authorized personnel, testing in a non-production environment, and back-out procedures. Changes should be tested for security impact before deployment.

Requirement 6.5.2

Purpose

Using production data in development and test environments can expose sensitive data to personnel who do not need access to it. Separating development/test environments from production helps protect production data and systems.

Good Practice

Development and test environments should be separate from production environments. Production data, especially PANs, should not be used in development or test environments. If production data must be used, it should be sanitized or masked before use.

Requirement 6.5.3

Purpose

Using production data for testing can expose sensitive account data to unauthorized individuals. Pre-production environments typically have weaker security controls than production environments, increasing the risk of exposure.

Good Practice

Test data and accounts should be removed before production systems become active. If production data must be used for testing, it should be sanitized by masking, truncating, or randomizing sensitive data elements before use.

Requirement 6.5.4

Purpose

Reviewing custom code before deployment to production helps identify and correct security vulnerabilities before they can be exploited. This is especially important for changes to bespoke and custom software.

Good Practice

Code reviews should cover all custom code changes before deployment to production. Reviews should verify that code is developed in accordance with secure coding guidelines and that common vulnerabilities have been addressed.

Requirement 6.5.5

Purpose

Development and pre-production environments may have different configurations and security settings than production. Understanding these differences helps ensure that security controls are not inadvertently weakened when changes are promoted to production.

Good Practice

Development environments should mirror production security configurations as closely as possible. Known differences should be documented and considered during the change management process.

Requirement 6.5.6

Purpose

Test data and accounts that remain in production systems can be exploited by attackers. Removing test data and accounts before systems go live helps prevent unauthorized access and reduces the attack surface.

Good Practice

A process should be in place to verify that all test data, test accounts, and custom application accounts used during development are removed or disabled before the system is deployed to production.

6.5: Live PANs are not used in pre-production environments, except where those environments are included in the CDE and protected in accordance with all applicable PCI DSS requirements.
  • Examine policies and procedures to verify that processes are defined for not using live PANs in pre-production environments, except where those environments are in a CDE and protected in accordance with all applicable PCI DSS requirements.
  • Observe testing processes and interview personnel to verify procedures are in place to ensure live PANs are not used in pre-production environments, except where those environments are in a CDE and protected in accordance with all applicable PCI DSS requirements.
  • Examine pre-production test data to verify live PANs are not used in pre-production environments, except where those environments are in a CDE and protected in accordance with all applicable PCI DSS requirements.
Description

Requirement 6.5.1

Purpose

Without a formal change control process, changes to system components may introduce vulnerabilities or disrupt critical business processes. Change control processes help ensure that all changes are properly planned, tested, approved, and documented.

Good Practice

The change control process should include documentation of the change, impact analysis, approval by authorized personnel, testing in a non-production environment, and back-out procedures. Changes should be tested for security impact before deployment.

Requirement 6.5.2

Purpose

Using production data in development and test environments can expose sensitive data to personnel who do not need access to it. Separating development/test environments from production helps protect production data and systems.

Good Practice

Development and test environments should be separate from production environments. Production data, especially PANs, should not be used in development or test environments. If production data must be used, it should be sanitized or masked before use.

Requirement 6.5.3

Purpose

Using production data for testing can expose sensitive account data to unauthorized individuals. Pre-production environments typically have weaker security controls than production environments, increasing the risk of exposure.

Good Practice

Test data and accounts should be removed before production systems become active. If production data must be used for testing, it should be sanitized by masking, truncating, or randomizing sensitive data elements before use.

Requirement 6.5.4

Purpose

Reviewing custom code before deployment to production helps identify and correct security vulnerabilities before they can be exploited. This is especially important for changes to bespoke and custom software.

Good Practice

Code reviews should cover all custom code changes before deployment to production. Reviews should verify that code is developed in accordance with secure coding guidelines and that common vulnerabilities have been addressed.

Requirement 6.5.5

Purpose

Development and pre-production environments may have different configurations and security settings than production. Understanding these differences helps ensure that security controls are not inadvertently weakened when changes are promoted to production.

Good Practice

Development environments should mirror production security configurations as closely as possible. Known differences should be documented and considered during the change management process.

Requirement 6.5.6

Purpose

Test data and accounts that remain in production systems can be exploited by attackers. Removing test data and accounts before systems go live helps prevent unauthorized access and reduces the attack surface.

Good Practice

A process should be in place to verify that all test data, test accounts, and custom application accounts used during development are removed or disabled before the system is deployed to production.

6.5: Test data and test accounts are removed from system components before the system goes into production.
  • Examine policies and procedures to verify that processes are defined for removal of test data and test accounts from system components before the system goes into production.
  • Observe testing processes for both off-the- shelf software and in-house applications, and interview personnel to verify test data and test accounts are removed before a system goes into production.
  • Examine data and accounts for recently installed or updated off-the-shelf software and in- house applications to verify there is no test data or test accounts on systems in production.
Description

Requirement 6.5.1

Purpose

Without a formal change control process, changes to system components may introduce vulnerabilities or disrupt critical business processes. Change control processes help ensure that all changes are properly planned, tested, approved, and documented.

Good Practice

The change control process should include documentation of the change, impact analysis, approval by authorized personnel, testing in a non-production environment, and back-out procedures. Changes should be tested for security impact before deployment.

Requirement 6.5.2

Purpose

Using production data in development and test environments can expose sensitive data to personnel who do not need access to it. Separating development/test environments from production helps protect production data and systems.

Good Practice

Development and test environments should be separate from production environments. Production data, especially PANs, should not be used in development or test environments. If production data must be used, it should be sanitized or masked before use.

Requirement 6.5.3

Purpose

Using production data for testing can expose sensitive account data to unauthorized individuals. Pre-production environments typically have weaker security controls than production environments, increasing the risk of exposure.

Good Practice

Test data and accounts should be removed before production systems become active. If production data must be used for testing, it should be sanitized by masking, truncating, or randomizing sensitive data elements before use.

Requirement 6.5.4

Purpose

Reviewing custom code before deployment to production helps identify and correct security vulnerabilities before they can be exploited. This is especially important for changes to bespoke and custom software.

Good Practice

Code reviews should cover all custom code changes before deployment to production. Reviews should verify that code is developed in accordance with secure coding guidelines and that common vulnerabilities have been addressed.

Requirement 6.5.5

Purpose

Development and pre-production environments may have different configurations and security settings than production. Understanding these differences helps ensure that security controls are not inadvertently weakened when changes are promoted to production.

Good Practice

Development environments should mirror production security configurations as closely as possible. Known differences should be documented and considered during the change management process.

Requirement 6.5.6

Purpose

Test data and accounts that remain in production systems can be exploited by attackers. Removing test data and accounts before systems go live helps prevent unauthorized access and reduces the attack surface.

Good Practice

A process should be in place to verify that all test data, test accounts, and custom application accounts used during development are removed or disabled before the system is deployed to production.