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
Frequently Asked Questions
How do we detect silent data corruption?
Should we enable database auditing for all tables?
How do we handle data integrity issues discovered after the fact?
Track SOC 2 compliance in one place
AuditFront helps you manage every SOC 2 control, collect evidence, and stay audit-ready.
Start Free Assessment