|
1 | | -dimension: |
2 | | - name: Build and Deployment |
3 | | - subdimension: |
4 | | - level-1: |
5 | | - - assessment: '- Show your build pipeline and an exemplary job (build + test). |
6 | | -
|
7 | | - - Show that every team member has access. |
8 | | -
|
9 | | - - Show that failed jobs are fixed. |
10 | | -
|
11 | | - ' |
12 | | - credits: 'AppSecure-nrw [Security Belts](https://github.com/AppSecure-nrw/security-belts/) |
13 | | -
|
14 | | - ' |
| 1 | +--- |
| 2 | +Build and Deployment: |
| 3 | + Build: |
| 4 | + Building and testing of artifacts in virtual environments: |
| 5 | + description: |- |
| 6 | + While building and testing artifacts, third party systems, application frameworks |
| 7 | + and 3rd party libraries are used. These might be malicious as a result of |
| 8 | + vulnerable libraries or because they are altered during the delivery phase. |
| 9 | + risk: |- |
| 10 | + While building and testing artifacts, third party systems, application frameworks |
| 11 | + and 3rd party libraries are used. These might be malicious as a result of |
| 12 | + vulnerable libraries or because they are altered during the delivery phase. |
| 13 | + measure: Each step during within the build and testing phase is performed in |
| 14 | + a separate virtual environments, which is destroyed afterward. |
| 15 | + meta: |
| 16 | + implementationGuide: Depending on your environment, usage of virtual machines |
| 17 | + or container technology is a good way. After the build, the filesystem should |
| 18 | + not be used again in other builds. |
15 | 19 | difficultyOfImplementation: |
16 | 20 | knowledge: 2 |
17 | | - resources: 2 |
18 | 21 | time: 2 |
| 22 | + resources: 2 |
| 23 | + usefulness: 2 |
| 24 | + level: 2 |
19 | 25 | implementation: |
20 | | - - $ref: data/dimensions-subdimensions-activities/implementations.yaml#/implementations/ci-cd-tools |
21 | | - level: 1 |
22 | | - md-description: '## Benefits: |
23 | | -
|
24 | | - Quality is visible to everyone |
25 | | -
|
26 | | - There is a single instance deciding whether the code meets its quality (single |
27 | | - ground of truth). |
28 | | -
|
29 | | - Deterministic and reproducible builds |
30 | | -
|
31 | | - ' |
32 | | - measure: Use continuous automated building and testing of the software. |
33 | | - name: Continuous integration |
| 26 | + - $ref: src/assets/YAML/default/implementations.yaml#/implementations/ci-cd-tools |
| 27 | + - $ref: src/assets/YAML/default/implementations.yaml#/implementations/container-technologi |
34 | 28 | references: |
35 | | - iso27001-2017: |
36 | | - - iso27001-2017:14.2.6 |
37 | 29 | samm2: |
38 | | - - I-SB-1-A |
39 | | - risk: Quality is not visible to everyone, quality checks are distributed or |
40 | | - manually and not deterministic. |
41 | | - usefulness: 2 |
42 | | - - dependsOn: |
43 | | - - Continuous Integration |
44 | | - description-md: 'Sample evidence as an attribute in the yaml: The build process |
45 | | - is defined in <a href="REPLACE-ME">REPLACE-ME Pipeline</a> |
46 | | -
|
| 30 | + - I-SB-2-A |
| 31 | + iso27001-2017: |
| 32 | + - 14.2.6 |
| 33 | + isImplemented: false |
| 34 | + evidence: "" |
| 35 | + comments: "" |
| 36 | + Defined build process: |
| 37 | + risk: Performing builds without a defined process is error prone; for example, |
| 38 | + as a result of incorrect security related configuration. |
| 39 | + measure: A well defined build process lowers the possibility of errors during |
| 40 | + the build process. |
| 41 | + description: | |
| 42 | + Sample evidence as an attribute in the yaml: The build process is defined in <a href="REPLACE-ME">REPLACE-ME Pipeline</a> |
47 | 43 | in the folder <i>vars</>. Projects are using a <i>Jenkinsfile</i> to use the |
48 | | -
|
49 | 44 | defined process. |
50 | | -
|
51 | | - ' |
52 | 45 | difficultyOfImplementation: |
53 | 46 | knowledge: 2 |
54 | | - resources: 2 |
55 | 47 | time: 3 |
56 | | - implementation: |
57 | | - - $ref: data/dimensions-subdimensions-activities/implementations.yaml#/implementations/ci-cd-tools |
58 | | - - $ref: data/dimensions-subdimensions-activities/implementations.yaml#/implementations/container-technologi |
59 | | - level: 1 |
60 | | - measure: A well defined build process lowers the possibility of errors during |
61 | | - the build process. |
62 | | - name: Defined build process |
63 | | - references: |
64 | | - iso27001-2017: |
65 | | - - 12.1.1 |
66 | | - - 14.2.2 |
67 | | - samm2: |
68 | | - - I-SB-1-A |
69 | | - risk: |
70 | | - - Performing builds without a defined process is error prone; for example, as |
71 | | - a result of incorrect security related configuration. |
| 48 | + resources: 2 |
72 | 49 | usefulness: 4 |
73 | | - level-2: |
74 | | - - description: 'While building and testing artifacts, third party systems, application |
75 | | - frameworks |
76 | | -
|
77 | | - and 3rd party libraries are used. These might be malicious as a result of |
| 50 | + level: 1 |
| 51 | + assessment: | |
| 52 | + - Show your build pipeline and an exemplary job (build + test). |
| 53 | + - Show that every team member has access. |
| 54 | + - Show that failed jobs are fixed. |
78 | 55 |
|
79 | | - vulnerable libraries or because they are altered during the delivery phase.' |
80 | | - difficultyOfImplementation: |
81 | | - knowledge: 2 |
82 | | - resources: 2 |
83 | | - time: 2 |
| 56 | + Credits: AppSecure-nrw [Security Belts](https://github.com/AppSecure-nrw/security-belts/) |
84 | 57 | implementation: |
85 | | - - $ref: data/dimensions-subdimensions-activities/implementations.yaml#/implementations/ci-cd-tools |
86 | | - - $ref: data/dimensions-subdimensions-activities/implementations.yaml#/implementations/container-technologi |
87 | | - level: 2 |
88 | | - measure: Each step during within the build and testing phase is performed in |
89 | | - a separate virtual environments, which is destroyed afterward. |
90 | | - meta: |
91 | | - implementationGuide: Depending on your environment, usage of virtual machines |
92 | | - or container technology is a good way. After the build, the filesystem should |
93 | | - not be used again in other builds. |
94 | | - name: Building and testing of artifacts in virtual environments |
| 58 | + - $ref: src/assets/YAML/default/implementations.yaml#/implementations/ci-cd-tools |
| 59 | + - $ref: src/assets/YAML/default/implementations.yaml#/implementations/container-technologi |
95 | 60 | references: |
96 | | - iso27001-2017: |
97 | | - - iso27001-2017:14.2.6 |
98 | 61 | samm2: |
99 | | - - I-SB-2-A |
100 | | - risk: |
101 | | - - 'While building and testing artifacts, third party systems, application frameworks |
102 | | -
|
103 | | - and 3rd party libraries are used. These might be malicious as a result of |
104 | | -
|
105 | | - vulnerable libraries or because they are altered during the delivery phase.' |
106 | | - usefulness: 2 |
107 | | - - comment: The usage of pinning requires a good processes for patching. Therefore, |
| 62 | + - I-SB-1-A |
| 63 | + iso27001-2017: |
| 64 | + - 12.1.1 |
| 65 | + - 14.2.2 |
| 66 | + isImplemented: false |
| 67 | + evidence: "" |
| 68 | + comments: "" |
| 69 | + Pinning of artifacts: |
| 70 | + risk: Unauthorized manipulation of artifacts might be difficult to spot. For |
| 71 | + example, this may result in using images with malicious code. Also, intendend |
| 72 | + major changes, which are automatically used in an image used might break the |
| 73 | + functionality. |
| 74 | + measure: Pinning of artifacts ensure that changes are performed only when intended. |
| 75 | + comment: The usage of pinning requires a good processes for patching. Therefore, |
108 | 76 | choose this activity wisly. |
109 | | - dependsOn: |
110 | | - - Defined build process |
111 | 77 | difficultyOfImplementation: |
112 | 78 | knowledge: 2 |
113 | | - resources: 2 |
114 | 79 | time: 2 |
| 80 | + resources: 2 |
| 81 | + usefulness: 3 |
| 82 | + level: 2 |
115 | 83 | implementation: |
116 | 84 | - Container technology automatically creates a hash for images, which can be |
117 | 85 | used. |
118 | 86 | - Immutable images are an other way, e.g. by using a registry, which doesn't |
119 | 87 | allow overriding of images. |
120 | | - level: 2 |
121 | | - measure: Pinning of artifacts ensure that changes are performed only when intended. |
122 | | - name: Pinning of artifacts |
| 88 | + dependsOn: |
| 89 | + - Defined build process |
123 | 90 | references: |
124 | | - iso27001-2017: |
125 | | - - 14.2.6 |
126 | 91 | samm2: |
127 | 92 | - I-SB-1-A |
128 | | - risk: |
129 | | - - Unauthorized manipulation of artifacts might be difficult to spot. For example, |
130 | | - this may result in using images with malicious code. Also, intendend major |
131 | | - changes, which are automatically used in an image used might break the functionality. |
132 | | - usefulness: 3 |
133 | | - - dependsOn: |
| 93 | + iso27001-2017: |
| 94 | + - 14.2.6 |
| 95 | + isImplemented: false |
| 96 | + evidence: "" |
| 97 | + comments: "" |
| 98 | + SBOM of components: |
| 99 | + risk: In case a vulnerability of severity high or critical exists, it needs |
| 100 | + to be known where an artifacts with that vulnerability is deployed with which |
| 101 | + dependencies. |
| 102 | + measure: Creation of an SBOM of components (e.g. application and container image |
| 103 | + content) during build. |
| 104 | + dependsOn: |
134 | 105 | - Defined build process |
135 | 106 | difficultyOfImplementation: |
136 | 107 | knowledge: 2 |
137 | | - resources: 3 |
138 | 108 | time: 2 |
139 | | - implementation: [] |
140 | | - iso27001-2017: |
141 | | - - '8.1' |
142 | | - - '8.2' |
143 | | - level: 2 |
144 | | - measure: Creation of an SBOM of components (e.g. application and container image |
145 | | - content) during build. |
146 | | - name: SBOM of components |
147 | | - risk: |
148 | | - - In case a vulnerability of severity high or critical exists, it needs to be |
149 | | - known where an artifacts with that vulnerability is deployed with which dependencies. |
| 109 | + resources: 3 |
150 | 110 | usefulness: 3 |
151 | | - level-3: |
152 | | - - dependsOn: |
153 | | - - Defined build process |
| 111 | + level: 2 |
| 112 | + implementation: [] |
| 113 | + references: |
| 114 | + samm2: [] |
| 115 | + iso27001-2017: |
| 116 | + - "8.1" |
| 117 | + - "8.2" |
| 118 | + isImplemented: false |
| 119 | + evidence: "" |
| 120 | + comments: "" |
| 121 | + Signing of artifacts: |
| 122 | + risk: Unauthorized manipulation of artifacts might be difficult to spot. For |
| 123 | + example, this may result in images with malicious code in the Docker registry. |
| 124 | + measure: Digitally signing artifacts for all steps during the build and especially |
| 125 | + docker images, helps to ensure their integrity. |
154 | 126 | difficultyOfImplementation: |
155 | 127 | knowledge: 2 |
156 | | - resources: 2 |
157 | 128 | time: 2 |
158 | | - implementation: [] |
| 129 | + resources: 2 |
| 130 | + usefulness: 4 |
159 | 131 | level: 3 |
160 | | - measure: Digitally signing commits helps to prevent unauthorized manipulation |
161 | | - of source code. |
162 | | - name: Signing of code |
| 132 | + implementation: |
| 133 | + - $ref: src/assets/YAML/default/implementations.yaml#/implementations/docker-content-trust |
| 134 | + - $ref: src/assets/YAML/default/implementations.yaml#/implementations/in-toto |
| 135 | + dependsOn: |
| 136 | + - Defined build process |
| 137 | + - Pinning of artifacts |
163 | 138 | references: |
| 139 | + samm2: |
| 140 | + - I-SB-1-A |
164 | 141 | iso27001-2017: |
165 | 142 | - 14.2.6 |
166 | | - samm2: I-SB-2-A |
167 | | - risk: |
168 | | - - Unauthorized manipulation of source code might be difficult to spot. |
169 | | - usefulness: 3 |
170 | | - - dependsOn: |
171 | | - - Defined build process |
172 | | - - Pinning of artifacts |
| 143 | + isImplemented: false |
| 144 | + evidence: "" |
| 145 | + comments: "" |
| 146 | + Signing of code: |
| 147 | + risk: Unauthorized manipulation of source code might be difficult to spot. |
| 148 | + measure: Digitally signing commits helps to prevent unauthorized manipulation |
| 149 | + of source code. |
173 | 150 | difficultyOfImplementation: |
174 | 151 | knowledge: 2 |
175 | | - resources: 2 |
176 | 152 | time: 2 |
177 | | - implementation: |
178 | | - - $ref: data/dimensions-subdimensions-activities/implementations.yaml#/implementations/docker-content-trust |
179 | | - - $ref: data/dimensions-subdimensions-activities/implementations.yaml#/implementations/in-toto |
| 153 | + resources: 2 |
| 154 | + usefulness: 3 |
180 | 155 | level: 3 |
181 | | - measure: Digitally signing artifacts for all steps during the build and especially |
182 | | - docker images, helps to ensure their integrity. |
183 | | - name: Signing of artifacts |
| 156 | + implementation: |
| 157 | + - $ref: src/assets/YAML/default/implementations.yaml#/implementations/signing-of-commits |
| 158 | + - $ref: src/assets/YAML/default/implementations.yaml#/implementations/signing-of-commits-protection |
| 159 | + dependsOn: |
| 160 | + - Defined build process |
184 | 161 | references: |
| 162 | + samm2: |
| 163 | + - I-SB-2-A |
185 | 164 | iso27001-2017: |
186 | 165 | - 14.2.6 |
187 | | - samm2: |
188 | | - - I-SB-1-A |
189 | | - risk: |
190 | | - - Unauthorized manipulation of artifacts might be difficult to spot. For example, |
191 | | - this may result in images with malicious code in the Docker registry. |
192 | | - usefulness: 4 |
193 | | - name: Build |
| 166 | + isImplemented: false |
| 167 | + evidence: "" |
| 168 | + comments: "" |
| 169 | +... |
0 commit comments