Clio implements multiple layers of security to protect sensitive red team operation data. This document outlines the key security features implemented throughout the application.
-
Strong Password Policy:
- Minimum 12 characters
- Must include uppercase and lowercase letters
- Must include numbers
- Must include special characters
- Cannot be just letters followed by numbers
- Cannot contain repeated characters (3 or more times)
-
Password Hashing:
- Implemented using PBKDF2 with 310,000 iterations
- 32-byte cryptographically secure salt per password
- SHA-256 hash function
-
First Login Password Change:
- Users must change their password on first login
- Temporary passwords expire after first use
-
JWT-based Authentication:
- Signed JSON Web Tokens
- Automatic refresh for tokens approaching expiration
- Server instance verification to prevent token reuse across deployments
-
Redis-backed Session Store:
- Sessions encrypted using AES-256-GCM
- 8-hour session duration
- Server-side session validation
- Automatic cleanup of expired sessions
-
Admin Session Controls:
- Force logout capabilities for all sessions
- Active session monitoring and management
- Session revocation for compromised accounts
-
API Key Authentication:
- Secure API key generation with prefix and secret
- Key hash verification (only hashes stored in database)
- Per-key permission system with fine-grained access control
- Automatic key rotation capabilities
- Key expiration settings
- Usage auditing and tracking
-
Rate Limiting:
- Per-API key rate limiting to prevent abuse
- Configurable limits for different endpoints
- Automatic throttling for suspicious activity
-
TLS Encryption:
- End-to-end encryption for all service communications
- Strong cipher suites and TLS 1.2+ only
- Self-signed or custom certificates with automatic setup
- Perfect forward secrecy for all connections
-
Secure Headers:
- Implemented via Helmet.js
- Content Security Policy (CSP)
- X-Content-Type-Options
- X-Frame-Options
- Strict-Transport-Security (HSTS)
- Referrer-Policy enforcement
-
Input Sanitization and Validation:
- All user inputs sanitized to prevent injection attacks
- Field-specific validation and sanitization rules
- Protection against common injection patterns
-
CSRF Protection:
- Unique CSRF tokens for each session
- Double-submit cookie pattern
- Token validation for all state-changing operations
- CSRF bypass protection for API requests with separate authentication
-
Storage Security:
- Redis data encrypted at rest
- PostgreSQL data persistence with volume isolation
- Evidence file protection with hash verification
-
Comprehensive Event Logging:
- All security events recorded
- Authentication attempts tracked
- API key usage logged
- Admin actions audited
- Log rotation and retention policies
-
Sensitive Data Handling:
- Automatic redaction of sensitive information in logs
- Secrets management and protection
- Secure display and masking in UI
-
Container Security:
- Updated base images with security patches
- Minimal container permissions
- Internal network isolation
- No unnecessary exposed ports
-
Dependency Management:
- Regular updates for all dependencies
- Vulnerability scanning integration
- Patch management process