[ISM] Secure-by-design:

Secure-by-design and secure-by-default principles, use of memory-safe programming languages where possible, and secure programming practices are used as part of application development.

[SSDF] Adhere to comprehensive secure coding practices (SSS-02-01-11)

Follow all secure coding practices that are appropriate to the development languages and environment to meet the organization’s requirements.

[SSDF] Implement secure coding practices (SSS-02-01-11-01)

To ensure secure software development, implement robust coding practices that minimize vulnerabilities and maintain code quality. These include input/output validation, avoiding unsafe functions, and implementing proper error handling. Leverage tools and environments that encourage secure coding through automation, such as linters, formatters, and just-in-time training features. When automated methods are insufficient, follow manual compliance procedures. Regularly check for vulnerabilities specific to development languages and environments, and require developers to review their code alongside formal code reviews by others.

Operations

ID Operation Description Phase Agent
SSS-02-01-11-01-01 Validate and secure inputs/outputs Implement robust input validation to prevent injection attacks and ensure all outputs are properly encoded to mitigate vulnerabilities such as cross-site scripting (XSS). Development Developers
SSS-02-01-11-01-02 Utilize secure coding tools and standards Use tools like linters and formatters to enforce coding standards, and configure development environments to provide just-in-time secure coding training. Ensure consistent application of secure coding principles. Development DevOps Teams
SSS-02-01-11-01-03 Implement error handling and logging Detect errors and handle them gracefully to avoid exposing sensitive information. Incorporate logging and tracing capabilities to track issues and support debugging without compromising application security. Development Developers
SSS-02-01-11-01-04 Perform manual and automated code reviews Use automated tools to detect common vulnerabilities and require developers to conduct self-reviews of their human-readable code. Complement this with peer or tool-assisted code reviews to ensure comprehensive compliance with secure coding standards. Deployment Quality Assurance Teams
SSS-02-01-11-01-05 Check for language-specific vulnerabilities Regularly analyze the source code for vulnerabilities specific to the programming languages and development environments in use. Update practices as new threats emerge and ensure all findings are addressed before deployment. Post-deployment Security Analysts

References

Industry framework Academic work Real-world case
Information Security Manual (ISM-0401)
NIST Secure Software Development Framework (PW.5.1)
SSDF (PW.5.1: Follow all secure coding practices- Example)