KyoMel / Yogyakarta, Indonesia

Term 129129 / 344

Secure Software Development Lifecycle (SSDLC)

Month
December 2025
Day
15
Source
2025/dec-term.md

Definition:

Secure Software Development Lifecycle (SSDLC) is a framework that integrates security practices into every phase of software development - from planning to deployment and maintenance. Instead of treating security as an afterthought or final checkpoint, SSDLC embeds security considerations throughout the entire development process, reducing vulnerabilities and lowering the cost of fixing security issues.

Key characteristics:

  • Security integrated at every development phase
  • Proactive rather than reactive approach
  • Reduces cost of fixing vulnerabilities
  • Compliance with security standards
  • Continuous security assessment
  • Shift-left security mentality

Example:

Building a Banking Application Scenario: Developing a mobile banking app

SSDLC (Security at Every Phase):

┌─────────────────────────────────────────────────────┐
│              SSDLC APPROACH                         │
└─────────────────────────────────────────────────────┘

Requirements → Design → Development → Testing → Deploy
     │            │           │           │         │
     ▼            ▼           ▼           ▼         ▼
  Security    Threat      Secure      Security   Security
  Requirements Modeling    Coding      Testing   Monitoring
     │            │           │           │         │
     ▼            ▼           ▼           ▼         ▼
  2 issues    3 issues    5 issues    2 issues   Ongoing
  found       found       found       found      monitoring

Total: 12 small issues fixed early
Cost: $15,000
Delay: None
Team: Confident in security
SSDLC Phases Explained:
┌─────────────────────────────────────────────────────┐
│           SSDLC PHASE BREAKDOWN                     │
└─────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────┐
│  PHASE 1: REQUIREMENTS                              │
│  ─────────────────────                              │
│                                                     │
│  Traditional: "Users should be able to login"      │
│                                                     │
│  SSDLC:                                            │
│  ├─ "Users must authenticate with MFA"            │
│  ├─ "Passwords must meet complexity requirements" │
│  ├─ "Sessions must timeout after 15 minutes"      │
│  ├─ "Failed logins must be rate-limited"          │
│  └─ "All auth events must be logged"              │
│                                                     │
│  Security Activities:                               │
│  ☑ Security requirements gathering                 │
│  ☑ Compliance requirements (PCI, HIPAA, GDPR)     │
│  ☑ Risk assessment                                │
│  ☑ Security user stories                          │
│                                                     │
└─────────────────────────────────────────────────────┘
                         │
                         ▼
┌─────────────────────────────────────────────────────┐
│  PHASE 2: DESIGN                                    │
│  ───────────────                                    │
│                                                     │
│  Security Activities:                               │
│  ☑ Threat modeling                                 │
│  ☑ Security architecture review                   │
│  ☑ Attack surface analysis                        │
│  ☑ Secure design patterns                         │
│                                                     │
│  Example - Threat Model for Login:                 │
│  ┌─────────────────────────────────────────────┐   │
│  │  THREAT: Brute force attack                 │   │
│  │  ASSET: User credentials                    │   │
│  │  MITIGATION: Rate limiting, CAPTCHA, MFA   │   │
│  │                                             │   │
│  │  THREAT: Session hijacking                  │   │
│  │  ASSET: User session                        │   │
│  │  MITIGATION: Secure cookies, HTTPS only    │   │
│  │                                             │   │
│  │  THREAT: Credential stuffing                │   │
│  │  ASSET: User accounts                       │   │
│  │  MITIGATION: Breach detection, MFA         │   │
│  └─────────────────────────────────────────────┘   │
│                                                     │
└─────────────────────────────────────────────────────┘
                         │
                         ▼
┌─────────────────────────────────────────────────────┐
│  PHASE 3: DEVELOPMENT                               │
│  ────────────────────                               │
│                                                     │
│  Security Activities:                               │
│  ☑ Secure coding standards                        │
│  ☑ Code reviews with security focus               │
│  ☑ Static Application Security Testing (SAST)     │
│  ☑ Dependency vulnerability scanning              │
│  ☑ IDE security plugins                           │
│                                                     │
│  Example - Secure Coding:                          │
│  ┌─────────────────────────────────────────────┐   │
│  │  ❌ INSECURE:                               │   │
│  │  query = "SELECT * FROM users WHERE        │   │
│  │           id = " + userId;                  │   │
│  │                                             │   │
│  │  ✅ SECURE:                                 │   │
│  │  query = "SELECT * FROM users WHERE        │   │
│  │           id = ?";                          │   │
│  │  preparedStatement.setInt(1, userId);      │   │
│  └─────────────────────────────────────────────┘   │
│                                                     │
└─────────────────────────────────────────────────────┘
                         │
                         ▼
┌─────────────────────────────────────────────────────┐
│  PHASE 4: TESTING                                   │
│  ────────────────                                   │
│                                                     │
│  Security Activities:                               │
│  ☑ Dynamic Application Security Testing (DAST)    │
│  ☑ Penetration testing                            │
│  ☑ Security regression testing                    │
│  ☑ Fuzzing                                        │
│  ☑ Vulnerability assessment                       │
│                                                     │
│  Example - Penetration Test Results:               │
│  ┌─────────────────────────────────────────────┐   │
│  │  Test: SQL Injection on login form          │   │
│  │  Result: PASS (parameterized queries used) │   │
│  │                                             │   │
│  │  Test: XSS in search field                  │   │
│  │  Result: PASS (input sanitized)            │   │
│  │                                             │   │
│  │  Test: Session fixation                     │   │
│  │  Result: PASS (session regenerated)        │   │
│  └─────────────────────────────────────────────┘   │
│                                                     │
└─────────────────────────────────────────────────────┘
                         │
                         ▼
┌─────────────────────────────────────────────────────┐
│  PHASE 5: DEPLOYMENT                                │
│  ───────────────────                                │
│                                                     │
│  Security Activities:                               │
│  ☑ Security configuration review                  │
│  ☑ Infrastructure security hardening              │
│  ☑ Secrets management                             │
│  ☑ Security documentation                         │
│  ☑ Final security sign-off                        │
│                                                     │
│  Deployment Checklist:                              │
│  ┌─────────────────────────────────────────────┐   │
│  │  ☑ HTTPS enabled with TLS 1.3              │   │
│  │  ☑ Security headers configured              │   │
│  │  ☑ Secrets in vault (not in code)          │   │
│  │  ☑ Firewall rules reviewed                 │   │
│  │  ☑ Logging and monitoring active           │   │
│  │  ☑ Backup and recovery tested              │   │
│  └─────────────────────────────────────────────┘   │
│                                                     │
└─────────────────────────────────────────────────────┘
                         │
                         ▼
┌─────────────────────────────────────────────────────┐
│  PHASE 6: MAINTENANCE & MONITORING                  │
│  ─────────────────────────────────                  │
│                                                     │
│  Security Activities:                               │
│  ☑ Continuous security monitoring                 │
│  ☑ Vulnerability patching                         │
│  ☑ Incident response                              │
│  ☑ Security updates                               │
│  ☑ Periodic security assessments                  │
│                                                     │
│  Ongoing Monitoring:                                │
│  ┌─────────────────────────────────────────────┐   │
│  │  🔍 Real-time threat detection              │   │
│  │  📊 Security metrics dashboard              │   │
│  │  🚨 Automated alerts for anomalies          │   │
│  │  📋 Regular vulnerability scans             │   │
│  │  🔄 Dependency updates                      │   │
│  └─────────────────────────────────────────────┘   │
│                                                     │
└─────────────────────────────────────────────────────┘

Keep reading