Skip to content

Commit 27f5fe8

Browse files
authored
add more references to the cheat sheets
2 parents 0f537db + 5d3889a commit 27f5fe8

Some content is hidden

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

67 files changed

+545
-220
lines changed

.github/workflows/pr.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ jobs:
4747
uses: actions/[email protected]
4848

4949
- name: spell_checker
50-
uses: rojopolis/spellcheck-github-actions@0.38.0
50+
uses: rojopolis/spellcheck-github-actions@0.40.0
5151

5252
export_draft:
5353
name: Export epub and pdf (Draft)

.lycheeignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,7 @@ www-project-developer-guide/assets/images/
2727

2828
# Google drive tends to need permissions that the link checker does not have
2929
https://drive.google.com/
30+
31+
# TMP: SamuraiWTF sites seem to be down :TMP
32+
https://www.samurai-wtf.org/
33+
https://www.samuraiwtf.org/

.wordlist.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -484,3 +484,13 @@ SAFEcode
484484
Ecommerce
485485
crs
486486
Matteo
487+
Laravel
488+
Symfony
489+
DoS
490+
IDOR
491+
GraphQL
492+
Microservices
493+
OAuth
494+
OpenID
495+
Multifactor
496+
XXE

_data/draft.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,8 +151,8 @@ docs:
151151
- title: '6.1.1 Web Security Testing Guide'
152152
url: verification/guides/web_security_testing_guide
153153

154-
- title: '6.1.2 Mobile Application Security'
155-
url: verification/guides/mobile_application_security
154+
- title: '6.1.2 MAS Testing Guide'
155+
url: verification/guides/mas_testing_guide
156156

157157
- title: '6.1.3 Application Security Verification Standard'
158158
url: verification/guides/application_security_verification_standard

_data/release.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,8 @@ docs:
178178
- title: '6.1.1 Web Security Testing Guide'
179179
url: verification/guides/web_security_testing_guide
180180

181-
- title: '6.1.2 Mobile Application Security'
182-
url: verification/guides/mobile_application_security
181+
- title: '6.1.2 MAS Testing Guide'
182+
url: verification/guides/mas_testing_guide
183183

184184
- title: '6.1.3 Application Security Verification Standard'
185185
url: verification/guides/application_security_verification_standard

draft/02-toc.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ permalink:
6868

