As with all of my blog posts, the views and opinions expressed within do not explicitly represent the views or opinions of my employer.
This is the second part of a two-part post about script and HTTP header integrity and associated tamper detection/prevention controls, focused primarily upon content security policy (CSP), sub-resource integrity (SRI), and their equivalent controls. In this second part, we will discuss the relevant compliance frameworks and regulations that might be satisfied by implementing CSP and SRI controls. If you’re an assessor looking for guidance, a new cloud/software engineer looking for clarification, or a CISO seeking to better understand this technology, these two posts will hopefully be useful for you.
If you require a re-cap on what CSP and SRI are then, head on over to part 1 for the overview discussion.
Probably More Than You Thought
Initially when authoring these two blog posts, I was intimately aware that PCI DSS and NIST CSF both had prescribed and/or suggested references associated with the use of CSP and SRI. As I began my research, I was surprised to find that the implementation of CSP and SRI could satisfy a great number of requirements, and not only within compliance frameworks. As a further surprise to me, even some of the more stringent and complex data privacy and security rules might be satisfied by this control (depending on your scope). I will highlight a few below, though I am sure there are many others I have not considered. If there’s one you’re aware of, let me know in the comments.
PCI DSS Requirements 6.4.3 and 11.6.1
As I note above, as a former QSA I was already very familiar with the PCI DSS requirements for implementation of script and page integrity controls under these two requirements. Let’s briefly review each requirement.
- 6.4.3 – Payment Page Scripts
This requirement expects that all payment page scripts which are loaded in the consumer’s browser to be authorized, with integrity controls, and for an inventory of all scripts on the payment page to be maintained with a business justification for each. The authorization and the inventory are important, but our focus is on the integrity controls. The “Good Practice” and “Examples” language of this requirement make reference to both CSP and SRI as potential controls to implement.
- 11.6.1 – Change and Tamper Mechanisms
Similar to, but distinctly different from 6.4.3, this requirement sets the expectation that any changes or attempted changes to the security-impacting HTTP headers *and* the script contents of payment pages are alerted upon at least weekly or *periodically* as determined by the entity’s targeted risk analysis. I think the most important takeaway from this requirement is that the intent and focus is upon the detection capability and not a requirement to prevent. As a former QSA, many of my clients became quite hung up on a perceived prevention aspect of this requirement, where there is actually none.
Here are some excellent resources that go into detail on this topic from the perspective of PCI DSS:
- Schellman Compliance: Getting Started with Payment Script Security Controls
- PCI DSS Council: Important Updates Announced for Merchants Validating to SAQ-A
- PCI DSS Council: FAQ #1581 – 3DS and Requirement 6.4.3
NIST CSF: Category – Protect (PR.DS) Data Security
NIST CSF has had a data security category since its inception, which included the PR.DS-6 subcategory. In CSF v1.1, that subcategory read as follows:
PR.DS-6: Integrity checking mechanisms are used to verify software, firmware, and information integrity
The leading three words of this subcategory would certainly lead any GRC, IT risk professional, or auditor to be able to assert that the implementation of SRI and CSP would satisfy this requirement for web applications.
In NIST CSF v2.0 this verbiage was changed, and the equivalent subcategory now reads as follows:
PR.DS-02: The confidentiality, integrity, and availability of data-in-transit are protected
There’s that word again: “integrity”. If the scope under evaluation includes web application, I think a case could easily be made that CSP and SRI (and their equivalent controls) would at least meet the intent of this subcategory to protect data integrity rendered in an end-point browser. I feel like many entities point to strong encryption as the only mechanism that would satisfy integrity requirements, but as I have (hopefully) demonstrated in part 1 of this blog post, that may not go quite far enough to satisfy an eager auditor.
23 NYCRR 500 (NY DFS)
This particular regulation does not actually specifically reference script and http header integrity, but there certainly seems to be opportunity to leverage its implementation to comply with some of the key sections. Here are a few of interest:
- 500.5: Penetration Testing and Vulnerability Assessments (page 6)
- Regular testing of cybersecurity defenses through penetration testing should almost certainly include publicly accessible web assets.
- Should transactional capabilities be available on publicly facing web assets, these must be included in scope and consideration must be made for how the end user is protected from known threats.
- 500.7: Access Controls and Identity Management (page 6)
- Restricting the logical location from where scripts are able to load via CSP (or similar control) reduces the risk of unauthorized content execution.
- If transactional capabilities are in scope, reducing unauthorized content execution almost certainly supports compliance with this section.
Conclusion
Consideration should be given to controls which ensure the integrity and authorization of scripts and mitigation against common attack vectors upon web pages capable of transactional use cases. I think you’ll find that your investment reduces more compliance burden than you expected.
Generative Artificial Intelligence Disclosure
Generative AI was used to directly facilitate the writing of this post to verify the applicability of script integrity and http header integrity to the risk frameworks that the author was already aware of. Validate this statement. Prompts used were:
"What are the requirements for content security protocol and sub-resource integrity within 23 NY CRR 500?"
"Where would script and http header integrity apply to the HIPAA Security Rule?"
Generative AI was used to verify the factual components of this blog post. The prompt used was:
Can you verify the factual components of this blog post and highlight inaccuracies based upon the citations?



