Aller au contenu principal

Security Operational Procedures

Application: Aaperture
Version: 1.0
Last Updated: 2025-01-26
Effective Date: 2025-01-26

1. Overview

This document outlines the operational security procedures for Aaperture, including monitoring, incident response, secret rotation, and audit procedures. These procedures ensure continuous security and compliance with CASA Tier 2 requirements.

2. Security Monitoring

2.1 Real-Time Monitoring

Security Alert System:

  • Automated detection of suspicious activities
  • Real-time alerting for security incidents
  • Email notifications for HIGH/CRITICAL incidents
  • Integration with application logging

Monitored Events:

  • Multiple failed authentication attempts (threshold: 5)
  • Rate limit violations (threshold: 3)
  • CSRF violations
  • Permission violations
  • Suspicious API usage patterns

Implementation:

  • Service: SecurityAlertsService
  • File: backend/src/security/security-alerts.service.ts
  • Alert levels: INFO, WARNING, HIGH, CRITICAL

2.2 Logging Procedures

Security Event Logging:

  • All authentication attempts (success and failure)
  • OAuth token operations (without token values)
  • Email sending operations (metadata only)
  • Security violations and incidents
  • Administrative actions

Log Format:

  • Structured logging with context
  • User ID, timestamp, action, result
  • No sensitive data in logs (tokens, passwords, email content)

Log Retention:

  • Application logs: 30 days
  • Security logs: 90 days
  • Audit logs: 1 year

2.3 Monitoring Dashboard

Key Metrics:

  • Failed authentication attempts per hour
  • Rate limit violations per hour
  • CSRF violations per day
  • Email sending success rate
  • API error rate

Alert Thresholds:

  • INFO: Normal operations
  • WARNING: Minor anomalies
  • HIGH: Security concerns requiring attention
  • CRITICAL: Immediate security threat

3. Incident Response Procedures

3.1 Incident Classification

CRITICAL:

  • Unauthorized access to user data
  • OAuth token compromise
  • Database breach
  • Active attack in progress

HIGH:

  • Multiple failed authentication attempts from same source
  • Suspicious API usage patterns
  • Rate limit violations indicating potential attack
  • Security configuration errors

WARNING:

  • Single failed authentication attempt
  • Minor permission violations
  • Non-critical security warnings

INFO:

  • Normal security events
  • Routine operations
  • Successful security checks

3.2 Incident Response Steps

Step 1: Detection

  • Automated detection via security alerts
  • Manual review of security logs
  • User reports of suspicious activity
  • External security notifications

Step 2: Assessment

  • Determine incident severity
  • Identify affected systems and users
  • Assess potential impact
  • Classify incident type

Step 3: Containment

  • Isolate affected systems if necessary
  • Revoke compromised credentials
  • Block suspicious IP addresses
  • Disable affected user accounts if needed

Step 4: Investigation

  • Review security logs
  • Analyze attack patterns
  • Identify root cause
  • Document findings

Step 5: Remediation

  • Fix security vulnerabilities
  • Update security configurations
  • Rotate compromised secrets
  • Restore affected systems

Step 6: Recovery

  • Verify system security
  • Restore normal operations
  • Monitor for recurrence
  • User notification if required

Step 7: Post-Incident

  • Document incident details
  • Update security procedures
  • Conduct lessons learned review
  • Update security measures

3.3 Communication Procedures

Internal Communication:

  • Immediate notification to security team for CRITICAL incidents
  • Email alerts for HIGH/CRITICAL incidents
  • Status updates during incident response
  • Post-incident report

External Communication:

  • User notification if data breach occurred
  • Regulatory notification if required (GDPR)
  • Public disclosure if necessary

4. Secret Rotation Procedures

4.1 OAuth Client Credentials

Rotation Frequency: As needed (when compromised or periodically)