6969
6 **[Verification](#verification)**
7070
6.1 [Guides](#verification-guides)
71-
6.1.1 [Web Security Testing Guide](#web-security-testing Guide)
72-
6.1.2 [Mobile Application Security](#mobile-application-security)
71+
6.1.1 [Web Security Testing Guide](#web-security-testing-guide)
72+
6.1.2 [MAS Testing Guide](#mas-testing-guide)
7373
6.1.3 [Application Security Verification Standard](#application-security-verification-standard)
7474
6.2 [Tools](#verification-tools)
7575
6.2.1 [Zed Attack Proxy](#zed-attack-proxy)

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

Lines changed: 55 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,20 +53,20 @@ but also on the protection of the services that provide access to the data, for
5353

5454
#### AAA
5555

56-
CIA is often extended with Authentication, Authorization and Auditing as these are closely linked to CIA concepts.
56+
The CIA triad is often extended with Authentication, Authorization and Auditing as these are closely linked to CIA concepts.
5757
CIA has a strong dependency on Authentication and Authorization;
5858
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

63-
Authentication is about confirming the identity of the entity that wants to interact with a secure system.
63+
[Authentication][csauthn] is about confirming the identity of the entity that wants to interact with a secure system.
6464
For example the entity could be an automated client or a human actor;
6565
in either case authentication is required for a secure application.
6666

6767
#### Authorization
6868

69-
Authorization is about specifying access rights to secure resources (data, services, files, applications, etc).
69+
[Authorization][csauthz] is about specifying access rights to secure resources (data, services, files, applications, etc).
7070
These rights describe the privileges or access levels related to the resources that are being secured.
7171
Authorization is usually preceded by successful authentication.
7272

@@ -80,7 +80,7 @@ The typical questions that are answered by auditing are "Who did What, When and
8080

8181
#### Software Assurance Maturity Model
8282

83-
The OWASP Software Assurance Maturity Model [(SAMM)][samm] provides a good context for the scope of software security,
83+
The OWASP Software Assurance Maturity Model ([SAMM][samm]) provides a good context for the scope of software security,
8484
and the foundations of SAMM rely on the security concepts in this section.
8585
The SAMM model describes the five fundamentals of software security, which it calls Business Functions:
8686

@@ -103,11 +103,62 @@ Each of these five fundamentals are further split into three Business Practices:
103103
Each Business Practice is further subdivided into two streams,
104104
and the sections in the Developer Guide reference at least one of the Business Functions or Practices in SAMM.
105105

106+
#### Vulnerabilities
107+
108+
NIST defines a [vulnerability][definevuln] as 'Weakness in an information system, system security procedures,
109+
internal controls, or implementation that could be exploited or triggered by a threat source.'
110+
111+
There are many weaknesses or bugs in every large application, but the term vulnerability is generally reserved
112+
for those weaknesses or bugs where there is a risk that a threat actor could exploit it using a threat vector.
113+
114+
Well known security vulnerabilities are :
115+
116+
* [Clickjacking][csclick]
117+
* [Credential Stuffing][cscreds]
118+
* [Cross-site leaks][csxsleaks]
119+
* [Denial of Service][csdos] (DoS) attacks
120+
* DOM based [XSS attacks][csdom] including [DOM Clobbering][csdomclub]
121+
* [IDOR][csidor] (Insecure Direct Object Reference)
122+
* [Injection][csinjection] including [OS Command injection][csosinjection] and [XXE][csxxe]
123+
* LDAP specific [injection attacks][csldap]
124+
* [Prototype pollution][csproto]
125+
* [SSRF][csssrf] attacks
126+
* [SQL injection][cssql] and the use of [Query Parameterization][csquery]
127+
* [Unvalidated redirects and forwards][csredirect]
128+
* [XSS attacks][csxss] and [XSS Filter Evasion][csxssevade]
129+
130+
#### References
131+
132+
* OWASP [Cheat Sheet Series][cheatsheets]
133+
* OWASP [Software Assurance Maturity Model][samm] (SAMM)
134+
106135
----
107136

108137
The OWASP Developer Guide is a community effort; if there is something that needs changing
109138
then [submit an issue][issue0401] or [edit on GitHub][edit0401].
110139

140+
[cheatsheets]: https://cheatsheetseries.owasp.org/
141+
[csclick]: https://cheatsheetseries.owasp.org/cheatsheets/Clickjacking_Defense_Cheat_Sheet
142+
[cscreds]: https://cheatsheetseries.owasp.org/cheatsheets/Credential_Stuffing_Prevention_Cheat_Sheet
143+
[csdom]: https://cheatsheetseries.owasp.org/cheatsheets/DOM_based_XSS_Prevention_Cheat_Sheet
144+
[csdomclub]: https://cheatsheetseries.owasp.org/cheatsheets/DOM_Clobbering_Prevention_Cheat_Sheet
145+
[csdos]: https://cheatsheetseries.owasp.org/cheatsheets/Denial_of_Service_Cheat_Sheet
146+
[csidor]: https://cheatsheetseries.owasp.org/cheatsheets/Insecure_Direct_Object_Reference_Prevention_Cheat_Sheet
147+
[csinjection]: https://cheatsheetseries.owasp.org/cheatsheets/Injection_Prevention_Cheat_Sheet
148+
[csosinjection]: https://cheatsheetseries.owasp.org/cheatsheets/OS_Command_Injection_Defense_Cheat_Sheet
149+
[csldap]: https://cheatsheetseries.owasp.org/cheatsheets/LDAP_Injection_Prevention_Cheat_Sheet
150+
[csproto]: https://cheatsheetseries.owasp.org/cheatsheets/Prototype_Pollution_Prevention_Cheat_Sheet
151+
[csauthn]: https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet
152+
[csauthz]: https://cheatsheetseries.owasp.org/cheatsheets/Authorization_Cheat_Sheet
153+
[csredirect]: https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet
154+
[cssql]: https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet
155+
[csquery]: https://cheatsheetseries.owasp.org/cheatsheets/Query_Parameterization_Cheat_Sheet
156+
[csssrf]: https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet
157+
[csxss]: https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet
158+
[csxsleaks]: https://cheatsheetseries.owasp.org/cheatsheets/XS_Leaks_Cheat_Sheet
159+
[csxssevade]: https://cheatsheetseries.owasp.org/cheatsheets/XSS_Filter_Evasion_Cheat_Sheet
160+
[csxxe]: https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet
161+
[definevuln]: https://csrc.nist.gov/glossary/term/vulnerability
111162
[issue0401]: https://github.com/OWASP/www-project-developer-guide/issues/new?labels=enhancement&template=request.md&title=Update:%2004-foundations/01-security-fundamentals
112163
[edit0401]: https://github.com/OWASP/www-project-developer-guide/blob/main/draft/04-foundations/01-security-fundamentals.md
113164
[samm]: https://owaspsamm.org/about/

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

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@ There are many OWASP tools and resources to help build security into the SDLC.
7878
a high degree of confidence that the application or system will be reasonably secure.
7979
OWASP provides two libraries that can be incorporated in web applications,
8080
the [Enterprise Security API (ESAPI)][esapi-project] security control library
81-
and [CSRFGuard][csrfguard] to mitigate the risk of Cross-Site Request Forgery (CSRF) attacks,
82-
that help implement these proactive controls. In addition the OWASP [Cheat Sheet Series][cheatproject]
81+
and [CSRFGuard][csrfguard] to mitigate the risk of [Cross-Site Request Forgery][cscsrf] (CSRF) attacks,
82+
that help implement these proactive controls. In addition the OWASP [Cheat Sheet Series][csproject]
8383
is a valuable source of information and advice on all aspects of applications security.
8484

8585
* **Verification**: OWASP provides a relatively large number of projects that help with testing and verification.
@@ -106,7 +106,7 @@ There are many OWASP tools and resources to help build security into the SDLC.
106106
and there have been several high profile of products being successfully exploited.
107107
A Software Bill of Materials (SBOM) is the first step in avoiding these attacks and
108108
it is well worth using the OWASP [CycloneDX][cyclone] full-stack Bill of Materials (BOM) standard
109-
for risk reduction in the supply chain.
109+
for [risk reduction in the supply chain][cschain].
110110
In addition the OWASP [Dependency-Track][deptrack] project is a Continuous SBOM Analysis Platform
111111
which can help prevent these supply chain exploits by providing control of the SBOM.
112112

@@ -126,7 +126,7 @@ There are many OWASP tools and resources to help build security into the SDLC.
126126

127127
#### Further reading from OWASP
128128

129-
* [Cheat Sheet Series][cheatproject]
129+
* [Cheat Sheet Series][csproject]
130130
* [Cornucopia][cornucopia]
131131
* [CycloneDX][cyclone] Bill of Materials (BOM) standard
132132
* [DevSecOps Guideline][devsecops]
@@ -176,10 +176,12 @@ then [submit an issue][issue0402] or [edit on GitHub][edit0402].
176176
[amass]: https://owasp.org/www-project-amass/
177177
[apisec]: https://owasp.org/API-Security
178178
[asvs]: https://owasp.org/www-project-application-security-verification-standard/
179-
[cheatproject]: https://owasp.org/www-project-cheat-sheets/
179+
[champions]: https://owasp.org/www-project-security-champions-guidebook/
180180
[cornucopia]: https://owasp.org/www-project-cornucopia/
181+
[cschain]: https://cheatsheetseries.owasp.org/cheatsheets/Software_Supply_Chain_Security
182+
[cscsrf]: https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet
183+
[csproject]: https://owasp.org/www-project-cheat-sheets/
181184
[csrfguard]: https://owasp.org/www-project-csrfguard/
182-
[champions]: https://owasp.org/www-project-security-champions-guidebook/
183185
[culture]: https://owasp.org/www-project-security-culture/
184186
[cyclone]: https://owasp.org/www-project-cyclonedx/
185187
[depcheck]: https://owasp.org/www-project-dependency-check/

draft/04-foundations/03-security-principles.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ permalink: /draft/foundations/security_principles/
1616

1717
This section is a very brief introduction to some concepts used within the software security domain,
1818
as these may not be familiar to many application developers.
19-
The OWASP [Cheat Sheet Series][cheatproject] provides more in depth explanations for these security principles,
19+
The OWASP [Cheat Sheet Series][csproject] provides more in depth explanations for these security principles,
2020
see the further reading at the end of this section.
2121

2222
#### Overview
@@ -28,7 +28,7 @@ will also need this understanding to implement secure applications.
2828

2929
#### No security guarantee
3030

31-
One of the most important principles of software security is that **no** application or system is totally
31+
One of the most important principles of software security is that no application or system is totally
3232
100% guaranteed to be secure from all attacks. This may seem an unusually pessimistic starting point
3333
but it is merely acknowledging the real world; given enough time and enough resources any system can be compromised.
3434
The goal of software security is not '100% secure' but to make it hard enough and the rewards small enough
@@ -143,26 +143,26 @@ and also should have security patches available.
143143
In addition components developed within the open source community have the further benefit of 'many eyes'
144144
and are therefore likely to be even more secure.
145145

146-
#### Further reading
146+
#### References
147147

148148
* OWASP Cheat Sheet series
149-
* [Authentication Cheat Sheet][ancs]
150-
* [Authorization_Cheat_Sheet][azcs]
149+
* [Authentication Cheat Sheet][csauthn]
150+
* [Authorization Cheat Sheet][csauthz]
151151
* [Secure Product Design Cheat Sheet][spdcs]
152152

153153
----
154154

155155
The OWASP Developer Guide is a community effort; if there is something that needs changing
156156
then [submit an issue][issue0403] or [edit on GitHub][edit0403].
157157

158-
[ancs]: https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html
159-
[azcs]: https://cheatsheetseries.owasp.org/cheatsheets/Authorization_Cheat_Sheet.html
160-
[cheatproject]: https://owasp.org/www-project-cheat-sheets/
158+
[csauthn]: https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet
159+
[csauthz]: https://cheatsheetseries.owasp.org/cheatsheets/Authorization_Cheat_Sheet
160+
[csproject]: https://owasp.org/www-project-cheat-sheets/
161161
[did]: https://cheatsheetseries.owasp.org/cheatsheets/Secure_Product_Design_Cheat_Sheet.html#2-the-principle-of-defense-in-depth
162162
[issue0403]: https://github.com/OWASP/www-project-developer-guide/issues/new?labels=enhancement&template=request.md&title=Update:%2004-foundations/03-security-principles
163163
[elp]: https://cheatsheetseries.owasp.org/cheatsheets/Authorization_Cheat_Sheet.html#enforce-least-privileges
164164
[edit0403]: https://github.com/OWASP/www-project-developer-guide/blob/main/draft/04-foundations/03-security-principles.md
165165
[sop]: https://cheatsheetseries.owasp.org/cheatsheets/Secure_Product_Design_Cheat_Sheet.html#1-the-principle-of-least-privilege-and-separation-of-duties
166-
[spdcs]: https://cheatsheetseries.owasp.org/cheatsheets/Secure_Product_Design_Cheat_Sheet.html
166+
[spdcs]: https://cheatsheetseries.owasp.org/cheatsheets/Secure_Product_Design_Cheat_Sheet
167167

168168
\newpage

draft/04-foundations/04-crypto-principles.md

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ permalink: /draft/foundations/crypto_principles/
1515
### 2.4 Principles of cryptography
1616

1717
Cryptography is fundamental to the Confidentiality and Integrity of applications and systems.
18-
The OWASP [Cheat Sheet][cheatproject] series describes the use of cryptography and some of these are
18+
The OWASP [Cheat Sheet][csproject] series describes the use of cryptography and some of these are
1919
listed in the further reading at the end of this section.
2020

2121
#### Overview
@@ -56,15 +56,18 @@ Cryptographic hashes (secure, one way hashes) to prevent passwords from disclosu
5656

5757
#### Authentication
5858

59-
Authentication is the process of verifying a claim that a subject is who it says it is
59+
[Authentication][csauthn] is the process of verifying a claim that a subject is who it says it is
6060
via some provided corroborating evidence.
6161
Cryptography is central to authentication:
6262

6363
1. to protect the provided corroborating evidence (for example hashing of passwords for subsequent storage)
6464
2. in authentication protocols often use cryptography to either directly authenticate entities
6565
or to exchange credentials in a secure manner
6666
3. to verify the identity one or both parties in exchanging messages,
67-
for example identity verification within Transport Layer Security (TLS)
67+
for example identity verification within [Transport Layer Security][tls] (TLS)
68+
69+
OpenID Connect is widely used as an identity layer on top of the OAuth 2.0 protocol,
70+
see the [OAuth 2.0 Protocol][csoauth] Cheat Sheet.
6871

6972
#### Integrity
7073

@@ -179,7 +182,7 @@ which is only used for the duration of the encrypted communication.
179182
This random session key is then encrypted using an asymmetric cipher and the recipient's private key.
180183
The plaintext data itself is encrypted with the session key.
181184
Then the entire bundle (encrypted session key and encrypted message) is all sent together.
182-
Both TLS and S/MIME are common cryptosystems using hybrid cryptography.
185+
Both [TLS][tls] and S/MIME are common cryptosystems using hybrid cryptography.
183186

184187
#### Digital signature
185188

@@ -234,31 +237,34 @@ Key Agreement protocols are protocols whereby N parties (usually two) can agree
234237
with all parties contributing to the key value.
235238
These protocols prevent adversaries from learning the key or forcing their own key choice on the participating parties.
236239

237-
#### Further reading
240+
#### References
238241

239242
* OWASP Cheat Sheet series
240-
* [Authentication Cheat Sheet][ancs]
241-
* [Authorization_Cheat_Sheet][csaz]
242-
* [Cryptographic Storage Cheat Sheet][cscs]
243-
* [Key Management Cheat Sheet][kmcs]
244-
* [SAML Security Cheat Sheet][sscs]
245-
* [Secure Product Design Cheat Sheet][spdcs]
246-
* [User Privacy Protection Cheat Sheet][uppcs]
243+
* [Authentication][csauthn]
244+
* [Authorization][csauthz]
245+
* [Cryptographic Storage][cscs]
246+
* [Key Management][kmcs]
247+
* [OAuth 2.0 Protocol][csoauth]
248+
* [SAML Security][sscs]
249+
* [Secure Product Design][spdcs]
250+
* [User Privacy Protection][uppcs]
247251

248252
----
249253

250254
The OWASP Developer Guide is a community effort; if there is something that needs changing
251255
then [submit an issue][issue0404] or [edit on GitHub][edit0404].
252256

253-
[ancs]: https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html
254-
[csaz]: https://cheatsheetseries.owasp.org/cheatsheets/Authorization_Cheat_Sheet.html
255-
[cheatproject]: https://owasp.org/www-project-cheat-sheets/
256-
[cscs]: https://cheatsheetseries.owasp.org/cheatsheets/Cryptographic_Storage_Cheat_Sheet.html
257+
[csauthn]: https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet
258+
[csauthz]: https://cheatsheetseries.owasp.org/cheatsheets/Authorization_Cheat_Sheet
259+
[csoauth]: https://cheatsheetseries.owasp.org/cheatsheets/OAuth2_Cheat_Sheet
260+
[csproject]: https://owasp.org/www-project-cheat-sheets/
261+
[cscs]: https://cheatsheetseries.owasp.org/cheatsheets/Cryptographic_Storage_Cheat_Sheet
257262
[issue0404]: https://github.com/OWASP/www-project-developer-guide/issues/new?labels=enhancement&template=request.md&title=Update:%2004-foundations/04-crypto-principles
258-
[kmcs]: https://cheatsheetseries.owasp.org/cheatsheets/Key_Management_Cheat_Sheet.html
263+
[kmcs]: https://cheatsheetseries.owasp.org/cheatsheets/Key_Management_Cheat_Sheet
259264
[edit0404]: https://github.com/OWASP/www-project-developer-guide/blob/main/draft/04-foundations/04-crypto-principles.md
260-
[sscs]: https://cheatsheetseries.owasp.org/cheatsheets/SAML_Security_Cheat_Sheet.html
261-
[spdcs]: https://cheatsheetseries.owasp.org/cheatsheets/Secure_Product_Design_Cheat_Sheet.html
262-
[uppcs]: https://cheatsheetseries.owasp.org/cheatsheets/User_Privacy_Protection_Cheat_Sheet.html
265+
[sscs]: https://cheatsheetseries.owasp.org/cheatsheets/SAML_Security_Cheat_Sheet
266+
[spdcs]: https://cheatsheetseries.owasp.org/cheatsheets/Secure_Product_Design_Cheat_Sheet
267+
[tls]: https://cheatsheetseries.owasp.org/cheatsheets/Transport_Layer_Security_Cheat_Sheet
268+
[uppcs]: https://cheatsheetseries.owasp.org/cheatsheets/User_Privacy_Protection_Cheat_Sheet
263269

264270
\newpage

0 commit comments

Comments
 (0)