Skip to content

Commit 9e8a583

Browse files
authored
various improvements to Foundations sections
2 parents b539653 + 03a4976 commit 9e8a583

File tree

9 files changed

+116
-104
lines changed

9 files changed

+116
-104
lines changed

.wordlist.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -473,4 +473,5 @@ MOBI
473473
linddun
474474
LINNDUN
475475
DPO
476-
CISO
476+
CISO
477+
iteratively

README.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,8 @@ Note that the original DevGuide repository has been deprecated in favour of this
1717

1818
The source for the latest draft developer guide can be found under the ['draft'][draft] directory.
1919
The source is in markdown and is used to create the developer guide HTML, PDF and ePub outputs.
20-
The content is subject to large scale changes with no notice,
21-
and is usually being actively worked on for the latest release
22-
of the Developer Guide under the ['release'][release] directory.
20+
The draft content is subject to large scale changes with no notice.
21+
The draft version is used for the Developer Guide in the ['release'][release] directory.
2322

2423
### Contributing
2524

draft/03-introduction.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,35 +25,35 @@ Along with the OWASP Top Ten, the Developer Guide is one of the original resourc
2525
published soon after the OWASP foundation was formed in 2001.
2626
Version 1.0 of the Developer Guide was released in 2002
2727
and since then there have been various [releases][versions] culminating in version 2.0 in 2005.
28-
Since then the guide has been revised extensively to bring it up to date and no longer has version numbers;
29-
notionally it is version 4.x as version 3.0 was never released.
28+
Since then the guide has been revised extensively to bring it up to date.
29+
The latest versions are 4.x because version 3.0 was never released.
3030

3131
The purpose of this guide is to provide an introduction to security concepts
3232
and a handy reference for application / system developers.
3333
Generally it describes security practices using the advice given in the
3434
OWASP Software Assurance Maturity Model ([SAMM][samm]) and describes the OWASP projects
3535
referenced in the OWASP [Application Wayfinder][wayfinder] project.
3636

37-
The content of the Developer Guide is aimed at an introductory level, with more detail provided by each OWASP project.
3837
This guide does not seek to replicate the many excellent sources on specific security topics;
39-
it will rarely deal with a subject in depth and instead provides links for greater depth in these security topics.
38+
it will rarely tries to go into details on a subject and instead provides links for greater depth on these security topics.
39+
Instead the content of the Developer Guide aims to be accessible, introducing practical security concepts
40+
and providing enough detail to get developers started on various OWASP tools and documents.
4041

4142
All of the OWASP projects and tools described in this guide are free to download and use.
42-
All OWASP projects are open source, so if you are interested in improving application security then do get involved.
43+
All OWASP projects are open source; do get involved if you are interested in improving application security.
4344

4445
#### Audience
4546

4647
The OWASP Developer Guide has been written by the security community to help software developers write solid,
4748
safe and secure applications.
48-
Application developers should try to be familiar with the entire guide;
49-
it is far harder to write solid applications than to destroy them.
49+
Developers should try and be familiar with most of this guide; it will help to write solid applications.
5050

5151
You can regard the purpose of this guide as answering the question:
5252
“I am a developer and I need a reference guide to describe the security activities I really should be doing
5353
and to navigate the numerous security tools and projects”
5454

5555
Or you can regard this guide as a companion document to the OWASP [Application Wayfinder][wayfinder] project:
56-
the Wayfinder maps out the many OWASP tools, projects and documents with the Developer Guide providing some context.
56+
the Wayfinder mapping out the many OWASP tools, projects and documents with the Developer Guide providing some context.
5757

5858
![Application Wayfinder Diagram](../assets/images/owasp-wayfinder.png "OWASP Application Wayfinder")
5959

draft/04-foundations/01-security-fundamentals.md

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ Often CIA is extended with AAA: Authorization, Authentication and Auditing.
3535
#### Confidentiality
3636

3737
Confidentiality is the protection of data against unauthorized disclosure;
38-
it is about ensuring that only those with the correct authorization can access the data.
39-
Confidentiality applies to data at rest, and should also be considered for data in motion.
40-
Confidentiality is related to the broader concept of data privacy.
38+
it is about ensuring that only those with the correct authorization can access the data
39+
and applies to both data at rest and to data in transit.
40+
Confidentiality is also related to the broader concept of data privacy.
4141

4242
#### Integrity
4343

@@ -54,27 +54,29 @@ but also on the protection of the services that provide access to the data, for
5454
#### AAA
5555

5656
CIA is often extended with Authentication, Authorization and Auditing as these are closely linked to CIA concepts.
57-
CIA has such a strong dependency on Authentication and Authorization
58-
that the confidentiality of the data in question can't be assured without them.
57+
CIA has a strong dependency on Authentication and Authorization;
58+
the confidentiality and integrity of sensitive data can not be assured without them.
5959
Auditing is added as it can provide the mechanism to ensure proof of any interaction with the system.
6060