Procedure:

  1. Generate new OAuth client ID and secret in Google Cloud Console
  2. Update environment variables:
    • GOOGLE_CLIENT_ID (Web)
    • GOOGLE_IOS_CLIENT_ID (iOS, if mobile app is used)
    • GOOGLE_ANDROID_CLIENT_ID (Android, if mobile app is used)
    • GOOGLE_CLIENT_SECRET
  3. Restart application services
  4. Users will need to reconnect Google Calendar (OAuth flow)
  5. Old credentials can be disabled in Google Cloud Console

Files:

  • Environment variables: .env (production)
  • Configuration: backend/src/auth/google-oauth.service.ts

4.2 Encryption Key

Rotation Frequency: Annually or when compromised

Procedure:

  1. Generate new encryption key:
    node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
  2. Decrypt existing data with old key
  3. Encrypt data with new key
  4. Update environment variable: ENCRYPTION_KEY
  5. Restart application services
  6. Verify data decryption works
  7. Archive old key securely (for data recovery if needed)

Files:

  • Environment variable: ENCRYPTION_KEY
  • Service: backend/src/common/encryption.service.ts

Important: Old key must be retained for decrypting existing data. Migration script may be needed.

4.3 JWT Secret

Rotation Frequency: Annually or when compromised

Procedure:

  1. Generate new JWT secret (minimum 32 characters)
  2. Update environment variable: JWT_SECRET
  3. Restart application services
  4. All users will need to re-authenticate (tokens invalidated)
  5. Verify authentication works

Files:

  • Environment variable: JWT_SECRET
  • Strategy: backend/src/auth/jwt.strategy.ts

4.4 Database Credentials

Rotation Frequency: Quarterly or when compromised

Procedure:

  1. Create new database user with new password
  2. Update environment variables:
    • DATABASE_URL or individual credentials
  3. Test connection with new credentials
  4. Update application configuration
  5. Restart application services
  6. Verify database operations
  7. Disable old database user

Files:

  • Environment variable: DATABASE_URL
  • Configuration: Database connection settings

4.5 Other Secrets

SMTP Credentials:

  • Rotation: As needed
  • Update: OVH_SMTP_USER, OVH_SMTP_PASSWORD

Cloudflare R2 Credentials:

  • Rotation: As needed
  • Update: R2_ACCESS_KEY_ID, R2_SECRET_ACCESS_KEY

5. Audit Procedures

5.1 Security Audit Schedule

Daily:

  • Review security alerts
  • Check for failed authentication attempts
  • Monitor rate limit violations
  • Review error logs

Weekly:

  • Review security event summary
  • Check for suspicious patterns
  • Review user access patterns
  • Verify backup procedures

Monthly:

  • Comprehensive security log review
  • User access review
  • Permission audit
  • Configuration review

Quarterly:

  • Full security assessment
  • Policy review
  • Procedure updates
  • Training review

5.2 Audit Checklist

Authentication and Authorization:

  • Review failed authentication attempts
  • Verify user access controls
  • Check permission assignments
  • Review OAuth token usage

Data Protection:

  • Verify encryption of sensitive data
  • Check token storage security
  • Review data retention policies
  • Verify data deletion procedures

API Security:

  • Review SMTP email sending usage
  • Check scope validation
  • Verify error handling
  • Review rate limiting

Infrastructure:

  • Verify HTTPS/TLS configuration
  • Check security headers
  • Review CORS configuration
  • Verify environment variable security

Monitoring:

  • Review security alerts
  • Check logging completeness
  • Verify alert thresholds
  • Review incident response

5.3 Audit Documentation

Audit Report Contents:

  • Date and scope of audit
  • Findings and observations
  • Security incidents during period
  • Recommendations
  • Action items and timelines

Audit Report Retention:

  • Quarterly reports: 2 years
  • Annual reports: 5 years
  • Incident reports: Permanent

6. Backup and Recovery Procedures

6.1 Database Backups

Backup Frequency:

  • Daily automated backups
  • Weekly full backups
  • Monthly archive backups

