
๐ฐ Domain Introduction
CISSP Domain 8 focuses on securing the entire software development lifecycle (SDLC), which includes planning, designing, developing, testing, deploying, and maintaining applications. In todayโs digital economy, applications are a primary attack surface, often exploited due to coding flaws, misconfigurations, and insecure dependencies.
This domain emphasizes how security professionals can work with developers, architects, DevOps teams, and business leaders to embed security from the start, not as an afterthought.
๐ Why It Matters
- Most modern attacks (e.g., zero-day, SQL injection, supply chain) target applications.
- Shift-left security is becoming a requirement โ organizations expect security to be baked into DevOps pipelines.
- Cloud-native applications, containers, and microservices require adaptive, embedded security controls.
๐ฏ Learning Objectives
By mastering Domain 8, you will:
- Understand how to build secure applications from scratch.
- Guide software teams in following secure coding standards and avoiding common vulnerabilities.
- Evaluate and recommend security tools for code scanning, testing, and release validation.
- Assess the risk of open-source components, APIs, and third-party libraries.
- Integrate security into DevOps (DevSecOps) environments and pipelines.
๐งต Key Concepts Covered in This Domain
1. ๐ Secure Coding Practices
- Apply input validation, output encoding, and avoid insecure functions (e.g.,
strcpy()). - Eliminate hardcoded credentials, backdoors, and race conditions.
- Follow standards like OWASP Secure Coding Guidelines, SEI CERT, and MISRA C for embedded systems.
2. โ ๏ธ Application Vulnerabilities
- Understand and mitigate the OWASP Top 10 (e.g., injection, broken authentication, insecure deserialization).
- Familiarity with Common Weakness Enumeration (CWE) and Common Vulnerabilities and Exposures (CVE) helps quantify and categorize flaws.
3. ๐ Secure Software Development Lifecycle (SSDLC)
- Apply security throughout:
- Requirements (e.g., identify threat models)
- Design (e.g., privacy by design, secure architecture)
- Development (e.g., code review, secure APIs)
- Testing (e.g., SAST, DAST, fuzzing)
- Deployment (e.g., hardening, monitoring)
- Maintenance (e.g., patching, vulnerability scans)
4. ๐ DevOps / DevSecOps Security
- Integrate security into CI/CD pipelines using tools like:
- Git hooks, Jenkins plugins, Snyk, SonarQube, OWASP ZAP
- Perform automated testing during builds to catch vulnerabilities early.
5. ๐งช Code Testing and Analysis
- SAST (Static Application Security Testing): Analyze source code without executing it (e.g., for hardcoded secrets).
- DAST (Dynamic Application Security Testing): Test running applications like a black-box hacker would.
- IAST (Interactive AST) and fuzz testing for runtime and logic flaw detection.
- SCA (Software Composition Analysis) for checking open-source dependency vulnerabilities.
6. ๐ Version Control and Configuration Management
- Secure access to repositories (e.g., GitHub, GitLab) using MFA and RBAC.
- Implement secure branching strategies and change control workflows.
- Ensure build artifacts are validated and signed to prevent tampering.
7. ๐ Secure APIs and Microservices
- Secure API endpoints with authentication, rate limiting, and input validation.
- Ensure proper token handling, JWT expiration, and HTTPS encryption.
- Avoid exposing sensitive data in logs or responses.
8.1 โ Understand and Integrate Security in the Software Development Life Cycle (SDLC)
๐น Overview
This topic emphasizes the importance of integrating security into every phase of the Software Development Life Cycle (SDLC), regardless of development methodology (e.g., Agile, DevOps, Waterfall). It includes aligning secure practices with the organizationโs software maturity model and managing operational and maintenance activities in a secure manner. Security must be planned, implemented, and monitored throughout the entire development lifecycle.
๐ Core Concepts and Detailed Notes
1. ๐งฑ Development Methodologies and Security Considerations
Secure development isnโt just about toolsโitโs about applying the right security controls at each phase of the development methodology your organization follows. Understanding how security integrates into each methodology is critical for both the CISSP exam and real-world implementation.
๐งฑ 1. Waterfall Model
Definition:
A sequential, phase-based model. Each phase (requirements, design, development, testing, deployment) must be completed before moving to the next.
Security Considerations:
- Security is typically addressed during the requirements and testing phases.
- Threat modeling and security design reviews must be done early.
- Late discovery of security flaws can be costly to fix.
- Less flexibility for security improvements mid-process.
๐ Example: Government or military projects often use Waterfall due to strict documentation and review processes.
๐ 2. Agile
Definition:
An iterative and incremental development method. Emphasizes collaboration, customer feedback, and flexibility.
Security Considerations:
- Security must be โbaked inโ sprint by sprint.
- Integrate security user stories, backlog items, and security acceptance criteria.
- Use tools like SAST/DAST early in the CI pipeline.
- Educate developers with secure coding standards (e.g., OWASP ASVS).
๐ Example: In a 2-week sprint, security tasks like dependency scanning and input validation testing are added to the backlog and reviewed during sprint planning.
๐ง 3. DevOps
Definition:
A cultural and technical movement combining Development and Operations to enable fast, reliable delivery through automation and continuous integration/continuous delivery (CI/CD).
Security Considerations:
- Security must be automated across build, test, and deploy pipelines.
- Implement โShift Leftโ security testing (earlier in the SDLC).
- Use Infrastructure as Code (IaC) scanning and compliance-as-code.
- Tools: Snyk, SonarQube, Checkmarx, Aqua Security.
๐ Example: Code is automatically scanned for vulnerabilities before merge, and containers are hardened during deployment.
๐ก 4. DevSecOps
Definition:
A security-enhanced evolution of DevOps. Security is a shared responsibility among developers, operations, and security teams.
Security Considerations:
- Automate enforcement of security policies.
- Regular security code reviews, dependency checking, and artifact signing.
- Ensure secrets management, access controls, and runtime protection.
- Secure the entire toolchain (Git, CI/CD, artifact repos, containers).
๐ Example: DevSecOps pipelines automatically stop deployments if critical vulnerabilities are found in container images.
๐ข 5. Scaled Agile Framework (SAFe)
Definition:
An enterprise-level Agile framework that coordinates multiple Agile teams (called Agile Release Trains) working on large, complex projects.
Security Considerations:
- Security must be planned into Program Increments (PIs).
- Security Architects and Champions participate in ARTs.
- Include security epics/features in backlogs.
- Conduct cross-team threat modeling and security validation.
๐ Example: A healthcare company using SAFe introduces secure design practices across all development trains and holds security syncs during PI planning.
2. ๐งฎ Maturity Models
Maturity models are frameworks used to assess and improve the processes of software development, especially in terms of consistency, quality, and security. These models help organizations evaluate where they stand and what steps are necessary to achieve a more secure, efficient, and controlled development process.
๐น 1. Capability Maturity Model Integration (CMMI)
๐ Overview:
Developed by the Software Engineering Institute (SEI) at Carnegie Mellon, CMMI is a process improvement model widely used in software and systems development.
๐ข Five Maturity Levels:

