@@ -21,46 +21,46 @@ Refer to proactive control [C1: Define Security Requirements][control1]
2121for more context from the OWASP Top 10 Proactive Controls project,
2222and use the lists below as suggestions for a checklist that has been tailored for the individual project.
2323
24- #### System configuration
25-
26- * Restrict applications, processes and service accounts to the least privileges possible
27- * If the application must run with elevated privileges, raise privileges as late as possible, and drop as soon as possible
28- * Remove all unnecessary functionality and files
29- * Remove test code or any functionality not intended for production, prior to deployment
30- * The security configuration store for the application should be available in human readable form to support auditing
31- * Isolate development environments from production and provide access only to authorized development and test groups
32- * Implement a software change control system to manage and record changes to the code both in development and production
33-
34- #### Cryptographic practices
35-
36- * Use peer reviewed and open solution cryptographic modules
37- * All cryptographic functions used to protect secrets from the application user must be implemented on a trusted system
38- * Cryptographic modules must fail securely
39- * Ensure all random elements such as numbers, file names, UUID and strings are generated
24+ #### 1. System configuration
25+
26+ 1 . Restrict applications, processes and service accounts to the least privileges possible
27+ 1 . If the application must run with elevated privileges, raise privileges as late as possible, and drop as soon as possible
28+ 1 . Remove all unnecessary functionality and files
29+ 1 . Remove test code or any functionality not intended for production, prior to deployment
30+ 1 . The security configuration store for the application should be available in human readable form to support auditing
31+ 1 . Isolate development environments from production and provide access only to authorized development and test groups
32+ 1 . Implement a software change control system to manage and record changes to the code both in development and production
33+
34+ #### 2. Cryptographic practices
35+
36+ 1 . Use peer reviewed and open solution cryptographic modules
37+ 1 . All cryptographic functions used to protect secrets from the application user must be implemented on a trusted system
38+ 1 . Cryptographic modules must fail securely
39+ 1 . Ensure all random elements such as numbers, file names, UUID and strings are generated
4040 using the cryptographic module approved random number generator
41- * Cryptographic modules used by the application are compliant to FIPS 140-2 or an equivalent standard
42- * Establish and utilize a policy and process for how cryptographic keys will be managed
43- * Ensure that any secret key is protected from unauthorized access
44- * Store keys in a proper secrets vault as described below
45- * Use independent keys when multiple keys are required
46- * Build support for changing algorithms and keys when needed
47- * Build application features to handle a key rotation
48-
49- #### File management
50-
51- * Do not pass user supplied data directly to any dynamic include function
52- * Require authentication before allowing a file to be uploaded
53- * Limit the type of files that can be uploaded to only those types that are needed for business purposes
54- * Validate uploaded files are the expected type by checking file headers rather than by file extension
55- * Do not save files in the same web context as the application
56- * Prevent or restrict the uploading of any file that may be interpreted by the web server.
57- * Turn off execution privileges on file upload directories
58- * When referencing existing files, use an allow-list of allowed file names and types
59- * Do not pass user supplied data into a dynamic redirect
60- * Do not pass directory or file paths, use index values mapped to pre-defined list of paths
61- * Never send the absolute file path to the client
62- * Ensure application files and resources are read-only
63- * Scan user uploaded files for viruses and malware
41+ 1 . Cryptographic modules used by the application are compliant to FIPS 140-2 or an equivalent standard
42+ 1 . Establish and utilize a policy and process for how cryptographic keys will be managed
43+ 1 . Ensure that any secret key is protected from unauthorized access
44+ 1 . Store keys in a proper secrets vault as described below
45+ 1 . Use independent keys when multiple keys are required
46+ 1 . Build support for changing algorithms and keys when needed
47+ 1 . Build application features to handle a key rotation
48+
49+ #### 3. File management
50+
51+ 1 . Do not pass user supplied data directly to any dynamic include function
52+ 1 . Require authentication before allowing a file to be uploaded
53+ 1 . Limit the type of files that can be uploaded to only those types that are needed for business purposes
54+ 1 . Validate uploaded files are the expected type by checking file headers rather than by file extension
55+ 1 . Do not save files in the same web context as the application
56+ 1 . Prevent or restrict the uploading of any file that may be interpreted by the web server.
57+ 1 . Turn off execution privileges on file upload directories
58+ 1 . When referencing existing files, use an allow-list of allowed file names and types
59+ 1 . Do not pass user supplied data into a dynamic redirect
60+ 1 . Do not pass directory or file paths, use index values mapped to pre-defined list of paths
61+ 1 . Never send the absolute file path to the client
62+ 1 . Ensure application files and resources are read-only
63+ 1 . Scan user uploaded files for viruses and malware
6464
6565#### References
6666
0 commit comments