AU-9(7): Store on Component with Different Operating System

AU-9(7) requires you to store audit logs off the audited system, on a component that runs a different operating system, so an attacker who compromises the target system cannot easily alter or delete the audit trail. Operationalize it by centralizing logs to a hardened, separate-OS log collector/SIEM, enforcing write-restricted ingestion, and proving coverage with repeatable evidence.

Key takeaways:

  • Send logs to a log store running a different OS than the systems generating the logs 1).
  • Design for tamper resistance: restrict deletion and local admin access, and monitor log pipeline health.
  • Keep assessor-ready evidence: architecture, data flows, configs, and tests proving logs land on the separate-OS component.

Footnotes

  1. NIST SP 800-53 Rev. 5 OSCAL JSON

The au-9(7): store on component with different operating system requirement is a practical anti-tampering measure: it breaks the “same-host, same-admin” failure mode where a compromise lets an attacker erase the very evidence you need for response and reporting. If audit logs live only on the affected host (or on a log server with the same OS and administrative stack), your audit record becomes easy to manipulate using the same techniques used to compromise the system.

AU-9(7) is narrow but operationally meaningful. It does not ask you to log “more things.” It asks you to store what you already log on a component that is meaningfully different at the operating system layer from the system or component being audited. For many environments, the fastest path is to forward logs from endpoints and servers into a centralized logging tier or SIEM where the collector/storage layer runs a different OS than the majority of production workloads.

This page gives requirement-level implementation guidance for compliance operators: applicability, design choices, step-by-step execution, evidence to retain, and the audit questions that commonly stall teams.

Regulatory text

Requirement (AU-9(7)): “Store audit information on a component running a different operating system than the system or component being audited.” 1

What the operator must do

  • Identify the systems/components in scope for audit logging.
  • Ensure the audit information generated by those systems is stored on a separate component whose operating system differs from the generating system’s OS. 1
  • Implement the storage pattern in a way that supports audit record integrity (practically: reduce the chance the same compromise can delete or alter both system and logs).

Reference framework: NIST SP 800-53 Rev. 5 2

Plain-English interpretation

If a Windows server generates security logs, don’t rely on those logs living only on that same Windows server (or only on another Windows box managed the same way). Ship them to a logging component on a different OS (for example, a Linux-based collector/storage tier). If a Linux workload is in scope, store its logs on a non-Linux OS component.

Your goal is separation that frustrates common attacker playbooks:

  • Compromise host → gain admin → clear local logs → cover tracks.
  • AU-9(7) breaks that chain by ensuring the log “source OS” is not the same as the log “storage OS.”

Who it applies to (entity and operational context)

Typical entities

  • Federal information systems and programs using NIST SP 800-53 as the control baseline. 2
  • Contractors and service providers handling federal data where NIST SP 800-53 controls are imposed contractually or via authorization requirements. 2

Operational contexts where AU-9(7) matters most

  • High-value systems where you expect targeted intrusion attempts and need credible forensic timelines.
  • Environments with shared admin tooling where a single credential compromise could touch both hosts and logging.
  • Workloads with privileged local access (engineering, IT ops, third-party support) where “local admin can erase logs” is a known risk.

What you actually need to do (step-by-step)

1) Define scope and OS “families”

Create a simple inventory view:

  • Systems/components generating audit logs (by platform: Windows, Linux, network appliance OS, managed PaaS audit sources).
  • Current log destinations (local only, central syslog, SIEM agent, cloud logging service).
  • The OS running on each destination component.

Deliverable: a one-page matrix mapping log source OS → log storage OS.

2) Pick an architecture pattern that satisfies “different OS”

Common compliant patterns:

  • Endpoints/servers → central collector on different OS → SIEM/indexer
    • Example: Windows endpoints forward to a Linux-based syslog/collector tier; Linux endpoints forward to a Windows-based collector tier.
  • Mixed OS environment → dedicated logging appliance/VM with a distinct OS
    • The logging tier OS must differ from each audited system’s OS in scope. If you have both Windows and Linux audited systems, you may need more than one storage component or a deliberate split by source type.

Decision rule you can enforce in design review:

  • For each in-scope source, show at least one downstream storage hop where the OS differs from the source OS and where the audit records are retained.

3) Engineer for tamper resistance, not just routing

AU-9(7) is about where you store. Auditors will still ask whether admins can erase or rewrite logs.

