Appendix P - SDL-Agile Every-Sprint Requirements
Title | Requirement/Recommendation | Applies to Online Services | Applies to Managed Code | Applies to Native Code |
AllowPartiallyTrustedCallersAttribute (APTCA) review | Requirement | X | ||
Apply input validation (LOB) | Requirement | X | X | X |
Annotate pointers to non-const parameters using Standard Annotation Language (SAL) | Requirement | X | ||
Avoid Exec in stored procedures | Requirement | X | ||
Communicate privacy-impacting design changes to the team's privacy advisor | Requirement | X | X | X |
Compile all code with the /GS compiler option | Requirement | X | X | |
Comply with SDL firewall requirements | Requirement | X | X | |
Conduct internal security design review (LOB) | Requirement | X | X | X |
Do not use banned APIs in new code | Requirement | X | X | |
Employ reflection and authentication relay defense | Requirement | X | X | |
Encrypt all secrets, such as credentials, keys, and passwords (LOB) | Requirement | X | X | X |
Ensure all ASP.NET applications use the ValidateRequest cross-site scripting input validation attribute | Requirement | X | X | |
Ensure all database access is performed through parameterized queries to stored procedures | Requirement | X | X | X |
Ensure all team members have had security education within the past year | Requirement | X | X | X |
Ensure the application domain group is granted only execute permissions on the database stored procedures | Requirement | X | X | X |
Fix all issues identified by code analysis tools for unmanaged code | Requirement | X | X | |
Fix all security issues identified by CAT.NET and FxCop static analysis | Requirement | X | X | |
Follow input validation and output encoding guidelines to defend against cross-site scripting attacks | Requirement | X | X | X |
Harden or disable XML entity resolution | Requirement | X | X | |
Host security deployment review (LOB) | Requirement | X | X | X |
Link all code with the /dynamicbase linker option (Address Space Layout Randomization) | Requirement | X | X | |
Link all code with the /nxcompat linker option (Data Execution Prevention) | Requirement | X | ||
Link all code with the /safeseh linker option (safe exception handling) | Requirement | X | ||
Mitigate against cross-site request forgery (CSRF) | Requirement | X | ||
Mitigate against cross-site scripting (XSS) | Requirement | X | X | X |
Secure sensitive data-at-rest (LOB) | Requirement | X | X | X |
Secure sensitive data-in-transit (LOB) | Requirement | X | X | X |
Update threat models for new features | Requirement | X | X | X |
Use HeapSetInformation | Requirement | X | ||
Use safe integer arithmetic for memory allocation for new code | Requirement | X | ||
Use safe redirect | Requirement | X | X | X |
Use secure cookie over HTTPS | Requirement | X | X | X |
Use standard annotation language (SAL) to annotate all functions | Requirement | X | X | |
Use the most secure ATL version and secure COM coding requirements | Requirement | X | ||
Use the /robust MIDL compiler switch | Requirement | X | ||
Use the Relying Party Suite SDK | Requirement | X | X | |
Utilize LOB Secure Code Review (LOB) | Requirement | X | X | X |
Avoid JavaScript eval function and equivalents | Recommendation | X | ||
Canonicalize URLs | Recommendation | X | X | X |
Employ COM best practices | Recommendation | X | ||
Encode long-lived pointers | Recommendation | X | X | |
Restrict database permissions | Recommendation | X | ||
Review error messages to ensure sensitive information is not disclosed | Recommendation | X | X | X |
Use strict /GS option | Recommendation | X | X | |
Use transport layer encryption securely | Recommendation | X | X | X |
Use whitelist of allowed domains to perform redirects | Recommendation | X | X | X |
Content Disclaimer
This documentation is not an exhaustive reference on the SDL process as practiced at Microsoft. Additional assurance work may be performed by product teams (but not necessarily documented) at their discretion. As a result, this example should not be considered as the exact process that Microsoft follows to secure all products. This documentation is provided “as-is.” Information and views expressed in this document, including URL and other Internet website references, may change without notice. You bear the risk of using it. This documentation does not provide you with any legal rights to any intellectual property in any Microsoft product. You may copy and use this document for your internal, reference purposes. © 2012 Microsoft Corporation. All rights reserved. Licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported |