Skip to content

Commit aaffea7

Browse files
authored
update sections after proof reading
2 parents 9e8a583 + c1eb784 commit aaffea7

File tree

87 files changed

+407
-420
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+407
-420
lines changed

.wordlist.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ Wordlist
3737
XSS
3838
YAML
3939
aSemy
40-
albertvolkman
4140
backrefs
4241
bracex
4342
codefences
@@ -474,4 +473,5 @@ linddun
474473
LINNDUN
475474
DPO
476475
CISO
477-
iteratively
476+
iteratively
477+
ai

draft/05-requirements/01-requirements.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ with regulatory and statutory requirements being an important subset of both the
2222
#### Overview
2323

2424
Security requirements are part of every secure development process
25-
and form the foundation for the application's security posture - they will certainly help with
26-
the prevention of many types of vulnerabilities.
25+
and form the foundation for the application's security posture.
26+
Requirements will certainly help with the prevention of many types of vulnerabilities.
2727

28-
Requirements can come from many sources and in general there are three main sources:
28+
Requirements come from various sources, three common ones being:
2929

3030
1. Software-related requirements which specify objectives and expectations
3131
to protect the service and data at the core of the application
@@ -99,7 +99,7 @@ the only general advice is to be familiar with and follow the appropriate statut
9999
The security requirements should be identified and recorded at the beginning of any new development
100100
and also when new features are added to an existing application.
101101
These security requirements should be periodically revisited and revised as necessary;
102-
for example security standards are updated and new standards come into force,
102+
for example security standards are updated and new regulations come into force,
103103
both of which may have a direct impact on the application.
104104

105105
#### Further reading

draft/05-requirements/02-risk.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ Examples:
7979
2. Acceptance: sometimes a risk is low enough in priority, or the outcome bearable, that it is not worth mitigating,
8080
an example might be where the version of software is revealed but this is acceptable (or even desirable)
8181

82-
3. Mitigation: it is usual to mitigate the impact of a risk, for example
82+
3. Mitigation: it is common to implement a security control to mitigate the impact of a risk, for example
8383
input sanitization or output encoding may be used for information supplied by an untrusted source,
8484
or the use of encrypted communication channels for transferring high risk information
8585

draft/05-requirements/04-security-rat.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ permalink: /draft/requirements/security_rat/
1515
### 3.4 SecurityRAT
1616

1717
The [OWASP SecurityRAT][srat] (Requirement Automation Tool) is used to generate and manage security requirements
18-
that are obtained the [OWASP ASVS][asvs] project.
18+
using information from the [OWASP ASVS][asvs] project.
1919
It also provides an automated approach to requirements management
2020
during development of frontend, server and mobile applications.
2121

@@ -28,7 +28,7 @@ it can be used to generate an initial set of requirements from the ASVS
2828
and then keep track of the status and updates for these requirements.
2929
It comes with [documentation and instructions][sratdocs] on how to install and run SecurityRAT.
3030

31-
To generate the initial list of requirements SecurityRAT needs to be provided with three attributes defined by the ASVS:
31+
To generate the initial list of requirements, SecurityRAT needs to be provided with three attributes defined by the ASVS:
3232

3333
* Application Security Verification Standard chapter ID - for example 'V2 - Authentication'
3434
* Application Security Verification Level - the compliance level, for example 'L2'

draft/05-requirements/05-asvs.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ the [github markdown][asvsmd] pages directly - this will ensure that the latest
2323

2424
#### What is ASVS?
2525

26-
The ASVS is an open standard that sets out the coverage and 'level of rigor' expected when it comes to
26+
The ASVS is an open standard that sets out the coverage and level of rigor expected when it comes to
2727
performing web application security verification.
2828
The standard also provides a basis for testing any technical security controls
2929
that are relied on to protect against vulnerabilities in the application.

draft/05-requirements/toc.md

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,6 @@ permalink: /draft/requirements/
1414

1515
## 3. Requirements
1616

17-
Understanding of key security requirements is outlined in the [Security Requirements][sammdsr] business function
18-
within the OWASP [SAMM model][samm].
19-
2017
Referring to the OWASP [Top Ten Proactive Controls][control1], security requirements are statements of
2118
security functionality that ensure the different security properties of a software application are being satisfied.
2219
Security requirements are derived from industry standards, applicable laws, and a history of past vulnerabilities.
@@ -28,7 +25,14 @@ Instead of creating a custom approach to security for every application,
2825
standard security requirements allow developers to reuse the definition of security controls and best practices;
2926
those same vetted security requirements provide solutions for security issues that have occurred in the past.
3027

31-
So you can look at it this way: requirements exist to prevent the repeat of past security failures.
28+
The importance of understanding key security requirements is described in the [Security Requirements][sammdsr]
29+
practice that is part of the [Design][sammd] business function section within the OWASP [SAMM model][samm].
30+
Ideally structured software security requirements are available within with a security a requirements framework,
31+
and these are utilized by both developer teams and product teams.
32+
In addition suppliers to the organization must meet security requirements;
33+
build security into supplier agreements in order to ensure compliance with organizational security requirements.
34+
35+
In summary, security requirements exist to prevent the repeat of past security failures.
3236