Minimum operational safeguards most assessors expect you to have in place:

  • Write-restricted ingestion: sources can send logs; they cannot delete from the central store.
  • Role separation: limit who can administer the logging component OS vs. who can administer production systems.
  • Retention protection: prevent “log delete” from being a routine privilege.

Practical check: if the same admin group can compromise a workload and then immediately delete central logs with the same credentials, your design may meet the literal OS test but fail the intent during an assessment conversation.

4) Configure forwarding for each platform and validate end-to-end

Execution tasks:

  • Standardize event sources (security, authentication, admin actions, system changes) per your AU baseline.
  • Install/enable forwarders (agent-based or native forwarding).
  • Send logs over authenticated channels to the separate-OS component.
  • Normalize timestamps (time sync) and validate parsing in the SIEM.

Validation steps you should run and record:

  • Generate a known test event on the source system.
  • Confirm arrival on the separate-OS storage component.
  • Confirm immutability controls: attempt deletion from a source admin context should fail or be impossible.
  • Confirm alerting on pipeline failure (source stops sending, collector disk full, ingestion queue lag).

5) Operationalize monitoring and failure handling

Teams commonly “implement” AU-9(7) but fail it operationally when log forwarding silently breaks.

Add runbooks and checks:

  • Daily/weekly checks for last-seen log timestamps by critical sources.
  • Alerts for ingestion drops, collector storage thresholds, agent failures.
  • Incident response steps for suspected log tampering: isolate source, preserve central logs, snapshot collector if needed.

6) Document the control in assessable language

Write a control implementation statement that answers:

  • What systems are audited?
  • Where do their logs go?
  • What OS runs on the storage component(s)?
  • How do you prevent tampering/deletion?
  • Who owns operation and evidence?

If you manage evidence in Daydream, map AU-9(7) to an owner, a procedure, and recurring evidence artifacts so you can answer assessors fast and consistently.

Required evidence and artifacts to retain

Keep evidence that proves both design and operation:

Design / configuration

  • Logging architecture diagram showing sources, collectors, storage tiers, and OS types.
  • Data flow map: “source OS → storage OS” for in-scope systems.
  • Build standards or baseline configs for the logging component (hardened build notes, access model).
  • Forwarder configuration snippets or screenshots (redact secrets).

Operational proof

  • Test records showing a sample event created on a source and received on the separate-OS component.
  • Access control evidence: roles/groups that can administer the log store; proof that source admins cannot delete records.
  • Monitoring evidence: alerts/runbooks for log pipeline failure and storage capacity.
  • Exception register for anything that cannot meet AU-9(7) (legacy appliances, constrained systems) with compensating controls and timeline.

Common exam/audit questions and hangups

Assessors tend to ask these, because they reveal whether AU-9(7) is real or paper:

  1. “Show me where logs for System X are stored and what OS that storage runs.”
    Have the matrix ready and a live walkthrough.

  2. “Is the storage component administered by the same team and credentials?”
    If yes, expect follow-ups on role separation and deletion controls.

  3. “What happens if the collector is down?”
    They want your failure mode: buffering, backpressure handling, and alerting.

  4. “Can an attacker with root/local admin on the source alter the forwarded record?”
    Be ready to explain transport security, collector-side append/write restrictions, and detection.

Frequent implementation mistakes and how to avoid them

Mistake Why it fails How to avoid
“We store logs on another server, but it’s the same OS as the source.” Doesn’t meet the explicit “different operating system” requirement. 1 Enforce OS-difference in the target design pattern and document it per system class.
Logs land on different OS, but admins can delete them freely. Meets literal text, but undermines audit record integrity. Separate duties; restrict delete; implement retention protections and monitor for deletion events.
Partial coverage: only some systems forward logs. You cannot show consistent compliance across the boundary. Build the source→storage OS matrix; close gaps by prioritizing high-risk/high-value systems.
No evidence of ongoing operation. Assessments fail on “operating effectiveness.” Keep recurring pipeline health reports and a periodic test record.
Cloud services assumed “covered” without proof. Assessor asks where logs are stored and under what OS control. Document the logging architecture and the components you control; keep provider attestations if applicable, and describe boundaries clearly.

Enforcement context and risk implications

No public enforcement cases were provided in the source catalog for AU-9(7), so treat this requirement primarily as an assessment-readiness and incident survivability control.

Risk you are reducing:

  • Log wiping and audit record manipulation after compromise.
  • Weaker forensic timelines and harder incident containment decisions.
  • Reduced credibility during investigations or authorization reviews when audit trails are incomplete or unverifiable.

Practical 30/60/90-day execution plan

