SA-17(2): Security-relevant Components
SA-17(2) requires you to contractually obligate the developer of your system, system component, or system service to address “security-relevant components” and then prove you did it with procurement-ready evidence. Operationalize it by defining what counts as security-relevant, inserting precise supplier requirements into SOWs, and collecting developer deliverables during design, build, and changes. 1
Key takeaways:
- Translate SA-17(2) into contract language: named deliverables, timing, acceptance criteria, and flow-downs to subcontractors.
- Build an evidence trail that ties each security-relevant component to developer attestations, design artifacts, and change records.
- Treat this as a supply chain control: you are managing developer behavior, not just internal configurations.
The sa-17(2): security-relevant components requirement shows up when your system depends on third-party built software, platforms, appliances, managed services, or internally developed components that you did not independently design end-to-end. As a Compliance Officer, CCO, or GRC lead, your job is to make the requirement executable for engineering and procurement: define what “security-relevant” means in your environment, make it a binding requirement for developers, and keep artifacts that an assessor can trace to specific components.
The practical risk is simple: if you cannot show what you required from the developer and what you received back, your program looks informal even if engineering “did the right thing.” SA-17(2) is also a recurring failure mode in audits because teams assume security controls are only operational (patching, logging, access). This one is about upstream development accountability and documented supplier obligations.
This page gives you requirement-level implementation guidance: who owns it, what to put in contracts and design gates, what evidence to retain, and how to run a short execution plan that produces assessor-grade outputs without blocking delivery. 2
Regulatory text
Requirement excerpt: “Require the developer of the system, system component, or system service to:” 1
Operator meaning: NIST is directing the organization (you) to impose specific security requirements on the developer of what you are acquiring or building. SA-17(2) is an enhancement focused on security-relevant components, so your implementation needs to (1) identify those components, (2) require developer action and deliverables tied to them, and (3) retain evidence that the requirement was communicated and met. 1
Because the excerpt is a “require the developer…” stem, assessors typically look for two things:
- clear supplier/developer obligations (contract/SOW language, defined deliverables), and
- proof those obligations were executed (received artifacts, reviews, approvals, and change tracking).
Plain-English interpretation (what SA-17(2) is asking you to do)
For every system or service you rely on, determine which parts are “security-relevant” (components that enforce, implement, or materially affect security). Then require the developer responsible for those parts to provide security-focused development outputs, and keep those outputs as evidence.
Security-relevant components usually include:
- authentication/authorization modules, identity integrations, key management, crypto libraries
- logging/audit subsystems, monitoring agents, security enforcement points
- update mechanisms, boot/firmware chains, container base images, package managers
- boundary controls and management planes (admin consoles, APIs, orchestration)
Your goal is not to document every dependency. Your goal is to document the ones that, if compromised or poorly engineered, would undermine the system’s security objectives.
Who it applies to (entity and operational context)
Applies to:
- Federal information systems and programs assessed against NIST SP 800-53. 1
- Contractor systems handling federal data where NIST SP 800-53 controls are required contractually or via an authorization boundary. 1
Operational contexts where SA-17(2) becomes “real work”:
- You buy SaaS/PaaS/IaaS or managed services and need developer obligations in the contract.
- You procure hardware appliances, endpoints, or OT/IoT devices with firmware and update channels.
- You have internal development teams; “developer” is your own SDLC organization, and you still need formal requirements and evidence.
- You integrate open-source or commercial components into a deliverable system; you need a position on which components are security-relevant and what developer assurances you require from upstream sources.
What you actually need to do (step-by-step)
1) Name a control owner and define the control boundary
- Control owner: typically GRC with shared accountability across Security Architecture and Procurement/Vendor Management.
- Scope boundary: list the systems/services in scope for NIST 800-53 assessment and identify where “developer” sits (internal dev team vs third party supplier vs integrator).
Deliverable: SA-17(2) control implementation statement with RACI and boundary notes.
2) Define “security-relevant component” for your environment
Create a short standard that engineering can apply consistently. Keep it practical:
- Criteria-based definition (e.g., “components that implement authN/authZ, encryption, key storage, privileged management, audit logging, update/boot integrity, security policy enforcement, or cross-tenant isolation”).
- A decision rule for gray areas (e.g., “if compromise materially changes confidentiality/integrity/availability objectives, treat as security-relevant”).
Deliverable: one-page standard (can be an appendix to your secure SDLC or supplier security requirements).
3) Build and maintain an inventory of security-relevant components 1
For each in-scope system/service:
- Identify the security-relevant components (modules, services, appliances, libraries, management planes).
- Record the developer responsible (internal team, supplier, subcontractor).
- Record where the requirement is imposed (SOW section, MSA clause, internal SDLC gate).
Deliverable: component register tied to the system inventory/CMDB.
4) Convert SA-17(2) into enforceable developer requirements
SA-17(2) fails most often in contracting. Avoid vague language (“vendor will be secure”). Require deliverables with acceptance criteria. Examples of requirement categories you can impose on developers:
- Secure design artifacts for security-relevant components (design description, trust boundaries, assumptions).
- Threat modeling outputs covering security-relevant components (threats, mitigations, residual risk decisions).
- Secure coding and build controls evidence for relevant components (code review practices, build pipeline integrity measures, signing).
- Vulnerability management expectations (how component vulnerabilities are tracked, triaged, and patched; disclosure process).
- Change control notifications for material changes to security-relevant components (especially auth, crypto, management plane, update mechanisms).
- Supply chain transparency for what composes the security-relevant component (dependency identification).
Keep the requirements in:
- the SOW and security addendum for third parties, and
- your internal SDLC policy and gated checklists for internal development.
Deliverable: contract clause library + internal SDLC gate checklist mapped to SA-17(2).
5) Operationalize intake and acceptance (do not treat this as “paper collected”)
Set up a repeatable workflow:
- Procurement triggers security review when a product/service includes security-relevant components.
- Security Architecture reviews developer deliverables for completeness and coherence.
- GRC records approval and stores artifacts in a controlled repository.
- Exceptions are documented with risk acceptance and expiry.
Deliverable: intake workflow in your ticketing system with required attachments and approver list.
6) Tie SA-17(2) to change management
Security-relevant components change often (new auth flows, new crypto libraries, new admin APIs). Add a change gate:
- “Does this change touch a security-relevant component?” If yes, require updated developer artifacts (updated threat model section, updated design notes, updated test evidence, release notes).
Deliverable: change request template with a SA-17(2) security-relevant component impact question and required evidence list.
7) Make it assessable: map to controls and recurring evidence
Create a simple evidence cadence 1 and map it to SA-17(2). Daydream fits well here as the system of record to assign ownership, store the procedure, and track recurring evidence requests tied to each system and third party.
Deliverable: control-to-evidence map and an evidence calendar.
Required evidence and artifacts to retain
Keep evidence that proves (a) you required the developer to do something, and (b) you verified receipt/review.
Core artifacts (recommended minimum set):
- Component register marking which items are security-relevant and why
- Contract/SOW/security addendum language (or internal SDLC policy section) imposing developer requirements
- Developer deliverables for each security-relevant component (design/security notes, threat model outputs, release/change notes relevant to security)
- Review/approval records (tickets, sign-offs, meeting notes, risk acceptances)
- Change management records showing how updates to security-relevant components were captured and re-reviewed
- Exception register entries where developer deliverables were not obtainable, with compensating controls and time-bound acceptance
Common exam/audit questions and hangups
Assessors commonly probe:
- “Show me your definition of security-relevant components and how you apply it consistently.”
- “Pick one security-relevant component. Where did you require the developer to provide security artifacts? Show the contract clause or SDLC gate.”
- “Show me what you received from the developer for that component and who reviewed it.”
- “How do you handle updates to that component? What triggers re-review?”
- “What do you do if the developer refuses or cannot provide the requested artifacts?”
Hangups that cause findings:
- Security-relevant components aren’t defined; inventory is ad hoc.
- The contract says “vendor will comply” but does not specify deliverables.
- Evidence exists but is not traceable from component → developer requirement → artifact → review.
- Changes happen outside the workflow (urgent fixes, feature flags) without re-assessing security relevance.
Frequent implementation mistakes and how to avoid them
-
Mistake: treating SA-17(2) as a one-time procurement checklist.
Avoid it: connect it to change management and release processes so updates to security-relevant components re-trigger developer obligations. -
Mistake: asking developers for everything.
Avoid it: narrow scope to components that materially affect security outcomes, then ask for targeted, reviewable artifacts. -
Mistake: storing artifacts in email threads.
Avoid it: require artifacts in a controlled repository with a ticket that records review and approval. -
Mistake: no subcontractor flow-down.
Avoid it: require the prime developer to pass security-relevant component obligations to their subcontractors where they develop or materially modify those components.
Risk implications (what goes wrong if you miss SA-17(2))
If you can’t demonstrate developer obligations for security-relevant components, you lose governance over the parts of the system most likely to undermine controls like access control, auditability, and cryptographic protections. The operational result is slower incident response, harder root cause analysis, and weaker assurance for authorizations or customer attestations aligned to NIST SP 800-53. 2
Practical 30/60/90-day execution plan
First 30 days (Immediate)
- Assign control owner and approvers; write the internal SA-17(2) procedure.
- Publish your security-relevant component definition and decision rule.
- Pilot the component register on one high-impact system and one key third party service.
- Draft contract clause language and an internal SDLC gate checklist mapped to SA-17(2).
By 60 days (Near-term)
- Roll the component register across in-scope systems/services.
- Update procurement intake to trigger SA-17(2) requirements when security-relevant components are present.
- Start collecting developer artifacts for top-risk components; document exceptions with time bounds.
- Implement the change-management question and attach evidence requirements for impacted components.
By 90 days (Operationalize)
- Make SA-17(2) evidence recurring: each release or material change to a security-relevant component produces a review record.
- Run an internal mock assessment: select components, trace requirement → artifact → approval in one sitting.
- Centralize evidence tracking in Daydream (or your GRC system) so control owners can produce an assessor-ready package without scrambling.
Frequently Asked Questions
How do I decide whether a component is “security-relevant”?
Use criteria tied to security outcomes: components that enforce identity, authorization, cryptography, audit logging, privileged management, isolation, or update integrity qualify. Document the criteria and apply it consistently in a component register.
Does SA-17(2) apply to internal development teams, or only third parties?
It applies to “the developer,” which can be internal or external depending on who builds the system/component/service. For internal teams, meet it through SDLC policy gates and retained engineering artifacts rather than contract clauses. 1
What if the third party refuses to provide detailed security artifacts?
Treat it as an exception: document what you requested, what they refused, your compensating controls, and a time-bound risk acceptance. Also update sourcing criteria so future purchases require these deliverables up front in the SOW.
Do I need a formal threat model for every security-relevant component?
You need developer outputs that demonstrate security considerations for security-relevant components. A threat model is a strong, reviewable artifact, but your acceptance criteria should focus on covering the relevant threats and mitigations, not on a specific template name.
How do I operationalize SA-17(2) without slowing procurement?
Pre-approve clause language and a short list of required deliverables by component type (SaaS, appliance, internal microservice). Then procurement can insert standard language and route only exceptions to security review.
What evidence is most persuasive to auditors?
Traceability. Auditors respond well when you can pick a component and show: definition → inventory entry → contract/SDLC requirement → developer artifact → review/approval record → change re-review trigger.
Footnotes
Frequently Asked Questions
How do I decide whether a component is “security-relevant”?
Use criteria tied to security outcomes: components that enforce identity, authorization, cryptography, audit logging, privileged management, isolation, or update integrity qualify. Document the criteria and apply it consistently in a component register.
Does SA-17(2) apply to internal development teams, or only third parties?
It applies to “the developer,” which can be internal or external depending on who builds the system/component/service. For internal teams, meet it through SDLC policy gates and retained engineering artifacts rather than contract clauses. (Source: NIST SP 800-53 Rev. 5 OSCAL JSON)
What if the third party refuses to provide detailed security artifacts?
Treat it as an exception: document what you requested, what they refused, your compensating controls, and a time-bound risk acceptance. Also update sourcing criteria so future purchases require these deliverables up front in the SOW.
Do I need a formal threat model for every security-relevant component?
You need developer outputs that demonstrate security considerations for security-relevant components. A threat model is a strong, reviewable artifact, but your acceptance criteria should focus on covering the relevant threats and mitigations, not on a specific template name.
How do I operationalize SA-17(2) without slowing procurement?
Pre-approve clause language and a short list of required deliverables by component type (SaaS, appliance, internal microservice). Then procurement can insert standard language and route only exceptions to security review.
What evidence is most persuasive to auditors?
Traceability. Auditors respond well when you can pick a component and show: definition → inventory entry → contract/SDLC requirement → developer artifact → review/approval record → change re-review trigger.
Operationalize this requirement
Map requirement text to controls, owners, evidence, and review workflows inside Daydream.
See Daydream