Skip to content

Commit b87f153

Browse files
authored
Merge pull request #81 from ioggstream/ioggstream-70
Fix: #70. Structured implementation fields.
2 parents fe6e618 + a0b9ceb commit b87f153

File tree

15 files changed

+408
-284
lines changed

15 files changed

+408
-284
lines changed

data-new/BuildAndDeployment/Sub-Dimensions.yaml

Lines changed: 65 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@ _meta:
55
A markdown description of this dimension.
66
_yaml_references:
77
tools:
8-
ci-cd: &ci-cd CI/CD tools, eg. Jenkins
8+
ci-cd: &ci-cd
9+
name: CI/CD tools
10+
tags: [ci-cd]
11+
description: |-
12+
CI/CD tools such as jenkins, gitlab-ci or github-actions
913
1014
Build:
1115
Building and testing of artifacts in virtual environments:
@@ -31,8 +35,10 @@ Build:
3135
usefulness: 2
3236
level: 2
3337
implementation:
34-
- Container technologies and orchestration like Docker, Kubernetes
35-
- *ci-cd
38+
- name: Container technologies and orchestration like Docker, Kubernetes
39+
tags: []
40+
- name: CI/CD tools, eg. Jenkins
41+
tags: []
3642
references:
3743
samm2:
3844
- i-secure-build|A|2
@@ -55,7 +61,8 @@ Build:
5561
level: 1
5662
implementation:
5763
- *ci-cd
58-
- Container technologies and orchestration like Docker, Kubernetes
64+
- name: Container technologies and orchestration like Docker, Kubernetes
65+
tags: []
5966
references:
6067
samm2:
6168
- i-secure-build|A|1
@@ -94,8 +101,12 @@ Build:
94101
usefulness: 4
95102
level: 3
96103
implementation:
97-
- <a href="https://docs.docker.com/notary/getting_started/">Docker Content Trust</a>
98-
- <a href="https://in-toto.github.io/">in-toto</a>
104+
- name: Docker Content Trust
105+
tags: []
106+
url: https://docs.docker.com/notary/getting_started/
107+
- name: in-toto
108+
tags: []
109+
url: https://in-toto.github.io/
99110
dependsOn:
100111
- Defined build process
101112
references:
@@ -119,8 +130,11 @@ Deployment:
119130
usefulness: 4
120131
level: 2
121132
implementation:
122-
- A complete database backup might be performed*. For large and complex environments
123-
- ' a Point in Time Recovery for databases should be implemented.'
133+
- name: A complete database backup might be performed*. For large and complex
134+
environments
135+
tags: []
136+
- name: a Point in Time Recovery for databases should be implemented.
137+
tags: []
124138
dependsOn:
125139
- Defined deployment process
126140
references:
@@ -144,8 +158,9 @@ Deployment:
144158
usefulness: 2
145159
level: 4
146160
implementation:
147-
- <a href='https://martinfowler.com/bliki/BlueGreenDeployment.html'>Blue/Green
148-
Deployments</a>
161+
- name: Blue/Green Deployments
162+
tags: []
163+
url: https://martinfowler.com/bliki/BlueGreenDeployment.html
149164
dependsOn:
150165
- Smoke Test
151166
references:
@@ -171,8 +186,9 @@ Deployment:
171186
usefulness: 4
172187
level: 1
173188
implementation:
174-
- Jenkins
175-
- ' Docker'
189+
- *ci-cd
190+
- name: Docker
191+
tags: []
176192
references:
177193
samm2: i-secure-deployment|A|1
178194
iso27001-2017:
@@ -238,9 +254,12 @@ Deployment:
238254
usefulness: 2
239255
level: 3
240256
implementation:
241-
- Docker
242-
- ' Webserver'
243-
- ' rolling update'
257+
- name: Docker
258+
tags: []
259+
- name: Webserver
260+
tags: []
261+
- name: rolling update
262+
tags: []
244263
dependsOn:
245264
- Defined deployment process
246265
samm2: i-secure-deployment|A|1
@@ -261,7 +280,8 @@ Deployment:
261280
usefulness: 4
262281
level: 3
263282
implementation:
264-
- Docker
283+
- name: Docker
284+
tags: []
265285
dependsOn:
266286
- Defined build process
267287
samm: OE2-A
@@ -284,7 +304,8 @@ Deployment:
284304
usefulness: 2
285305
level: 3
286306
implementation:
287-
- Docker
307+
- name: Docker
308+
tags: []
288309
dependsOn:
289310
- Same artifact for environments
290311
samm: EG1-B
@@ -300,8 +321,9 @@ Deployment:
300321
measure: Create image assessment criteria, perform an evaluation of images and
301322
create a whitelist of artifacts/container images/virtual machine images.
302323
implementation:
303-
- Kubernetes Admission Controller can whitelist registries and/or whitelist a
304-
signing key.
324+
- name: Kubernetes Admission Controller can whitelist registries and/or whitelist
325+
a signing key.
326+
tags: []
305327
difficultyOfImplementation:
306328
knowledge: 1
307329
time: 1
@@ -385,8 +407,11 @@ Patch Management:
385407
- 12.6.1
386408
- 14.2.5
387409
implementation:
388-
- <a href="https://dependabot.com/">dependabot</a>
389-
- Jenkins
410+
- name: dependabot
411+
tags: []
412+
url: https://dependabot.com/
413+
- name: Jenkins
414+
tags: []
390415
Usage of a maximum lifetime for images:
391416
risk:
392417
- Vulnerabilities in images of running containers stay for too long and might
@@ -420,16 +445,19 @@ Patch Management:
420445
iso27001-2017:
421446
- 12.6.1
422447
implementation:
423-
- Sample concept:<br/>(1) each container has a set lifetime and is killed / replaced
424-
with a new container multiple times a day where you have some form of a graceful
425-
replacement to ensure no (short) service outage will occur to the end users.<br/>(2)
426-
twice a day a rebuild of images is done. The rebuilds are put into a automated
427-
testing pipeline. If the testing has no blocking issues the new images will
428-
be released for deployment during the next "restart" of a container. What has
429-
to be done, is to ensure the new containers are deployed in some canary deployment
430-
manner, this will ensure that if (and only if) something buggy has been introduced
431-
which breaks functionality the canary deployment will make sure the "older version"
432-
is being used and not the buggy newer one.
448+
- name: "Sample concept: \n(1"
449+
tags: []
450+
description: "Sample concept: \n(1) each container has a set lifetime and is\
451+
\ killed / replaced with a new container multiple times a day where you have\
452+
\ some form of a graceful replacement to ensure no (short) service outage\
453+
\ will occur to the end users. \n(2) twice a day a rebuild of images is done.\
454+
\ The rebuilds are put into a automated testing pipeline. If the testing has\
455+
\ no blocking issues the new images will be released for deployment during\
456+
\ the next \"restart\" of a container. What has to be done, is to ensure the\
457+
\ new containers are deployed in some canary deployment manner, this will\
458+
\ ensure that if (and only if) something buggy has been introduced which breaks\
459+
\ functionality the canary deployment will make sure the \"older version\"\
460+
\ is being used and not the buggy newer one."
433461
Reduction of the attack surface:
434462
risk:
435463
- Components, dependencies, files or file access rights might have vulnerabilities,
@@ -447,5 +475,9 @@ Patch Management:
447475
- hardening is missing in ISO 27001
448476
- 14.2.1
449477
implementation:
450-
- <a href="https://github.com/GoogleContainerTools/distroless">Distroless</a>
451-
- <a href="https://getfedora.org/coreos?stream=stable">Fedora CoreOS</a>
478+
- name: Distroless
479+
tags: []
480+
url: https://github.com/GoogleContainerTools/distroless
481+
- name: Fedora CoreOS
482+
tags: []
483+
url: https://getfedora.org/coreos

