New Page
What's New in Domain 8?
8.2 Identify and Apply Security Controls in Software Development Ecosystems
Programming Concepts:
- Programming languages
- Libraries
- Tool sets
- Integrated Development Environment (IDE)
- Runtime
- Code repositories
- Continuous Integration and Continuous Delivery (CI/CD)
Note: Security Orchestration, Automation, and Response (SOAR) is covered in Domain 3.
Software Configuration Management (SCM):
- DevOps and DevSecOps
- Configuration management
Code Repositories:
- Stores source code and related artifacts (like libraries).
- Secure Handling:
- Don’t commit sensitive info.
- Protect access.
- Sign your work.
- Update development tools, e.g., Visual Studio Code, Notepad++.
Git is the most widely used modern version control system.
Code Libraries:
- Enhances application security & reduces risk.
- Different languages have varied vulnerabilities.
- Lower level languages like C need safe memory and string libraries to avoid buffer overflows.
- Other libraries handle encryption, data transfer, and secret management.
Runtime:
- Describes when a software is in operation.
- Dynamic Application Security Testing (DAST) checks security during runtime.
- For bought software, runtime assessment is mandatory (source code isn’t available).
- If you have the source code, conduct both source code and runtime scans.
For containers: Scan images during build & runtime, especially for open-source images.
CI/CD:
- Ensure identity & access management (include MFA).
- Securely store secrets & avoid hard-coded ones in code.
- Role-based access control & least privilege access.
- Automate vulnerability scanning in the CI/CD pipeline.
- Use release versioning for better recovery & issue tracking.
Configuration Management:
- Tracks system setups for hardware & software.
- Baselining (snapshot at a given time) is crucial.
- Use system & component-level versioning.
Configuration management bridges the gap between hardware and software.
Examples:
- Code Scanning – Checks for vulnerabilities in code.
- Static Application Security Testing (SAST) – No execution; inside-out testing. Requires source code.
- Dynamic Application Security Testing (DAST) – Requires execution; outside-in testing. Doesn’t need source code.
Exam Outline Topics:
- 8.1 Understand and integrate security in the SDLC.
- 8.2 Identify and apply security controls in development environments.
- 8.3 Assess the effectiveness of software security.
- 8.4 Assess security impact of acquired software.
- 8.5 Define and apply secure coding guidelines and standards.