03.03.02 Audit record content

NIST SP 800-171 03.03.02 requires every audit record to show the event type, when and where it happened, its source, its outcome and the identities involved. Assessors check this with sampled log records and the configuration behind them.

On this page

What 03.03.02 audit record content asks for in plain words

Requirement 03.03.02 asks that each audit record carry the type of event, when and where it occurred, its source, its outcome, and the identities of the users, subjects, objects or entities involved, plus any additional information needed to make the record useful. If a contract or a CMMC assessment asks you to show SP 800-171 audit controls, the question an assessor will put to your logs is simple: can a record tell you who did what, on which system, when, and whether it worked? Many logs already in place cannot answer that, even when they are full of entries.

The risk is practical. An investigator reconstructing an incident needs records that tie an action to a person or process and a time. When records omit the source host, the account or the outcome, the team can see that something happened but not establish who was responsible or whether the action succeeded. The Rev. 2 to Rev. 3 change analysis classifies the change from Rev. 2 requirement 3.3.2 as significant, with more detail and foundational tasks, so a gap that passed a Rev. 2 review may not pass a Rev. 3 one. CMMC Level 2 still assesses the Rev. 2 wording as AU.L2-3.3.2, so confirm which revision your contract cites before you plan the work. Your own system design documentation and configuration settings are what an assessor will examine first.

The usual difficulty is that default settings are written for operators, not auditors. Out of the box, many applications log fewer fields than this requirement expects, and the list of organization-defined auditable events is often never written down at all, so no one can say what should have been recorded. Start by writing that list, then check each platform's audit configuration against it. For example, Nextcloud's admin_audit app writes extra event detail to a log file that you must locate and retain, and OpenBao's audit devices record every API request and response with sensitive values hashed. Verify the fields in a test event rather than assuming them, and ask your integrator to document the mapping for the assessor.

Which systems, logs and teams fall under audit record content

Audit record content under 03.03.02 applies to every system that stores, processes or transmits CUI, and to the components that generate records about those systems. The cards below cover the scoping decisions that determine how much logging content must be designed, tested and evidenced, and who must own it.

CUI systems and in-boundary security tools

Every system that stores, processes or transmits CUI sits inside the assessment boundary, and so do the security tools that watch it, such as endpoint agents, SIEM collectors and vulnerability scanners. Each in-boundary component must produce records that show the event type, time, source, outcome and identities involved. Check whether each tool's logs carry those fields by default, because a tool that logs only its own status leaves the CUI system's events unrecorded. Scoping this list early drives the number of log formats you must normalize.

Identity providers that authenticate CUI users

Directory services and identity providers record logons, role changes and failed authentication for every user who reaches CUI. Their records usually carry the identity fields 03.03.02 asks for, but only if the configuration includes source addresses, account identifiers and outcomes. Confirm with your identity team which events the provider logs by default and which require enabling. Identity logs often become the primary evidence for who acted, so their gaps affect every other system.

Cloud control planes that touch CUI

Cloud management consoles and API control planes record changes to storage, networking and virtual machines, even when the CUI itself lives in a different service. Those records show who changed a boundary control and from where, so they belong in scope when they can alter CUI systems. Ask your cloud provider which control-plane logs are available, how long the provider retains them, and whether you can export them to your own store. Missing export paths are a common assessment finding.

Third-party services acting on CUI

External service providers that host, administer or process CUI on your behalf can produce the records you need for 03.03.02, but their logs sit outside your direct control. Your contracts and service agreements should state which events and fields the provider records and how you receive them. Where a provider cannot supply the required content, the gap must be documented and addressed in your system security plan. Review these agreements before assessment rather than after the assessor asks for the records.

Self-hosted platforms holding CUI

Self-hosted applications such as file sharing, secrets management and collaboration tools often ship with optional audit logging that is off or limited by default. Each platform needs its own check that its audit output includes event type, timing, source, outcome and actor. Nextcloud's admin_audit app, for example, writes additional event information to a file in the data directory, which you must configure, protect and forward. Plan for each platform's configuration work separately, because one platform's logs rarely cover another's.

Teams that own log configuration

