Notes on Secure Software Development Methodologies (MS SDL, OWASP CLASP, NIST SSDF, OWASP SAMM)

MS SDL (Microsoft Secure Development Lifecycle)

  • Overview

    • Comprehensive process published by Microsoft; focus on producing secure software.
    • More than 20 years old; a business process that guides security activities across the SDLC.
    • Key idea: map activities to the organization and ensure security considerations are integrated from the start.
  • Phases and core activities

    • Train
    • Core Security Training: foundational concepts for building better software.
    • Topics include secure design, threat modeling, secure coding, security testing, and privacy best practices.
    • Aims to raise baseline security literacy across the team.
    • Require (Requirements)
    • Establish Security and Privacy Requirements early to identify milestones and deliverables.
    • Create Quality Gates / Bug Bars: define minimum security/privacy quality levels at project start.
    • Perform Security and Privacy Risk Assessments to identify which parts require threat modeling and security design reviews.
    • Design
    • Design Requirements: consider security/privacy early to minimize schedule disruptions and costs.
    • Attack Surface Analysis/Reduction: analyze and reduce the overall attack surface; apply least privilege; employ layered defenses.
    • Threat Modeling: structured approach to identify vulnerabilities, risks, and mitigations during design.
    • Use Approved Tools: publish and enforce a list of approved tools and checks (compilers/linkers, warnings).
    • Deprecate Unsafe Functions: ban unsafe APIs to reduce security bugs.
    • Static Analysis: code review via source analysis prior to compile.
    • Develop
    • Dynamic Analysis: run-time checks of software behavior to catch issues like memory corruption and privilege problems.
    • Fuzz Testing: feed malformed or random data to reveal security issues before release.
    • Attack Surface Review: review attack surface after code changes to ensure new vectors are considered and mitigated.
    • Verify
    • Incident Response Plan: plan for security incidents and contacts; ensure readiness for inherited codebases.
    • Final Security Review: assess threat models, tool outputs, and performance against quality gates.
    • Certify Release and Archive: certify software for release and archive relevant data and artifacts.
    • Release
    • Execute Incident Response Plan: implement the IR plan to protect customers from vulnerabilities at release time.
    • Respond
    • Ongoing Incident Response: implement IR plan to address new threats post-release and sustain protection for users.
  • Linkages and significance

    • Emphasizes early security requirements and continuous verification.
    • Encourages threat modeling, risk assessments, and use of approved tools to standardize secure practices.
    • Aligns security activities with organizational processes and governance.

OWASP CLASP (Comprehensive, Lightweight Application Security Process)

  • Overview

    • A collection of security activities for secure software development.
    • Role-based, activity-driven process designed to map activities to organizational roles.
    • Focus on practical, scalable security integration into development lifecycles.
  • Key roles and activities (selected highlights)

    • Project Manager
    • Institute security awareness for project members through training and accountability.
    • Ensure exposure to security to deal with it effectively.
    • Monitor security metrics and enforce accountability for inadequate security.
    • Manage security issue disclosure with external researchers and communicate with customers on identified issues.
    • Requirements Specifier
    • Specify operational environment and security-relevant requirements.
    • Document misuse cases; communicate risks and rationale to stakeholders.
    • Architect
    • Identify resources and trust boundaries; define system roles and the access each role has.
    • Integrate security analysis into source management (e.g., automating security analysis and metrics collection).
    • Perform code signing to validate origin and integrity of software.
    • Designer
    • Harden design by applying security design principles; determine secure implementation strategies for protocols and APIs.
    • Assess third-party solutions and annotate class designs with security properties.
    • Specify database security configurations and default secure configurations.
    • Implementer
    • Implement interface contracts; ensure unit-level input validation and security policies.
    • Build operational security guides and document security usage within the product.
    • Test Analyst
    • Find security problems not detected by implementation review; validate security against requirements and threat models.
    • Verify conformance to security policies and assess risks introduced by the environment.
    • Security Auditor
    • Conduct security-focused reviews to ensure compliance with the defined security requirements.
    • Verify third-party components comply with requirements.
  • Threat modeling and attack surface concepts

    • The CLASP process emphasizes threat modeling and attack surface analysis as core activities during design and requirements phases.
    • Activities map to roles to ensure accountability and traceability.
  • How activities map to organization

    • Roles are assigned specific security responsibilities, promoting ownership and accountability throughout the SDLC.