โ Security Tie-in:
- At Level 3 and above, security becomes structured and standardized.
- At Level 5, organizations continuously improve their secure SDLC (SSDLC) practices.
๐ Real-World Example:
A government contractor may be required to meet CMMI Level 3+ to bid on secure software projects for defense or aerospace.
๐น 2. OWASP Software Assurance Maturity Model (SAMM)
๐ Overview:
SAMM is an open-source maturity model maintained by OWASP that focuses specifically on software security assurance.
๐งฑ Core Business Functions:
SAMM is broken into 4 core business functions, each with 3 security practices:

Each practice has maturity levels 1โ3, with defined activities, success metrics, and artifacts.
โ
Security Tie-in:
Directly integrates with DevOps and Agile environments.
Helps teams measure, plan, and improve their secure development practices in a customizable way.
๐ Real-World Example:
A SaaS company may use SAMM to baseline its security posture, then iteratively improve code review processes or threat modeling maturity across teams.
3. ๐ง Operation and Maintenance (Post-Deployment Security)
Once software is released, secure operation and maintenance become essential. Poor maintenance can lead to security gaps even in well-coded applications.
Key Practices:
- Regular patching and vulnerability remediation.
- Runtime security monitoring and alerting (e.g., via SIEM).
- Logging and event correlation for forensic readiness.
- Periodic security assessments and code re-reviews.
๐ Example: A deployed microservice may require regular container image updates and runtime scanning for newly disclosed CVEs.
4. ๐ Change Management
Change management ensures that any modifications to the application (code, infrastructure, or configuration) follow an approved, documented, and tested path before deployment.
Change Control Principles:
- Every change request should be documented with purpose and scope.
- Security should assess potential risks and conduct regression tests.
- Changes must be reviewed, approved, and logged.
- Rollback plans must be in place for failed changes.
๐ Key Tip: Uncontrolled or undocumented changes can violate audit policies and increase risk exposure.
5. ๐ค Integrated Product Team (IPT)
An IPT is a cross-disciplinary group that includes developers, security analysts, QA testers, operations, and product owners. IPTs ensure that security considerations are embedded from design to deployment.
Benefits of IPTs:
- Improved collaboration and communication.
- Early identification and mitigation of security risks.
- Continuous alignment of development objectives with security controls.
๐ Example: In a fintech app team, an IPT may review new features for data leakage or weak cryptography before development begins.
๐ง Takeaways
- Know how Agile, Waterfall, DevOps, and DevSecOps treat security differently.
- Understand that security must be integrated across all SDLC phases, not just in testing.
- Be familiar with CMMI and SAMM models and their relevance to measuring secure development practices.
- Identify the role of change control and IPTs in minimizing risk and maximizing secure delivery.
- Realize that security is a lifecycle responsibility โ even after release, apps must be patched, monitored, and improved.
8.2: Identify and Apply Security Controls in Software Development Ecosystems
This section addresses the implementation of appropriate security controls across all components of a software development environmentโfrom code to deployment infrastructureโto ensure software is developed, tested, and delivered securely.
๐น 1. Programming Languages
Each programming language carries unique security risks due to its syntax, memory management, and runtime behavior.
Security Considerations:
- Use languages with strong typing and memory safety where possible (e.g., Java, Rust).
- Apply secure coding guidelines for each language (e.g., OWASP, SEI CERT).
- Train developers on language-specific pitfalls, such as buffer overflows in C/C++ or object injection in PHP.
๐ Examples:
- C++ may be efficient but lacks memory safetyโleads to buffer overflows.
- Python is flexible but often misused with unsafe
eval()functions or insecure dependency management.
๐น 2. Libraries
Third-party libraries significantly reduce development time, but may introduce vulnerabilities if not properly vetted.
Security Measures:
- Use Software Composition Analysis (SCA) tools (e.g., OWASP Dependency-Check, Snyk) to detect known vulnerabilities (CVEs).
- Prefer signed and verified packages.
- Maintain a Software Bill of Materials (SBOM) to track dependencies.
- Set dependency version pinning to avoid unintended upgrades.
๐ Example:
The Log4Shell vulnerability (CVE-2021-44228) in the Log4j library caused widespread risk because of unchecked use in enterprise Java apps.
๐น 3. Tool Sets
Tools used for compiling, building, and packaging applications can become attack vectors.
Best Practices:
- Harden toolchain components (e.g., Jenkins, GitLab CI, Docker).
- Verify tool binaries via hashes/signatures.
- Disable or sandbox plug-ins and extensions with unverified origins.
- Limit developer access to administrative features.
๐ Example:
A malicious Gradle plugin can execute backdoors during builds if downloaded from untrusted sources.
๐น 4. Integrated Development Environment (IDE)
IDEs, such as Visual Studio Code, Eclipse, and IntelliJ IDEA, support plugins and extensions that may become attack surfaces.
Security Controls:
- Use corporate-managed IDE configurations and restrict internet-based plugins.
- Implement linting and secure code plugins (e.g., ESLint security rules).
- Secure IDE workstations (disk encryption, antivirus, network segmentation).
- Disable dangerous macros and scripting within the IDE.
๐ Example:
An attacker exploits a developerโs IDE extension to inject malware into application builds.
๐น 5. Runtime Environment
Once deployed, the application interacts with OS resources, APIs, memory, and network servicesโrequiring secure runtime configurations.
Security Controls:
- Use sandboxing and containerization to isolate runtime processes.
- Implement Runtime Application Self-Protection (RASP) to detect and stop attacks at runtime.
- Monitor memory, file, and process activity using Host Intrusion Detection Systems (HIDS) or cloud-native runtime tools.
๐ Example:
Use Docker or Kubernetes pod security policies to limit runtime access to the host OS and file system.
๐น 6. Continuous Integration / Continuous Delivery (CI/CD)
CI/CD pipelines automate testing and deployment. However, they can also automate the delivery of vulnerabilities if not secured.
Security Practices:
- Integrate SAST, DAST, SCA, and unit tests into the pipeline.
- Isolate build runners and prevent them from having internet or privileged access.
- Use vault-based secret injection, not hardcoded secrets.
- Sign artifacts and verify hashes at each delivery stage.
๐ Example:
The SolarWinds breach (2020) exploited the CI/CD process by injecting malware into build artifacts that were later distributed to customers.
๐น 7. Software Configuration Management (SCM)
SCM tools manage source code versions and infrastructure state (e.g., Git, Terraform, Ansible).
Controls:
- Enforce branch protection and pull request review policies.
- Implement immutable infrastructure principles for repeatability and rollback.
- Audit all configuration and infrastructure changes.
๐ Example:
Use GitLabโs protected branches to require code review and approval for any push to production.
๐น 8. Code Repositories
Repositories like GitHub, GitLab, Bitbucket must be secured like production systems.
Security Recommendations:
- Enable 2FA/MFA for all contributors.
- Use signed commits to verify author identity.
- Block storage of credentials and tokens via pre-commit hooks or scanners.
- Monitor repository activity for suspicious behavior.
๐ Example:
Tools like Git-Secrets or TruffleHog detect leaked secrets in commits before theyโre pushed.
๐น 9. Application Security Testing Methods
To detect and remediate vulnerabilities before release, implement the following:
๐ธ Static Application Security Testing (SAST)
- Scans source code without execution.
- Detects hardcoded secrets, insecure functions, etc.
- Best for early SDLC stages.
๐ธ Dynamic Application Security Testing (DAST)
- Tests running applications.
- Detects runtime issues like XSS, SQL injection, insecure redirects.
- Best suited for staging environments.
๐ธ Software Composition Analysis (SCA)
- Scans third-party libraries for known CVEs and license violations.
- Ideal for dependency tracking.
๐ธ Interactive Application Security Testing (IAST)
- Instruments applications to detect security flaws during testing.
- Provides high accuracy by observing live runtime interactions.
๐ง Best Practice:
- Combine SAST + DAST + SCA in the CI/CD pipeline.
- Use IAST during QA or performance testing for additional depth.
โ Summary: Secure Software Ecosystem Controls

