Skip to content

Commit 75babf0

Browse files
committed
Revision after feedback
1 parent 066263c commit 75babf0

9 files changed

Lines changed: 32 additions & 30 deletions

File tree

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

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -50,26 +50,26 @@ Build and Deployment:
5050
- Artifact creation and storage
5151
- Deployment preparation
5252
53-
A *defined build process* automates these steps to ensure consistency, reproducibility, and security. Automation reduces human error and enforces security controls. Use tools such as Jenkins, GitHub Actions, GitLab CI, or Maven to codify the process.
53+
Basing the build process on human memory may lead to inconsistencies and security misconfigurations.
54+
55+
A *defined build process* can automate these steps to ensure consistency, avoiding accidental omissions or misconfigurations. Use tools such as Jenkins, GitHub Actions, GitLab CI, or Maven to codify the process.
56+
57+
A simplified, but still a *defined build process*, may be a checklist of the steps to be performed.
5458
risk:
55-
Performing builds without a defined and automated process is error-prone and increases the risk of security misconfigurations, unauthorized changes, and supply chain attacks.
59+
Without a defined and automated build process the risk increase for accidental mistakes, forgetting test activities, and insecure misconfigurations.
5660
measure:
57-
A well-defined, automated, and auditable build process lowers the possibility of errors and unauthorized changes during the build process. It also enables traceability and rapid response to incidents.
61+
Find a tool that suits your environment. Add your manual build steps, include steps for running tests, scanning and preparation for deployment.
62+
assessment: |
63+
- Show your build pipeline configuration (e.g., Jenkinsfile, GitHub Actions workflow) and an exemplary job (build + test + security scan).
5864
level: 1
5965
difficultyOfImplementation:
6066
knowledge: 2
6167
time: 3
6268
resources: 2
6369
usefulness: 4
64-
assessment: |
65-
- Show your build pipeline configuration (e.g., Jenkinsfile, GitHub Actions workflow) and an exemplary job (build + test + security scan).
66-
- Demonstrate that every team member has appropriate access (least privilege).
67-
- Show that failed jobs are investigated and fixed promptly.
68-
- Provide audit logs or evidence of build runs and changes.
69-
- Document how security controls are enforced in the build process.
70-
71-
Credits: AppSecure-nrw [Security Belts](https://github.com/AppSecure-nrw/security-belts/)
7270
implementation:
71+
- $ref: src/assets/YAML/default/implementations.yaml#/implementations/jenkins
72+
- $ref: src/assets/YAML/default/implementations.yaml#/implementations/maven
7373
- $ref: src/assets/YAML/default/implementations.yaml#/implementations/ci-cd-tools
7474
- $ref: src/assets/YAML/default/implementations.yaml#/implementations/container-technology
7575
references:

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

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -100,10 +100,9 @@ Build and Deployment:
100100
- 8.32
101101
assessment: |
102102
- Deployment process is documented and available to relevant staff
103-
- All deployment steps are automated and version-controlled
104-
- Approvals and access controls are enforced for production deployments
105-
- Rollback procedures are defined and tested
106-
- Deployment logs and evidence are retained for audit purposes
103+
- All deployment steps are automated
104+
- Rollback procedures are defined and tested [Keep??? Delete???]
105+
- Provide audit logs or evidence of deployments
107106
isImplemented: false
108107
evidence: ""
109108
comments: ""
@@ -220,12 +219,15 @@ Build and Deployment:
220219
Inventory of production components:
221220
uuid: 2a44b708-734f-4463-b0cb-86dc46344b2f
222221
description: |
223-
An inventory of production components is a complete, up-to-date list of all applications and services running in production. This enables effective vulnerability management, incident response, and compliance. Without it, organizations risk running unmaintained or unauthorized software.
222+
An inventory of production components is a complete, up-to-date list of all applications running in production. This enables effective vulnerability management, incident response, and compliance. Without it, organizations risk running unmaintained or unauthorized software.
224223
risk: |-
225224
An organization is unaware of components like applications in production. Not knowing existing applications in production leads to not assessing it.
226225
measure: |-
227226
A documented inventory of components in production exists (gathered manually or automatically). For example a manually created document with applications in production.
228227
In a kubernetes cluster, namespaces can be automatically gathered and documented, e.g. in a JSON in a S3 bucket/git repository, dependency track.
228+
assessment: |
229+
- Inventory of all production applications with application name, owner, and date of last review
230+
- Inventory is accessible to development, security and operations teams
229231
dependsOn:
230232
- Defined deployment process
231233
level: 1
@@ -247,12 +249,6 @@ Build and Deployment:
247249
iso27001-2022:
248250
- 5.9
249251
- 5.12
250-
assessment: |
251-
- Inventory of all production components exists and is regularly updated
252-
- Inventory includes key metadata (e.g., version, owner, deployment date)
253-
- Inventory is accessible to security and operations teams
254-
- There is a process for adding, updating, and removing components
255-
- Inventory reviews are performed and documented
256252
tags:
257253
- inventory
258254
Inventory of production artifacts:

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ Build and Deployment:
4343
description: |
4444
Automated PRs for patches ensure that updates for outdated or vulnerable dependencies are created and proposed without manual intervention. Tools continuously monitor for new versions or security advisories and immediately generate pull requests to update affected components in code, container images, or infrastructure. This process ensures that available patches are quickly visible to developers and can be reviewed and merged with minimal delay, reducing the risk window for known vulnerabilities.
4545
risk: |
46-
Components with known (or unknown) vulnerabilities might persist for a long time and be exploited, even when a patch is available.
46+
Components with known vulnerabilities might persist for a long time and be exploited, even when a patch is available.
4747
measure: |
4848
Fast patching of third-party components is needed. The DevOps way is to have an automated pull request for new components. This includes:
4949
* Applications
@@ -53,7 +53,7 @@ Build and Deployment:
5353
assessment: |
5454
- Automated PR tooling is enabled for all relevant repositories.
5555
- PRs are created automatically for outdated or vulnerable dependencies.
56-
- PRs are reviewed and merged in a timely manner.
56+
- PRs are reviewed and merged according to the defined patch policy.
5757
- Evidence of automated PRs and patching activity is available.
5858
level: 1
5959
difficultyOfImplementation:

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ Culture and Organization:
1212
Provide security awareness training for all personnel involved in software development on an ad-hoc basis, ensuring that relevant topics are covered when new risks or needs are identified.
1313
assessment: |
1414
- Conduct security training for developers and relevant personnel
15-
- Participants can identify common software security risks addressed in the training
1615
- Training materials are available
1716
- Attendance records are available
1817
level: 1

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ Culture and Organization:
6666
measure: |
6767
Develop, document, and communicate a BCDR plan for all critical components. The plan must define roles and responsibilities, Service Level Agreements (SLAs), Recovery Point Objectives (RPOs), Recovery Time Objectives (RTOs), and failover procedures. Ensure all relevant personnel are trained and the plan is reviewed and updated regularly.
6868
assessment: |
69-
- The organization has a documented BCDR plan covering all critical components.
69+
- There is a documented BCDR plan covering all critical components of the application(s).
7070
- The plan clearly defines responsibilities, SLAs, RPOs, RTOs, and failover steps.
7171
- Relevant staff are aware of the plan, and evidence of regular review and testing is available.
7272
level: 1

src/assets/YAML/default/Implementation/InfrastructureHardening.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,8 @@ Implementation:
366366
uuid: 82e499d1-f463-4a4b-be90-68812a874af6
367367
risk: Attackers a gaining access to internal systems and application interfaces
368368
measure: All internal systems are using simple authentication
369+
assessment: |
370+
- Demonstrate that every team member has appropriate access (least privilege).
369371
difficultyOfImplementation:
370372
knowledge: 3
371373
time: 3

src/assets/YAML/default/TestAndVerification/Consolidation.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ Test and Verification:
162162
- [Kubescape with VEX](https://kubescape.io/blog/2023/12/07/kubescape-support-for-vex-generation/)
163163
- [OWASP DefectDojo Risk Acceptance](https://docs.defectdojo.com/en/working_with_findings/findings_workflows/risk_acceptances/) and [False Positive Handling](https://docs.defectdojo.com/en/working_with_findings/intro_to_findings/#triage-vulnerabilities-using-finding-status)
164164
assessment: |
165-
The organization has a process for triaging and documenting false positives and accepted risks
165+
A process is defined for triaging and documenting false positives and accepted risks
166166
level: 1
167167
difficultyOfImplementation:
168168
knowledge: 1

src/assets/YAML/default/TestAndVerification/Test-Intensity.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# yaml-language-server: $schema=../../schemas/dsomm-schema-test-and-verification.json
22
---
33
Test and Verification:
4-
Test-Intensity:
4+
Test Intensity:
55
Creation and application of a testing concept:
66
uuid: 79ef8103-e1ed-4055-8df8-fd2b2015bebe
77
risk: Scans might use a too small or too high test intensity.

src/assets/YAML/default/implementations.yaml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,9 +111,14 @@ implementations:
111111
name: Jenkins
112112
tags: []
113113
url: https://www.jenkins.io/
114+
maven:
115+
uuid: eb6de6b9-e060-4902-ae6f-604ffc386b63
116+
name: Maven
117+
tags: []
118+
url: https://maven.apache.org/
114119
sample-concept-1:
115120
uuid: 1a463242-b480-46f6-a912-b51ec1c1558d
116-
name: "Sample concept: \n(1"
121+
name: "Sample concept"
117122
tags: []
118123
description:
119124
"Sample concept: \n(1) each container has a set lifetime and is\
@@ -716,7 +721,7 @@ implementations:
716721
tags: [sbom, dependency]
717722
url: https://github.com/anchore/syft
718723
grype:
719-
uuid: 7f500e95-2110-44c4-a1f8-cd7ef5d9eb6b
724+
uuid: 7970af6e-a7d3-4359-a6ea-301d26b16329
720725
name: Grype
721726
tags: [sbom, dependency, vulnerability]
722727
url: https://github.com/anchore/grype

0 commit comments

Comments
 (0)