-
Notifications
You must be signed in to change notification settings - Fork 4.3k
feat: Add CISA Secure by Design cheat sheet and update Secure Product Design sheet (#1793) #1873
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,88 +1,27 @@ | ||
| # Welcome to the OWASP Cheat Sheet Series | ||
| # OWASP Cheat Sheet Series | ||
|
|
||
| [](https://www.owasp.org/index.php/OWASP_Project_Inventory#tab=Flagship_Projects) | ||
| [](https://creativecommons.org/licenses/by-sa/4.0/ "CC BY-SA 4.0") | ||
| The OWASP Cheat Sheet Series project provides high-value information on specific application security topics. | ||
|
|
||
| Welcome to the official repository for the Open Worldwide Application Security Project® (OWASP) Cheat Sheet Series project. The project focuses on providing good security practices for builders in order to secure their applications. | ||
| ## Authors | ||
|
|
||
| In order to read the cheat sheets and **reference** them, use the project [official website](https://cheatsheetseries.owasp.org). The project details can be viewed on the [OWASP main website](https://owasp.org/www-project-cheat-sheets/) without the cheat sheets. | ||
|
|
||
| :triangular_flag_on_post: Markdown files are the working sources and aren't intended to be referenced in any external documentation, books or websites. | ||
|
|
||
| ## Cheat Sheet Series Team | ||
|
|
||
| ### Project Leaders | ||
|
|
||
| - [Jim Manico](https://github.com/jmanico) | ||
| - [Jakub Maćkowski](https://github.com/mackowski) | ||
| - [Shlomo Zalman Heigh](https://github.com/szh) | ||
|
|
||
| ### Core team | ||
|
|
||
| - [Kevin W. Wall](https://github.com/kwwall) | ||
| - Jim Manico | ||
| - Tanya Janca | ||
| - Andrew van der Stock | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Same for Andrew |
||
|
|
||
| ## Chat With Us | ||
|
|
||
| We're easy to find on Slack: | ||
|
|
||
| 1. Join the OWASP Group Slack with this [invitation link](https://owasp.org/slack/invite). | ||
| 2. Join the [#cheatsheets channel](https://owasp.slack.com/messages/C073YNUQG). | ||
|
|
||
| Feel free to ask questions, suggest ideas, or share your best recipes. | ||
|
|
||
| ## Contributions, Feature Requests, and Feedback | ||
|
|
||
| We are actively inviting new contributors! To start, please read the [contribution guide](CONTRIBUTING.md). | ||
|
|
||
| This project is only possible thanks to the work of many dedicated volunteers. Everyone is encouraged to help in ways large and small. Here are a few ways you can help: | ||
|
|
||
| - Read the current content and help us fix any spelling mistakes or grammatical errors. | ||
| - Choose an existing [issue](https://github.com/OWASP/CheatSheetSeries/issues) on GitHub and submit a pull request to fix it. | ||
| - Open a new issue to report an opportunity for improvement. | ||
|
|
||
| ### Automated Build | ||
|
|
||
| This [link](https://cheatsheetseries.owasp.org/bundle.zip) allows you to download a build (ZIP archive) of the offline website. | ||
|
|
||
| ### Local Build [](https://www.python.org/downloads/) | ||
|
|
||
| The OWASP Cheat Sheet Series website can be built and tested locally by issuing the following commands: | ||
|
|
||
| ```sh | ||
| make install-python-requirements | ||
| make generate-site | ||
| make serve # Binds port 8000 | ||
| ``` | ||
|
|
||
| ### Container Build | ||
|
|
||
| The OWASP Cheat Sheet Series website can be built and tested locally inside a container by issuing the following commands: | ||
|
|
||
| #### Docker | ||
|
|
||
| ```sh | ||
| docker build -t cheatsheetseries . | ||
| docker run --name cheatsheetseries -p 8000:8000 cheatsheetseries | ||
| ``` | ||
|
|
||
| #### Podman | ||
|
|
||
| ```sh | ||
| podman build -t cheatsheetseries . | ||
| podman run --name cheatsheetseries -p 8000:8000 localhost/cheatsheetseries | ||
| ``` | ||
| Join us on our [Slack](https://owasp.org/slack) | ||
|
|
||
| ## Contributors | ||
| ## Conversion Rules | ||
|
|
||
| - **From 2014 to 2018:** [V1](CONTRIBUTOR-V1.md) - Initial version of the project hosted on the [OWASP WIKI](https://wiki.owasp.org). | ||
| - **From 2019:** [V2](https://github.com/OWASP/CheatSheetSeries/graphs/contributors) - Hosted on [GitHub](https://github.com/OWASP/CheatSheetSeries). | ||
| - Use Markdown (.md) files for cheatsheets. | ||
| - Follow consistent heading levels. | ||
| - Keep lines under 120 characters. | ||
|
|
||
| ## Special thanks | ||
| ## Editor | ||
|
|
||
| A special thank you to the following people for their help provided during the migration: | ||
| We use Visual Studio Code with markdownlint plugin for linting. | ||
|
|
||
| - [Dominique Righetto](https://github.com/righettod): For his special leadership and guidance. | ||
| - [Elie Saad](https://github.com/ThunderSon): For valuable help in updating the OWASP Wiki links for all the migrated cheat sheets and for years of leadership and other project support. | ||
| - [Jakub Maćkowski](https://github.com/mackowski): For valuable help in updating the OWASP Wiki links for all the migrated cheat sheets. | ||
| ## Status | ||
|
|
||
| Open Worldwide Application Security Project and OWASP are registered trademarks of the OWASP Foundation, Inc. | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is kind of an important line to keep... |
||
| All cheatsheets are continuously improved and reviewed. | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -55,13 +55,20 @@ This XML structure has three main sections (or nodes): | |
| The tests will use this as a input source for the different test cases by: | ||
| 1) Defining legitimate access and the correct implementation | ||
| 2) Identifying illegitimate access (authorization definition issue | ||
| This file materialize the authorization matrix for the different | ||
| services exposed by the system. | ||
|
|
||
| It will be used by the tests as a input sources for the different tests cases: | ||
| 1) Evaluate legitimate access and is correct implementation | ||
| 2) Identify not legitimate access (authorization definition issue | ||
| on service implementation) | ||
|
|
||
| The "name" attribute is used to uniquely identify a SERVICE or a ROLE. | ||
| --> | ||
| <authorization-matrix> | ||
|
|
||
| <!-- Describe the possible logical roles used in the system, is used here to | ||
| <!-- Describe the possible logical roles used in the system, is used here to | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why duplicate this line? |
||
| provide a list+explanation | ||
| of the different roles (authorization level) --> | ||
| <roles> | ||
|
|
@@ -74,6 +81,7 @@ This XML structure has three main sections (or nodes): | |
| </roles> | ||
|
|
||
| <!-- List and describe the available services exposed by the system and the associated | ||
| <!-- List and describe the available services exposed by the system and the associated | ||
| logical role(s) that can call them --> | ||
| <services> | ||
| <service name="ReadSingleMessage" uri="/{messageId}" http-method="GET" | ||
|
|
@@ -387,6 +395,22 @@ Time elapsed: 0.05 s ### FAILURE! | |
| java.lang.AssertionError: | ||
| Access issues detected using the BASIC USER point of view: | ||
| The service 'DeleteMessage' when called with POV 'BASIC' return | ||
| ``` | ||
| testAccessUsingAnonymousUserPointOfView(org.owasp.pocauthztesting.AuthorizationMatrixIT) | ||
| Time elapsed: 1.009 s ### FAILURE | ||
| java.lang.AssertionError: | ||
| Access issues detected using the ANONYMOUS USER point of view: | ||
| The service 'DeleteMessage' when called with POV 'ANONYMOUS' return | ||
| a response code 200 that is not the expected one (403 expected). | ||
|
|
||
| The service 'CreateMessage' when called with POV 'ANONYMOUS' return | ||
| a response code 200 that is not the expected one (403 expected). | ||
|
|
||
| testAccessUsingBasicUserPointOfView(org.owasp.pocauthztesting.AuthorizationMatrixIT) | ||
| Time elapsed: 0.05 s ### FAILURE! | ||
| java.lang.AssertionError: | ||
| Access issues detected using the BASIC USER point of view: | ||
| The service 'DeleteMessage' when called with POV 'BASIC' return | ||
|
Comment on lines
+398
to
+413
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What is this even about? |
||
| a response code 200 that is not the expected one (403 expected). | ||
| ``` | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| # CISA Secure By Design Cheat Sheet | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. No links or references, not enough content to be worth a cheat sheet. |
||
|
|
||
| ## Core Principles | ||
|
|
||
| - Treat security as a core process, not a feature. | ||
| - Conduct threat modeling during design. | ||
| - Make security decisions visible and documented. | ||
|
|
||
| ## Leadership and Accountability | ||
|
|
||
| - Executive and engineering leaders must ensure secure-by-design principles. | ||
| - Include security goals in performance reviews. | ||
|
|
||
| ## Technical Practices | ||
|
|
||
| - Systems should be secure without depending on additional components. | ||
| - Disable unnecessary features and interfaces. | ||
| - Security should be integrated throughout the SDLC. | ||
| - Apply security patterns (e.g., defense-in-depth). | ||
| - Avoid memory corruption vulnerabilities. | ||
| - Prefer high-level languages for safer defaults. | ||
| - Embed security awareness and continuous improvement. | ||
| - Provide continuous security testing and feedback. | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lol clear AI slop. I love Tanya Janca but you can see it's just pulling in well known names in the AppSec world that have nothing to do with this project.