Skip to content

Security Patterns

Essential security patterns for building secure applications with Orchestre. These patterns help you implement defense in depth and follow security best practices.

Security Principles

  1. Defense in Depth - Multiple layers of security
  2. Least Privilege - Minimal necessary permissions
  3. Zero Trust - Verify everything, trust nothing
  4. Fail Secure - Secure by default when failures occur
  5. Security by Design - Built-in, not bolted-on

Authentication Patterns

Pattern: Multi-Factor Authentication (MFA)

Context: Enhancing account security beyond passwords

Implementation:

bash
/execute-task "Implement MFA with:
- TOTP (Time-based One-Time Password)
- Backup codes generation
- Recovery flow
- Remember device option
- Audit logging"

Example:

bash
/execute-task "Add TOTP-based MFA:
1. Generate secret on first setup
2. Provide QR code for authenticator apps
3. Verify TOTP code before enabling
4. Generate 10 backup codes
5. Log all MFA events"

Security Considerations:

  • Store secrets encrypted
  • Rate limit verification attempts
  • Invalidate sessions on MFA changes
  • Clear messaging about MFA importance

Pattern: Secure Session Management

Context: Managing user sessions securely

Implementation:

bash
/execute-task "Implement secure session management:
- Cryptographically secure session IDs
- Session rotation on privilege escalation
- Absolute and idle timeouts
- Secure cookie flags
- Session invalidation on logout"

Example:

bash
/execute-task "Create session management with:
- 256-bit random session IDs
- Rotation after login/permission change
- 24h absolute timeout, 30min idle timeout
- httpOnly, secure, sameSite cookie flags
- Redis session store with immediate invalidation"

Authorization Patterns

Pattern: Role-Based Access Control (RBAC)

Context: Managing permissions at scale

Implementation:

bash
/execute-task "Implement RBAC system:
- Role hierarchy definition
- Permission assignment
- Dynamic permission checking
- Admin interface
- Audit trail"

Example:

bash
/execute-task "Create RBAC with roles:
- Admin: Full access
- Editor: Create/edit content
- Viewer: Read-only access
With middleware for route protection
and method-level permission checks"

Pattern: Attribute-Based Access Control (ABAC)

Context: Fine-grained, contextual permissions

Implementation:

bash
/execute-task "Implement ABAC with:
- Policy engine
- Attribute definitions
- Context evaluation
- Policy testing tools
- Performance optimization"

Example:

bash
/execute-task "Create ABAC for document access:
Rules like:
- Users can edit their own documents
- Managers can view team documents
- Documents marked 'public' are readable by all
- Time-based access for contractors"

Input Security Patterns

Pattern: Input Validation Layer

Context: Preventing injection attacks and data corruption

Implementation:

bash
/execute-task "Create comprehensive input validation:
- Schema-based validation
- Type checking and coercion
- Length and format constraints
- Sanitization rules
- Error messaging"

Example:

bash
/execute-task "Implement input validation for user API:
- Email: RFC 5322 compliant
- Password: Min 12 chars, complexity rules
- Username: Alphanumeric, 3-20 chars
- Bio: Max 500 chars, strip HTML
With clear error messages for each rule"

Pattern: SQL Injection Prevention

Context: Protecting database queries from injection

Implementation:

bash
/execute-task "Implement SQL injection prevention:
- Parameterized queries only
- Stored procedure wrapper
- Query builder validation
- Input sanitization
- Query logging and monitoring"

Best Practices:

javascript
// Never do this
const query = `SELECT * FROM users WHERE id = ${userId}`;

// Always use parameterized queries
const query = 'SELECT * FROM users WHERE id = ?';
db.query(query, [userId]);

Data Security Patterns

Pattern: Encryption at Rest

Context: Protecting stored sensitive data

Implementation:

bash
/execute-task "Implement encryption at rest:
- Field-level encryption for PII
- Transparent database encryption
- Key rotation strategy
- Secure key storage (HSM/KMS)
- Backup encryption"

Example:

bash
/execute-task "Encrypt sensitive user data:
- SSN: AES-256-GCM encryption
- Credit cards: Tokenization
- Passwords: Argon2id hashing
- Medical records: Full record encryption
Using AWS KMS for key management"

Pattern: Secure Data Transmission

Context: Protecting data in transit

Implementation:

bash
/execute-task "Implement secure data transmission:
- TLS 1.3 enforcement
- Certificate pinning for mobile
- Perfect forward secrecy
- HSTS headers
- API encryption layer"

API Security Patterns

Pattern: API Rate Limiting

Context: Preventing abuse and ensuring availability

Implementation:

bash
/execute-task "Implement API rate limiting:
- Per-user rate limits
- Per-IP rate limits
- Endpoint-specific limits
- Sliding window algorithm
- Graceful limit communication"

Example:

bash
/execute-task "Create rate limiting with:
- Authenticated: 1000 req/hour
- Anonymous: 100 req/hour
- Auth endpoints: 5 req/minute
- Upload endpoints: 10 req/hour
Using Redis sliding window"

