You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
description: "A *build process* include more than just compiling your source
56
+
code. \nIt also includes steps such as managing (third party) dependencies,
57
+
\nenvironment configuration, running the unit tests, etc. \n\nA *defined build
58
+
process* has automated these steps to ensure consistency.\n\nThis can be done
59
+
with a Jenkinsfile, Maven, or similar tools.\n"
55
60
risk: Performing builds without a defined process is error prone; for example,
56
61
as a result of incorrect security related configuration.
57
62
measure: A well defined build process lowers the possibility of errors during
58
63
the build process.
59
-
description: |
60
-
Sample evidence as an attribute in the yaml: The build process is defined in [REPLACE-ME Pipeline](https://replace-me/jenkins/job)
61
-
in the folder _vars_. Projects are using a _Jenkinsfile_ to use the
62
-
defined process.
63
64
difficultyOfImplementation:
64
65
knowledge: 2
65
66
time: 3
@@ -2429,13 +2430,17 @@ Culture and Organization:
2429
2430
C: false
2430
2431
Definition of simple BCDR practices for critical components:
2431
2432
uuid: c72da779-86cc-45b1-a339-190ce5093171
2432
-
risk: In case of an emergency, like a power outage, DR actions to perform are
2433
-
not clear. This leads to reaction and remediation delays.
2433
+
description: A _Business Continuity and Disaster Recovery_ (BCDR) is a plan
2434
+
and a process that helps a business to return to normal operations if a disaster
2435
+
occurs.
2436
+
risk: If the disaster recovery actions are not clear, you risk slow reaction
2437
+
and remediation delays. This applies to cyber attacks as well as natural emergencies,
2438
+
such as a power outage.
2434
2439
measure: By understanding and documenting a business continuity and disaster
2435
2440
recovery (BCDR) plan, the overall availability of systems and applications
2436
2441
is increased. Success factors like responsibilities, Service Level Agreements,
2437
2442
Recovery Point Objectives, Recovery Time Objectives or Failover must be fully
2438
-
documented and understood.
2443
+
documented and understood by the people involved in the recovery.
2439
2444
difficultyOfImplementation:
2440
2445
knowledge: 4
2441
2446
time: 3
@@ -2859,21 +2864,40 @@ Implementation:
2859
2864
Default: false
2860
2865
B: false
2861
2866
C: false
2862
-
Contextualized Encoding:
2867
+
Context-aware output encoding:
2863
2868
uuid: e1f37abb-d848-4a3a-b3df-65e91a89dcb7
2864
-
risk: The generation of interpreter directives from user-provided data poses
2865
-
difficulties and can introduce vulnerabilities to injection attacks.
2866
-
measure: |
2867
-
Implementing contextualized encoding, such as employing object-relational mapping tools or utilizing prepared statements, nearly removes the threat of injection vulnerabilities.
2869
+
description: "**Input validation** stops malicious data from entering your system.
2870
+
\\\n**Output encoding** neutralizes malicious data before rendering to user,
2871
+
or the next system.\n\nInput validation and output encoding work together.
2872
+
Apply both. \n\n**Context-aware output encoding** encodes data differently,
2873
+
depending on its context. In the sample below the `{{bad_data}}` must be encoded
2874
+
differently, depending on its context, to render safe HTML.\n\n```html\n<div>{{bad_data}}</div>\n<a
2875
+
href=\"{{bad_data}}\">Click me</a>\n<script>var x = '{{bad_data}}';</script>\n<script>/**
2876
+
Comment {{bad_data}} */</script>\n``` \n"
2877
+
risk: If an attacker manages to slip though your input validation, the attacker
2878
+
may gain control over the user session or execute arbitrary actions.
2879
+
measure: "* Use modern secure frameworks such as React/Angular/Vue/Svelte. The
2880
+
default method here renders data in a safe way.\n* Use established and well-maintained
2881
+
encoding libraries such as OWASP\u2019s Java Encoder and Microsoft\u2019s
2882
+
AntiXSS.\n* Implement content security policies (CSP) to restrict the types
2883
+
of content that can be loaded and executed.\n"
2868
2884
difficultyOfImplementation:
2869
-
knowledge: 2
2885
+
knowledge: 1
2870
2886
time: 2
2871
2887
resources: 1
2872
2888
usefulness: 3
2873
2889
level: 1
2874
-
description: |
2875
-
Bear in mind that utilizing frameworks is a recommended approach; however, they can develop known security weaknesses over time. Diligent and regular patching is crucial.
risk: Evil actors might be able to perform a man in the middle attack and sniff
4028
-
confidential information (e.g. authentication factors like passwords)
4029
-
measure: By using encryption at the edge of traffic in transit, it is impossible
4030
-
or at least harder to sniff credentials being outside of the organization.
4104
+
confidential information (e.g. authentication factors like passwords).
4105
+
measure: |-
4106
+
By using encryption at the edge of traffic in transit, it is impossible
4107
+
or at least harder to sniff credentials or information being outside of the organization.
4108
+
4109
+
Using standard secure protocols like HTTPS is recommended.
4031
4110
difficultyOfImplementation:
4032
4111
knowledge: 2
4033
4112
time: 2
@@ -4287,7 +4366,7 @@ Implementation:
4287
4366
usefulness: 3
4288
4367
level: 3
4289
4368
dependsOn:
4290
-
- Contextualized encoding
4369
+
- Context-aware output encoding
4291
4370
implementation: []
4292
4371
references:
4293
4372
samm2:
@@ -4986,8 +5065,19 @@ Information Gathering:
4986
5065
Simple application metrics:
4987
5066
uuid: e9a6d403-a467-445e-b98a-74f0c29da0b1
4988
5067
risk: Attacks on an application are not recognized.
4989
-
measure: Gathering of application metrics helps to identify incidents like brute
4990
-
force attacks, login/logout.
5068
+
measure: |-
5069
+
Gathering of application metrics helps to identify incidents like brute force attacks, login/logout patterns, and unusual spikes in activity. Key metrics to monitor include:
By monitoring these basic metrics, teams can quickly investigate abnormal patterns and determine if they represent security incidents requiring response.
4991
5081
difficultyOfImplementation:
4992
5082
knowledge: 2
4993
5083
time: 2
@@ -5729,7 +5819,7 @@ Test and Verification:
5729
5819
- The number of network hops required to reach the asset (recommended)
5730
5820
- Authentication requirements for access (recommended)
5731
5821
dependsOn:
5732
-
- 38d1bd10-7b5f-4ae1-868c-0ec813285425
5822
+
- 44f2c8a9-4aaa-4c72-942d-63f78b89f385
5733
5823
- 2a44b708-734f-4463-b0cb-86dc46344b2f
5734
5824
implementation: ~
5735
5825
references:
@@ -5754,43 +5844,6 @@ Test and Verification:
5754
5844
Default: false
5755
5845
B: false
5756
5846
C: false
5757
-
Fix based on severity:
5758
-
uuid: 38d1bd10-7b5f-4ae1-868c-0ec813285425
5759
-
risk: Overwhelming volume of security findings from automated testing tools.
5760
-
This might lead to ignorance of findings.
5761
-
measure: |
5762
-
Implement a very simple risk-based prioritization framework for vulnerability remediation based on the severity of the findings.
risk: "Not integrating vulnerability handling into the development process may
@@ -5961,10 +6014,19 @@ Test and Verification:
5961
6014
Simple false positive treatment:
5962
6015
uuid: c1acc8af-312e-4503-a817-a26220c993a0
5963
6016
risk: As false positive occur during each test, all vulnerabilities might be
5964
-
ignored.
5965
-
measure: False positives are suppressed so they will not show up on the next
5966
-
tests again. Most security tools have the possibility to suppress false positives.
5967
-
A Vulnerability Management System might be used.
6017
+
ignored. Specially, if tests are automated an run daily.
6018
+
measure: |-
6019
+
Findings from security tests must be triaged and outcomes persisted/documented to:
6020
+
- Prevent re-analysis of known issues in subsequent test runs
6021
+
- Track accepted risks vs false positives
6022
+
- Enable consistent decision-making across teams
6023
+
6024
+
At this maturity level, a simple tracking system suffices - tools need only distinguish between "triaged" and "untriaged" findings, without complex categorization. Some tools refer to this as "suppression" of findings.
0 commit comments