3337
Sections:
3438

@@ -48,4 +52,5 @@ then [submit an issue][issue0500] or [edit on GitHub][edit0500].
4852
[edit0500]: https://github.com/OWASP/www-project-developer-guide/blob/main/draft/05-requirements/toc.md
4953
[issue0500]: https://github.com/OWASP/www-project-developer-guide/issues/new?labels=enhancement&template=request.md&title=Update:%2005-requirements/00-toc
5054
[samm]: https://owaspsamm.org/about/
55+
[sammd]: https://owaspsamm.org/model/design/
5156
[sammdsr]: https://owaspsamm.org/model/design/security-requirements/

draft/06-design/01-threat-modeling/00-toc.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ order:
1414
### 4.1 Threat modeling
1515

1616
Referring to the [Threat Modeling Cheat Sheet][tmcs],
17-
threat modeling is a structured approach of identifying and prioritizing potential threats to a system.
17+
threat modeling is a structured approach to identifying and prioritizing potential threats to a system.
1818
The threat modeling process includes determining the value that potential mitigations would have
1919
in reducing or neutralizing these threats.
2020

2121
Assessing potential threats during the design phase of your project can save significant resources
22-
that might be needed to refactor the project to include risk mitigations during a later phase of the project.
23-
The outputs from the threat modeling activities generally include:
22+
if during a later phase of the project refactoring is required to include risk mitigations.
23+
The outcomes from the threat modeling activities generally include:
2424

2525
* Documenting how data flows through a system to identify where the system might be attacked
2626
* Identifying as many potential threats to the system as possible

draft/06-design/01-threat-modeling/01-threat-modeling.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,16 @@ This may be assembled into a single threat model document; a structured represen
2727
that affects the security of an application.
2828
In essence, it is a view of the application and its environment through security glasses.
2929

30-
Threat modeling is a process for capturing, organizing, and analyzing all of this information.
30+
Threat modeling is a process for capturing, organizing, and analyzing all of this information
3131
and enables informed decision-making about application security risk.
3232
In addition to producing a model, typical threat modeling efforts also produce a prioritized list
3333
of _potential_ security vulnerabilities in the concept, requirements, design, or implementation.
3434
Any potential vulnerabilities that have been identified from the model should then be remediated
3535
using one of the common strategies: mitigate, eliminate, transfer or accept the threat of being exploited.
3636

3737
There are many reasons for doing threat modeling but the most important one is that this activity is _useful_ ,
38-
it is probably the only stage in a development lifecycle where a team sits back and asks:
39-
'What can go wrong?'
38+
it is probably the only stage in a development lifecycle where a team sits back and asks: 'What can go wrong?'.
39+
4040
There are other reasons for threat modeling, for example standards compliance or analysis for disaster recovery,
4141
but the main aim of threat modeling is to remedy (possible) vulnerabilities before the malicious actors can exploit them.
4242

@@ -84,7 +84,7 @@ The inclusion of threat modeling in the secure development activities can help:
8484
a malicious actor, accidents, or other causes of impact
8585
* Identification of security test cases / security test scenarios to test the security requirements
8686

87-
Threat modeling also provides a clear line of sight across a project that can be used
87+
Threat modeling also provides a clear 'line of sight' across a project that can be used
8888
to justify other security efforts.
8989
The threat model allows security decisions to be made rationally, with all the information available,
9090
so that security decisions can be properly supported.
@@ -107,7 +107,7 @@ As more details are added to the system new attack vectors are identified,
107107
so the ongoing threat modeling process should examine, diagnose, and address these threats.
108108

109109
Note that it is a natural part of refining a system for new threats to be exposed.
110-
For example, when you select a particular technology, such as Java for example,
110+
When you select a particular technology, such as Java for example,
111111
you take on the responsibility to identify the new threats that are created by that choice.
112112
Even implementation choices such as using regular expressions for validation
113113
introduce potential new threats to deal with.
@@ -183,7 +183,7 @@ all perfectly valid, so choose the right process that works for a specific team.
183183

184184
#### Final advice
185185

186-
Finally some advice on threat modeling.
186+
Some final words on threat modeling.
187187

188188
**Make it incremental**:
189189

@@ -207,7 +207,7 @@ but also allow teams to choose how they record their threat models.
207207
If one team decides to use Threat Dragon, for example, and another wants to use a drawing board,
208208
then that is usually fine.
209209
The discussions had during the threat modeling process are more important than the tool used,
210-
although you might ask the team using the drawing board how they implement their change control.
210+
although you might ask the team using the drawing board how they implement change control for their models.
211211

212212
**Brevity is paramount**:
213213

@@ -222,8 +222,8 @@ malicious actors (external or internal) trying to subvert your system.
222222

