Skip to content

Commit bc076b5

Browse files
authored
Merge pull request #10 from devsecopsmaturitymodel/feat/vuln
Feat: Add includes
2 parents 9025d21 + 1dcf7a0 commit bc076b5

File tree

17 files changed

+2876
-357
lines changed

17 files changed

+2876
-357
lines changed

README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,13 @@ docker run -ti -v $(pwd)/src/assets/YAML/:/var/www/html/src/assets/YAML wurstbro
88
# Afterwards, you can use the generated.yaml in a container
99
docker run -v $(pwd)/src/assets/YAML/generated/generated.yaml:/usr/share/nginx/html/assets/YAML/generated/generated.yaml -p 8080:8080 wurstbrot/dsomm
1010
```
11+
12+
## Credits
13+
14+
* The dimension _Test and Verification_ is based on Christian Schneiders [Security DevOps Maturity Model (SDOMM)](https://www.christian-schneider.net/SecurityDevOpsMaturityModel.html). _Application tests_ and _Infrastructure tests_ are added by Timo Pagel. Also, the sub-dimension _Static depth_ has been evaluated by security experts at [OWASP Stammtisch Hamburg](https://www.owasp.org/index.php/OWASP_German_Chapter_Stammtisch_Initiative/Hamburg).
15+
* The sub-dimension <i>Process</i> has been added after a discussion with [Francois Raynaud](https://www.linkedin.com/in/francoisraynaud/) that reactive activities are missing.
16+
* Enhancement of my basic translation is performed by [Claud Camerino](https://github.com/clazba).
17+
* Adding ISO 27001:2017 mapping, [Andre Baumeier](https://github.com/AndreBaumeier).
18+
* [OWASP Project Integration Project Writeup](https://github.com/OWASP/www-project-integration-standards/blob/master/writeups/owasp_in_sdlc/index.md) for providing documentation on different DevSecOps practices which are copied&pasted/ (and adopted) (https://github.com/northdpole, https://github.com/ThunderSon)
19+
* The requirements from [level 0](https://github.com/AppSecure-nrw/security-belts/blob/master/white/) are based on/copied from [AppSecure NRW](https://appsecure.nrw/)
20+
* The sub dimension _Test KPI_, _Triage_, _Dynamic depth for app/infra_, _Static depth for app/infra_ and some other vulnerability management activities are based/inspired by [Vulnerability Managment Maturity Model - Cheat Sheet V1.6](TODO FRANCESCO LINK)

src/assets/YAML/default/BuildAndDeployment/Build.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ Build and Deployment:
158158
measure:
159159
Digitally signing artifacts for all steps during the build and especially
160160
docker images, helps to ensure their integrity and authenticity.
161-
description: |-
161+
description: |-
162162
To perform a push to a GitHub repository, you must be authenticated. It's important to note that GitHub does not verify if the authenticated user's email address matches the one in the commit.
163163
To clearly identify the author of a commit for reviewers, commit signing is recommended.
164164

src/assets/YAML/default/BuildAndDeployment/Deployment.yaml

Lines changed: 56 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ Build and Deployment:
4949
Unused applications are not maintained and may contain vulnerabilities.
5050
Once exploited they can be used to attack other applications or
5151
to perform lateral movements within the organization.
52-
measure: A clear decommissioning process ensures the removal of unused applications.
52+
measure: |-
53+
A clear decommissioning process ensures the removal of unused applications from the `Inventory of production components` and if implemented from `Inventory of production artifacts`.
5354
difficultyOfImplementation:
5455
knowledge: 1
5556
time: 2
@@ -129,8 +130,8 @@ Build and Deployment:
129130
d3f:
130131
- ApplicationConfigurationHardening
131132
isImplemented: false
132-
evidence: ""
133-
comments: ""
133+
tags:
134+
- secret
134135
Handover of confidential parameters:
135136
uuid: 94a96f79-8bd6-4904-97c0-994ff88f176a
136137
risk:
@@ -169,19 +170,19 @@ Build and Deployment:
169170
d3f:
170171
- ApplicationConfigurationHardening
171172
isImplemented: false
172-
evidence: ""
173-
comments: ""
174-
Inventory of dependencies:
173+
tags:
174+
- secret
175+
Inventory of production dependencies:
175176
uuid: 13e9757e-58e2-4277-bc0f-eadc674891e6
176177
risk:
177-
In case a vulnerability of severity high or critical is known by the organization,
178-
it needs to be known where an artifacts with that vulnerability is deployed
178+
Delayed identification of components and their vulnerabilities in production.
179+
In case a vulnerability is known by the organization, it needs to be known where an artifacts with that vulnerability is deployed
179180
with which dependencies.
180181
measure:
181-
A documented inventory of dependencies used in images and containers
182+
A documented inventory of dependencies used in artifacts like container images and containers
182183
exists.
183184
dependsOn:
184-
- Defined deployment process
185+
- uuid:83057028-0b77-4d2e-8135-40969768ae88 # Inventory of production artifacts
185186
- SBOM of components
186187
difficultyOfImplementation:
187188
knowledge: 2
@@ -190,7 +191,9 @@ Build and Deployment:
190191
usefulness: 3
191192
level: 3
192193
implementation:
194+
- $ref: src/assets/YAML/default/implementations.yaml#/implementations/backstage
193195
- $ref: src/assets/YAML/default/implementations.yaml#/implementations/dependencyTrack
196+
- $ref: src/assets/YAML/default/implementations.yaml#/implementations/image-metadata-collector
194197
references:
195198
samm2:
196199
- I-SD-2-A
@@ -200,25 +203,60 @@ Build and Deployment:
200203
iso27001-2022:
201204
- 5.9
202205
- 5.12
203-
isImplemented: false
204-
evidence: ""
205206
comments: ""
206-
Inventory of running artifacts:
207+
tags:
208+
- inventory
209+
- sbom
210+
Inventory of production components:
211+
uuid: 2a44b708-734f-4463-b0cb-86dc46344b2f
212+
risk: |-
213+
An organization is unaware of components like applications in production. Not knowing existing applications in production leads to not assessing it.
214+
measure: |-
215+
A documented inventory of components in production exists (gathered manually or automatically). For example a manually created document with applications in production.
216+
In a kubernetes cluster, namespaces can be automatically gathered and documented, e.g. in a JSON in a S3 bucket/git repository, dependency track.
217+
dependsOn:
218+
- Defined deployment process
219+
difficultyOfImplementation:
220+
knowledge: 1
221+
time: 1
222+
resources: 1
223+
usefulness: 4
224+
level: 1
225+
implementation:
226+
- $ref: src/assets/YAML/default/implementations.yaml#/implementations/backstage
227+
- $ref: src/assets/YAML/default/implementations.yaml#/implementations/dependencyTrack
228+
- $ref: src/assets/YAML/default/implementations.yaml#/implementations/image-metadata-collector
229+
references:
230+
samm2:
231+
- I-SD-2-A
232+
iso27001-2017:
233+
- 8.1
234+
- 8.2
235+
iso27001-2022:
236+
- 5.9
237+
- 5.12
238+
tags:
239+
- inventory
240+
Inventory of production artifacts:
207241
uuid: 83057028-0b77-4d2e-8135-40969768ae88
208242
risk:
209243
In case a vulnerability of severity high or critical exists, it needs
210244
to be known where an artifacts (e.g. container image) with that vulnerability
211245
is deployed.
212-
measure: A documented inventory or a possibility to gather the needed information.
246+
measure: A documented inventory of artifacts in production like container images exists (gathered manually or automatically).
213247
dependsOn:
214248
- Defined deployment process
249+
- uuid:2a44b708-734f-4463-b0cb-86dc46344b2f # Inventory of production components
215250
difficultyOfImplementation:
216251
knowledge: 2
217252
time: 2
218253
resources: 3
219254
usefulness: 3
220-
level: 3
221-
implementation: []
255+
level: 2
256+
implementation:
257+
- $ref: src/assets/YAML/default/implementations.yaml#/implementations/backstage
258+
- $ref: src/assets/YAML/default/implementations.yaml#/implementations/dependencyTrack
259+
- $ref: src/assets/YAML/default/implementations.yaml#/implementations/image-metadata-collector
222260
references:
223261
samm2:
224262
- I-SD-2-A
@@ -228,9 +266,8 @@ Build and Deployment:
228266
iso27001-2022:
229267
- 5.9
230268
- 5.12
231-
isImplemented: false
232-
evidence: ""
233-
comments: ""
269+
tags:
270+
- inventory
234271
Rolling update on deployment:
235272
uuid: 85d52588-f542-4225-a338-20dc22a5508d
236273
risk: While a deployment is performed, the application can not be reached.

src/assets/YAML/default/BuildAndDeployment/PatchManagement.yaml

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ Build and Deployment:
214214
comments: ""
215215
tags:
216216
- patching
217-
Automated merge of automated PRs:
217+
Automated merge of automated PRs: &automerge-PR
218218
uuid: f2594f8f-1cd6-45f9-af29-eaf3315698eb
219219
description: |-
220220
Automated merges of automated created PRs for outdated dependencies.
@@ -230,6 +230,8 @@ Build and Deployment:
230230
resources: 1
231231
usefulness: 3
232232
level: 2
233+
dependsOn:
234+
- Automated PRs for patches
233235
implementation:
234236
- $ref: src/assets/YAML/default/implementations.yaml#/implementations/dependabot
235237
- $ref: src/assets/YAML/default/implementations.yaml#/implementations/renovate
@@ -243,3 +245,21 @@ Build and Deployment:
243245
comments: ""
244246
tags:
245247
- patching
248+
Automated deployment of automated PRs:
249+
uuid: 08f27c26-2c6a-47fe-9458-5e88f188085d
250+
<<: *automerge-PR
251+
risk:
252+
Even if automated dependencies PRs are merged, they might not be deployed. This results in vulnerabilities in running artifacts stay for too long and might get exploited.
253+
measure: |
254+
After merging of an automated dependency PR, automated deployment is needed,
255+
difficultyOfImplementation:
256+
knowledge: 3
257+
time: 3
258+
resources: 1
259+
usefulness: 3
260+
level: 3
261+
dependsOn:
262+
- Automated merge of automated PRs
263+
implementation:
264+
- $ref: src/assets/YAML/default/implementations.yaml#/implementations/terraform
265+
- $ref: src/assets/YAML/default/implementations.yaml#/implementations/argocd

src/assets/YAML/default/CultureAndOrganization/Process.yaml

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,40 @@ Culture and Organization:
8080
- 17.1.1
8181
iso27001-2022:
8282
- 5.29
83-
isImplemented: false
84-
evidence: ""
85-
comments: ""
83+
Determining the protection requirement:
84+
uuid: 123e4567-e89b-12d3-a456-426614174000
85+
risk: |-
86+
Not defining the protection requirement of applications can lead to wrong prioritization, delayed remediation of
87+
critical security issues, increasing the risk of exploitation and potential damage to the organization.
88+
measure: |-
89+
Defining the protection requirement.
90+
The protection requirements for an application should consider:
91+
- Processed data criticality
92+
- Application accessibility (internal vs. external)
93+
- Regulatory compliance
94+
- Other relevant factors
95+
difficultyOfImplementation:
96+
knowledge: 2
97+
time: 2
98+
resources: 1
99+
usefulness: 3
100+
level: 2
101+
dependsOn:
102+
- uuid:2a44b708-734f-4463-b0cb-86dc46344b2f # inventory of production components
103+
implementation:
104+
- $ref: src/assets/YAML/default/implementations.yaml#/implementations/owasp-defectdojo
105+
- $ref: src/assets/YAML/default/implementations.yaml#/implementations/purify
106+
- $ref: src/assets/YAML/default/implementations.yaml#/implementations/business-friendly-vulnerability-metrics
107+
- $ref: src/assets/YAML/default/implementations.yaml#/implementations/defectdojo-client
108+
references:
109+
samm2:
110+
- I-DM-3-B
111+
iso27001-2022:
112+
- 5.25
113+
- 5.12
114+
- 5.13
115+
- 5.10
116+
tags:
117+
- vulnerability-mgmt
118+
- metrics
119+
- vmm-measurements

0 commit comments

Comments
 (0)