6161
#### Authentication
6262

6363
Authentication is about confirming the identity of the entity that wants to interact with a secure system.
64+
For example the entity could be an automated client or a human actor;
65+
in either case authentication is required for a secure application.
6466

6567
#### Authorization
6668

6769
Authorization is about specifying access rights to secure resources (data, services, files, applications, etc).
68-
These rights describe the privileges or access levels related to the resources in question.
69-
It is normally preceded by *Authentication*.
70+
These rights describe the privileges or access levels related to the resources that are being secured.
71+
Authorization is usually preceded by successful authentication.
7072

7173
#### Auditing
7274

7375
Auditing is about keeping track of implementation-level events, as well as domain-level events taking place in a system.
7476
This helps to provide non-repudiation, which means that changes or actions on the protected system are undeniable.
7577
Auditing can provide not only technical information about the running system,
7678
but also proof that particular actions have been performed.
77-
The typical questions that are answered by auditing are "*Who* did *What* *When* and potentially *How*?"
79+
The typical questions that are answered by auditing are "Who did What, When and potentially How?"
7880

7981
#### Software Assurance Maturity Model
8082

draft/04-foundations/02-secure-development.md

Lines changed: 33 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -30,26 +30,27 @@ according to the processes adopted by the business.
3030

3131
With the increasing number and sophistication of exploits against almost every application or business system,
3232
most companies have adopted a secure Software Development LifeCycle (SDLC).
33-
The secure SDLC should never be a separate lifecycle,
34-
it must always be the same Software Development LifeCycle as before but with security actions built into each phase,
35-
otherwise the security actions will be set aside by busy development teams.
33+
The secure SDLC should never be a separate lifecycle from an existing software development lifecycle,
34+
it must always be the same development lifecycle as before but with security actions built into each phase,
35+
otherwise security actions may well be set aside by busy development teams.
3636
Note that although the Secure SDLC could be written as 'SSDLC' it is almost always written as 'SDLC'.
3737

3838
DevOps integrates and automates many of the SDLC phases and implements Continuous Integration (CI)
39-
and Continuous Delivery/Deployment (CD) pipelines to provide much of this automation.
39+
and Continuous Delivery/Deployment (CD) pipelines to provide much of the SDLC automation.
40+
Examples of how DevSecOps is 'building security in' is the provision of
41+
Interactive, Static and Dynamic Application Security Testing (IAST, SAST & DAST)
42+
and implementing supply chain security, and there are many other security activities that can be applied.
43+
4044
DevOps and pipelines have been successfully exploited with serious large scale consequences
4145
and so, in a similar manner to the SDLC, much of the DevOps actions have also had to have security built in.
4246
Secure DevOps, or DevSecOps, builds security practices into the DevOps activities to guard against attack
4347
and to provide the SDLC with automated security testing.
44-
Examples of how DevSecOps is 'building security in' is the provision of
45-
Interactive, Static and Dynamic Application Security Testing (IAST, SAST & DAST)
46-
and implementing supply chain security, and there are many other security activities that can be applied.
4748

4849
#### Secure development lifecycle
4950

5051
Referring to the OWASP [Application Wayfinder][wayfinder] development cycle
51-
there are four phases during application development: Requirements, Design, Implementation and Verification.
52-
There are other phases that are done less often in the development cycle and these form an equally important
52+
there are four iterative phases during application development: Requirements, Design, Implementation and Verification.
53+
The other phases are done less iteratively in the development cycle but these form an equally important
5354
part of the SDLC: Gap Analysis, Metrics, Operation and Training & Culture Building.
5455

5556
All of these phases of the SDLC should have security activities built into them,
@@ -59,19 +60,19 @@ a process as before, with the development teams taking ownership of the security
5960

6061
There are many OWASP tools and resources to help build security into the SDLC.
6162

62-
* Requirements: this phase determines the functional, non-functional and security requirements for the application.
63-
Requirements should be revisited periodically and check for completeness and validity,
64-
and it is worth considering various OWASP tools;
65-
the [Application Security Verification Standard (ASVS)][asvs] provides developers
66-
with a list of requirements for secure development,
67-
the [Mobile Application Security project][masproject] provides a security standard for mobile applications
68-
and [SecurityRAT][srat] helps identify an initial set of security requirements.
63+
* **Requirements**: this phase determines the functional, non-functional and security requirements for the application.
64+
Requirements should be revisited periodically and checked for completeness and validity,
65+
and it is worth considering various OWASP tools to help with this;
66+
* the [Application Security Verification Standard (ASVS)][asvs] provides developers
67+
with a list of requirements for secure development,
68+
* the [Mobile Application Security project][masproject] provides a security standard for mobile applications
69+
and [SecurityRAT][srat] helps identify an initial set of security requirements.
6970

