EvidenceSheet

6.2.4 Engineering techniques against common software attacks

Developers of bespoke and custom software must have defined and actually use software engineering techniques or other methods that prevent or reduce common software attacks and associated vulnerabilities, including at least: injection attacks (SQL, LDAP, XPath, plus command, parameter, object, fault and similar injection flaws); attacks against data structures and data, for example manipulation of pointers, buffers, shared data or input data; attacks on the use of cryptography, such as exploiting weak, insecure or unsuitable implementations, algorithms, cipher suites or operating modes; business logic attacks that abuse or bypass application features through tampering with APIs, protocols, communication channels, client-side functions or other system resources, including XSS and CSRF; attacks on access control mechanisms, such as bypassing or abusing identification, authentication or authorization, or exploiting weak implementations of them; and attacks through any high-risk vulnerability found by the Requirement 6.3.1 process. It applies to all entities. Applicability: covers all software built by or for the entity for its own use, bespoke and custom; third-party software is not covered. Objective under the customized approach: common attacks and related weaknesses cannot be used to exploit bespoke and custom software.

Source: PCI DSS v4.0.1, 6.2.4. The statement above is our statement of the clause, read from the published text and cited so you can check it against the official text, not the instrument verbatim. Open PCI DSS v4.0.1 in the compliance library.

Version 4.0.1 is the active version; 4.0 has been retired. Appendix A1 applies only to multi-tenant service providers, A2 only to card-present POS POI terminals that still use SSL or early TLS, and A3 only when a payment brand or acquirer requires it. Which requirements apply to you follows your validation type.

5
artefacts
1
held by a system
2
at each review
hard
to go live
Policy repository / GRC workspace
where the evidence lives
teal = a system already holds it · olive = produced at each review. To go live: easy when half or more of the artefacts are already held by a system, moderate from a quarter to a half, hard below a quarter.

These are the artefacts auditors commonly ask for on this requirement, our guidance rather than text from the standard. Your assessor decides what is sufficient in your context, and asks for samples across the period when a report covers one.

system holds itEvidence a system already holds

  • Pipeline configuration showing SAST or linting rules run at code check-in · Source control / CI pipeline

periodic reviewEvidence produced at each review

  • Framework-level controls evidence such as parameterised queries, output encoding and CSRF tokens · Document repository
  • Interview notes with developers describing how they apply the techniques · Document repository

governing documentDocuments that govern the control

  • Secure coding standard covering injection, data structure, cryptography, business logic, access control and high-risk vulnerability classes · Policy repository / GRC workspace
  • Approved cryptographic library and cipher suite list for developers · Policy repository / GRC workspace

First move

Mostly documents and reviews. Pull the 1 system-held artefact from your Source control / CI pipeline on a schedule; put the documents under version control with an owner and review date, and log each review as a dated record with a named reviewer.

Common gaps auditors find

Do this for your whole sheet

Paste the rows you run your controls from and get this mapping for every control at once, with the periodic-review ones flagged and a first move per row. No account for the first run.

Build my evidence sheet

6.2.3.1 Manual code review independence and approval · 6.3.1 Vulnerability identification and risk ranking