NIST SSDF (Secure Software Development Framework)

  • Overview

    • A practical framework published by NIST to help produce more secure software.
    • Built on established good practices for secure development.
    • Organized around four main functions with supporting practices.
  • Four functions and practices

    • Prepare the Organization (PO)
    • PO.1 Define Security Requirements for Software Development: identify applicable security requirements for the organization’s software development and maintain over time.
    • PO.2 Implement Roles and Responsibilities: create/alter roles to encompass secure development; provide role-specific training; obtain management commitment.
    • PO.3 Implement a Supporting Toolchain: specify mandatory tools, integrate toolchain components, deploy and maintain tools securely.
    • PO.4 Define Criteria for Software Security Checks: define criteria and mechanisms to gather necessary information to support criteria.
    • Protect the Software (PS)
    • PS.1 Protect All Forms of Code from Unauthorized Access and Tampering: least-privilege access to code forms.
    • PS.2 Provide a Mechanism for Verifying Software Release Integrity: make verification information available to software consumers.
    • PS.3 Archive and Protect Each Software Release: securely archive releases and components and release integrity information.
    • Produce Well-Secured Software (PW)
    • PW.1 Design Software to Meet Security Requirements and Mitigate Risks: use risk modeling (threat modeling, attack modeling, attack surface mapping).
    • PW.2 Review Software Design for Security Compliance: independent review to confirm security requirements are met and risks addressed.
    • PW.3 Verify Third-Party Software: communicate requirements to third parties and verify compliance.
    • PW.4 Reuse Existing, Well-Secured Software When Feasible: acquire well-secured components; build in-house where needed; promote standardized security features.
    • PW.5 Create Source Code Adhering to Secure Coding Practices: follow secure coding practices; developers review their own code as a supplement to peer reviews.
    • PW.6 Configure Compilation and Build Processes: use compiler/build features to improve executable security; apply approved configurations.
    • PW.7 Code Review and/or Code Analysis: determine appropriate approach; document and triage issues.
    • PW.8 Test Executable Code: determine types of testing; design and perform tests; document results.
    • PW.9 Secure Settings by Default: set secure default configurations; document settings for admins.
    • Respond to Vulnerabilities (RV)
    • RV.1 Identify and Confirm Vulnerabilities: gather reports from consumers/public sources; review code to confirm vulnerabilities; have a process to handle vulnerability reports.
    • RV.2 Assess, Prioritize, and Remediate Vulnerabilities: analyze each vulnerability; develop and implement remediation plans.
    • RV.3 Analyze Vulnerabilities to Identify Root Causes: identify root causes; look for patterns; proactively fix related issues; update SDLC to prevent recurrence.
  • Practical implications

    • SSDF provides a structured, evidence-based approach to integrating security into all phases of software development.
    • Emphasizes governance, tooling, secure design, supplier security, and ongoing vulnerability management.

OWASP SAMM (Software Assurance Maturity Model)

  • Overview

    • Open-source maturity model for secure software development from OWASP (current version 2).
    • Defines a measurable way to assess the security posture of software in any organization.
    • Maps business activities to maturity levels to guide improvement.
  • Key concept: streams and maturity

    • SAMM organizes activities into streams (often described as domains) that span governance, design, implementation, verification, and operations.
    • Each activity maps to maturity levels, allowing organizations to measure progress and target improvements.
    • The model emphasizes an integrated, continuous improvement approach across the entire SDLC.
  • Core areas (high-level, representative list)

    • Governance and Strategy
    • Strategy & Metrics, Policy & Compliance, Compliance Management, Organization & Culture, Education & Security Awareness.
    • Design
    • Threat Assessment, Security Requirements, Software Requirements, Architecture; Security Architecture; Architecture Validation.
    • Implementation
    • Build Process, Software Dependencies, Secure Coding Guidance, Defect Management, Security Testing Guidance.
    • Verification
    • Security Testing, Configuration and Patch Management, Environment Management, Verification Guidance.
    • Operations
    • Incident Management, Incident Detection, Incident Response, Deployment and Operational Management.
    • Additional concepts
    • Supplier Security, Secret Management, Change Management, Metrics & Feedback, Guidance, Training & Awareness.
    • The model uses two streams (Stream A and Stream B) to reflect different paths or focus areas within each domain.
  • Software Requirements Measurement (levels)

    • Level 1: High-level security objectives are mapped to functional requirements; security requirements are specific, measurable, and aligned with the organizational baseline.
    • Level 2: Structured security requirements are used by developer teams; domain experts are involved; there is a structured notation for security requirements; a security champion is dedicated to reviewing outcomes.
    • Level 3: Use a standard requirements framework to elicit security requirements; framework is adaptable to business needs; guidance exists on quality and description of requirements.
  • Practical takeaway

    • SAMM provides a practical, business-facing way to plan and measure security maturity across an organization.
    • It emphasizes governance, design, implementation, verification, and operations as interconnected streams that drive secure software delivery.

Ethical and legal reminder for students

  • Context
    • The course on Secure Software Development covers mechanisms that can be used to disrupt information security and to attack web applications and software systems.
  • Legal and ethical guidance (Serbia)
    • Unauthorized testing or intrusion into systems without explicit permission is punishable under the Criminal Code of the Republic of Serbia (Articles 298 to 304a).
  • Lab-only rules
    • Students may only apply these methods within a closed lab environment provided for instructional purposes.
    • Students should not use these techniques on systems outside the lab or without explicit authorization.
  • Responsibility
    • Any activity outside the designated lab environment is the student’s responsibility to forgo and avoid.

Connections and overarching themes

  • Common goals across all methodologies
    • Build security into the software development lifecycle from the earliest stages.
    • Threat modeling, risk assessment, and secure design are foundational across frameworks.
    • Continuous verification, testing, and vulnerability management are essential for maintaining secure software post-release.
  • Differences in emphasis
    • MS SDL emphasizes a concrete phase-by-phase lifecycle with explicit activities and mapping to roles.
    • OWASP CLASP focuses on role-driven activities and practical mappings to organizational roles.
    • NIST SSDF provides a formal, framework-based set of practices with clearly defined functions and practices.
    • OWASP SAMM offers a maturity-model perspective focused on measurable improvements across governance, design, implementation, verification, and operations.
  • Practical takeaways for exam prep
    • Be able to list the main phases/activities of MS SDL and what each phase targets (training, requirements, design, development, verification, release, response).
    • Understand the role-driven flow of OWASP CLASP and the responsibilities of each role (PM, Requirements Specifier, Architect, Designer, Implementer, Test Analyst, Security Auditor).
    • Recall the four functions and key practices of NIST SSDF (PO, PS, PW, RV) and representative practices under each.
    • Recognize the five SAMM domains and the purpose of measuring maturity in security activities.
    • Remember the ethical/legal caveat highlighted for student conduct and the importance of lab-based learning for offensive security techniques.