70-
* Design: it is important to design security into the development - it is never too late to do this
71-
but the earlier the better (and easier). OWASP provides two tools, [Pythonic Threat Modeling][pytm]
71+
* **Design**: it is important to design security into the application - it is never too late to do this
72+
but the earlier the better and easier to do. OWASP provides two tools, [Pythonic Threat Modeling][pytm]
7273
and [Threat Dragon][tdtm], for threat modeling along with security gamification using [Cornucopia][cornucopia].
7374

74-
* Implementation: the OWASP [Top 10 Proactive Controls][proactive10] project states that they are
75+
* **Implementation**: the OWASP [Top 10 Proactive Controls][proactive10] project states that they are
7576
"the most important control and control categories that every architect and developer should absolutely,
7677
100% include in every project" and this is certainly good advice. Implementing these controls can provide
7778
a high degree of confidence that the application or system will be reasonably secure.
@@ -81,47 +82,47 @@ There are many OWASP tools and resources to help build security into the SDLC.
8182
that help implement these proactive controls. In addition the OWASP [Cheat Sheet Series][cheatproject]
8283
is a valuable source of information and advice on all aspects of applications security.
8384

84-
* Verification: OWASP provides a relatively large number of projects that help with testing and verification.
85-
This is the subject of a section in this Developer Guide, and the projects are listed below.
85+
* **Verification**: OWASP provides a relatively large number of projects that help with testing and verification.
86+
This is the subject of a section in this Developer Guide, and the projects are listed at the end of this section.
8687

87-
* Training: development teams continually need security training. Although not part of the inner SDLC iterative loop,
88-
training should be factored into the project lifecycle.
88+
* **Training**: development teams continually need security training.
89+
Although not part of the inner SDLC iterative loop training should still be factored into the project lifecycle.
8990
OWASP provides many training environments and materials - see the list at the end of this section.
9091

91-
* Culture Building: a good security culture within a business organization will help greatly in keeping
92+
* **Culture Building**: a good security culture within a business organization will help greatly in keeping
9293
the applications and systems secure. There are many activities that all add up to create the
9394
security culture, the OWASP [Security Culture][culture] project goes into more detail on these activities,
9495
and a good Security Champion program within the business is foundational to a good security posture.
9596
The OWASP [Security Champions Guide][champions] provides guidance and material to create security champions
9697
within the development teams - ideally every team should have a security champion that has
9798
a special interest in security and has received further training, enabling the team to build security in.
9899

99-
* Operation: the OWASP [DevSecOps Guideline][devsecops] explains how to best implement a secure pipeline,
100+
* **Operation**: the OWASP [DevSecOps Guideline][devsecops] explains how to best implement a secure pipeline,
100101
using best practices and introducing automation tools to help 'shift-left'.
101102
Refer to the DevSecOps Guideline for more information on any of the topics within DevSecOps
102103
and in particular sections on Operation.
103104

104-
* Supply chain: attacks that leverage the supply chain can be devastating
105+
* **Supply chain**: attacks that leverage the supply chain can be devastating
105106
and there have been several high profile of products being successfully exploited.
106107
A Software Bill of Materials (SBOM) is the first step in avoiding these attacks and
107108
it is well worth using the OWASP [CycloneDX][cyclone] full-stack Bill of Materials (BOM) standard
108109
for risk reduction in the supply chain.
109110
In addition the OWASP [Dependency-Track][deptrack] project is a Continuous SBOM Analysis Platform
110111
which can help prevent these supply chain exploits by providing control of the SBOM.
111112

112-
* Third party libraries: keeping track of what third party libraries are included in the application,
113+
* **Third party dependencies**: keeping track of what third party libraries are included in the application,
113114
and what vulnerabilities they have, is easily automated. Many public repositories such as [github][github]
114115
and [gitlab][gitlab] offer this service along with some commercial vendors.
115116
OWASP provides the [Dependency-Check][depcheck] Software Composition Analysis (SCA) tool
116117
to track external libraries.
117118

118-
* Application security testing: there are various types of security testing that can be automated on pull-request,
119+
* **Application security testing**: there are various types of security testing that can be automated on pull-request,
119120
merge or nightlies - or indeed manually but they are most powerful when automated. Commonly there is
120121
Static Application Security Testing (SAST), which analyses the code without running it,
121-
Dynamic Application Security Testing (DAST), which applies input to the application while running it in a sandbox
122-
or other isolated environment.
123-
Interactive Application Security Testing (IAST) on the other hand is designed to be run manually as well,
124-
providing instant feedback on the tests as they are run.
122+
and Dynamic Application Security Testing (DAST), which applies input to the application while running it in a sandbox
123+
or other isolated environments.
124+
Interactive Application Security Testing (IAST) is designed to be run manually as well as being automated,
125+
and provides instant feedback on the tests as they are run.
125126

126127
#### Further reading from OWASP
127128

0 commit comments

Comments
 (0)