data-new/CultureAndOrganization/Design.yaml

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,9 @@ Design:
6262
usefulness: 3
6363
level: 1
6464
implementation:
65-
- <a href="https://github.com/Toreon/threat-model-playbook">Threat modeling Playbook</a>
65+
- name: Threat modeling Playbook
66+
tags: []
67+
url: https://github.com/Toreon/threat-model-playbook
6668
md-description: |2
6769
6870
Once requirements are gathered and analysis is performed, implementation specifics need to be defined. The outcome of this stage is usually a diagram outlining data flows and a general system architecture. This presents an opportunity for both threat modeling and attaching security considerations to every ticket and epic that is the outcome of this stage.
@@ -126,9 +128,12 @@ Design:
126128
- may be part of risk assessment
127129
- 8.1.2
128130
implementation:
129-
- <a href='https://www.owasp.org/index.php/Agile_Software_Development:_Don%27t_Forget_EVIL_User_Stories'>Don't
130-
Forget EVIL User Stories</a> and <a href='http://safecode.org/publication/SAFECode_Agile_Dev_Security0712.pdf'>Practical
131-
Security Stories and Security Tasks for Agile Development Environments</a>
131+
- name: "[Don't Forget EVIL U"
132+
tags: []
133+
url: https://www.owasp.org/index.php/Agile_Software_Development
134+
description: "[Don't Forget EVIL User Stories](https://www.owasp.org/index.php/Agile_Software_Development:_Don%27t_Forget_EVIL_User_Stories)\
135+
\ and [Practical Security Stories and Security Tasks for Agile Development\
136+
\ Environments](http://safecode.org/publication/SAFECode_Agile_Dev_Security0712.pdf)"
132137
Creation of simple abuse stories:
133138
risk:
134139
- User stories mostly don't consider security implications. Security flaws are
@@ -148,9 +153,12 @@ Design:
148153
- may be part of risk assessment
149154
- 8.1.2
150155
implementation:
151-
- <a href='https://www.owasp.org/index.php/Agile_Software_Development:_Don%27t_Forget_EVIL_User_Stories'>Don't
152-
Forget EVIL User Stories</a> and <a href='http://safecode.org/publication/SAFECode_Agile_Dev_Security0712.pdf'>Practical
153-
Security Stories and Security Tasks for Agile Development Environments</a>
156+
- name: "[Don't Forget EVIL U"
157+
tags: []
158+
url: https://www.owasp.org/index.php/Agile_Software_Development
159+
description: "[Don't Forget EVIL User Stories](https://www.owasp.org/index.php/Agile_Software_Development:_Don%27t_Forget_EVIL_User_Stories)\
160+
\ and [Practical Security Stories and Security Tasks for Agile Development\
161+
\ Environments](http://safecode.org/publication/SAFECode_Agile_Dev_Security0712.pdf)"
154162
Information security targets are communicated:
155163
risk:
156164
- Employees don't known their organizations security targets. Therefore security

data-new/CultureAndOrganization/EducationAndGuidance.yaml

Lines changed: 42 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,15 @@ Education and Guidance:
1414
level: 1
1515
samm: EG1-A
1616
implementation:
17-
- In case you do not have the budget to hire an external security expert, an option
18-
is to use the <a href="https://github.com/bkimminich/juice-shop">OWASP Juice
19-
Shop</a> on a "hacking Friday"
20-
- https://cheatsheetseries.owasp.org/
17+
- name: OWASP JuiceShop
18+
tags: []
19+
url: https://github.com/bkimminich/juice-shop
20+
description: "In case you do not have the budget to hire an external security\
21+
\ expert, an option\nis to use the [OWASP JuiceShop](https://github.com/bkimminich/juice-shop)\
22+
\ on a \"hacking Friday\""
23+
- name: https://cheatsheetseries.owasp.org/
24+
tags: []
25+
url: https://cheatsheetseries.owasp.org/
2126
iso27001-2017:
2227
- 7.2.2
2328
Regular security training for all:
@@ -35,10 +40,15 @@ Education and Guidance:
3540
iso27001-2017:
3641
- 7.2.2
3742
implementation:
38-
- In case you do not have the budget to hire an external security expert, an option
39-
is to use the <a href="https://github.com/bkimminich/juice-shop">OWASP Juice
40-
Shop</a> on a "hacking Friday"
41-
- https://cheatsheetseries.owasp.org/
43+
- name: OWASP JuiceShop
44+
tags: []
45+
url: https://github.com/bkimminich/juice-shop
46+
description: "In case you do not have the budget to hire an external security\
47+
\ expert, an option\nis to use the [OWASP JuiceShop](https://github.com/bkimminich/juice-shop)\
48+
\ on a \"hacking Friday\""
49+
- name: https://cheatsheetseries.owasp.org/
50+
tags: []
51+
url: https://cheatsheetseries.owasp.org/
4252
Security consulting on request:
4353
risk:
4454
- Not asking a security expert when questions regarding security appear might
@@ -90,9 +100,11 @@ Education and Guidance:
90100
iso27001-2017:
91101
- 7.2.2
92102
implementation:
93-
- Often, external employees are not invited for internal trainings. This activity focuses
94-
on providing security trainings to internal as well as external employees. It
95-
is conducted every two weeks for around one hour.
103+
- name: Train internal and external resources
104+
tags: []
105+
description: Often, external employees are not invited for internal trainings.
106+
This activity focuses on providing security trainings to internal as well
107+
as external employees. It is conducted every two weeks for around one hour.
96108
Each team has a security champion:
97109
risk:
98110
- No one feels directly responsible for security and the security champion does
@@ -111,7 +123,9 @@ Education and Guidance:
111123
- 7.2.1
112124
- 7.2.2
113125
implementation:
114-
- OWASP Security Champions Playbook: https://github.com/c0rdis/security-champions-playbook
126+
- name: 'OWASP Security Champions Playbook'
127+
tags: []
128+
url: https://github.com/c0rdis/security-champions-playbook
115129
Security-Lessoned-Learned:
116130
risk:
117131
- After an incident, a similar incident might reoccur.
@@ -181,7 +195,9 @@ Education and Guidance:
181195
iso27001-2017:
182196
- 7.2.2
183197
implementation:
184-
- https://builditbreakit.org/
198+
- name: https://builditbreakit.org/
199+
tags: []
200+
url: https://builditbreakit.org/
185201
Conduction of war games:
186202
risk:
187203
- Understanding incident response plans during an incident is hard and ineffective.
@@ -217,10 +233,15 @@ Education and Guidance:
217233
- interestingly enough A7.2.3 is requiring a process to handle misconduct but
218234
nothing to promote good behavior.
219235
implementation:
220-
- Enhance motivation can be performed with the distribution of pins as a reward,
221-
see <a href='https://github.com/wurstbrot/security-pins'>OWASP Security Pins
222-
Project</a>
223-
- https://owaspsamm.org/presentations/OWASP_Top_10_Maturity_Categories_for_Security_Champions.pptx
236+
- name: Motivate people
237+
tags: []
238+
url: https://github.com/wurstbrot/security-pins
239+
description: |-
240+
Enhance motivation can be performed with the distribution of pins
241+
as a reward, see [OWASP Security Pins Project](https://github.com/wurstbrot/security-pins)
242+
- name: OWASP_Top_10_Maturity_Categories_for_Security_Champions
243+
tags: []
244+
url: https://owaspsamm.org/presentations/OWASP_Top_10_Maturity_Categories_for_Security_Champions.pptx
224245
Aligning security in teams:
225246
risk:
226247
- The concept of Security Champions might suggest that only he/she is responsible
@@ -233,7 +254,10 @@ Education and Guidance:
233254
time: 5
234255
resources: 1
235256
implementation:
236-
- Security SME are involved in discussion for requirements analysis, software design and sprint planning to provide guidance and suggestions.
257+
- name: Involve Security SME
258+
tags: []
259+
description: Security SME are involved in discussion for requirements analysis,
260+
software design and sprint planning to provide guidance and suggestions.
237261
usefulness: 5
238262
level: 4
239263
samm: EG2-B

data-new/CultureAndOrganization/Process.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ Process:
6767
- 12.5.1
6868
- 12.6.1
6969
implementation:
70-
- 'Example: All docker images used by teams need to be based on standard images.'
70+
- name: 'Example: All docker images used by teams need to be based on standard
71+
images.'
72+
tags: []
7173
comment: By preventing teams from trying out new components, innovation might
7274
be hampered

0 commit comments

Comments
 (0)