Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

SOC 2 Type II Compliance

This guide covers General Bots’ SOC 2 Type II compliance implementation, including security controls, audit logging, evidence collection, and compliance reporting.

Overview

SOC 2 Type II is a security framework developed by the American Institute of CPAs (AICPA) that evaluates how organizations manage customer data based on five Trust Service Criteria:

  1. Security - Protection against unauthorized access
  2. Availability - System accessibility as agreed
  3. Processing Integrity - Accurate and timely processing
  4. Confidentiality - Protection of confidential information
  5. Privacy - Personal information handling

General Bots implements controls across all five criteria to ensure enterprise-grade security.

Trust Service Criteria Implementation

Security (Common Criteria)

ControlImplementationStatus
CC1.1 - Integrity & EthicsCode of conduct, security policies
CC2.1 - CommunicationSecurity awareness training
CC3.1 - Risk AssessmentQuarterly risk assessments
CC4.1 - MonitoringContinuous security monitoring
CC5.1 - Control ActivitiesAccess controls, encryption
CC6.1 - Logical AccessRBAC, MFA, session management
CC7.1 - System OperationsChange management, incident response
CC8.1 - Change ManagementDocumented change procedures
CC9.1 - Risk MitigationVendor management, BCP

Availability

ControlImplementation
A1.1 - Capacity ManagementAuto-scaling, resource monitoring
A1.2 - Recovery OperationsAutomated backups, disaster recovery
A1.3 - Recovery TestingQuarterly DR tests

Processing Integrity

ControlImplementation
PI1.1 - Processing AccuracyInput validation, data integrity checks
PI1.2 - Processing CompletenessTransaction logging, audit trails
PI1.3 - Processing TimelinessSLA monitoring, performance metrics

Confidentiality

ControlImplementation
C1.1 - Confidential InformationData classification, encryption at rest
C1.2 - DisposalSecure deletion, data retention policies

Privacy

ControlImplementation
P1.1 - NoticePrivacy policy, cookie consent
P2.1 - Choice and ConsentOpt-in/opt-out mechanisms
P3.1 - CollectionData minimization
P4.1 - Use and RetentionPurpose limitation, retention schedules
P5.1 - AccessData export (GDPR Article 15)
P6.1 - DisclosureThird-party data sharing controls
P7.1 - QualityData accuracy verification
P8.1 - MonitoringPrivacy impact assessments

Audit Logging

Event Categories

General Bots logs the following security-relevant events:

CategoryEvents Logged
AuthenticationLogin, logout, MFA events, password changes
AuthorizationPermission grants, role assignments, access denials
Data AccessRead operations on sensitive data
Data ModificationCreate, update, delete operations
AdministrativeConfiguration changes, user management
SecurityFailed auth attempts, suspicious activity

Log Structure

{
  "id": "uuid",
  "timestamp": "2025-01-21T10:30:00Z",
  "organization_id": "org-uuid",
  "actor_id": "user-uuid",
  "actor_email": "user@company.com",
  "actor_ip": "192.168.1.100",
  "action": "role_assign",
  "resource_type": "role",
  "resource_id": "role-uuid",
  "resource_name": "admin",
  "details": {
    "description": "Assigned role 'admin' to user",
    "before_state": null,
    "after_state": {"role": "admin"},
    "changes": [{"field": "role", "old_value": null, "new_value": "admin"}]
  },
  "result": "success",
  "metadata": {}
}

Log Retention

Log TypeRetention PeriodStorage
Security Events7 yearsImmutable storage
Access Logs2 yearsStandard storage
Application Logs90 daysStandard storage
Debug Logs30 daysEphemeral storage

Accessing Audit Logs

GET /api/compliance/audit-logs
Authorization: Bearer <token>

Query parameters:

ParameterDescription
organization_idFilter by organization
actor_idFilter by user
actionFilter by action type
resource_typeFilter by resource type
start_dateStart of date range
end_dateEnd of date range
pagePage number
per_pageResults per page

Security Controls

Access Control

Multi-Factor Authentication (MFA)

  • TOTP-based authentication
  • Hardware security key support (FIDO2/WebAuthn)
  • SMS backup codes (optional)

Session Management

  • Configurable session timeout (default: 8 hours)
  • Concurrent session limits
  • Session invalidation on password change
  • IP-based session binding (optional)

Password Policy

  • Minimum 12 characters
  • Complexity requirements
  • Password history (last 10)
  • Account lockout after 5 failed attempts

Encryption

Data at Rest

  • AES-256 encryption for all stored data
  • Encrypted database columns for PII
  • Encrypted file storage (MinIO with server-side encryption)

Data in Transit

  • TLS 1.3 for all connections
  • Perfect Forward Secrecy
  • HSTS with preloading
  • Certificate pinning (mobile apps)

Network Security

  • Web Application Firewall (WAF)
  • DDoS protection
  • Rate limiting per endpoint
  • IP allowlisting (enterprise)

Compliance Reporting

Generating Compliance Reports

POST /api/compliance/reports
Authorization: Bearer <token>
Content-Type: application/json

{
  "report_type": "soc2",
  "period_start": "2025-01-01",
  "period_end": "2025-03-31",
  "criteria": ["security", "availability", "confidentiality"]
}

Report Types