Pattern: API Key Management

Context: Secure API authentication for services

Implementation:

bash
/execute-task "Create API key system:
- Key generation and rotation
- Scope-based permissions
- Usage tracking
- Revocation mechanism
- Key encryption at rest"

Security Monitoring Patterns

Pattern: Security Event Logging

Context: Detecting and investigating security incidents

Implementation:

bash
/execute-task "Implement security logging:
- Authentication events
- Authorization failures
- Data access patterns
- System changes
- Anomaly detection"

Example:

bash
/execute-task "Create security event log with:
- Failed login attempts
- Permission escalation
- Sensitive data access
- Configuration changes
- API key usage
Storing in append-only log with alerting"

Pattern: Intrusion Detection

Context: Identifying potential security breaches

Implementation:

bash
/execute-task "Implement intrusion detection:
- Behavior baselines
- Anomaly detection rules
- Real-time alerting
- Automated responses
- Forensic data collection"

Secure Development Patterns

Pattern: Security Testing Pipeline

Context: Automated security validation

Implementation:

bash
/execute-task "Create security testing pipeline:
- Static code analysis (SAST)
- Dependency vulnerability scanning
- Dynamic testing (DAST)
- Security unit tests
- Penetration test hooks"

Example:

bash
/execute-task "Set up security pipeline with:
- SonarQube for code analysis
- OWASP dependency check
- ZAP for dynamic testing
- Security test suite
- Weekly penetration test runs"

Pattern: Secure Configuration Management

Context: Managing secrets and configuration securely

Implementation:

bash
/execute-task "Implement secure configuration:
- Environment-based configs
- Encrypted secrets storage
- Runtime secret injection
- Configuration validation
- Audit trail"

Common Vulnerability Patterns

Pattern: XSS Prevention

Context: Preventing cross-site scripting attacks

Implementation:

bash
/execute-task "Implement XSS prevention:
- Content Security Policy headers
- Input sanitization
- Output encoding
- Template auto-escaping
- DOM purification"

Pattern: CSRF Protection

Context: Preventing cross-site request forgery

Implementation:

bash
/execute-task "Implement CSRF protection:
- Synchronizer tokens
- Double submit cookies
- SameSite cookie attribute
- Origin header validation
- Custom headers for APIs"

Incident Response Patterns

Pattern: Security Incident Response

Context: Handling security breaches effectively

Implementation:

bash
/orchestrate "Create incident response plan:
- Detection mechanisms
- Escalation procedures
- Containment strategies
- Evidence preservation
- Communication templates"

Pattern: Data Breach Response

Context: Managing data breach scenarios

Implementation:

bash
/orchestrate "Implement data breach response:
- Automated detection
- User notification system
- Password reset enforcement
- Audit log preservation
- Regulatory compliance"

Security Checklist

For every feature, consider:

  • [ ] Authentication: Who can access this?
  • [ ] Authorization: What can they do?
  • [ ] Validation: Is input safe?
  • [ ] Encryption: Is data protected?
  • [ ] Logging: Can we detect abuse?
  • [ ] Error Handling: Do errors leak info?
  • [ ] Rate Limiting: Can it be abused?
  • [ ] Dependencies: Are libraries secure?

Security Anti-Patterns

Anti-Pattern: Security Through Obscurity

Avoid:

javascript
// "Hidden" admin endpoint
app.get('/secret-admin-panel', adminController);

Better:

javascript
// Proper authentication and authorization
app.get('/admin', authenticate, authorize('admin'), adminController);

Anti-Pattern: Trusting Client Data

Avoid:

javascript
// Trusting client-provided role
const role = req.body.role;
if (role === 'admin') { /* admin access */ }

Better:

javascript
// Server-side role verification
const role = await getUserRole(req.user.id);
if (role === 'admin') { /* admin access */ }

Anti-Pattern: Weak Crypto

Avoid:

javascript
// MD5 for passwords
const hash = md5(password);

Better:

javascript
// Modern password hashing
const hash = await argon2.hash(password);

Quick Security Wins

Immediate improvements you can make:

bash
# 1. Add security headers
/execute-task "Add security headers: CSP, HSTS, X-Frame-Options"

# 2. Enable rate limiting
/execute-task "Add rate limiting to all API endpoints"

# 3. Implement logging
/execute-task "Add security event logging for auth events"

# 4. Update dependencies
/security-audit --fix-vulnerable

# 5. Add input validation
/execute-task "Add validation to all API inputs"

Compliance Patterns

GDPR Compliance

bash
/orchestrate "Implement GDPR compliance:
- Privacy by design
- Data minimization
- Right to erasure
- Data portability
- Consent management"

PCI DSS Compliance

bash
/orchestrate "Implement PCI compliance:
- Network segmentation
- Encryption requirements
- Access controls
- Vulnerability management
- Security testing"

Resources


Next Steps

Built with ❤️ for the AI Coding community, by Praney Behl