Safeguard 2.1: Establish and Maintain a Software Inventory
To meet the safeguard 2.1: establish and maintain a software inventory requirement, you must maintain an accurate, reviewable inventory of software running in your environment, with clear ownership, a defined update cadence, and evidence that the inventory is kept current. Treat this as an operational control: discover software, normalize records, reconcile exceptions, and prove the process runs. 1
Key takeaways:
- Your inventory must be operationally maintained, not a one-time spreadsheet export. 2
- Define scope and ownership first, then automate collection and reconciliation where possible. 2
- Evidence matters: keep snapshots, change logs, exception approvals, and remediation tickets. 2
Safeguard 2.1 sits in CIS Control 2 (Inventory and Control of Software Assets) and is a prerequisite for multiple downstream controls: vulnerability management, secure configuration, access control, incident response, and third-party software governance. If you cannot reliably answer “what software is installed and running, where, and who owns it,” you will struggle to enforce patch SLAs, detect unauthorized tools, or rapidly scope exposure during an incident. 2
For a Compliance Officer, CCO, or GRC lead, operationalizing this requirement means turning “software inventory” into a repeatable control with (1) a defined system of record, (2) a collection method that covers your in-scope endpoints and servers, (3) reconciliation steps that address drift and gaps, and (4) an evidence bundle that can withstand audits and customer diligence. 2
This page is written as requirement-level implementation guidance. It focuses on decisions you must lock, the minimum viable operating process, the artifacts auditors actually ask for, and the failure modes that cause findings. References point to the CIS Controls v8 program and Navigator where the safeguard is cataloged. 1
Regulatory text
Framework requirement: “CIS Controls v8 safeguard 2.1 implementation expectation (Establish and Maintain a Software Inventory).” 1
Operator translation: You need a maintained inventory of software present in your environment. “Established” means you can produce an inventory on demand. “Maintained” means there is a defined cadence and a process that keeps it current as software changes, new assets appear, and old assets retire. 2
What an auditor or customer assessor will infer from this safeguard:
Plain-English interpretation (what “good” looks like)
A compliant software inventory is a living dataset that answers four questions consistently:
- What software is present (product name, publisher, version, and where feasible a unique identifier).
- Where it runs (device/server/workload, business unit, environment, and user where relevant).
- Whether it’s allowed (approved, restricted, or prohibited status mapped to your standards).
- Who owns it (a technical owner and a business owner who can accept exceptions).
If you can only generate the list during the audit, you don’t have a maintained inventory. If you have a list but no reconciliation process, you have data, not a control. 2
Who it applies to (entity and operational context)
This safeguard applies to any organization using CIS Controls v8 as a security baseline, including enterprises, service organizations, and technology organizations. 1
Operationally, it applies wherever software can be introduced:
- Corporate endpoints (managed and unmanaged laptops/desktops)
- Servers (on-prem and cloud)
- Virtual desktops and images (golden images, templates)
- Cloud workloads and containers (where software packages are installed into images)
- Privileged/admin tooling (remote access tools, scripting frameworks, password managers)
- Third-party delivered software (agents, plugins, integration middleware) where the third party’s installer runs inside your environment
Scope decisions to document up front:
- Inclusion/exclusion for BYOD, contractor devices, lab systems, and ephemeral compute.
- Treatment of “portable” apps, browser extensions, and SaaS apps (some teams track SaaS separately; if so, write that boundary explicitly).
What you actually need to do (step-by-step)
Step 1: Create a control card (owner, cadence, triggers, exceptions)
Write a one-page “control card” for the safeguard with:
- Control objective: maintain accurate software inventory for in-scope assets.
- Control owner: Security Operations, IT, or Endpoint Engineering, with GRC as oversight.
- Cadence: how often you refresh, reconcile, and review; include event-based triggers.
- Trigger events: new device enrollment, new server provisioning, M&A onboarding, major software rollout, incident response scoping.
- Exceptions: who can approve, how long exceptions last, and how you record compensating controls.
This turns an abstract requirement into an executable runbook. 2
Step 2: Define inventory scope and the system of record
Pick one system of record for reporting (even if you aggregate data from many tools). Typical options:
- Endpoint management platform export
- EDR inventory view
- CMDB with software asset module
- Dedicated software asset management tool
Document:
- In-scope asset classes and environments.
- Required fields (minimum dataset) and which are mandatory vs best-effort.
- Data retention expectations for snapshots and change logs (align to your internal retention standard).
Step 3: Implement software discovery (automated first, manual as fallback)
Establish collection methods per asset type:
- Managed endpoints/servers: agent-based inventory (endpoint management or EDR) tends to be the most reliable.
- Unmanaged assets: use network discovery, NAC signals, or onboarding workflows to reduce blind spots.
- Golden images/templates: scan build pipelines or image manifests so baked-in packages are inventoried before deployment.
- Cloud workloads: integrate cloud inventory where feasible so instances and images map to installed package lists.
Minimum operational requirement: you can explain, for each in-scope asset type, how software data is collected and how gaps are detected. 2
Step 4: Normalize software records (make the data usable)
Raw discovery is messy. Create normalization rules:
- Standardize publisher/product naming and map common variants (e.g., “Microsoft Corporation” vs “Microsoft”).
- Capture version in a consistent format.
- De-duplicate entries across data sources.
- Assign a software “type” tag (OS component, productivity, developer tool, admin tool, security agent, remote access) to support review and restriction decisions.
Normalization is where many inventories fail. If you cannot group “the same software” together, you cannot enforce standards or measure exception volume.
Step 5: Reconcile and triage (turn findings into actions)
Run a recurring reconciliation workflow:
- Identify new software since last run.
- Identify unauthorized software (not on approved list or flagged category).
- Identify out-of-date versions where your vulnerability program requires action.
- Open tickets with a standard taxonomy (remove, update, justify, or onboard).
- Track to closure with evidence (removal proof, update confirmation, or approved exception).
Tie this to your change management process when the software is enterprise-approved, and to incident response when it indicates compromise (for example, unexpected remote admin tools). 2
Step 6: Establish an exception process that does not break the inventory
Your exception workflow must keep inventory integrity:
- Exceptions must reference the software identifier, affected assets/groups, business justification, approver, and expiration.
- Exceptions must drive tagging in the system of record (so auditors see the inventory classification, not an email thread).
- Expired exceptions should trigger re-validation or removal work.
Step 7: Prove “maintain” with control health checks
Add a lightweight control health check:
- Sampling: pick a set of assets and confirm discovered software matches reality (or matches a second source).
- Coverage checks: confirm collection agents/reporting cover expected population; investigate drift.
- Remediation aging review: confirm unauthorized software tickets are closing, not accumulating.
Track remediation items to validated closure with due dates. This is the difference between “we have a tool” and “the control operates.” 2
Required evidence and artifacts to retain
Build an “evidence bundle” you can produce quickly:
- Control card (objective, owner, cadence, triggers, exceptions). 2
- Scope statement for in-scope asset classes and boundaries.
- System of record description (tooling, data flow diagram, key fields).
- Inventory exports/snapshots from each run (date-stamped).
- Change log or diff report showing new/removed software between runs.
- Unauthorized software queue (tickets) with statuses and closures.
- Exception approvals with expiration and linkage to inventory entries.
- Control health check results and remediation tracking to closure. 2
Practical tip: store evidence in a single folder structure by period (monthly/quarterly), and include a one-page index that points auditors to the right artifacts.
Common exam/audit questions and hangups
Expect these questions in audits, customer diligence, and internal risk reviews:
- “Show me your current software inventory and explain how it stays current.” 2
- “Which assets are in scope, and how do you know coverage is complete?”
- “How do you detect and respond to unauthorized software?”
- “Who approves exceptions, and how do you ensure exceptions expire?”
- “Can you demonstrate operation over time (not just today’s export)?” 2
Hangups that create findings:
- Inventory exists, but there is no defined cadence or owner.
- Data exists in multiple tools with no declared system of record.
- Exceptions live in email/Slack, not in a controlled, reviewable system.
Frequent implementation mistakes (and how to avoid them)
| Mistake | Why it fails | What to do instead |
|---|---|---|
| Treating the inventory as a spreadsheet project | Spreadsheets go stale and lack traceability | Declare a system of record and produce dated snapshots each cycle |
| No scope boundary | Auditors test the “missing” population | Write explicit inclusions/exclusions and compensating controls |
| No normalization | The same product appears as multiple entries | Create mapping rules and a canonical software name list |
| Unauthorized software has no workflow | You find issues but cannot show control action | Require tickets, triage outcomes, and closure evidence |
| Exceptions without expirations | “Temporary” becomes permanent | Require expirations and periodic re-approval |
Enforcement context and risk implications
No public enforcement cases were provided in the source catalog for this requirement, so treat enforcement context as indirect: software inventory gaps often surface during breach response, customer audits, and regulator examinations as control design and operation failures. The risk is concrete: unknown software increases attack surface, hides vulnerable components, and slows incident scoping because responders cannot quickly determine what ran where. 2
A practical 30/60/90-day execution plan
First 30 days (control design + minimum viable inventory)
- Assign the control owner and publish the control card with cadence, triggers, and exceptions. 2
- Define scope boundaries and the system of record for reporting.
- Stand up an initial inventory pull for managed endpoints and servers, then store a dated snapshot as baseline evidence.
- Create a simple unauthorized software triage workflow (ticket template, categories, closure criteria).
Days 31–60 (coverage + reconciliation)
- Expand collection coverage to additional asset classes (cloud workloads, VDI, build images) based on your environment.
- Implement normalization rules and de-duplication.
- Start recurring reconciliation runs and produce diffs, tickets, and closure evidence per cycle.
- Operationalize exceptions: approval workflow, inventory tagging, and expiration tracking.
Days 61–90 (health checks + audit-ready evidence)
- Run control health checks and document outcomes and remediation to closure. 2
- Validate reporting: prove you can answer “what software is installed” by business unit, environment, and critical asset group.
- Dry-run an audit request: produce the last several inventory snapshots, diffs, exception log, and remediation queue from a single evidence location.
- Add governance: periodic review of prohibited categories (e.g., remote admin tools) aligned to your risk appetite.
Where Daydream fits (earned, not forced)
If your blocker is operational rigor rather than tooling, Daydream can help you package Safeguard 2.1 into an auditable control: a control card template, an evidence bundle checklist per execution cycle, and recurring control health checks with remediation tracking to validated closure. That closes the common gap where teams have inventory data but cannot prove control operation over time. 2
Frequently Asked Questions
What counts as “software” for safeguard 2.1?
Treat it as installed applications, agents, and packages that execute in your environment and change your attack surface. Document scope boundaries for SaaS apps, browser extensions, and ephemeral containers so assessors see a deliberate decision. 2
Can I satisfy this with an endpoint management tool alone?
You can, if it covers your in-scope population and you can show recurring exports, reconciliation, and exception handling. If major asset classes are outside coverage, you need supplemental discovery or documented exclusions with compensating controls. 2
How do I handle developer tooling and package managers (pip/npm/homebrew)?
Decide whether you inventory at the “package” level, the “toolchain” level, or both, and document the rationale. For high-risk categories, treat unexpected packages as findings and route through your triage workflow. 2
What evidence do auditors ask for most often?
Dated inventory snapshots, proof of cadence, and proof of action on unauthorized software are the common asks. Keep exception approvals linked to inventory entries, not as standalone emails. 2
How do we deal with short-lived cloud workloads where software changes quickly?
Inventory the sources of truth: images, templates, and build artifacts, then map them to deployed workloads where feasible. Pair that with event triggers so new images or pipelines update the inventory process. 2
Who should own this control: IT, Security, or GRC?
IT or Security should own operation because they run the tooling and remediation workflow. GRC should own oversight: control design review, evidence completeness checks, and audit response readiness. 2
Footnotes
Frequently Asked Questions
What counts as “software” for safeguard 2.1?
Treat it as installed applications, agents, and packages that execute in your environment and change your attack surface. Document scope boundaries for SaaS apps, browser extensions, and ephemeral containers so assessors see a deliberate decision. (Source: CIS Controls v8)
Can I satisfy this with an endpoint management tool alone?
You can, if it covers your in-scope population and you can show recurring exports, reconciliation, and exception handling. If major asset classes are outside coverage, you need supplemental discovery or documented exclusions with compensating controls. (Source: CIS Controls v8)
How do I handle developer tooling and package managers (pip/npm/homebrew)?
Decide whether you inventory at the “package” level, the “toolchain” level, or both, and document the rationale. For high-risk categories, treat unexpected packages as findings and route through your triage workflow. (Source: CIS Controls v8)
What evidence do auditors ask for most often?
Dated inventory snapshots, proof of cadence, and proof of action on unauthorized software are the common asks. Keep exception approvals linked to inventory entries, not as standalone emails. (Source: CIS Controls v8)
How do we deal with short-lived cloud workloads where software changes quickly?
Inventory the sources of truth: images, templates, and build artifacts, then map them to deployed workloads where feasible. Pair that with event triggers so new images or pipelines update the inventory process. (Source: CIS Controls v8)
Who should own this control: IT, Security, or GRC?
IT or Security should own operation because they run the tooling and remediation workflow. GRC should own oversight: control design review, evidence completeness checks, and audit response readiness. (Source: CIS Controls v8)
Operationalize this requirement
Map requirement text to controls, owners, evidence, and review workflows inside Daydream.
See Daydream