TypeDescriptionFrequency
soc2Full SOC 2 compliance reportQuarterly
access_reviewUser access reviewMonthly
vulnerabilityVulnerability assessmentWeekly
incidentSecurity incident reportAs needed

Evidence Collection

The compliance module automatically collects evidence for audit:

User Access Evidence

  • Current user list with roles
  • Permission assignment history
  • Access review sign-offs

Change Management Evidence

  • Deployment logs
  • Configuration change records
  • Approval workflows

Security Evidence

  • Vulnerability scan results
  • Penetration test reports
  • Security training completion

Exporting Evidence

GET /api/compliance/evidence/export
Authorization: Bearer <token>

Query parameters:

ParameterDescription
criteriaSOC 2 criteria (CC6.1, A1.1, etc.)
period_startEvidence period start
period_endEvidence period end
formatExport format (json, csv, pdf)

Incident Response

Incident Classification

SeverityDescriptionResponse Time
CriticalData breach, system compromise15 minutes
HighService outage, failed controls1 hour
MediumSuspicious activity, minor issues4 hours
LowInformational, potential risk24 hours

Incident Response Process

  1. Detection - Automated monitoring or manual report
  2. Triage - Classify severity, assign responder
  3. Containment - Isolate affected systems
  4. Eradication - Remove threat
  5. Recovery - Restore services
  6. Lessons Learned - Post-incident review

Incident Logging

POST /api/compliance/incidents
Authorization: Bearer <token>
Content-Type: application/json

{
  "title": "Suspicious login activity detected",
  "severity": "medium",
  "description": "Multiple failed login attempts from unusual location",
  "affected_systems": ["authentication"],
  "detected_at": "2025-01-21T10:00:00Z",
  "detected_by": "automated_monitoring"
}

Vendor Management

Third-Party Risk Assessment

All vendors handling customer data undergo:

  • Security questionnaire
  • SOC 2 report review (if available)
  • Contract review for security requirements
  • Annual reassessment

Key Vendors

VendorServiceSOC 2Data Access
PostgreSQLDatabaseN/A (self-hosted)Full
MinIOObject StorageN/A (self-hosted)Full
QdrantVector DBN/A (self-hosted)Full
RedisCachingN/A (self-hosted)Session data

Business Continuity

Recovery Objectives

MetricTargetCurrent
RTO (Recovery Time Objective)4 hours2 hours
RPO (Recovery Point Objective)1 hour15 minutes
MTTR (Mean Time to Recovery)2 hours45 minutes

Backup Strategy

Data TypeFrequencyRetentionLocation
DatabaseEvery 15 minutes30 daysOff-site
FilesHourly90 daysOff-site
ConfigurationOn changeForeverGit
LogsDailyPer retention policyOff-site

Disaster Recovery

  • Multi-region deployment capability
  • Automated failover
  • Quarterly DR testing
  • Documented recovery procedures

Configuration

Enabling SOC 2 Features

Add to your .env:

SOC2_COMPLIANCE_ENABLED=true
SOC2_AUDIT_LOG_RETENTION_DAYS=2555
SOC2_EVIDENCE_COLLECTION=true
SOC2_INCIDENT_AUTO_CREATE=true

Compliance Dashboard

Access the compliance dashboard at:

/admin/compliance

Features:

  • Real-time compliance status
  • Control effectiveness metrics
  • Open findings and remediation
  • Upcoming audit timeline

API Reference

Get Compliance Status

GET /api/compliance/status
Authorization: Bearer <token>

Response:

{
  "overall_status": "compliant",
  "last_assessment": "2025-01-15T00:00:00Z",
  "criteria": {
    "security": {"status": "compliant", "controls_passed": 45, "controls_total": 45},
    "availability": {"status": "compliant", "controls_passed": 12, "controls_total": 12},
    "confidentiality": {"status": "compliant", "controls_passed": 8, "controls_total": 8}
  },
  "open_findings": 0,
  "next_audit": "2025-04-01"
}

List Control Evidence

GET /api/compliance/controls/{control_id}/evidence
Authorization: Bearer <token>

Create Finding

POST /api/compliance/findings
Authorization: Bearer <token>
Content-Type: application/json

{
  "control_id": "CC6.1",
  "title": "MFA not enforced for admin accounts",
  "severity": "high",
  "description": "Admin accounts can bypass MFA requirement",
  "remediation_plan": "Update policy to require MFA for all admin roles",
  "due_date": "2025-02-01"
}

Best Practices

For Administrators

  1. Enable all logging - Ensure comprehensive audit trails
  2. Regular access reviews - Monthly review of user permissions
  3. Monitor dashboards - Daily check of compliance status
  4. Document exceptions - Record all policy exceptions with justification
  5. Test controls - Quarterly verification of control effectiveness

For Developers

  1. Follow secure coding standards - No hardcoded secrets, input validation
  2. Use security modules - SafeCommand, sql_guard, error_sanitizer
  3. Log security events - Use audit logging for sensitive operations
  4. Handle errors properly - Never expose internal details

For Organizations

  1. Assign compliance owner - Dedicated person for SOC 2
  2. Schedule regular audits - Annual Type II assessment
  3. Train employees - Security awareness program
  4. Maintain documentation - Keep policies current
  5. Plan for incidents - Test incident response procedures