Skip to content
AuditFront
PI1.5 SOC 2

SOC 2 PI1.5: Processing Integrity - Storage Inputs and Outputs Completely and Accurately

What This Control Requires

The entity implements policies and procedures to store inputs, items in processing, and outputs completely, accurately, and timely to meet the entity's objectives. Stored data is protected from unauthorized modification and is available when needed.

In Plain Language

Data does not just lose integrity during processing - it can be corrupted, partially written, or silently modified while sitting in your database or file system. Hardware failures, software bugs, incomplete transactions, and unauthorised changes can all compromise data at rest without anyone noticing until the damage is done.

You need controls that protect stored data from corruption and tampering, verify integrity through checksums and validation, ensure write operations complete fully (no partial writes), and maintain audit trails showing who changed what and when. This covers databases, file systems, object storage, message queues - everything that holds data persistently.

Auditors look for database integrity controls, corruption detection mechanisms, audit logging on critical data, access restrictions on stored data, and evidence that you actually monitor for integrity violations rather than hoping they do not happen.

How to Implement

Set up database integrity controls: referential integrity constraints, data type enforcement, check constraints for valid ranges, ACID transaction management, and automated integrity checks. Use triggers or application logic to enforce business rules on stored data. These are your first line of defence against bad data persisting in your systems.

For file storage, implement checksums to detect corruption, write verification for critical data, journaling filesystems to prevent partial write corruption, and object storage with built-in integrity verification (S3 ETags, Azure Blob checksums, etc.). Run periodic checksum comparisons against stored data to catch silent corruption.

Enable change tracking and audit trails. Database audit logging should capture who changed what, when, and what the values were before and after. Use change data capture or triggers for critical tables. Store audit logs separately from the data they track so they cannot be tampered with alongside the data.

Restrict who can modify stored data. Implement access controls at both the database and filesystem level. Limit direct database access to authorised administrators and application service accounts. Use application-layer authorisation to control which users can modify specific records. Monitor for unauthorised modification attempts.

Build automated data integrity monitoring. Run scheduled checks verifying that critical data meets expected quality standards, compare checksums on stored files, watch for unexpected data changes, and alert on integrity violations. Do not wait for someone to report a problem.

Have a clear process for when things go wrong. When corruption or unauthorised modification is detected, you need forensic investigation to determine cause and scope, recovery procedures to restore correct data from backups, root cause analysis to prevent recurrence, and a way to notify affected parties. Document every step.

Evidence Your Auditor Will Request

  • Database integrity control configurations including constraints, transactions, and automated checks
  • File storage integrity verification procedures and checksum validation results
  • Data change audit trail configurations showing capture of modifications to critical data
  • Access control configurations restricting unauthorized modification of stored data
  • Data integrity monitoring procedures and records of integrity checks performed

Common Mistakes

  • Database constraints are disabled or not implemented, allowing invalid data to be stored
  • No checksums or integrity verification for stored files, leaving corruption undetected
  • Audit trails for data modifications are not enabled for critical tables or storage
  • Direct database access is broadly granted without appropriate access controls
  • No monitoring for unauthorized data modifications, allowing tampering to go undetected

Related Controls Across Frameworks

Framework Control ID Relationship
ISO 27001 A.8.11 Related
ISO 27001 A.8.5 Partial overlap
nist-csf PR.DS-01 Partial overlap

Frequently Asked Questions

How do we detect silent data corruption?
Use checksums or hash values for critical data and verify them periodically against stored values. Choose storage systems with built-in integrity features (ZFS, cloud storage with object checksums). Add application-level checks that verify consistency across related records. And regularly compare live data against backups to spot unexpected changes. The key word is "silent" - you need proactive detection because by definition nobody is going to report corruption they cannot see.
Should we enable database auditing for all tables?
Auditing everything generates significant overhead and storage costs, so be selective. Focus on tables containing PII, financial records, user accounts and permissions, and system configurations. For high-volume tables where traditional auditing is too resource-heavy, use change data capture instead. The goal is covering your critical data without drowning in logs you will never review.
How do we handle data integrity issues discovered after the fact?
Follow a structured path: determine the scope of affected data, identify the root cause, assess downstream impact (what systems and people consumed the bad data?), restore correct data from backups or alternative sources, verify the fix, notify affected parties, and implement measures to prevent it from happening again. Document everything - the investigation process, the resolution, and the preventive changes. Auditors will want to see that you handled it methodically.

Track SOC 2 compliance in one place

AuditFront helps you manage every SOC 2 control, collect evidence, and stay audit-ready.

Start Free Assessment