Backup Storage:

  • Encrypted backups
  • Off-site storage
  • Multiple backup copies
  • Retention: 30 days (daily), 90 days (weekly), 1 year (monthly)

Recovery Testing:

  • Monthly recovery test
  • Verify backup integrity
  • Test recovery procedures
  • Document recovery time

6.2 Configuration Backups

Backed Up Configuration:

  • Environment variables (encrypted)
  • Application configuration
  • Security settings
  • OAuth client configurations

Backup Storage:

  • Secure configuration repository
  • Encrypted storage
  • Access control
  • Version control

6.3 Recovery Procedures

Database Recovery:

  1. Identify backup to restore
  2. Verify backup integrity
  3. Restore database from backup
  4. Verify data integrity
  5. Restart application services
  6. Test application functionality

Configuration Recovery:

  1. Identify configuration version
  2. Restore from secure repository
  3. Update environment variables
  4. Restart application services
  5. Verify configuration

7. Email Sending Operational Procedures

7.1 SMTP Email Sending Monitoring

Daily Checks:

  • Monitor SMTP email sending success rate
  • Check for SMTP configuration errors
  • Review email delivery time
  • Verify SMTP connection health

Weekly Review:

  • Review email sending success rate
  • Check for users with email sending issues
  • Verify SMTP configuration effectiveness
  • Review error patterns

7.2 Email Sending Metrics

Metrics to Monitor:

  • Email sending success rate
  • SMTP error rate
  • Email delivery time
  • Failed email attempts

Alert Thresholds:

  • WARNING: Success rate < 95%
  • HIGH: Success rate < 90%
  • CRITICAL: Success rate < 80%

7.3 SMTP Configuration Procedures

SMTP Configuration:

  1. Verify SMTP credentials are configured
  2. Test SMTP connection
  3. Log SMTP configuration status
  4. Alert if SMTP unavailable

Before Each Email Send:

  1. Verify SMTP transporter is available
  2. Validate email content
  3. Proceed with email send via SMTP

8. Access Control Procedures

8.1 User Access Management

New User Onboarding:

  1. User registration with email verification
  2. Account activation required
  3. Default permissions assigned
  4. Security policies communicated

User Access Review:

  • Quarterly review of active users
  • Review of permission assignments
  • Verification of account status
  • Removal of inactive accounts

8.2 Administrative Access

Administrator Account Management:

  • Minimal number of admin accounts
  • Strong password requirements
  • Two-factor authentication (planned)
  • Regular access reviews

Administrative Action Logging:

  • All admin actions logged
  • Audit trail for sensitive operations
  • Regular review of admin logs
  • Alert on suspicious admin activity

9. Security Training and Awareness

9.1 Security Training

Topics Covered:

  • Security policies and procedures
  • Incident response procedures
  • Secure coding practices
  • Data protection requirements

Training Frequency:

  • Initial training for new team members
  • Annual refresher training
  • Updates when policies change
  • Incident-based training

9.2 Security Awareness

Regular Communications:

  • Security updates and alerts
  • Policy changes
  • Incident summaries (anonymized)
  • Best practices reminders

10. Compliance Monitoring

10.1 CASA Tier 2 Compliance

Monthly Checks:

  • Verify restricted scope usage
  • Review OAuth token security
  • Check scope validation
  • Review error handling

Quarterly Review:

  • Full compliance assessment
  • Policy compliance verification
  • Procedure effectiveness review
  • Update documentation as needed

10.2 GDPR Compliance

Regular Checks:

  • User data access controls
  • Data retention policies
  • User rights implementation
  • Privacy policy updates

11. Procedure Updates

11.1 Update Triggers

  • Security incidents
  • Policy changes
  • Technology changes
  • Compliance requirements
  • Best practice updates

11.2 Update Process

  1. Identify need for update
  2. Draft updated procedures
  3. Review by security team
  4. Approval process
  5. Communication to team
  6. Implementation
  7. Training if needed

Document Version: 1.0
Last Updated: 2025-01-26
Next Review: 2025-04-26