๐ง Takeaways
- Expect scenario questions: e.g., โWhich testing method identifies vulnerabilities during code compilation?โ โ SAST.
- Understand tool integration points in DevSecOps (e.g., DAST post-build, SAST pre-build).
- Know how CI/CD can be exploited and how to secure your pipelines.
- Be able to differentiate between testing methods and their strengths/limitations.
8.3 โ Assess the Effectiveness of Software Security
Security is not just about adding controlsโitโs about validating their effectiveness. Domain 8.3 focuses on measuring, monitoring, and auditing security practices in the software development lifecycle (SDLC) to ensure that security controls are working as intended and risks are mitigated appropriately.
๐ธ 1. Auditing and Logging of Changes
๐งฉ Definition:
Auditing is the process of reviewing system and application activities, while logging is the recording of events and changes. Together, they form the backbone of security validation, accountability, and incident response.
๐ Key Practices:
โ Code-Level Auditing
- Track who made code changes, when, and why.
- Enforce peer code reviews to catch errors or malicious logic.
- Use signed commits in Git to verify identity and integrity.
โ System and Infrastructure Auditing
- Monitor deployment pipelines (CI/CD), system configuration changes, and administrative access logs.
- Keep immutable logs of infrastructure changes (e.g., Terraform or Ansible playbooks).
โ Application Logging
- Implement detailed audit logging in the app:
- Authentication attempts
- Role/permission changes
- Access to sensitive resources
- Include timestamps, user IDs, event types, and outcome status (success/failure).
โ Logging Standards
- Use syslog, JSON, or other structured formats for machine parsing.
- Apply centralized logging systems such as:
- SIEM (e.g., Splunk, ELK Stack, Microsoft Sentinel)
- Cloud-native logging (e.g., AWS CloudWatch, Azure Monitor)
๐ Benefits:
- Traceability: Who made what change and when?
- Compliance: Satisfies audits (e.g., PCI-DSS, SOX).
- Forensics: Provides event timelines in breach investigations.
- Deterrence: People behave more securely when they know activities are monitored.
๐ Real-World Example:
A financial application logs all changes to user account permissions. When unauthorized access is detected, audit logs help identify that a developer misused elevated accessโenabling a fast response.
๐ธ 2. Risk Analysis and Mitigation
๐งฉ Definition:
Risk analysis is the process of identifying, evaluating, and prioritizing security risks. Mitigation refers to strategies and actions taken to reduce the impact or likelihood of those risks.
๐ง Steps in Risk Analysis:
1. Identify Assets
- Source code, credentials, user data, APIs, containers, infrastructure-as-code, CI/CD pipelines.
2. Identify Threats
- Examples: Insider threat, unauthorized code commits, vulnerable third-party libraries, API abuse.
3. Identify Vulnerabilities
- Examples: Use of
eval()in code, lack of input validation, unpatched CVEs in libraries.
4. Analyze Impact and Likelihood
- Qualitative (High/Medium/Low)
- Quantitative (e.g., Single Loss Expectancy ร Annual Rate of Occurrence = Annualized Loss Expectancy)
5. Prioritize Risks
- Based on business impact and exploitability.
- Use risk matrices or frameworks like STRIDE, DREAD, or FAIR.
6. Apply Mitigation Strategies
- Technical: Input validation, secure defaults, sandboxing
- Administrative: Training, code reviews, DevSecOps policies
- Physical: Role-based access to development machines
๐ Risk Mitigation Techniques:

๐ Real-World Example:
During a code audit, an unused but accessible admin endpoint is discovered. Risk analysis flags the potential for abuse, and mitigation steps include disabling the endpoint and updating documentation.
๐ธ Integration Across the SDLC

๐ธ Key Tools & Frameworks

๐ Takeaways:
- Know the purpose of auditing: Verifying the effectiveness of controls and maintaining traceability.
- Understand how logs support investigations: Think timestamps, IPs, user IDs, and events.
- Differentiate mitigation vs. remediation:
- Mitigation reduces risk before exploitation.
- Remediation occurs after detection or a breach.
- Expect scenario-based questions, such as: โAn application update introduced an insecure configuration. What process would best detect this change?โ โ Auditing and Logging
8.4 โ Assess Security Impact of Acquired Software
Organizations increasingly rely on software and services from external sources such as vendors, open-source communities, and cloud providers. While these solutions offer convenience, speed, and cost-efficiency, they also introduce potential security, compliance, and operational risks. This section focuses on how to evaluate the security implications of these acquired components and ensure they align with organizational policies and threat models.
๐ธ 1. Commercial-Off-the-Shelf (COTS) Software
๐ Description:
COTS refers to pre-built, vendor-developed software products sold for mass-market use. Examples include Microsoft Office, Adobe Acrobat, SAP, etc.
๐ ๏ธ Security Considerations:
- Limited transparency into source code and internal logic.
- Reliance on vendor for patches, security updates, and disclosures.
- Potential for undocumented features, default configurations, or legacy support that introduce vulnerabilities.
- Must align with licensing terms, which may restrict modification or redistribution.
โ Mitigation Strategies:
- Evaluate the vendorโs security certifications (e.g., ISO 27001, SOC 2).
- Perform vulnerability scanning and application testing in staging before deployment.
- Ensure regular and timely patch management processes.
- Conduct contractual reviews to include security responsibilities and incident notification timelines.
๐ก Real-world Example:
A healthcare company uses a COTS electronic medical record (EMR) system. During internal audit, unpatched vulnerabilities in a bundled browser component are found. Mitigation involves isolating the app and configuring strict update windows.
๐ธ 2. Open Source Software (OSS)
๐ Description:
Software whose source code is freely available for use, modification, and distribution. Common examples include Linux, Apache, OpenSSL, and PostgreSQL.
๐ ๏ธ Security Considerations:
- May lack formal support, SLAs, or a defined patching process.
- Dependencies on other open-source components may introduce transitive vulnerabilities.
- Developers may inadvertently use abandoned or maliciously altered packages (e.g., dependency confusion attacks).
- OSS may lack security hardening out of the box.
โ Mitigation Strategies:
- Use Software Composition Analysis (SCA) tools (e.g., Snyk, WhiteSource) to scan for known vulnerabilities (CVE references).
- Prefer actively maintained projects with frequent commits, strong documentation, and engaged communities.
- Implement internal code review for any modified OSS components.
- Maintain license compliance (e.g., avoid GPL-incompatible use).
๐ก Real-world Example:
The Log4j (Log4Shell) vulnerability impacted countless organizations relying on open-source Java logging libraries. Organizations with active OSS monitoring were able to patch quickly, while others faced prolonged exposure.
๐ธ 3. Third-Party Applications and Services
๐ Description:
Software created and maintained by external vendors for specific integrations, including plug-ins, APIs, or SaaS-based tools not developed in-house.
๐ ๏ธ Security Considerations:
- Potential for backdoors, spyware, or insecure coding practices.
- Lack of source code access makes it harder to audit.
- Data processing may occur outside organizational boundaries.
- Often granted API access or authentication tokens, posing risk of misuse.
โ Mitigation Strategies:
- Conduct third-party risk assessments and security questionnaires.
- Require security testing, pen tests, and vulnerability scans before integration.
- Define responsibilities in contracts and SLAs (e.g., incident notification, uptime, support).
- Limit access through API gateways, least privilege, and rate limiting.
๐ก Real-world Example:
A third-party analytics script on a retail site was compromised, exfiltrating credit card data. Segregating script execution and implementing Content Security Policy (CSP) would have mitigated risk.
๐ธ 4. Managed Services
๐ Description:
Services provided by vendors to manage specific enterprise applications or IT functions (e.g., Managed SIEM, Database as a Service, managed security tools).
๐ ๏ธ Security Considerations:
- Reduced visibility and control over infrastructure.
- Requires strong trust and contractual assurance in vendor practices.
- Risks associated with data access, privileged operations, and incident response time.
โ Mitigation Strategies:
- Clearly define roles and responsibilities using a RACI matrix.
- Ensure the service provider supports auditing, logging, and encryption at rest/in transit.
- Integrate vendor monitoring into your Security Operations Center (SOC).
- Review vendor background checks, support SLAs, and termination policies.
๐ก Real-world Example:
A managed MSSP provided SIEM services. When a misconfiguration occurred, the delay in vendor notification led to undetected lateral movement. An updated SLA and automated alerting were implemented afterward.
๐ธ 5. Cloud Services (SaaS, IaaS, PaaS)
๐ Description:
- SaaS: Software accessed over the internet (e.g., Dropbox, Google Workspace).
- PaaS: Development platforms for building apps (e.g., Heroku, Google App Engine).
- IaaS: On-demand infrastructure (e.g., AWS EC2, Azure VMs).
๐ ๏ธ Security Considerations:
- Operate under a shared responsibility model.
- Sensitive data stored in multi-tenant environments.
- APIs may be publicly exposed or insufficiently protected.
- Misconfigurations (e.g., open S3 buckets) are a major source of breaches.
โ Mitigation Strategies:
- Implement Cloud Security Posture Management (CSPM) tools (e.g., Wiz, Prisma Cloud).
- Use IAM policies for granular access control.
- Enable MFA, encryption, and logging (e.g., AWS CloudTrail).
- Regularly review providerโs compliance (e.g., SOC 2 Type II, FedRAMP, CSA STAR).
๐ก Real-world Example:
A healthcare startup used AWS IaaS but failed to restrict access to its S3 buckets. PHI was publicly accessible. They later implemented bucket policies, encryption, and CSPM alerts.
๐ Summary Table