Audit record content depends on decisions made by several teams: security sets the required fields, platform engineering configures each system, and compliance owns the evidence. Assign a named owner for each system's logging configuration and a written record of who approved the field list. Without that ownership, configuration drifts after upgrades and no one notices until the assessment. Confirm these roles in your system security plan so an assessor can trace each record back to an accountable team.

How an assessor tests audit record content

This table groups the seven SP 800-171A Rev. 3 determination statements for 03.03.02 by assessment method: examine, interview and test. Each row shows the evidence an assessor will ask for and a finding that commonly appears when that evidence does not match the system. Use it to prepare evidence before the assessment begins.

Method and objectEvidence the assessor requestsCommon finding
Examine: audit and accountability policy and proceduresCurrent audit policy and procedures showing what audit record content must include, owner, review date and approvalProcedures describe content requirements that no one has reviewed or that do not mention the required elements
Examine: procedures for audit record contentDocumented standard for record fields (event type, date and time, location, source, outcome, identities) and any additional fields chosenStandard lists fields that the logging configuration does not actually produce
Examine: list of organization-defined auditable eventsThe defined event list, approval record and the mapping from each event to the fields it must carryAuditable event list does not match what the system logs, or events are listed with no content defined
Examine: system design documentationArchitecture and data flow diagrams showing where audit records are created, forwarded and storedDesign documents omit log sources such as cloud services, databases or third-party applications
Examine: system configuration settingsExported logging configuration for each in-scope component, with the settings that control record contentConfiguration enables logging but omits fields such as identity or outcome, or differs between hosts
Interview: personnel with audit responsibilities and security personnelStaff explanation of how records are generated, what fields they contain and how gaps are detectedStaff cannot explain record content or describe fields the documentation says exist
Test: audit mechanisms and system audit capabilitySample audit records from each in-scope system, with a test event generated during the assessment to confirm fieldsSample records lack identity, outcome or time zone details, or some event types produce no record at all

What each audit record must answer during an investigation

Under 03.03.02, an audit record is only useful if an investigator can answer a fixed set of questions from it alone: what happened, when it happened, where it happened, which source generated it, what the outcome was, who or what was involved, and what extra context is needed to act. The requirement names these seven content elements (type of event, time, location, source, outcome, identities of individuals, subjects, objects or entities, and additional information as needed). Treat each element as a field your logging design must populate, then test whether the fields answer the questions an incident responder will ask at 2 a.m.

Consider this illustrative sign-in failure. A record reads: event=auth_failed user=jsmith time=1712044800. It names an event and a user, but it leaves gaps. The timestamp has no time zone or offset, so an investigator cannot line it up with firewall or identity provider logs. The record has no source host or application, no client address, and no reason for the failure, so the investigator cannot tell a mistyped password from a credential-stuffing run. A complete record would carry the event type, a UTC timestamp, the originating system and address, the outcome with a reason code, the account and its unique identifier, and any context that matters, such as the target resource. Check your own sign-in, administrative and data access records against these questions before assessment.

Deciding what counts as "additional information as needed" is a judgment call the organization must make and document. Assessors will look for the rationale, the list of fields chosen for each event type and who approved it, so write it down in the audit and accountability procedures. Two technical conditions decide whether the fields can be correlated at all. First, clocks must be accurate and consistent across systems, which is covered by 03.03.07. Second, the same user, device and host must carry the same identifier everywhere, so a sign-in in your identity provider can be matched to a file access in a self-hosted application. Confirm these identifier conventions with the teams that own each system before you finalize field lists.

How to make audit records carry the required content

