Security Checklist
Security isn't just about technical measures and code scanning, but much more. This checklist provides a starting point for assessing the level of security, responsibility, and risk in deliveries, and all development teams should relate to its content unless otherwise agreed with the customer.
It's not a given that all points are relevant for every project, or that implementing all measures is desirable. Each team and delivery manager must assess cost/benefit and what responsibility and risk is assumed by not introducing measures. Security requires continuous work, so review the checklist regularly to see if there are measures that can or should be introduced so that nothing is overlooked.
Download the checklist and implement it as part of the source code in your project!
Plan
- Is it clear what responsibilities we have in the delivery, and is the rest of the responsibility clearly allocated?
- Are the system’s data classified and handled accordingly?
- Are data in the development and test environments also handled according to the classification?
- If the application becomes unavailable for shorter or longer periods, what consequences does this have for us and the customer?
- Is there a defined SLA for the application?
- In the event of an incident, have we clarified who should be contacted at Bouvet and at the customer?
- Is there a defined plan for how and how often backups should be taken?
- Is there a defined plan for disaster recovery?
- Has the team clarified which tools should be used and how they should be handled?
- Have control mechanisms been defined to maintain security in the project?
Design
- Is it clear what security requirements apply to the solution?
- Have the necessary sketches/diagrams of the system been created and updated?
- Does the team have the necessary overview of the network the system uses?
- Are the environments segregated to reduce exposure in the event of incidents?
- Has necessary authentication been set up for accessing the system?
- Has necessary authorization been set up for actions in the system?
- Has threat modeling of the solution been conducted?
- Does the team have the necessary expertise for the project?
Develop
- Are the development environments well described?
- Are secrets and similar items handled according to best practices?
- Is data from other systems validated?
- Are there routines to protect against today’s most common attack types?
- Are there routines to protect against software supply chain attacks?
- Are there routines to secure internal components operated by the team?
- Is security analyzed through testing or other forms of analysis?
- Is necessary information about the system documented, updated, and stored securely?
Deploy
- Have automated security measures been set up?
- Does the team have procedures to secure the build environment?
- Is a review conducted before deployment?
- Is penetration testing planned in connection with deployment?
Operate
- Has the team verified that the network diagram is correctly implemented?
- If the customer or others require an audit of the solution, has the team planned how this can be carried out?
- Has the necessary logging been set up to detect and get an overview of unwanted incidents?
- Are logs stored so that they cannot be tampered with?
- Does the team have a routine to protect against vulnerable dependencies?
- Does the team have a routine for practicing system recovery?
- Does the team have a procedure for incident handling and a contingency plan if the solution is attacked or goes down?