โ Takeaways
- Understand how risk posture varies between COTS, open source, and cloud.
- Emphasize SCA and dependency management for open-source software.
- Know the shared responsibility modelโSaaS vs. IaaS vs. PaaS.
- Expect questions on third-party assessments, contracts, and monitoring controls.
- Real-world risk scenarios (e.g., Log4j, open S3 bucket) are fair game
8.5 โ Define and Apply Secure Coding Guidelines and Standards
This section emphasizes incorporating security throughout the software development lifecycle (SDLC) by applying industry-standard secure coding guidelines and minimizing the introduction of vulnerabilities in code, APIs, and third-party dependencies.
๐น 1. Security Weaknesses and Vulnerabilities at the Source-Code Level
๐ ๏ธ Description:
Vulnerabilities introduced during developmentโwhether due to logic flaws, insecure handling of input/output, or outdated functionsโare often exploited directly by attackers. These vulnerabilities may be syntactic (bad code) or semantic (bad logic).
๐ Common Vulnerabilities:
- Buffer overflows โ Writing beyond allocated memory boundaries (common in C/C++).
- SQL Injection (SQLi) โ Unsanitized input passed into SQL queries.
- Cross-site scripting (XSS) โ Malicious scripts injected into web applications.
- Insecure deserialization โ Execution of untrusted or manipulated data.
- Race conditions โ Improper concurrency handling between threads/processes.
- Hardcoded secrets โ Embedding passwords or API keys directly in source code.
- Improper error handling โ Revealing stack traces or debug messages to users.
๐ Security Practices:
- Use secure functions/libraries (e.g.,
strncpy()instead ofstrcpy()). - Implement boundary checks, sanitization, and validation.
- Adopt secure exception handling (no leaking internal logic or error details).
- Conduct manual secure code reviews and use automated code scanning tools (e.g., SonarQube, Fortify).
๐ง Example:
In 2017, Equifax suffered a major breach due to failure to patch a known vulnerability in Apache Struts. The flaw (CVE-2017-5638) allowed remote code execution via insecure input parsing.
๐น 2. Security of Application Programming Interfaces (APIs)
๐ ๏ธ Description:
APIs serve as communication gateways between applications and services. If not securely implemented, they can expose sensitive data or functionality to attackers.
๐ Common API Risks (from OWASP API Top 10):
- Broken Object-Level Authorization โ Access to another userโs data by modifying an identifier in the URL.
- Insecure Endpoints โ Missing authentication or poorly configured access controls.
- Excessive Data Exposure โ Returning too much information in JSON/XML responses.
- Lack of Rate Limiting โ Vulnerable to brute-force or denial-of-service attacks.
- Improper Input Handling โ Leading to injection or parsing flaws.
โ Best Practices:
- Implement strong authentication/authorization (e.g., OAuth 2.0, JWT).
- Use input/output filtering, API throttling, and data minimization.
- Regularly audit API access logs.
- Use API gateways for enforcement and protection (e.g., Kong, AWS API Gateway).
๐ก Example:
A social media API allowed retrieval of user profiles without proper session validation. Malicious actors scraped millions of user records, resulting in regulatory scrutiny.
๐น 3. Secure Coding Practices
๐ ๏ธ Description:
Secure coding practices are techniques and standards developers follow to minimize the attack surface of applications. Security must be embedded early in the SDLC.
๐งฑ Common Practices:
- Input validation โ Whitelist expected input formats.
- Output encoding โ Prevents injection and XSS.
- Principle of least privilege โ Code should run with minimum permissions.
- Error handling โ Avoid disclosing sensitive system details.
- Secure defaults โ Disable debug modes, verbose logs, and open ports by default.
๐ Recommended Standards and Frameworks:
- OWASP Secure Coding Practices Checklist
- CERT Secure Coding Standards
- CWE/SANS Top 25 Most Dangerous Programming Errors
- Microsoft Secure Development Lifecycle (SDL)
๐ง Tools:
- Static Application Security Testing (SAST)
- Dynamic Application Security Testing (DAST)
- IDE plugins that flag insecure coding patterns
๐ง Example:
Developers building a banking web app use OWASP best practices to validate input on both client and server sides, preventing XSS and CSRF in production.
๐น 4. Software-Defined Security
๐ ๏ธ Description:
Software-defined security refers to automated, policy-driven security controls embedded in software-defined infrastructure (e.g., cloud environments, containers). It promotes agility, central management, and real-time enforcement.
๐ Key Features:
- Decoupled from hardware โ Managed via code and configuration files.
- Integrated into DevSecOps pipelines.
- Can respond to threats dynamically (e.g., isolate a compromised container).
โ Use Cases:
- Policy-as-code for access controls (e.g., Open Policy Agent, HashiCorp Sentinel).
- Cloud-native firewalls and security groups.
- Automatically generating and revoking TLS certificates.
- Detecting misconfigured storage buckets and applying remediation via automation.
๐ก Example:
In a Kubernetes environment, network policies were defined to allow only necessary pod-to-pod communication, effectively applying micro-segmentation via software.
๐ Summary Table

โ Takeaways
- Be able to identify insecure coding patterns and apply appropriate remediation steps.
- Understand API security risks, especially common OWASP API Top 10 issues.
- Memorize secure coding frameworks (OWASP, CERT, CWE).
- Expect scenario questions involving code review findings or insecure APIs.
- Know the difference between static, dynamic, and interactive security testing tools.
- Understand how software-defined security integrates into modern CI/CD environments.
โ Key Exam Tips
- Understand the Secure Software Development Lifecycle (SDLC) and its phases โ planning, requirements, design, development, testing, deployment, maintenance โ and how security is integrated into each phase.
- Memorize secure development methodologies like Agile, DevOps, DevSecOps, and Waterfall; understand their impact on how security controls are planned and applied.
- Know the purpose and differences between maturity models such as Capability Maturity Model (CMM) and Software Assurance Maturity Model (SAMM); higher maturity means better process standardization and fewer defects.
- Expect scenario-based questions where youโre asked to identify weaknesses in SDLC implementations, such as missing input validation or lack of testing.
- Be familiar with OWASP Top 10 vulnerabilities โ especially injection flaws, broken authentication, and insecure deserialization โ and know how to prevent them with secure coding practices.
- Understand CWE/SANS Top 25 Most Dangerous Software Errors and how these weaknesses translate into real security flaws.
- Secure coding requires a deep understanding of input validation, output encoding, error handling, and the principle of least privilege.
- Study CERT Secure Coding Standards for language-specific practices (e.g., C, C++, Java).
- Know the security concerns and best practices for Application Programming Interfaces (APIs) including the OWASP API Top 10 risks (like broken object-level authorization and excessive data exposure).
- Be able to explain token-based access control, rate limiting, API gateways, and threat modeling for APIs.
- Recognize the role of code repositories like GitHub and GitLab in version control and how poor repo hygiene can lead to vulnerabilities.
- Differentiate between SAST (Static Application Security Testing), DAST (Dynamic Application Security Testing), IAST (Interactive), and SCA (Software Composition Analysis).
- Know when to apply SAST (early in development), DAST (during testing/staging), and SCA (for third-party libraries).
- Understand how secure coding practices are enforced in DevSecOps through continuous integration (CI) and continuous delivery (CD) pipelines.
- Know how to assess the security risks of open-source software (OSS) โ look for licensing issues, maintenance status, CVE disclosures, and integrity of the source.
- Understand the risks and controls associated with COTS (Commercial-Off-The-Shelf), cloud-based solutions (SaaS, IaaS, PaaS), and managed services.
- Expect to evaluate a software acquisition scenario where you must choose the most secure or compliant option.
- Be familiar with change management processes and how improper change control can lead to security holes.
- Learn about software-defined security (SDS) โ implementing controls via configuration, automation, and infrastructure-as-code (IaC) in modern environments.
- Know the concept of policy-as-code, especially when using tools like Open Policy Agent (OPA) or AWS IAM policies.
- Understand the importance of secure software configuration management (SCM) and tracking changes across environments.
- Expect questions involving risk assessments of acquired software and how to apply appropriate mitigation strategies.
- Be able to explain the role of audit logs and change logs in maintaining software integrity and supporting incident response.
- Recognize software development ecosystem components such as programming languages, frameworks, toolchains, CI/CD tools, and how they can be hardened.
- Know how to apply secure coding guidelines in multiple languages (e.g., prevent memory leaks in C++, enforce input validation in Python).
- Be prepared for scenario questions where you must choose the best secure implementation (e.g., password hashing with bcrypt vs. plaintext).
- Understand how authentication and session management must be coded securely โ avoid storing tokens in local storage, enforce session timeouts.
- Be familiar with automated build tools (e.g., Jenkins, GitHub Actions) and their role in injecting security checks.
- Know the risks associated with improperly configured CI/CD pipelines (e.g., deploying with debug mode on, or skipping tests).
- Understand the impact of development team roles (e.g., secure design responsibility in Product Owner vs. secure code review by Devs).
- Recognize how training and awareness for developers can drastically reduce the introduction of security flaws in early stages.
- Remember that proactive security (shifting left) is emphasized โ identify and fix issues early in development, not in production.
- Know the types of secure coding tools and how they integrate with IDEs or CI/CD pipelines (e.g., ESLint, Checkmarx, SonarQube).
- Be familiar with security standards for API development, such as enforcing HTTPS, authentication headers, and content validation.
- Expect to evaluate the effectiveness of software security controls (e.g., whether logging is in place, whether alerts are generated).
- Understand how audit trails, code change documentation, and testing records contribute to software assurance and compliance.
- Know how to perform risk analysis for software assets โ what data it handles, what threats it faces, what controls are effective.
- Understand how software-defined environments (containers, VMs, serverless) introduce new challenges that require dynamic, code-based security solutions.