First 30 days (stabilize scope and design)

  • Build the source→storage OS matrix for in-scope systems.
  • Choose the “different OS” storage pattern for each major platform.
  • Assign control owner(s), operators, and approvers; draft the AU-9(7) implementation statement.
  • Identify gaps where the current log destination runs the same OS as the source.

Days 31–60 (implement and prove)

  • Stand up or confirm the separate-OS logging component(s).
  • Configure forwarding for high-priority systems first (auth, privileged access, critical apps).
  • Implement access controls on the logging component: role separation, restricted delete, and admin monitoring.
  • Run and record end-to-end tests for each platform class.

Days 61–90 (operationalize and audit-proof)

  • Add monitoring for pipeline health and storage capacity; write a runbook for failures.
  • Schedule recurring evidence capture (config snapshots, last-seen reports, test events).
  • Close remaining coverage gaps or document exceptions with compensating controls.
  • Package evidence in a single place (many teams use Daydream) so AU-9(7) responses are consistent across internal audit, external assessors, and customer due diligence.

Frequently Asked Questions

Does AU-9(7) mean every system needs its own dedicated log server?

No. It means audit information must be stored on a component with a different OS than the audited system. A shared logging tier can work if it satisfies the OS-difference requirement for the sources in scope. 1

If we have both Windows and Linux servers, how do we meet “different OS” for both?

You need an architecture where Windows sources store logs on a non-Windows component and Linux sources store logs on a non-Linux component. Many teams use two collectors or split storage tiers by source type to keep the OS boundary clean.

Is a SIEM in the cloud automatically compliant with AU-9(7)?

Only if you can show where logs are stored and that the storage component OS differs from the audited system OS. Document the boundary and the OS characteristics of the component providing storage, based on what you can evidence and control. 1

Does forwarding logs to the same OS but different network segment satisfy AU-9(7)?

Network separation helps security, but AU-9(7) specifically calls for a different operating system for storage. Segmenting alone does not meet the stated requirement. 1

What evidence do auditors usually accept to prove the “different OS” condition?

An architecture diagram and a source→destination matrix, plus system screenshots or configuration outputs showing the logging component’s OS and the forwarding configuration. Add a test record demonstrating that an event from the source appears on the separate-OS component.

How should we handle legacy devices that can’t forward logs reliably?

Put the exception in writing, define compensating controls (restricted admin access, tighter monitoring, alternate telemetry), and set a remediation plan tied to platform upgrade or replacement. Keep the exception register and decision approvals with the AU-9(7) evidence set.

Footnotes

  1. NIST SP 800-53 Rev. 5 OSCAL JSON

  2. NIST SP 800-53 Rev. 5

Frequently Asked Questions

Does AU-9(7) mean every system needs its own dedicated log server?

No. It means audit information must be stored on a component with a different OS than the audited system. A shared logging tier can work if it satisfies the OS-difference requirement for the sources in scope. (Source: NIST SP 800-53 Rev. 5 OSCAL JSON)

If we have both Windows and Linux servers, how do we meet “different OS” for both?

You need an architecture where Windows sources store logs on a non-Windows component and Linux sources store logs on a non-Linux component. Many teams use two collectors or split storage tiers by source type to keep the OS boundary clean.

Is a SIEM in the cloud automatically compliant with AU-9(7)?

Only if you can show where logs are stored and that the storage component OS differs from the audited system OS. Document the boundary and the OS characteristics of the component providing storage, based on what you can evidence and control. (Source: NIST SP 800-53 Rev. 5 OSCAL JSON)

Does forwarding logs to the same OS but different network segment satisfy AU-9(7)?

Network separation helps security, but AU-9(7) specifically calls for a different operating system for storage. Segmenting alone does not meet the stated requirement. (Source: NIST SP 800-53 Rev. 5 OSCAL JSON)

What evidence do auditors usually accept to prove the “different OS” condition?

An architecture diagram and a source→destination matrix, plus system screenshots or configuration outputs showing the logging component’s OS and the forwarding configuration. Add a test record demonstrating that an event from the source appears on the separate-OS component.

How should we handle legacy devices that can’t forward logs reliably?

Put the exception in writing, define compensating controls (restricted admin access, tighter monitoring, alternate telemetry), and set a remediation plan tied to platform upgrade or replacement. Keep the exception register and decision approvals with the AU-9(7) evidence set.

Operationalize this requirement

Map requirement text to controls, owners, evidence, and review workflows inside Daydream.

See Daydream