223223
It is a good strategy to choose a threat categorisation methodology for the whole organisation
224224
and then try and keep to it.
225-
This could be [STRIDE][stride] or [LINDDUN][linddun], but if the [CIA][cia] triad gives enough granularity
226-
then that is a perfectly good choice.
225+
For example this could be [STRIDE][stride] or [LINDDUN][linddun], but if the [CIA][cia] triad provides enough granularity
226+
then that is also a perfectly good choice.
227227

228228
#### Further reading
229229

draft/06-design/01-threat-modeling/02-pytm.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22

3-
title: Threat Modeling with pytm
3+
title: Pythonic Threat Modeling
44
layout: col-document
55
tags: OWASP Developer Guide
66
contributors: Jon Gadsden
@@ -17,7 +17,7 @@ permalink: /draft/design/threat_modeling/pytm/
1717
The OWASP [Pythonic Threat Modeling (pytm)][pytmproject] project is a framework for threat modeling and its automation.
1818
The goal of pytm is to shift threat modeling to the left, making threat modeling more automated and developer-centric.
1919

20-
Pytm is an OWASP Lab Project with a community of contributors creating [several releases][pytmreleases].
20+
Pytm is an OWASP Lab Project with a community of contributors creating [regular releases][pytmreleases].
2121

2222
#### What is pytm?
2323

@@ -39,10 +39,11 @@ The OWASP Spotlight series provides an overview of pytm: 'Project 6 - [OWASP pyt
3939

4040
#### Why use pytm?
4141

42-
The pytm development team state that traditional threat modeling often comes too late in the development process,
43-
and sometimes may not happen at all.
42+
The pytm development team make the good point that traditional threat modeling often comes too late
43+
in the development process, and sometimes may not happen at all.
4444
In addition, creating manual / diagrammatic data flows and reports can be extremely time-consuming.
45-
These are very good points, and pytm attempts to get threat modeling to 'shift-left' in the development lifecycle.
45+
These are certainly valid observations,
46+
and so pytm attempts to get threat modeling to 'shift-left' in the development lifecycle.
4647

4748
Many traditional threat modeling tools such as OWASP Threat Dragon provide
4849
a graphical way of creating diagrams and entering threats.
@@ -55,7 +56,7 @@ This makes pytm a powerful tool for describing a system or application, and allo
5556

5657
This focus on the model as code and programmatic outputs makes Pytm particularly useful in automated environments,
5758
helping the threat model to be built in to the design process from the start,
58-
as well as in the more traditional threat modeling sessions.
59+
as well as in more traditional threat modeling sessions.
5960

6061
#### How to use pytm
6162

draft/06-design/01-threat-modeling/03-threat-dragon.md

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22

3-
title: Threat Modeling with Threat Dragon
3+
title: Threat Dragon
44
layout: col-document
55
tags: OWASP Developer Guide
66
contributors: Jon Gadsden
@@ -34,37 +34,34 @@ Threat Dragon aims for:
3434

3535
* Simplicity - you can install and start using Threat Dragon very quickly
3636
* Flexibility - the diagramming and threat generation allows all types of threat to be described
37-
* Accessibility - different types of teams can benefit from Threat Dragon’s simplicity and flexibility
37+
* Accessibility - various different types of teams can all benefit from Threat Dragon ease of use
3838

3939
It supports various methodologies and threat categorizations used during the threat modeling activities:
4040

4141
* STRIDE
4242
* LINDDUN
43+
* PLOT4ai
4344
* CIA
4445
* DIE
4546

46-
and it can be used by a wide range of developers and teams:
47-
48-
* Simplicity - installation is easy and teams can start using Threat Dragon quickly
49-
* Flexibility - the diagramming and threat generation allows all types of threat to be described
50-
* Accessibility - various different types of teams can all benefit from Threat Dragon ease of use
47+
and it can be used by all sorts of development teams.
5148

5249
#### How to use it
5350

5451
The OWASP Spotlight series provides an overview of Threat Dragon and how to use it:
5552
'Project 22 - [OWASP Threat Dragon][spotlight22]'.
5653

57-
Threat Dragon is distributed as a cross platform desktop application as well a web application.
5854
It is straightforward to start using Threat Dragon; the latest version is [available to use online][tddemo]:
5955

60-
1. select Login to Local Session
61-
2. select Explore a Sample Threat Model
62-
3. select Version 2 Demo Model
63-
4. you are presented with the threat model meta-data which can be edited
64-
5. click on the diagram Main Request Data Flow to display the data flow diagram
56+
1. select 'Login to Local Session'
57+
2. select 'Explore a Sample Threat Model'
58+
3. select 'Version 2 Demo Model'
59+
4. you are then presented with the threat model meta-data which can be edited
60+
5. click on the diagram 'Main Request Data Flow' to display the data flow diagram
6561
6. the diagram components can be inspected, and their associated threats are displayed
6662
7. components can be added and deleted, along with editing their properties
6763

64+
Threat Dragon is distributed as a cross platform desktop application as well a web application.
6865
The [desktop application][tddownload] can be downloaded for Windows, Linux and MacOS.
6966
The web application can be run using a [Docker container][tddocker] or from the [source code][tdcode].
7067

0 commit comments

Comments
 (0)