This sequence turns the content requirement for 03.03.02 into working evidence: a defined event list, a field mapping, a gap register for each system in scope, and tested sample records. Each step produces a document or record an assessor can read and trace back to the requirement.

  1. Inventory the organization-defined auditable events

    The organization, with its system owners and the people responsible for audit and accountability, lists the event types its systems must log. Start from the systems in the assessment boundary, including identity providers, application servers, databases, administrative consoles, and security tooling. Record the list in an audit and accountability document that names each event type, the systems that generate it, and the reason it was chosen. This list is the input the assessor will check against the requirement. The step is complete when the list is approved, versioned, and readable by someone outside the security team.

  2. Map each event to its required content fields

    For every event type in the list, build a field mapping matrix that shows where each required element appears: the type of event, when and where it occurred, its source, its outcome, and the identities of the users, subjects, objects, or entities involved. Add any additional information the organization has decided is needed for that event. Assign an owner to each row. The matrix is complete when every event type has a value or a stated reason for each field, and the assessor can trace each element of the requirement to specific events.

  3. Check native log formats against the matrix

    For each system in scope, collect sample records for each event type and compare them with the mapping matrix. Note which fields are present by default, which need configuration, and which the platform cannot produce. Record each shortfall in a gap register with the system, event, missing field, proposed fix, and owner. Confirm the actual output of each product with its vendor documentation and a test instance, since defaults differ between versions and deployment types. The register is complete when every gap has a fix or an accepted risk decision signed by the responsible role.

  4. Enable additional fields and audit modules

    Close the gaps that configuration can address. Where a platform offers an extended audit module or additional logging option, enable it and record the setting. For example, Nextcloud's admin_audit app writes additional event information to a dedicated audit log that can be placed at a set path, and OpenBao's audit devices keep detailed JSON records of API requests and responses. Where a platform cannot produce a required field, document the compensating control or a change request. Keep a configuration record showing the setting, the date it was applied, and the person who approved it. This step is done when the gap register shows each item as closed, compensated, or accepted.

  5. Normalize identifiers and time sources

    Records can only be correlated if the same user, host, and event carry the same identifiers across systems. Agree on one naming convention for user accounts, service accounts, hosts, and source addresses, and confirm that each system writes them in that form. Confirm that each system takes time from a common, synchronized source and that the format of timestamps is consistent. Where a central collector or SIEM receives logs, check that parsing preserves each field. The output is a short normalization standard and a test showing that one action can be followed across two or more systems using the same identifiers.

  6. Forward records to a central platform for analysis

    Send the records to a central store where the content can be searched and checked. Open-source options include OpenSearch, whose Security Analytics detectors match ingested logs against Sigma rules and record matches as findings, and Wazuh, which decodes collected logs, compares each event against a ruleset of over 3,000 built-in rules and decoders plus custom rules, and writes alerts for review. Confirm that the decoders or parsers keep the fields from the matrix, not only the message text. The step is complete when a sample event from each system appears in the central platform with every required field intact.

  7. Test a sample of events end to end

    Generate a defined set of test events for each event type, such as a successful login, a failed login, a privilege change, and a configuration change, and trace each one from the source system to the central store. For each event, check the record against the matrix: event type, time, location, source, outcome, and identities. Keep a test record listing the event, the system, the expected fields, the observed fields, and the result. Repeat the test after any configuration change. The test records become the primary evidence an assessor reviews when examining this requirement and interviewing the people who run the logs.

  8. Record the content standard in procedures

    Write the audit record content standard into the audit and accountability procedures so that future system owners follow it. The procedure should include the approved event list, the field mapping matrix, the normalization standard, the required configuration settings, and the steps for testing new systems before they go live. Assign an owner and a review trigger, such as a system change or a new event type. The step is complete when the procedure is approved, distributed to the people who build and operate the systems, and linked from the system security plan.

Which open-source tools produce audit record content

Each tool below produces or handles audit records in a different place in the logging chain. Content under 03.03.02 depends on what each source emits, what the tool adds, and what the team configures before a CUI assessor looks at the records. Treat each card as a starting point for confirming the content in your own environment.

Nextcloud admin audit logging

The admin_audit app adds event detail to Nextcloud's audit trail, written to audit.log in the data directory or to a path set with logfile_audit. For 03.03.02, check that each entry carries the event type, time, source, outcome and the user or object involved, since the app's default coverage is what you get. Confirm which event classes are enabled, that the log path sits on storage covered by your retention and protection controls, and that the log is shipped to your central collector. Nextcloud is licensed under AGPL-3.0-only.

OpenBao API request logging

OpenBao audit devices write a detailed JSON record of every API request and response, including errors, so each secrets operation has a traceable entry. Most sensitive values are hashed with HMAC-SHA256 rather than written in clear text, which keeps secrets out of the log while still allowing matching across entries. Confirm that at least one audit device is enabled before production use, that the device write path cannot fail silently, and that your reviewers know which fields are hashed and cannot be read back. OpenBao is licensed under MPL-2.0.

