|
| 1 | +Build and Deployment: |
| 2 | + Deployment: |
| 3 | + Blue/Green Deployment: |
| 4 | + risk: |
| 5 | + - A new artifacts version can have unknown defects. |
| 6 | + measure: By having multiple production environments, a deployment can be performant |
| 7 | + on the first environment to spot possible defects before it is deployment |
| 8 | + in the production environment(s) |
| 9 | + difficultyOfImplementation: |
| 10 | + knowledge: 1 |
| 11 | + time: 2 |
| 12 | + resources: 1 |
| 13 | + usefulness: 2 |
| 14 | + level: 4 |
| 15 | + implementation: |
| 16 | + - $ref: data/dimensions-subdimensions-activities/implementations.yaml#/implementations/blue-green-deploymen |
| 17 | + dependsOn: |
| 18 | + - Smoke Test |
| 19 | + references: |
| 20 | + samm2: |
| 21 | + - TODO |
| 22 | + iso27001-2017: |
| 23 | + - 17.2.1 |
| 24 | + - 12.1.1 |
| 25 | + - 12.1.2 |
| 26 | + - 12.1.4 |
| 27 | + - 12.5.1 |
| 28 | + - 14.2.9 |
| 29 | + Defined deployment process: |
| 30 | + risk: |
| 31 | + - Deployments without a defined process are error prone thus allowing old or |
| 32 | + untested artifact to be deployed. |
| 33 | + measure: A defined deployment process significantly lowers the likelihood of |
| 34 | + errors during the deployment phase. |
| 35 | + difficultyOfImplementation: |
| 36 | + knowledge: 2 |
| 37 | + time: 2 |
| 38 | + resources: 1 |
| 39 | + usefulness: 4 |
| 40 | + level: 1 |
| 41 | + dependsOn: |
| 42 | + - Continuous Integration |
| 43 | + implementation: |
| 44 | + - $ref: data/dimensions-subdimensions-activities/implementations.yaml#/implementations/ci-cd-tools |
| 45 | + - $ref: data/dimensions-subdimensions-activities/implementations.yaml#/implementations/docker |
| 46 | + references: |
| 47 | + samm2: I-SD-1-A |
| 48 | + iso27001-2017: |
| 49 | + - 12.1.1 |
| 50 | + - 14.2.2 |
| 51 | + Environment depending configuration parameters (secrets): |
| 52 | + risk: |
| 53 | + - Attackers who compromise a system can see confidential access information |
| 54 | + like database credentials. |
| 55 | + - Parameters are often used to set credentials, for example by starting containers |
| 56 | + or applications; these parameters can often be seen by any one listing running |
| 57 | + processes on the target system. |
| 58 | + measure: | |
| 59 | + Configuration parameters are set for each environment not in the source code. |
| 60 | + By using encryption, it is harder to read credentials , e.g. from the file system. Also, the usage of a credential management system can help protect credentials. |
| 61 | + difficultyOfImplementation: |
| 62 | + knowledge: 2 |
| 63 | + time: 2 |
| 64 | + resources: 1 |
| 65 | + usefulness: 4 |
| 66 | + level: 2 |
| 67 | + implementation: [] |
| 68 | + references: |
| 69 | + samm2: |
| 70 | + - I-SD-1-B |
| 71 | + iso27001-2017: |
| 72 | + - 9.4.5 |
| 73 | + - 14.2.6 |
| 74 | + Rolling update on deployment: |
| 75 | + risk: |
| 76 | + - While a deployment is performed, the application can not be reached. |
| 77 | + measure: A deployment without downtime is performed*. |
| 78 | + difficultyOfImplementation: |
| 79 | + knowledge: 2 |
| 80 | + time: 2 |
| 81 | + resources: 2 |
| 82 | + usefulness: 2 |
| 83 | + level: 3 |
| 84 | + implementation: |
| 85 | + - $ref: data/dimensions-subdimensions-activities/implementations.yaml#/implementations/docker |
| 86 | + - $ref: data/dimensions-subdimensions-activities/implementations.yaml#/implementations/webserver |
| 87 | + - $ref: data/dimensions-subdimensions-activities/implementations.yaml#/implementations/rolling-update |
| 88 | + dependsOn: |
| 89 | + - Defined deployment process |
| 90 | + samm2: I-SD-1-A |
| 91 | + iso27001-2017: |
| 92 | + - 12.5.1 |
| 93 | + - 14.2.2 |
| 94 | + - 17.2.1 |
| 95 | + Same artifact for environments: |
| 96 | + risk: |
| 97 | + - Building of an artifact for different environments means that an untested |
| 98 | + artifact might reach the production environment. |
| 99 | + measure: Building an artifact once and deploying it to different environments |
| 100 | + means that only tested artifacts are allowed to reach the production environment |
| 101 | + difficultyOfImplementation: |
| 102 | + knowledge: 2 |
| 103 | + time: 2 |
| 104 | + resources: 1 |
| 105 | + usefulness: 4 |
| 106 | + level: 3 |
| 107 | + implementation: |
| 108 | + - $ref: data/dimensions-subdimensions-activities/implementations.yaml#/implementations/docker |
| 109 | + dependsOn: |
| 110 | + - Defined build process |
| 111 | + samm2: I-SD-2-A |
| 112 | + iso27001-2017: |
| 113 | + - 14.3.1 |
| 114 | + - 14.2.8 |
| 115 | + - 12.1.4 |
| 116 | + Handover of confidential parameters: |
| 117 | + risk: |
| 118 | + - Attackers who compromise a system can see confidential access information |
| 119 | + like database credentials. |
| 120 | + - Parameters are often used to set credentials, for example by starting containers |
| 121 | + or applications; these parameters can often be seen by any one listing running |
| 122 | + processes on the target system. |
| 123 | + measure: By using encryption, it is harder to read credentials , e.g. from the |
| 124 | + file system. Also, the usage of a credential management system can help protect |
| 125 | + credentials. |
| 126 | + difficultyOfImplementation: |
| 127 | + knowledge: 2 |
| 128 | + time: 2 |
| 129 | + resources: 1 |
| 130 | + usefulness: 4 |
| 131 | + level: 3 |
| 132 | + implementation: '' |
| 133 | + dependsOn: |
| 134 | + - Environment depending configuration parameters (secrets) |
| 135 | + references: |
| 136 | + samm2: I-SD-2-B |
| 137 | + iso27001-2017: |
| 138 | + - 14.1.3 |
| 139 | + - 13.1.3 |
| 140 | + - 9.4.3 |
| 141 | + - 9.4.1 |
| 142 | + - 10.1.2 |
| 143 | + Usage of feature toggles: |
| 144 | + risk: |
| 145 | + - By using environment dependent configuration, some parameters will not be |
| 146 | + tested correctly. i.e. <pre>if (host == 'production') {} else {}</pre> |
| 147 | + measure: Usage of environment independent configuration parameter, called feature |
| 148 | + toggles, helps to enhance the test coverage. Only what has been tested, goes |
| 149 | + to production. |
| 150 | + difficultyOfImplementation: |
| 151 | + knowledge: 2 |
| 152 | + time: 1 |
| 153 | + resources: 1 |
| 154 | + usefulness: 2 |
| 155 | + level: 3 |
| 156 | + implementation: |
| 157 | + - $ref: data/dimensions-subdimensions-activities/implementations.yaml#/implementations/docker |
| 158 | + dependsOn: |
| 159 | + - Same artifact for environments |
| 160 | + iso27001-2017: |
| 161 | + - 14.3.1 |
| 162 | + - 14.2.8 |
| 163 | + - 14.2.9 |
| 164 | + - 12.1.4 |
| 165 | + Usage of trusted images: |
| 166 | + risk: |
| 167 | + - Developers or operations might start random images in the production cluster |
| 168 | + which have malicious code or known vulnerabilities. |
| 169 | + measure: Create image assessment criteria, perform an evaluation of images and |
| 170 | + create a whitelist of artifacts/container images/virtual machine images. |
| 171 | + implementation: |
| 172 | + - $ref: data/dimensions-subdimensions-activities/implementations.yaml#/implementations/kubernetes-admission |
| 173 | + difficultyOfImplementation: |
| 174 | + knowledge: 1 |
| 175 | + time: 1 |
| 176 | + resources: 1 |
| 177 | + usefulness: 3 |
| 178 | + level: 2 |
| 179 | + samm2: I-SD-2-A |
| 180 | + iso27001-2017: |
| 181 | + - 15.1.1 |
| 182 | + - 15.1.2 |
| 183 | + - 15.1.3 |
| 184 | + - 14.1.3 |
| 185 | + Inventory of running artifacts: |
| 186 | + risk: |
| 187 | + - In case a vulnerability of severity high or critical exists, it needs to be |
| 188 | + known where an artifacts with that vulnerability is deployed with which dependencies. |
| 189 | + measure: A documented inventory or a possibility to gather the needed information |
| 190 | + (e.g. the documentation of which script needs to be run by whom) must be in |
| 191 | + place. |
| 192 | + dependsOn: |
| 193 | + - Defined deployment process |
| 194 | + difficultyOfImplementation: |
| 195 | + knowledge: 2 |
| 196 | + time: 2 |
| 197 | + resources: 3 |
| 198 | + usefulness: 3 |
| 199 | + level: 3 |
| 200 | + samm2: o-incident-management|TODO |
| 201 | + iso27001-2017: |
| 202 | + - '8.1' |
| 203 | + - '8.2' |
| 204 | + implementation: [] |
0 commit comments