OpenSearch Security Analytics findings

Security Analytics runs detectors against ingested logs from hosts, network devices and cloud services, using prepackaged or custom Sigma rules. Each match becomes a finding that records the rule, log type and severity, and alerts can go to Slack or email. The correlation engine links findings across log types in a correlation graph. Its output is only as complete as the logs it ingests, so confirm that every source in your CUI boundary feeds the index with the fields your rules need. OpenSearch is licensed under Apache-2.0.

Wazuh decoding and alert generation

Wazuh decodes collected logs and compares each event against a ruleset of over 3,000 built-in rules and decoders plus any custom rules you add. Matching events are written to alerts.log and alerts.json, mapped to MITRE ATT&CK, and forwarded to the Wazuh indexer for dashboard review. Because it only sees what agents collect, confirm that the decoders parse your CUI system log formats, that custom rules cover your own applications, and that the alert outputs are retained as the records your policy requires. Wazuh is licensed under GPL-2.0-only.

What meeting 03.03.02 costs in money and effort

This table compares the main cost components of making audit records carry the required content under 03.03.02, who is paid for each, whether it recurs, and what moves it up or down. No prices or durations are supplied for this requirement, so use the table to structure a quote request and to see where spend concentrates.

Cost componentOne-time or recurringWhat drives it upWhat lowers it
Tooling and licensesRecurring if commercial; one-time setup otherwiseCommercial SIEM or log platform priced per volume or per source; add-on modules for correlationSelf-hosted open-source tools remove license spend but not hosting, storage or operating staff time
Operating spend for self-hosted toolingRecurringLog volume, retention length, index storage, number of nodes needed for search and alertingRight-size retention to the records retention policy; confirm sizing with the vendor before purchase
Engineering time to map and configure fieldsOne-time, with periodic reworkNumber of event types in scope; heterogeneous log formats; missing fields in source recordsA single schema for event type, time, source, outcome and identity; reuse mappings across similar systems
Configuration of each source systemOne-time per source, plus change-driven updatesNumber of systems and applications; vendor-managed systems that expose few fieldsStandard logging templates for each system class; include audit record content checks in change control
Third-party SaaS with limited fieldsRecurring if a paid tier is needed for richer logsFixed log schemas that omit outcome, source or identity; no export or API accessConfirm required fields before contract signing; document compensating records where a field is absent
Evidence upkeep between assessmentsRecurringFrequent configuration changes; no owner for the content standard; manual screenshotsKeep exported configuration and sample records under version control, refreshed on a schedule
External testing or reviewRecurring or per engagementScope covering many systems; first-time readiness work; remediation roundsFixed scope agreed in writing; pre-assessment review of sample records before the formal assessment
Assessor samplingRecurring at each assessmentNumber of systems and record types the assessor selects; gaps found in interviewsPrepare a repeatable sample package showing content for each event type across sources

Evidence that passes an audit record content review

An assessor testing 03.03.02 wants to see that the organization decided what each audit record must contain, that the systems produce records with those elements, and that the decisions and configurations are kept in step with each other. The cards below cover the artifacts that show each link in that chain, and how to keep each one current between assessments.

Written list of auditable events

This is the organization's own list of event types that the systems must record, and it is the starting point the assessor uses to check the content requirement. Each entry should name the event, the systems it applies to and the owner who approved it. Keep the list under version control and record each revision with its date and reason. When a new system or application is added, check whether its events belong on the list before its records are reviewed. Confirm with your assessor how they expect the list to relate to the separate 03.03.01 event logging decisions.

Audit record content standard

A content standard states the seven elements every record must carry: the type of event, when and where it occurred, its source, its outcome, the identities involved and any additional information the organization requires. It maps each element to the field name used by each log source, so an assessor can trace a field in a sample record back to the requirement. Review the mapping whenever a log source is upgraded, because field names often change between versions. Ask your assessor whether they want the standard to be a single document or a set of per-system mappings.

System design and configuration exports

Configuration exports show which audit settings are enabled on each in-scope system, including the fields and levels of detail being logged. Export them directly from the system rather than from a summary, and note the date and the person who ran the export. Re-export after any change to logging settings, and keep the previous export so the difference can be shown. Design documentation should explain why each enabled field is there. Be careful that configuration files for some tools hold credentials or sensitive values, so store exports under the same access controls as the logs themselves.

Sample audit records from each system

Samples prove that the configuration produces the content it promises. Pull a set of records from each in-scope system and check that all seven elements are visible in each sample, including the identity and outcome fields. Samples should cover both successful and failed events, because failures often omit fields that successes include. Refresh samples on a schedule the organization sets and after significant changes, and keep a record of which samples were taken and by whom. Redact personal data where needed, but do not remove the fields the assessor needs to see.

Logging configuration change history

Change history shows who altered the audit configuration, when, and under which change request. An assessor uses it to confirm that content was not quietly reduced after the initial design. Keep the history in the change management system or in version control for configuration files, and tie each entry to an approval. Review entries against the content standard to find any change that dropped a required element. Ask the assessor how far back they expect the history to reach, since this depends on the organization's own change records and the assessment scope.

End-to-end test records

End-to-end tests perform a known action, such as a test login or a test change to a protected object, and then confirm that the resulting record appears with all required elements. The test record should show the trigger, the time it ran, the record produced and a pass or fail result. Run these tests after configuration changes and keep the results with the change ticket. A test that never fails is less convincing than one that caught a missing field and was fixed, so retain results of earlier failures as well.

Who owns audit record content and who can help

Your team owns what the audit records must say and whether the result meets the requirement. That starts with the list of auditable events, which defines the event types that the records must cover, and it extends to the content standard that tells engineers which fields every record needs: the type of event, when and where it occurred, its source, its outcome, and the identities involved. Your team also makes the configuration decisions that determine whether those fields exist in practice, and it keeps the evidence that shows the decisions were made and reviewed.

  • The event list: Your security owner decides which event types are in scope and documents why, since the list drives what gets logged under 03.03.01 and 03.03.02.
  • The content standard: Your team defines the minimum fields for each record and the additional information required for each event type.
  • Configuration decisions: Your platform staff chooses logging levels, retention and where records are sent, and approves changes through your change process.
  • Risk and contract decisions: Your leadership accepts residual risk and confirms how the contracting federal agency's requirements apply to your environment.
  • Evidence: Your team keeps the policy, the field mapping, sample records and review records that an assessor will ask to see.

Check that each of these items has a named owner and a current document before an assessor arrives.

Questions buyers ask about audit record content

How much effort does 03.03.02 audit record content take?

The effort depends mostly on how many systems hold CUI, how many log sources feed each one, and how many event types must be captured with complete content. Requirement 03.03.02 asks that each audit record show the type of event, when and where it occurred, its source, its outcome, the identities involved, and any additional information needed. For a small enclave with one application and one identity provider, the work is largely confirming the fields. For a larger environment, the team must map each log source to those fields, close gaps where a source omits the outcome or the user identity, and test samples from every source. No effort figure is supplied for this requirement, so ask any partner or internal lead for a written estimate tied to a named system list and log source inventory.

How long does it take to meet 03.03.02?

The duration depends on scope, and the timeline is set by how many log sources need changes and how long testing takes, not by the requirement text itself. Work usually moves in this order: confirm the event list and required fields, configure each source, test that records contain every field, and collect evidence for the assessor. Delays often come from application teams that must change logging code, from vendors that do not expose the outcome or identity fields, and from waiting for a test window in production-like systems. No duration is supplied for this work, so request a written timeline in any proposal that lists the systems, the sources, the test plan and the milestones that the client must approve.

Can our own team implement 03.03.02 without outside help?

Yes, a team can do this internally if it has log engineering skills, access to every log source, and time to test. The work requires knowing how each platform writes audit events, how to change its configuration, and how to verify the output field by field. Teams usually struggle less with the configuration than with proving completeness across many sources and keeping the evidence current after upgrades. If the internal team lacks those skills or the calendar, an implementation partner can prepare the configuration and test evidence. Whatever the choice, the organization keeps ownership of the requirement and its evidence.

What does our team need to provide for an implementation engagement?

The organization must provide access, decisions and reviewers. Expect to supply:

  • Administrative access to each in-scope system and its logging configuration, through an approved access path.
  • A named owner for the list of auditable events, who approves which event types are logged and which fields they carry.
  • Sample audit records from production or a representative test environment, so the team can check that outcome, identity and time fields appear.
  • Sign-off on test results, change windows and any change to a business application.

Without these inputs, the work stalls at the configuration stage.

Can an implementation partner certify that we meet 03.03.02?

No. An implementation partner prepares systems, configurations and evidence, but it cannot declare that the organization complies. Compliance for a contract is determined through the process of the federal agency that holds the contract or agreement, and NIST states that application and compliance issues rest with that agency. Where an assessment is required, such as a DoD assessment, the organization's assessor or the government's assessment body performs it. DeployOpen does not issue audit reports, attestations or certifications. Ask any partner to state in writing which evidence it will deliver and which parties will judge compliance.

Which open-source tools help with audit record content, and what do they not do?

Several open-source platforms produce or process records with the required fields, but none makes an environment compliant on its own. Nextcloud's admin_audit app logs additional event details to audit.log, and its path can be changed with logfile_audit. OpenBao's audit devices keep a detailed JSON log of each API request and response, with most sensitive values hashed with HMAC-SHA256. Wazuh decodes collected logs against more than 3,000 built-in rules and decoders and writes alerts for review. OpenSearch Security Analytics applies Sigma rules to ingested logs and correlates findings across log types. These tools do not decide which events the organization must log, do not guarantee every source includes outcome and identity fields, and do not replace the review of samples. Confirm each platform's field output in your own version before relying on it, using the Wazuh ruleset documentation and the other vendor documentation.

How does the Rev. 2 wording change the work for 03.03.02?

The Rev. 3 requirement is organized differently, but the core expectation of complete audit content remains the same for practical purposes. NIST's change analysis traces 03.03.02 to Rev. 2 requirement 3.3.2 and classifies the change as significant, with more detail and foundational tasks. Rev. 3 also dropped the split between basic and derived requirements, so the assessment now looks at the requirement as a whole. The catch is which version your contract cites. CMMC Level 2 still uses the Rev. 2 requirements, and the CMMC scoring methodology gives 3.3.2 (AU.L2-3.3.2) 3 points. A DFARS deviation dated 3 September 2026 names Rev. 2 explicitly, while a proposed FAR rule would move contractors to Rev. 3. Confirm which version applies to each contract before you scope the evidence.

How DeployOpen prepares audit record content for assessment

DeployOpen works on 03.03.02 inside the client's own environment, shaping the audit records that self-hosted platforms produce so each record shows the event type, time, location, source, outcome and identities involved. The organization owns the requirement and the decisions behind it, while DeployOpen prepares the systems, configuration and evidence that an independent assessor will examine, interview against and test.

How we scope

  • Agree in writing which systems, applications and log sources fall under the 03.03.02 work before any configuration begins.
  • Confirm with the client which auditable events the organization has defined, since the assessment examines that list directly.
  • Record which parts of 03.03.02 the organization will own, such as its audit policy and review roles, and which parts DeployOpen will prepare.

How we build

  • Configure each in-scope platform to write audit records that carry event type, timestamp, location, source, outcome and actor identity.
  • Enable additional event detail where the platform supports it, for example the admin_audit app in Nextcloud, and confirm where records are written.
  • Test sample events end to end to confirm that each required field appears in the record as the platform stores it.

How we hand over

  • Provide a written record content specification mapping each required element to the platform setting and log location that produces it.
  • Deliver sample audit records from each in-scope system, with the configuration files and design notes an examiner would ask to see.
  • Document the test steps and results so the client can repeat them during internal checks or before an assessment.

How we support

  • Offer ongoing support, upgrades and continuous testing as a retainer when platforms change or new log sources are added.
  • Re-check record content after platform upgrades, since field names and default settings can change between versions.
  • Confirm with the client's assessor which evidence format they expect, and adjust the handover package before the assessment starts.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.