diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..d756529a3 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,25 @@ +name: ci +on: + push: + branches: + - master +permissions: + contents: write +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: 3.x + - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV + - uses: actions/cache@v3 + with: + key: mkdocs-material-${{ env.cache_id }} + path: .cache + restore-keys: | + mkdocs-material- + - run: pip install mkdocs-material==9.0.9 + - run: pip install git+https://github.com/PauloASilva/mkdocs-monorepo-plugin@feat/i18n + - run: mkdocs gh-deploy --force diff --git a/2023/en/src/0xa8-lack-of-protection-from-automated-threats.md b/2023/en/src/0xa8-lack-of-protection-from-automated-threats.md deleted file mode 100644 index 0646e8bf1..000000000 --- a/2023/en/src/0xa8-lack-of-protection-from-automated-threats.md +++ /dev/null @@ -1,97 +0,0 @@ -API8:2023 Lack of Protection from Automated Threats -=================================================== - -| Threat agents/Attack vectors | Security Weakness | Impacts | -| - | - | - | -| API Specific : Exploitability **3** | Prevalence **3** : Detectability **1** | Technical **1** : Business Specific | -| Exploitation usually involves understanding of the business model of the API, finding sensitive business flows, and automating access to these flows, causing harm to the business. | When broken down, each of an attack's requests represent a completely legitimate request and cannot be identified as an attack. An attack can be identified only when looking at the sum of the requests in regards to the service/application business logic. | In general technical impact is not expected. Exploitation might hurt the business in different ways, for example: 1. Prevent legitimate users from purchasing a product; 2. Lead to inflation in the internal economy of a game; 3. Allow the attacker to send excessive amounts of messages/comments and easily spread fake news. | - -## Is the API Vulnerable? - -Automated threats have become more profitable, smarter and harder to protect -from, and APIs are often used as an easy target for them. Traditional -protections, such as rate limiting and captchas become less effective over time. -For example, an attacker who operates bot-nets (for scalping) gets around rate -limiting because they can easily access the API from thousands of location/IP -addresses around the world, in a matter of seconds. - -Vulnerable APIs don't necessarily have implementation bugs. They simply expose -a business flow - such as buying a ticket, or posting a comment - without -considering how the functionality could harm the business if used excessively -in an automated manner. - -Each industry might have its own specific risks when it comes to automated -threats. - -An API endpoint is vulnerable if it exposes a business-sensitive functionality, -and allows an attacker to harm the business by accessing it in an excessive -automated manner. - -The [OWASP Automated Threats to Web Applications][1] covers different types of -automated threats and their impact. - -## Example Attack Scenarios - -### Scenario #1 - -A technology company announces they are going to release a new gaming console -on Thanksgiving. The product has a very high demand and the stock is limited. -An attacker, operator of a network of automated threats, writes code to -automatically buy the new product and complete the transaction. - -On the release day, the attacker runs the code distributed across different IP -addresses and locations. The API doesn't implement the appropriate protection -and allows the attacker to buy the majority of the stock before other -legitimate users. - -Later on, the attacker sells the product on another platform for a much higher -price. - - -### Scenario #2 - -A ride-sharing app provides a referral program - users can invite their friends -and gain credit for each friend who has joined the app. This credit can be -later used as cash to book rides. - -An attacker exploits this flow by writing a script to automate the registration -process, with each new user adding credit to the attacker's wallet. - -The attacker can later enjoy free rides or sell the accounts with excessive -credits for cash. - -## How To Prevent - -The mitigation planning should be done in two layers: - -* Business - identify the business flows that might harm the business if they - are excessively used. -* Engineering - choose the right protection mechanisms to mitigate the business - risk. - - Some of the protection mechanisms are more simple while others are more - difficult to implement. The following methods are used to slow down automated - threats: - - * Device fingerprinting: denying service to unexpected client devices (e.g - headless browsers) tends to make threat actors use more sophisticated - solutions, thus more costly for them - * Human detection: using either captcha or more advanced biometric solutions - (e.g. typing patterns) - * Non-human patterns: analyze the user flow to detect non-human patterns - (e.g. the user accessed the "add to cart" and "complete purchase" - functions in less than one second) - * Consider blocking IP addresses of Tor exit nodes and well-known proxies -* Secure and limit access to APIs that are consumed directly by machines (such - as developer and B2B APIs). They tend to be an easy target for attackers - because they often don't implement all the required protection mechanisms. - -## References - -### OWASP - -* [OWASP Automated Threats to Web Applications][1] -* [API10:2019 Insufficient Logging & Monitoring][2] - -[1]: https://owasp.org/www-project-automated-threats-to-web-applications/ -[2]: https://github.com/OWASP/API-Security/blob/master/2019/en/src/0xaa-insufficient-logging-monitoring.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3ce4dc210..62344d869 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,5 +1,4 @@ -How to Contribute -================= +# How to Contribute When contributing to this repository, please first discuss the change you wish to make via submitting an issue with the owners of this repository before making @@ -9,6 +8,7 @@ discussion. ## Branching Model This repository holds two main branches with an infinite lifetime: + * `master` is the default branch which always reflects the latest release. * `develop` is the main branch reflecting the latest delivered changes for the next release. When the `develop` branch reaches a stable point and is ready to @@ -22,38 +22,58 @@ branches have a limited lifespan, since they will be removed eventually. Contributions to this repository are welcome. For ease of managing, please follow the steps below: -1. Fork this repository to your account. +1. Fork this repository to your account. + +2. Clone your copy of this repository, locally. + + ``` + git clone https://github.com/YOU/API-Security.git + ``` + +3. Create a new branch based on `develop` (e.g., `fix/foreword-section`). + + ``` + git checkout develop && git checkout -b fix/foreword-section + ``` + +4. Apply your changes. + + Please, always follow our style conventions. + + + Although there's an [`.editorconfig` file][1] on repository's root, your + editor may not support it. To learn more about [EditorConfig][2] and text + editors/IDEs support, check the website: https://editorconfig.org/. + You can preview your changes, [rendering the web site locally][4]. + +5. Commit your changes. + + 1. Check modified files and add only required ones (e.g., build artifacts + SHOULD NOT be tracked). + 2. The first line of the commit message should provide a brief description + of your changes. You can go into more details on the optional commit + message body. -2. Clone your copy of this repository, locally. - ``` - git clone https://github.com/YOU/API-Security.git - ``` -3. Create a new branch based on `develop` (e.g., `fix/foreword-section`). - ``` - git checkout develop && git checkout -b fix/foreword-section - ``` -4. Apply your changes. +6. Push changes to your public repository. - Please, always follow our style conventions. + ``` + git push origin fix/foreword-section + ``` - Although there's an [`.editorconfig` file][1] on repository's root, your - editor may not support it. To learn more about [EditorConfig][2] and text - editors/IDEs support, check the website: https://editorconfig.org/. +7. Open a Pull Request from your `fix/foreword-section` to the upstream + repository `develop` branch. -5. Commit your changes. +### Rendering the Web Site Locally - 1. Check modified files and add only required ones (e.g., build artifacts - SHOULD NOT be tracked). - 2. The first line of the commit message should provide a brief description of - your changes. You can go into more details on the optional commit message - body. +The web site is built using [Material for MkDocs][3] and several plugin. +Although you can manually install everything, we've bundled everything into a +Docker image that you can use to render the web site locally: -6. Push changes to your public repository. - ``` - git push origin fix/foreword-section - ``` -7. Open a Pull Request from your `fix/foreword-section` to the upstream - repository `develop` branch. +``` +docker compose up +``` -[1]: .editorconfig +[1]: https://github.com/OWASP/API-Security/blob/master/.editorconfig [2]: https://editorconfig.org/ +[3]: https://squidfunk.github.io/mkdocs-material/ +[4]: #rendering-the-web-site-locally diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..2ae6bdd7a --- /dev/null +++ b/Dockerfile @@ -0,0 +1,7 @@ +FROM squidfunk/mkdocs-material:9.0.9 + +ENV MKDOCS_MONOREPO_REPO=https://github.com/PauloASilva/mkdocs-monorepo-plugin +ENV MKDOCS_MONOREPO_BRANCH="feat/i18n" + +RUN python -m pip install git+$MKDOCS_MONOREPO_REPO@$MKDOCS_MONOREPO_BRANCH +RUN python -m pip install pymdown-extensions diff --git a/LICENSE b/LICENSE index 73cad4dc2..2660aada4 100644 --- a/LICENSE +++ b/LICENSE @@ -1,107 +1,243 @@ Creative Commons Attribution-ShareAlike 4.0 International Public License -By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution-ShareAlike 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. +By exercising the Licensed Rights (defined below), You accept and agree to be +bound by the terms and conditions of this Creative Commons +Attribution-ShareAlike 4.0 International Public License ("Public License"). To +the extent this Public License may be interpreted as a contract, You are granted +the Licensed Rights in consideration of Your acceptance of these terms and +conditions, and the Licensor grants You such rights in consideration of benefits +the Licensor receives from making the Licensed Material available under these +terms and conditions. Section 1 – Definitions. - Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image. - Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License. - BY-SA Compatible License means a license listed at creativecommons.org/compatiblelicenses, approved by Creative Commons as essentially the equivalent of this Public License. - Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights. - Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements. - Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material. - License Elements means the license attributes listed in the name of a Creative Commons Public License. The License Elements of this Public License are Attribution and ShareAlike. - Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License. - Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license. - Licensor means the individual(s) or entity(ies) granting rights under this Public License. - Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them. - Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world. - You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning. + Adapted Material means material subject to Copyright and Similar Rights that + is derived from or based upon the Licensed Material and in which the + Licensed Material is translated, altered, arranged, transformed, or + otherwise modified in a manner requiring permission under the Copyright and + Similar Rights held by the Licensor. For purposes of this Public License, + where the Licensed Material is a musical work, performance, or sound + recording, Adapted Material is always produced where the Licensed Material + is synched in timed relation with a moving image. Adapter's License means + the license You apply to Your Copyright and Similar Rights in Your + contributions to Adapted Material in accordance with the terms and + conditions of this Public License. BY-SA Compatible License means a license + listed at creativecommons.org/compatiblelicenses, approved by Creative + Commons as essentially the equivalent of this Public License. Copyright and + Similar Rights means copyright and/or similar rights closely related to + copyright including, without limitation, performance, broadcast, sound + recording, and Sui Generis Database Rights, without regard to how the rights + are labeled or categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights. + Effective Technological Measures means those measures that, in the absence + of proper authority, may not be circumvented under laws fulfilling + obligations under Article 11 of the WIPO Copyright Treaty adopted on + December 20, 1996, and/or similar international agreements. Exceptions and + Limitations means fair use, fair dealing, and/or any other exception or + limitation to Copyright and Similar Rights that applies to Your use of the + Licensed Material. License Elements means the license attributes listed in + the name of a Creative Commons Public License. The License Elements of this + Public License are Attribution and ShareAlike. Licensed Material means the + artistic or literary work, database, or other material to which the Licensor + applied this Public License. Licensed Rights means the rights granted to + You subject to the terms and conditions of this Public License, which are + limited to all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. Licensor + means the individual(s) or entity(ies) granting rights under this Public + License. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such as + reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material available + to the public including in ways that members of the public may access the + material from a place and at a time individually chosen by them. Sui + Generis Database Rights means rights other than copyright resulting from + Directive 96/9/EC of the European Parliament and of the Council of 11 March + 1996 on the legal protection of databases, as amended and/or succeeded, as + well as other essentially equivalent rights anywhere in the world. You + means the individual or entity exercising the Licensed Rights under this + Public License. Your has a corresponding meaning. Section 2 – Scope. - License grant. - Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to: - reproduce and Share the Licensed Material, in whole or in part; and - produce, reproduce, and Share Adapted Material. - Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions. - Term. The term of this Public License is specified in Section 6(a). - Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material. - Downstream recipients. - Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License. - Additional offer from the Licensor – Adapted Material. Every recipient of Adapted Material from You automatically receives an offer from the Licensor to exercise the Licensed Rights in the Adapted Material under the conditions of the Adapter’s License You apply. - No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material. - No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i). - - Other rights. - Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise. - Patent and trademark rights are not licensed under this Public License. - To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties. + License grant. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, + non-exclusive, irrevocable license to exercise the Licensed Rights in the + Licensed Material to: reproduce and Share the Licensed Material, in whole or + in part; and produce, reproduce, and Share Adapted Material. Exceptions and + Limitations. For the avoidance of doubt, where Exceptions and Limitations + apply to Your use, this Public License does not apply, and You do not need + to comply with its terms and conditions. Term. The term of this Public + License is specified in Section 6(a). Media and formats; technical + modifications allowed. The Licensor authorizes You to exercise the Licensed + Rights in all media and formats whether now known or hereafter created, and + to make technical modifications necessary to do so. The Licensor waives + and/or agrees not to assert any right or authority to forbid You from making + technical modifications necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective Technological + Measures. For purposes of this Public License, simply making modifications + authorized by this Section 2(a)(4) never produces Adapted Material. + Downstream recipients. Offer from the Licensor – Licensed Material. Every + recipient of the Licensed Material automatically receives an offer from the + Licensor to exercise the Licensed Rights under the terms and conditions of + this Public License. Additional offer from the Licensor – Adapted Material. + Every recipient of Adapted Material from You automatically receives an offer + from the Licensor to exercise the Licensed Rights in the Adapted Material + under the conditions of the Adapter’s License You apply. No downstream + restrictions. You may not offer or impose any additional or different terms + or conditions on, or apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the Licensed Rights by + any recipient of the Licensed Material. No endorsement. Nothing in this + Public License constitutes or may be construed as permission to assert or + imply that You are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, the Licensor or + others designated to receive attribution as provided in Section + 3(a)(1)(A)(i). + + Other rights. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, privacy, and/or other + similar personality rights; however, to the extent possible, the Licensor + waives and/or agrees not to assert any such rights held by the Licensor to + the limited extent necessary to allow You to exercise the Licensed Rights, + but not otherwise. Patent and trademark rights are not licensed under this + Public License. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed Rights, whether + directly or through a collecting society under any voluntary or waivable + statutory or compulsory licensing scheme. In all other cases the Licensor + expressly reserves any right to collect such royalties. Section 3 – License Conditions. -Your exercise of the Licensed Rights is expressly made subject to the following conditions. +Your exercise of the Licensed Rights is expressly made subject to the following +conditions. Attribution. - If You Share the Licensed Material (including in modified form), You must: - retain the following if it is supplied by the Licensor with the Licensed Material: - identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated); - a copyright notice; - a notice that refers to this Public License; - a notice that refers to the disclaimer of warranties; - a URI or hyperlink to the Licensed Material to the extent reasonably practicable; - indicate if You modified the Licensed Material and retain an indication of any previous modifications; and - indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License. - You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information. - If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable. - ShareAlike. - - In addition to the conditions in Section 3(a), if You Share Adapted Material You produce, the following conditions also apply. - The Adapter’s License You apply must be a Creative Commons license with the same License Elements, this version or later, or a BY-SA Compatible License. - You must include the text of, or the URI or hyperlink to, the Adapter's License You apply. You may satisfy this condition in any reasonable manner based on the medium, means, and context in which You Share Adapted Material. - You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, Adapted Material that restrict exercise of the rights granted under the Adapter's License You apply. + If You Share the Licensed Material (including in modified form), You + must: retain the following if it is supplied by the Licensor with the + Licensed Material: identification of the creator(s) of the Licensed + Material and any others designated to receive attribution, in any + reasonable manner requested by the Licensor (including by pseudonym if + designated); a copyright notice; a notice that refers to this Public + License; a notice that refers to the disclaimer of warranties; a URI or + hyperlink to the Licensed Material to the extent reasonably practicable; + indicate if You modified the Licensed Material and retain an indication + of any previous modifications; and indicate the Licensed Material is + licensed under this Public License, and include the text of, or the URI + or hyperlink to, this Public License. You may satisfy the conditions in + Section 3(a)(1) in any reasonable manner based on the medium, means, and + context in which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or hyperlink to + a resource that includes the required information. If requested by the + Licensor, You must remove any of the information required by Section + 3(a)(1)(A) to the extent reasonably practicable. ShareAlike. + + In addition to the conditions in Section 3(a), if You Share Adapted Material + You produce, the following conditions also apply. The Adapter’s License You + apply must be a Creative Commons license with the same License Elements, + this version or later, or a BY-SA Compatible License. You must include the + text of, or the URI or hyperlink to, the Adapter's License You apply. You + may satisfy this condition in any reasonable manner based on the medium, + means, and context in which You Share Adapted Material. You may not offer + or impose any additional or different terms or conditions on, or apply any + Effective Technological Measures to, Adapted Material that restrict exercise + of the rights granted under the Adapter's License You apply. Section 4 – Sui Generis Database Rights. -Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: +Where the Licensed Rights include Sui Generis Database Rights that apply to Your +use of the Licensed Material: - for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database; - if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material, including for purposes of Section 3(b); and - You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database. + for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, + reuse, reproduce, and Share all or a substantial portion of the contents of + the database; if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database Rights, then + the database in which You have Sui Generis Database Rights (but not its + individual contents) is Adapted Material, including for purposes of Section + 3(b); and You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. -For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. +For the avoidance of doubt, this Section 4 supplements and does not replace Your +obligations under this Public License where the Licensed Rights include other +Copyright and Similar Rights. Section 5 – Disclaimer of Warranties and Limitation of Liability. - Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You. - To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You. - - The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability. + Unless otherwise separately undertaken by the Licensor, to the extent + possible, the Licensor offers the Licensed Material as-is and as-available, + and makes no representations or warranties of any kind concerning the + Licensed Material, whether express, implied, statutory, or other. This + includes, without limitation, warranties of title, merchantability, fitness + for a particular purpose, non-infringement, absence of latent or other + defects, accuracy, or the presence or absence of errors, whether or not + known or discoverable. Where disclaimers of warranties are not allowed in + full or in part, this disclaimer may not apply to You. To the extent + possible, in no event will the Licensor be liable to You on any legal theory + (including, without limitation, negligence) or otherwise for any direct, + special, indirect, incidental, consequential, punitive, exemplary, or other + losses, costs, expenses, or damages arising out of this Public License or + use of the Licensed Material, even if the Licensor has been advised of the + possibility of such losses, costs, expenses, or damages. Where a limitation + of liability is not allowed in full or in part, this limitation may not + apply to You. + + The disclaimer of warranties and limitation of liability provided above + shall be interpreted in a manner that, to the extent possible, most closely + approximates an absolute disclaimer and waiver of all liability. Section 6 – Term and Termination. - This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically. - - Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates: - automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or - upon express reinstatement by the Licensor. - For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License. - For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License. - Sections 1, 5, 6, 7, and 8 survive termination of this Public License. + This Public License applies for the term of the Copyright and Similar Rights + licensed here. However, if You fail to comply with this Public License, then + Your rights under this Public License terminate automatically. + + Where Your right to use the Licensed Material has terminated under Section + 6(a), it reinstates: automatically as of the date the violation is cured, + provided it is cured within 30 days of Your discovery of the violation; or + upon express reinstatement by the Licensor. For the avoidance of doubt, + this Section 6(b) does not affect any right the Licensor may have to seek + remedies for Your violations of this Public License. For the avoidance of + doubt, the Licensor may also offer the Licensed Material under separate + terms or conditions or stop distributing the Licensed Material at any time; + however, doing so will not terminate this Public License. Sections 1, 5, 6, + 7, and 8 survive termination of this Public License. Section 7 – Other Terms and Conditions. - The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed. - Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License. + The Licensor shall not be bound by any additional or different terms or + conditions communicated by You unless expressly agreed. Any arrangements, + understandings, or agreements regarding the Licensed Material not stated + herein are separate from and independent of the terms and conditions of this + Public License. Section 8 – Interpretation. - For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License. - To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions. - No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor. - Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority. - -Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. + For the avoidance of doubt, this Public License does not, and shall not be + interpreted to, reduce, limit, restrict, or impose conditions on any use of + the Licensed Material that could lawfully be made without permission under + this Public License. To the extent possible, if any provision of this + Public License is deemed unenforceable, it shall be automatically reformed + to the minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License without + affecting the enforceability of the remaining terms and conditions. No term + or condition of this Public License will be waived and no failure to comply + consented to unless expressly agreed to by the Licensor. Nothing in this + Public License constitutes or may be interpreted as a limitation upon, or + waiver of, any privileges and immunities that apply to the Licensor or You, + including from the legal processes of any jurisdiction or authority. + +Creative Commons is not a party to its public licenses. Notwithstanding, +Creative Commons may elect to apply one of its public licenses to material it +publishes and in those instances will be considered the “Licensor.” The text of +the Creative Commons public licenses is dedicated to the public domain under the +CC0 Public Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as otherwise +permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the use of the +trademark “Creative Commons” or any other trademark or logo of Creative Commons +without its prior written consent including, without limitation, in connection +with any unauthorized modifications to any of its public licenses or any other +arrangements, understandings, or agreements concerning use of licensed material. +For the avoidance of doubt, this paragraph does not form part of the public +licenses. Creative Commons may be contacted at creativecommons.org. diff --git a/README.md b/README.md index c8e186a15..eae8fa32d 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ -OWASP API Security Top 10 -========================= +# OWASP API Security Top 10 This project is designed to address the ever-increasing number of organizations that are deploying potentially sensitive APIs as part of their software @@ -41,14 +40,14 @@ This project aims to: **The OWASP API Security Project documents are free to use!** The OWASP API Security Project is licensed under the [Creative Commons -Attribution-ShareAlike 3.0 license][1], so you can copy, distribute, and +Attribution-ShareAlike 4.0 license][1], so you can copy, distribute, and transmit the work. You can also adapt it, and use it commercially, as long as you attribute the work. If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one. [0]: https://www.owasp.org/index.php/User:ErezYalon -[1]: http://creativecommons.org/licenses/by-sa/3.0/ +[1]: http://creativecommons.org/licenses/by-sa/4.0/ [2]: https://github.com/OWASP/API-Security/blob/develop/2019/en/dist/owasp-api-security-top-10.pdf [3]: https://github.com/OWASP/API-Security/tree/develop/ [4]: https://github.com/OWASP/API-Security/blob/master/CONTRIBUTING.md diff --git a/VERSION b/VERSION index 7c3272873..e3a4f1933 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.1.1 \ No newline at end of file +2.2.0 \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 000000000..efe428ba3 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,12 @@ +version: "3.9" + +services: + + preview: + build: . + image: owasp/api-top10:latest + container_name: "owasp_api-top10" + ports: + - "8000:8000" + volumes: + - .:/docs:ro diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md new file mode 120000 index 000000000..44fcc6343 --- /dev/null +++ b/docs/CONTRIBUTING.md @@ -0,0 +1 @@ +../CONTRIBUTING.md \ No newline at end of file diff --git a/docs/README.md b/docs/README.md new file mode 120000 index 000000000..32d46ee88 --- /dev/null +++ b/docs/README.md @@ -0,0 +1 @@ +../README.md \ No newline at end of file diff --git a/docs/assets/images/favicon.png b/docs/assets/images/favicon.png new file mode 100644 index 000000000..ab0a6664b Binary files /dev/null and b/docs/assets/images/favicon.png differ diff --git a/docs/assets/images/icon.png b/docs/assets/images/icon.png new file mode 100644 index 000000000..24128482d Binary files /dev/null and b/docs/assets/images/icon.png differ diff --git a/docs/assets/stylesheets/extra.css b/docs/assets/stylesheets/extra.css new file mode 100644 index 000000000..9b6ef5e04 --- /dev/null +++ b/docs/assets/stylesheets/extra.css @@ -0,0 +1,12 @@ +.md-tabs { + background-color: var(--md-code-bg-color); + color: var(--md-footer-bg-color); +} + +.md-header__button.md-logo img { + height: 1.6rem; +} + +.md-grid { + max-width: 75%; +} diff --git a/docs/overrides/partials/header.html b/docs/overrides/partials/header.html new file mode 100644 index 000000000..958821358 --- /dev/null +++ b/docs/overrides/partials/header.html @@ -0,0 +1,67 @@ +{% set class = "md-header" %} +{% if "navigation.tabs.sticky" in features %} + {% set class = class ~ " md-header--lifted" %} +{% endif %} +
+ + {% if "navigation.tabs.sticky" in features %} + {% if "navigation.tabs" in features %} + {% include "partials/tabs.html" %} + {% endif %} + {% endif %} +
diff --git a/docs/overrides/partials/i18n_languages.html b/docs/overrides/partials/i18n_languages.html new file mode 100644 index 000000000..0f0a41ad6 --- /dev/null +++ b/docs/overrides/partials/i18n_languages.html @@ -0,0 +1,21 @@ +
+
+ {% set icon = config.theme.icon.alternate or "material/translate" %} + +
+
    + {% for lang in config.extra.alternate -%} +
  • + {% set segments = page.url.split('/') %} + {% set site_url = config.site_url.rstrip('/') %} + + {{ lang.name }} + +
  • + {% endfor %} +
+
+
+
diff --git a/docs/overrides/partials/languages/el-gr.html b/docs/overrides/partials/languages/el-gr.html new file mode 100644 index 000000000..8dce1793d --- /dev/null +++ b/docs/overrides/partials/languages/el-gr.html @@ -0,0 +1,74 @@ + + + +{% macro t(key) %}{{ { + "language": "el", + "action.edit": "Επεξεργασία αυτής της σελίδας", + "action.skip": "Μετάβαση στο περιεχόμενο", + "action.view": "Προβολή πηγαίου κώδικα", + "announce.dismiss": "Μην το ξαναδείξετε αυτό", + "blog.archive": "Aρχείο", + "blog.categories": "Κατηγορίες", + "blog.categories.in": "Στο", + "blog.continue": "Περισσότερα", + "blog.draft": "Πρόχειρο", + "blog.index": "Eπιστροφή", + "blog.references": "Σχετικοί σύνδεσμοι", + "clipboard.copy": "Αντιγραφή στο πρόχειρο", + "clipboard.copied": "Αντιγράφηκε στο πρόχειρο", + "consent.accept": "Αποδοχή", + "consent.manage": "Περισσότερες επιλογές", + "consent.reject": "Απόρριψη", + "footer": "Υποσέλιδο", + "footer.next": "Επόμενο", + "footer.previous": "Προηγούμενο", + "header": "Κεφαλίδα", + "meta.comments": "Σχόλια", + "meta.source": "Πηγή", + "nav": "Πλοήγηση", + "readtime.one": "1 λεπτό διάβασμα", + "readtime.other": "# λεπτά διάβασμα", + "rss.created": "Ροές Δεδομένων RSS", + "rss.updated": "Ροές Δεδομένων RSS. Τελευταία νέα", + "search": "Αναζήτηση", + "search.placeholder": "Αναζήτηση", + "search.share": "Διαμοίραση", + "search.reset": "Καθαρισμός", + "search.result.initializer": "Αρχικοποίηση αναζήτησης", + "search.result.placeholder": "Πληκτρολογήστε για να αρχίσει η αναζήτηση", + "search.result.none": "δεν βρήκε κάποιο έγγραφο", + "search.result.one": "1 έγγραφο που ταιριάζει", + "search.result.other": "# έγγραφα που ταιριάζουν", + "search.result.more.one": "1 ακόμα σε αυτήν τη σελίδα", + "search.result.more.other": "# ακόμα σε αυτήν τη σελίδα", + "search.result.term.missing": "Λείπει", + "select.language": "Επιλογή γλώσσας", + "select.version": "Επιλογή έκδοσης", + "source": "Μετάβαση στο αποθετήριο", + "source.file.contributors": "Συνεισφέροντες", + "source.file.date.created": "Δημιουργήθηκε", + "source.file.date.updated": "τελευταία ενημέρωση", + "tabs": "Καρτέλες", + "toc": "Πίνακας περιεχομένων", + "top": "Επιστροφή στην αρχή" +}[key] }}{% endmacro %} diff --git a/docs/overrides/partials/languages/pt-pt.html b/docs/overrides/partials/languages/pt-pt.html new file mode 100644 index 000000000..8362a8af0 --- /dev/null +++ b/docs/overrides/partials/languages/pt-pt.html @@ -0,0 +1,76 @@ + + + +{% macro t(key) %}{{ { + "language": "pt", + "action.edit": "Editar esta página", + "action.skip": "Ir para o conteúdo", + "action.view": "Ver fonte desta página", + "announce.dismiss": "Não mostrar novamente", + "blog.archive": "Arquivo", + "blog.categories": "Categorias", + "blog.categories.in": "em", + "blog.continue": "Continuar leitura", + "blog.draft": "Rascunho", + "blog.index": "Voltar ao índice", + "blog.meta": "Metadados", + "blog.references": "Ligações relacionadas", + "clipboard.copy": "Copiar para área de transferência", + "clipboard.copied": "Copiado para área de transferência", + "consent.accept": "Aceitar", + "consent.manage": "Gerir configurações", + "consent.reject": "Rejeitar", + "footer": "Rodapé", + "footer.next": "Próximo", + "footer.previous": "Anterior", + "header": "Cabeçalho", + "meta.comments": "Comentários", + "meta.source": "Fonte", + "nav": "Navegação", + "readtime.one": "1 min de leitura", + "readtime.other": "# min de leitura", + "rss.created": "canal RSS", + "rss.updated": "canal RSS com conteúdo atualizado", + "search": "Pesquisar", + "search.config.lang": "pt", + "search.placeholder": "Buscar", + "search.share": "Compartilhar", + "search.reset": "Limpar", + "search.result.initializer": "Inicializando a pesquisa", + "search.result.placeholder": "Digite para iniciar a busca", + "search.result.none": "Nenhum resultado encontrado", + "search.result.one": "1 resultado encontrado", + "search.result.other": "# resultados encontrados", + "search.result.more.one": "Mais 1 nesta página", + "search.result.more.other": "Mais # nesta página", + "search.result.term.missing": "Ausente", + "select.language": "Selecione o idioma", + "select.version": "Selecione a versão", + "source": "Ir ao repositório", + "source.file.contributors": "Colaboradores", + "source.file.date.created": "Criada", + "source.file.date.updated": "Última atualização", + "tabs": "Abas", + "toc": "Índice", + "top": "Voltar ao topo" +}[key] }}{% endmacro %} diff --git a/docs/overrides/partials/nav-item.html b/docs/overrides/partials/nav-item.html new file mode 100644 index 000000000..bdd6eb3dd --- /dev/null +++ b/docs/overrides/partials/nav-item.html @@ -0,0 +1,87 @@ +{% macro render(nav_item, path, level) %} + {% set class = "md-nav__item" %} + {% if nav_item.active %} + {% set class = class ~ " md-nav__item--active" %} + {% endif %} + {% if nav_item.children %} + {% if "navigation.sections" in features and level == 1 + ( + "navigation.tabs" in features + ) %} + {% set class = class ~ " md-nav__item--section" %} + {% endif %} +
  • + {% set checked = "checked" if nav_item.active %} + {% if "navigation.expand" in features and not checked %} + + {% else %} + + {% endif %} + {% set indexes = [] %} + {% if "navigation.indexes" in features %} + {% for nav_item in nav_item.children %} + {% if nav_item.is_index and not index is defined %} + {% set _ = indexes.append(nav_item) %} + {% endif %} + {% endfor %} + {% endif %} + {% if not indexes %} + + {% else %} + {% set index = indexes | first %} + {% set class = "md-nav__link--active" if index == page %} + + {% endif %} + +
  • + {% elif nav_item == page %} +
  • + {% set toc = page.toc %} + + {% set first = toc | first %} + {% if first and first.level == 1 %} + {% set toc = first.children %} + {% endif %} + {% if toc %} + + {% endif %} + + {{ nav_item.title }} + + {% if toc %} + {% include "partials/toc.html" %} + {% endif %} +
  • + {% else %} +
  • + + {{ nav_item.title }} + +
  • + {% endif %} +{% endmacro %} +{{ render(nav_item, path, level) }} \ No newline at end of file diff --git a/2019/ar/src/0x00-header.md b/editions/2019/ar/0x00-header.md similarity index 79% rename from 2019/ar/src/0x00-header.md rename to editions/2019/ar/0x00-header.md index 7c7d8efb8..7db282b47 100644 --- a/2019/ar/src/0x00-header.md +++ b/editions/2019/ar/0x00-header.md @@ -1,9 +1,10 @@ -
    +--- +title: '' +--- -![OWASP LOGO](images/owasp-logo.png) +![OWASP LOGO](./images/owasp-logo.png) - -### OWASP API Security Top 10 2019 +# OWASP API Security Top 10 2019 أهم عشرة مخاطر أمنية تستهدف واجهة برمجة التطبيقات (API) @@ -16,5 +17,3 @@ | https://owasp.org | هذا العمل يخضع لترخيص [Creative Commons Attribution-ShareAlike 4.0 International License][1] | ![Creative Commons License Logo](images/front-cc.png) | [1]: http://creativecommons.org/licenses/by-sa/4.0/ - -
    diff --git a/2019/ar/src/0x00-notice.md b/editions/2019/ar/0x00-notice.md similarity index 92% rename from 2019/ar/src/0x00-notice.md rename to editions/2019/ar/0x00-notice.md index 5f291b368..2c895fd72 100644 --- a/2019/ar/src/0x00-notice.md +++ b/editions/2019/ar/0x00-notice.md @@ -1,5 +1,3 @@ -
    - # تنوية هذه هي النسخة النصية من مستند OWASP API Security Top 10 و يتم استخدام النسخة القابلة للتوزيع على هيئة ملف PDF @@ -10,6 +8,3 @@ * Inon Shkedy [1]: ../../CONTRIBUTING.md - -
    - diff --git a/2019/ar/src/0x00-toc.md b/editions/2019/ar/0x00-toc.md similarity index 95% rename from 2019/ar/src/0x00-toc.md rename to editions/2019/ar/0x00-toc.md index 460f5d97e..710b41d17 100644 --- a/2019/ar/src/0x00-toc.md +++ b/editions/2019/ar/0x00-toc.md @@ -1,6 +1,4 @@ -
    - -## جدول المحتويات +# جدول المحتويات * [محتوى الوثيقة](0x00-toc.md) * [عن منظمة أواسب](0x01-about-owasp.md) @@ -23,9 +21,3 @@ * [أفضل الممارسات للتطوير بشكل آمن](0xb1-next-devsecops.md) * [المنهجية والبيانات](0xd0-about-data.md) * [الإقرار](0xd1-acknowledgments.md) - - -
    - - - diff --git a/2019/ar/src/0x01-about-owasp.md b/editions/2019/ar/0x01-about-owasp.md similarity index 97% rename from 2019/ar/src/0x01-about-owasp.md rename to editions/2019/ar/0x01-about-owasp.md index 37557ef98..8a00ab800 100644 --- a/2019/ar/src/0x01-about-owasp.md +++ b/editions/2019/ar/0x01-about-owasp.md @@ -1,7 +1,4 @@ -
    - - -## عن منظمة أواسب +# عن منظمة أواسب هو مشروع/مجتمع لأمن تطبيقات الويب مفتوح المصدر يهدف إلى تمكين المؤسسات من تطوير أو شراء أو صيانة تطبيقاتها بشكل آمن و موثوق. @@ -44,6 +41,3 @@ [5]: https://lists.owasp.org/mailman/listinfo [6]: https://www.owasp.org [7]: http://creativecommons.org/licenses/by-sa/4.0/ - - -
    diff --git a/2019/ar/src/0x02-foreword.md b/editions/2019/ar/0x02-foreword.md similarity index 98% rename from 2019/ar/src/0x02-foreword.md rename to editions/2019/ar/0x02-foreword.md index a6f70c5cb..ee2e60114 100644 --- a/2019/ar/src/0x02-foreword.md +++ b/editions/2019/ar/0x02-foreword.md @@ -1,6 +1,4 @@ -
    - -## مقدمة +# مقدمة تعتبر واجهة برمجة التطبيقات (API) أحد العناصر الأساسية للابتكار في عالم التطبيقات، حيث نجدها في التطبيقات البنكية وتجارة التجزئة والنقل وصولاً إلى إنترنت الأشياء والمركبات ذاتية القيادة والمدن الذكية. كما تعد واجهات برمجة التطبيقات (API) جزءًا مهمًا من التطبيقات وخصوصًا الخاصة بالهواتف المحمولة الحديثة والبرمجيات كخدمة SaaS وتطبيقات الويب، بالإضافة لاستخدامها في تطبيقات المستخدمين والشركاء والتطبيقات الداخلية. @@ -26,7 +24,3 @@ [2]: ./0x10-api-security-risks.md [3]: ./0xd0-about-data.md [4]: ./0xd1-acknowledgments.md - - -
    - diff --git a/2019/ar/src/0x03-introduction.md b/editions/2019/ar/0x03-introduction.md similarity index 91% rename from 2019/ar/src/0x03-introduction.md rename to editions/2019/ar/0x03-introduction.md index b48c92f28..95e04d833 100644 --- a/2019/ar/src/0x03-introduction.md +++ b/editions/2019/ar/0x03-introduction.md @@ -1,10 +1,6 @@ -
    +# مدخل - -## مدخل - - -#### مرحبًا بك في أهم عشرة مخاطر أمنية تستهدف واجهة برمجة التطبيقات (API) +## مرحبًا بك في أهم عشرة مخاطر أمنية تستهدف واجهة برمجة التطبيقات (API) مرحبًا بك في الإصدار الأول من OWASP API Security Top 10. إذا كنت على دراية بسلسلة OWASP Top 10، ستلاحظ أوجه التشابه بينهم: حيث نوصي بقراءة OWASP Top 10 قبل الشروع في قراءة هذا المحتوى. @@ -18,6 +14,3 @@ [2]: ./0xd0-about-data.md [3]: https://github.com/OWASP/API-Security [4]: https://groups.google.com/a/owasp.org/forum/#!forum/api-security-project - - -
    diff --git a/2019/ar/src/0x04-release-notes.md b/editions/2019/ar/0x04-release-notes.md similarity index 95% rename from 2019/ar/src/0x04-release-notes.md rename to editions/2019/ar/0x04-release-notes.md index 41f793d05..bbb13bb6f 100644 --- a/2019/ar/src/0x04-release-notes.md +++ b/editions/2019/ar/0x04-release-notes.md @@ -1,6 +1,4 @@ -
    - -## ملاحظات عن الإصدار +# ملاحظات عن الإصدار هذا هو الإصدار الأول من OWASP API Security Top 10، والذي نخطط لتحديثه بشكل دوري كل ثلاث أو أربع سنوات. @@ -16,7 +14,3 @@ [1]: ./0xd0-about-data.md [2]: ./0x10-api-security-risks.md [3]: ./0xd1-acknowledgments.md - - -
    - diff --git a/2019/ar/src/0x10-api-security-risks.md b/editions/2019/ar/0x10-api-security-risks.md similarity index 96% rename from 2019/ar/src/0x10-api-security-risks.md rename to editions/2019/ar/0x10-api-security-risks.md index 020d17285..b7a97d700 100644 --- a/2019/ar/src/0x10-api-security-risks.md +++ b/editions/2019/ar/0x10-api-security-risks.md @@ -1,6 +1,4 @@ -
    - -## مخاطر برمجة واجهة التطبيقات +# مخاطر برمجة واجهة التطبيقات * تم استخدام [ نموذج تقييم المخاطر الخاص بـ OWASP](0x03-introduction.md) وذلك بهدف تحليل المخاطر. @@ -40,8 +38,3 @@ [6]: https://www.asd.gov.au/infosec/mitigationstrategies.htm [7]: https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator [8]: https://www.microsoft.com/en-us/download/details.aspx?id=49168 - - - -
    - diff --git a/2019/ar/src/0x11-t10.md b/editions/2019/ar/0x11-t10.md similarity index 98% rename from 2019/ar/src/0x11-t10.md rename to editions/2019/ar/0x11-t10.md index a42e96e02..12a953e89 100644 --- a/2019/ar/src/0x11-t10.md +++ b/editions/2019/ar/0x11-t10.md @@ -1,7 +1,4 @@ -
    - -## أهم عشرة مخاطر امنية تستهدف واجهة برمجة التطبيقات (API) - +# أهم عشرة مخاطر امنية تستهدف واجهة برمجة التطبيقات (API) | المخاطر | الوصف | |--------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -15,6 +12,3 @@ | API8:2019 الحقن | تحدث عمليات استغلال الحقن SQL، NoSQL و Command Injection.. الخ عند ارسال معلومات او بيانات او طلبات او اوامر الى المفسر حيث يتم خداع المفسر لطلب وتنفيذ تعليمات او الحصول على بيانات غير مصرح باستخدامها. | | API9:2019 خلل في ادارة الاصول | تميل واجهات برمجة التطبيقات API الى الكشف عن مصادر البيانات (Endpoints) مما يجعل عمليات التوثيق في المستندات لجميع التغيرات في غاية الاهمية ويجب الحذر عند اجراءها، حيث ان اعدادت وتنصيب الخوادم بشكل صحيح عند تثبيت API مهم جداً في تقليل الاخطاء التي قد تؤدي الى الكشف عن البيانات على سبيل المثال الاصدار الخاص بـAPI او واجهة معالج الاخطاء الخاصة به. | | API10:2019 خلل في طريقة تسجيل الاحداث والمراقبة | ان التسجيل الغير صحيح للاحداث و المراقبة لها يؤدي الى ضعف عملية الاستجابة للحوادث، مما يسمح للمهاجم بالعودة مره اخرى او حتى البقاء داخل الشبكة او التنقل داخل الشبكة او الاطلاع و التلاعب و تسريب البيانات حيث تٌظهر معظم الدراسات ان الوقت اللازم لاكتشاف الاختراقات يزيد عن 200 يوم وعادة ما يتم اكتشاف تلك الاختراقات من اطراف خارجية بدلاً من المراقبة بسبب ضعفها. | - -
    - diff --git a/2019/ar/src/0xa1-broken-object-level-authorization.md b/editions/2019/ar/0xa1-broken-object-level-authorization.md similarity index 99% rename from 2019/ar/src/0xa1-broken-object-level-authorization.md rename to editions/2019/ar/0xa1-broken-object-level-authorization.md index b1661ed01..2816db0ba 100644 --- a/2019/ar/src/0xa1-broken-object-level-authorization.md +++ b/editions/2019/ar/0xa1-broken-object-level-authorization.md @@ -1,5 +1,3 @@ -
    - # API1:2019 خلل التفويض والصلاحيات | عوامل التهديد/ الاستغلال | نقاط الضعف | التأثير | @@ -45,9 +43,3 @@ [1]: https://cwe.mitre.org/data/definitions/284.html [2]: https://cwe.mitre.org/data/definitions/285.html [3]: https://cwe.mitre.org/data/definitions/639.html - -
    - - - - diff --git a/2019/ar/src/0xa2-broken-user-authentication.md b/editions/2019/ar/0xa2-broken-user-authentication.md similarity index 99% rename from 2019/ar/src/0xa2-broken-user-authentication.md rename to editions/2019/ar/0xa2-broken-user-authentication.md index ca8e34e22..4b5c24d37 100644 --- a/2019/ar/src/0xa2-broken-user-authentication.md +++ b/editions/2019/ar/0xa2-broken-user-authentication.md @@ -1,5 +1,3 @@ -
    - # API2:2019 خلل في صلاحيات المستخدم | عوامل التهديد/ الاستغلال | نقاط الضعف | التأثير | @@ -67,8 +65,3 @@ [5]: https://cloud.google.com/endpoints/docs/openapi/when-why-api-key [6]: https://www.owasp.org/index.php/Key_Management_Cheat_Sheet [7]: https://cwe.mitre.org/data/definitions/798.html - - -
    - - diff --git a/2019/ar/src/0xa3-excessive-data-exposure.md b/editions/2019/ar/0xa3-excessive-data-exposure.md similarity index 99% rename from 2019/ar/src/0xa3-excessive-data-exposure.md rename to editions/2019/ar/0xa3-excessive-data-exposure.md index aaf92ea39..d59161602 100644 --- a/2019/ar/src/0xa3-excessive-data-exposure.md +++ b/editions/2019/ar/0xa3-excessive-data-exposure.md @@ -1,5 +1,3 @@ -
    - # API3:2019 خلل في استعراض البيانات | عوامل التهديد/ الاستغلال | نقاط الضعف | التأثير | @@ -41,6 +39,3 @@ [1]: https://cwe.mitre.org/data/definitions/213.html - -
    - diff --git a/2019/ar/src/0xa4-lack-of-resources-and-rate-limiting.md b/editions/2019/ar/0xa4-lack-of-resources-and-rate-limiting.md similarity index 89% rename from 2019/ar/src/0xa4-lack-of-resources-and-rate-limiting.md rename to editions/2019/ar/0xa4-lack-of-resources-and-rate-limiting.md index bdfa0cf90..bc71dbd17 100644 --- a/2019/ar/src/0xa4-lack-of-resources-and-rate-limiting.md +++ b/editions/2019/ar/0xa4-lack-of-resources-and-rate-limiting.md @@ -1,6 +1,4 @@ -
    - -## API4:2019 ضعف في البنية التحتية و حد محاولات الطلبات +# API4:2019 ضعف في البنية التحتية و حد محاولات الطلبات | عوامل التهديد/ الاستغلال | نقاط الضعف | التأثير | @@ -13,7 +11,7 @@ ### هل أنا معرض لهذه الثغرة؟ -

    تستهلك واجهة برمجة التطبيقات API المصادر والأصول من شبكات ووحدات المعالجة وكذلك وسائط التخزين حيث يعتمد بشكل كبير مقدرة تعامل البنية التحتية حسب طلبات ومدخلات المستخدم لمصادر البيانات. وضع في الاعتبار ان طلبات واجهة برمجة التطبيقات API التي تفوق قدرات البنية التحتية تعرضها للخطر بشكل كبير اذا لم يتم تداركها و وضع معدل لمستوى ومحتوى تلك الطلبات ومنها: +تستهلك واجهة برمجة التطبيقات API المصادر والأصول من شبكات ووحدات المعالجة وكذلك وسائط التخزين حيث يعتمد بشكل كبير مقدرة تعامل البنية التحتية حسب طلبات ومدخلات المستخدم لمصادر البيانات. وضع في الاعتبار ان طلبات واجهة برمجة التطبيقات API التي تفوق قدرات البنية التحتية تعرضها للخطر بشكل كبير اذا لم يتم تداركها و وضع معدل لمستوى ومحتوى تلك الطلبات ومنها: * مدة حياة الطلب * اعلى حد من استخدام الذاكرة العشوائية لكل طلب diff --git a/2019/ar/src/0xa5-broken-function-level-authorization.md b/editions/2019/ar/0xa5-broken-function-level-authorization.md similarity index 93% rename from 2019/ar/src/0xa5-broken-function-level-authorization.md rename to editions/2019/ar/0xa5-broken-function-level-authorization.md index 5c98550a9..8c12d4aae 100644 --- a/2019/ar/src/0xa5-broken-function-level-authorization.md +++ b/editions/2019/ar/0xa5-broken-function-level-authorization.md @@ -1,6 +1,4 @@ -

    - -## API5:2019 ضعف في التحقق من الهوية وادارة الصلاحيات و التفويض +# API5:2019 ضعف في التحقق من الهوية وادارة الصلاحيات و التفويض | عوامل التهديد/ الاستغلال | نقاط الضعف | التأثير | |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------| @@ -9,9 +7,9 @@ -

    هل أنا معرض لهذه الثغرة؟

    +## هل أنا معرض لهذه الثغرة؟ -

    أفضل طريقة للعثور على مشكلات وخلل تفويض مستوى الصلاحيات والمصادقة هي إجراء تحليل عميق لآلية التفويض ، مع مراعاة التسلسل الهرمي للمستخدم ، والأدوار أو المجموعات المختلفة في التطبيق ، وطرح الأسئلة التالية: +أفضل طريقة للعثور على مشكلات وخلل تفويض مستوى الصلاحيات والمصادقة هي إجراء تحليل عميق لآلية التفويض ، مع مراعاة التسلسل الهرمي للمستخدم ، والأدوار أو المجموعات المختلفة في التطبيق ، وطرح الأسئلة التالية: * هل يستطيع المستخدم العادي الوصول الى مصادر صلاحيات المدراء ؟ * هل يستطيع المستخدم تعديل او تعيين او مسح مصادر البيانات عند تغير طريقة الطلب للبروتوكول على سبيل المثال من GET الى DELETE ؟ diff --git a/2019/ar/src/0xa6-mass-assignment.md b/editions/2019/ar/0xa6-mass-assignment.md similarity index 98% rename from 2019/ar/src/0xa6-mass-assignment.md rename to editions/2019/ar/0xa6-mass-assignment.md index ee2f4b4d1..9150e21f5 100644 --- a/2019/ar/src/0xa6-mass-assignment.md +++ b/editions/2019/ar/0xa6-mass-assignment.md @@ -1,6 +1,4 @@ -

    - -## API6:2019 التعيين الجماعي +# API6:2019 التعيين الجماعي | عوامل التهديد/ الاستغلال | نقاط الضعف | التأثير | |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------| @@ -65,6 +63,3 @@ * [CWE-915: Improperly Controlled Modification of Dynamically-Determined Object Attributes][1] [1]: https://cwe.mitre.org/data/definitions/915.html - -
    - diff --git a/2019/ar/src/0xa7-security-misconfiguration.md b/editions/2019/ar/0xa7-security-misconfiguration.md similarity index 98% rename from 2019/ar/src/0xa7-security-misconfiguration.md rename to editions/2019/ar/0xa7-security-misconfiguration.md index 24d4a150c..215baf16c 100644 --- a/2019/ar/src/0xa7-security-misconfiguration.md +++ b/editions/2019/ar/0xa7-security-misconfiguration.md @@ -1,5 +1,3 @@ -
    - # API7:2019 الاعداد الخاطئ | عوامل التهديد/ الاستغلال | نقاط الضعف | التأثير | @@ -59,14 +57,14 @@ $ curl -X GET 'https://api.server/endpoint/' -H 'authorization: Basic Zm9vOmJhcg * يجب على واجهات برمجة التطبيقات API التي تتوقع أن يتم الوصول إليها من عملاء يستندون إلى المتصفح على سبيل المثال (الواجهة الامامية لخدمات الويب) يجب تنفيذ سياسة سليمة وموثوقة لمشاركة الموارد عبر (CORS). -

    المراجع :

    +المراجع : * [OWASP Secure Headers Project][1] * [OWASP Testing Guide: Configuration Management][2] * [OWASP Testing Guide: Testing for Error Codes][3] * [OWASP Testing Guide: Test Cross Origin Resource Sharing][9] -

    المصادر الخارجية :

    +####المصادر الخارجية : * [CWE-2: Environmental Security Flaws][4] * [CWE-16: Configuration][5] @@ -83,6 +81,3 @@ $ curl -X GET 'https://api.server/endpoint/' -H 'authorization: Basic Zm9vOmJhcg [7]: https://csrc.nist.gov/publications/detail/sp/800-123/final [8]: https://letsencrypt.org/ [9]: https://www.owasp.org/index.php/Test_Cross_Origin_Resource_Sharing_(OTG-CLIENT-007) - -
    - diff --git a/2019/ar/src/0xa8-injection.md b/editions/2019/ar/0xa8-injection.md similarity index 99% rename from 2019/ar/src/0xa8-injection.md rename to editions/2019/ar/0xa8-injection.md index 3bc97fe90..10ee907b3 100644 --- a/2019/ar/src/0xa8-injection.md +++ b/editions/2019/ar/0xa8-injection.md @@ -1,5 +1,3 @@ -
    - # API8:2019 الحقن @@ -91,5 +89,3 @@ DELETE /api/bookings?bookingId[$ne]=678 [4]: https://www.owasp.org/index.php/Command_Injection [5]: https://cwe.mitre.org/data/definitions/77.html [6]: https://cwe.mitre.org/data/definitions/89.html - -
    diff --git a/2019/ar/src/0xa9-improper-assets-management.md b/editions/2019/ar/0xa9-improper-assets-management.md similarity index 98% rename from 2019/ar/src/0xa9-improper-assets-management.md rename to editions/2019/ar/0xa9-improper-assets-management.md index a030f1c8e..44bc20042 100644 --- a/2019/ar/src/0xa9-improper-assets-management.md +++ b/editions/2019/ar/0xa9-improper-assets-management.md @@ -1,5 +1,3 @@ -
    - # API9:2019 إدارة الأصول بشكل خاطئ | عوامل التهديد/ الاستغلال | نقاط الضعف | التأثير | @@ -48,9 +46,9 @@ * تجنب استخدام بيانات حقيقية من بيئة التشغيل على البيئة التجريبية لواجهة برمجة التطبيقات، وفي حال توجب عليك استخدامها فيجب أن يتم تطبيق جميع المعايير الأمنية نفسها التي يتم تطبيقها على بيئة التشغيل. * في حال كانت الإصدارات الحديثة من واجهة برمجة التطبيقات تحتوي على معايير أمان افضل، قم بإجراء تحليل للمخاطر لاتخاذ القرارات والإجراءات التي تخفف من مخاطر الإصدار القديم. على سبيل المثال إذا كان من الممكن إضافة تلك المعايير الأمنية الجديدة للإصدار السابق من دون التأثير على التوافقية مع الأنظمة الأخرى أو أنه لابد من التخلص من الإصدار القديم و إلزام جميع المستخدمين بالانتقال إلى الإصدار الحديث. -

    المراجع

    +### المراجع -

    المصادر الخارجية:

    +#### المصادر الخارجية: * [CWE-1059: Incomplete Documentation][1] * [OpenAPI Initiative][2] diff --git a/2019/ar/src/0xaa-insufficient-logging-monitoring.md b/editions/2019/ar/0xaa-insufficient-logging-monitoring.md similarity index 99% rename from 2019/ar/src/0xaa-insufficient-logging-monitoring.md rename to editions/2019/ar/0xaa-insufficient-logging-monitoring.md index d170bd5e8..a61a20d18 100644 --- a/2019/ar/src/0xaa-insufficient-logging-monitoring.md +++ b/editions/2019/ar/0xaa-insufficient-logging-monitoring.md @@ -1,5 +1,3 @@ -
    - # API10:2019 خلل في طريقة تسجيل الاحداث والمراقبة | عوامل التهديد/ الاستغلال | نقاط الضعف | التأثير | diff --git a/2019/ar/src/0xb0-next-devs.md b/editions/2019/ar/0xb0-next-devs.md similarity index 99% rename from 2019/ar/src/0xb0-next-devs.md rename to editions/2019/ar/0xb0-next-devs.md index ecf7eb1f0..4db96de96 100644 --- a/2019/ar/src/0xb0-next-devs.md +++ b/editions/2019/ar/0xb0-next-devs.md @@ -1,5 +1,3 @@ -
    - # ما التالي للمطورين؟ قد تكون مهمة إنشاء برامج آمنة وصيانتها ، أو إصلاح البرامج الموجودة ، صعبة. وكذلك هو الحال مع واجهات برمجة التطبيقات لا تختلف. @@ -33,7 +31,3 @@ [12]: https://www.owasp.org/index.php/OWASP_Proactive_Controls#tab=OWASP_Proactive_Controls_2018 [13]: https://www.owasp.org/index.php/OWASP_SAMM_Project [14]: https://www.owasp.org/index.php/Category:OWASP_Code_Review_Project - - -
    - diff --git a/2019/ar/src/0xb1-next-devsecops.md b/editions/2019/ar/0xb1-next-devsecops.md similarity index 99% rename from 2019/ar/src/0xb1-next-devsecops.md rename to editions/2019/ar/0xb1-next-devsecops.md index 532f5b093..6a3714e5e 100644 --- a/2019/ar/src/0xb1-next-devsecops.md +++ b/editions/2019/ar/0xb1-next-devsecops.md @@ -1,5 +1,3 @@ -
    - # ما التالي لمطوري الممارسات الامنية في التطبيقات؟ نظرًا لأهميتها في بناء التطبيقات الحديثة ، فإن بناء واجهات برمجة آمنة أمر في غاية الأهمية ، ويجب أن يكون الأمن جزءًا من دورة حياة التطوير بأكملها. لم تعد اختبارات الاختراق السنوية كافية. @@ -24,5 +22,3 @@ [6]: http://devsecops.github.io/ [7]: https://github.com/devsecops/awesome-devsecops [8]: http://devsecops.org - -
    diff --git a/2019/ar/src/0xd0-about-data.md b/editions/2019/ar/0xd0-about-data.md similarity index 98% rename from 2019/ar/src/0xd0-about-data.md rename to editions/2019/ar/0xd0-about-data.md index d9b38a39c..d63ec74e6 100644 --- a/2019/ar/src/0xd0-about-data.md +++ b/editions/2019/ar/0xd0-about-data.md @@ -1,5 +1,3 @@ -
    - # المنهجية والبيانات @@ -25,7 +23,3 @@ [1]: https://www.owasp.org/index.php/OWASP_Risk_Rating_Methodology [2]: ./0x10-api-security-risks.md [3]: ./0xd1-acknowledgments.md - - -
    - diff --git a/2019/ar/src/0xd1-acknowledgments.md b/editions/2019/ar/0xd1-acknowledgments.md similarity index 95% rename from 2019/ar/src/0xd1-acknowledgments.md rename to editions/2019/ar/0xd1-acknowledgments.md index d3d597ca7..aa24f9552 100644 --- a/2019/ar/src/0xd1-acknowledgments.md +++ b/editions/2019/ar/0xd1-acknowledgments.md @@ -1,5 +1,3 @@ -
    - # الإقرار ## المساهمين في صناعة هذا المحتوى @@ -47,7 +45,3 @@ * مصطفى الاقصم * فهد الدريبي * 0xMohammed - - -
    - diff --git a/2019/ar/dist/owasp-api-security-top-10-ar.odt b/editions/2019/ar/dist/owasp-api-security-top-10-ar.odt similarity index 100% rename from 2019/ar/dist/owasp-api-security-top-10-ar.odt rename to editions/2019/ar/dist/owasp-api-security-top-10-ar.odt diff --git a/2019/ar/dist/owasp-api-security-top-10-ar.pdf b/editions/2019/ar/dist/owasp-api-security-top-10-ar.pdf similarity index 100% rename from 2019/ar/dist/owasp-api-security-top-10-ar.pdf rename to editions/2019/ar/dist/owasp-api-security-top-10-ar.pdf diff --git a/2019/ar/src/images/cover.jpg b/editions/2019/ar/images/cover.jpg similarity index 100% rename from 2019/ar/src/images/cover.jpg rename to editions/2019/ar/images/cover.jpg diff --git a/2019/ar/src/images/front-cc.png b/editions/2019/ar/images/front-cc.png similarity index 100% rename from 2019/ar/src/images/front-cc.png rename to editions/2019/ar/images/front-cc.png diff --git a/2019/ar/src/images/front-wasp.png b/editions/2019/ar/images/front-wasp.png similarity index 100% rename from 2019/ar/src/images/front-wasp.png rename to editions/2019/ar/images/front-wasp.png diff --git a/2019/ar/src/images/license.png b/editions/2019/ar/images/license.png similarity index 100% rename from 2019/ar/src/images/license.png rename to editions/2019/ar/images/license.png diff --git a/2019/ar/src/images/owasp-logo.png b/editions/2019/ar/images/owasp-logo.png similarity index 100% rename from 2019/ar/src/images/owasp-logo.png rename to editions/2019/ar/images/owasp-logo.png diff --git a/2019/el-gr/src/0x00-header.md b/editions/2019/el-gr/0x00-header.md similarity index 87% rename from 2019/el-gr/src/0x00-header.md rename to editions/2019/el-gr/0x00-header.md index f0bcfde10..20bc870fc 100644 --- a/2019/el-gr/src/0x00-header.md +++ b/editions/2019/el-gr/0x00-header.md @@ -1,6 +1,10 @@ +--- +title: '' +--- + ![OWASP LOGO](images/owasp-logo.png) -## OWASP API Security Top 10 2019 στα Ελληνικά +# OWASP API Security Top 10 2019 στα Ελληνικά Τα 10 Κορυφαία Ρίσκα Ασφαλείας API - Ελληνική μετάφραση του "The Ten Most Critical API Security Risks" diff --git a/2019/el-gr/src/0x00-notice.md b/editions/2019/el-gr/0x00-notice.md similarity index 96% rename from 2019/el-gr/src/0x00-notice.md rename to editions/2019/el-gr/0x00-notice.md index 2c369cfdc..e26acfb3d 100644 --- a/2019/el-gr/src/0x00-notice.md +++ b/editions/2019/el-gr/0x00-notice.md @@ -1,5 +1,4 @@ -Σημείωση -====== +# Σημείωση Το παρών είναι η έκδοση κειμένου του OWASP API Security Top 10 που χρησιμοποιείται σαν πηγή για την επίσημη έκδοση και διατίθεται σαν Portable Document Format (PDF). diff --git a/2019/el-gr/src/0x00-toc.md b/editions/2019/el-gr/0x00-toc.md similarity index 96% rename from 2019/el-gr/src/0x00-toc.md rename to editions/2019/el-gr/0x00-toc.md index ffc4035e5..0bf3b5084 100644 --- a/2019/el-gr/src/0x00-toc.md +++ b/editions/2019/el-gr/0x00-toc.md @@ -1,5 +1,4 @@ -Πίνακας Περιεχομένων -================= +# Πίνακας Περιεχομένων * [Πίνακας Περιεχομένων](0x00-toc.md) * [Σχετικά με το OWASP](0x01-about-owasp.md) diff --git a/2019/el-gr/src/0x01-about-owasp.md b/editions/2019/el-gr/0x01-about-owasp.md similarity index 99% rename from 2019/el-gr/src/0x01-about-owasp.md rename to editions/2019/el-gr/0x01-about-owasp.md index 0063de67b..e90923af8 100644 --- a/2019/el-gr/src/0x01-about-owasp.md +++ b/editions/2019/el-gr/0x01-about-owasp.md @@ -1,5 +1,4 @@ -Σχετικά με το OWASP -=========== +# Σχετικά με το OWASP Το OWASP (Open Web Application Security Project) είναι μια ανοιχτή κοινότητα που αποσκοπεί στο να βοηθήσει οργανισμούς να παράγουν, να προμηθεύονται και diff --git a/2019/el-gr/src/0x02-foreword.md b/editions/2019/el-gr/0x02-foreword.md similarity index 99% rename from 2019/el-gr/src/0x02-foreword.md rename to editions/2019/el-gr/0x02-foreword.md index 15390db1a..9f5945d2f 100644 --- a/2019/el-gr/src/0x02-foreword.md +++ b/editions/2019/el-gr/0x02-foreword.md @@ -1,5 +1,4 @@ -Πρόλογος -======== +# Πρόλογος Ένα θεμελιώδες στοιχείο καινοτομίας στον σημερινό κόσμο που βασίζεται στις εφαρμογές είναι η διεπαφή προγραμματισμού εφαρμογών (API). Από τις τράπεζες, το λιανικό εμπόριο diff --git a/2019/el-gr/src/0x03-introduction.md b/editions/2019/el-gr/0x03-introduction.md similarity index 98% rename from 2019/el-gr/src/0x03-introduction.md rename to editions/2019/el-gr/0x03-introduction.md index 789eda3e7..69a30e371 100644 --- a/2019/el-gr/src/0x03-introduction.md +++ b/editions/2019/el-gr/0x03-introduction.md @@ -1,5 +1,4 @@ -Εισαγωγή -============ +# Εισαγωγή ## Καλώς ήρθατε στο OWASP API Security Top 10 - 2019! diff --git a/2019/el-gr/src/0x04-release-notes.md b/editions/2019/el-gr/0x04-release-notes.md similarity index 98% rename from 2019/el-gr/src/0x04-release-notes.md rename to editions/2019/el-gr/0x04-release-notes.md index d3a951f3f..ccebe5aae 100644 --- a/2019/el-gr/src/0x04-release-notes.md +++ b/editions/2019/el-gr/0x04-release-notes.md @@ -1,5 +1,4 @@ -Σημειώσεις Έκδοσης -============= +# Σημειώσεις Έκδοσης Αυτή είναι η πρώτη έκδοση του OWASP API Security Top 10. Σκοπός μας είναι η έκδοση να ενημερώνεται περιοδικά κάθε τρία ή τέσσερα χρόνια. diff --git a/2019/el-gr/src/0x10-api-security-risks.md b/editions/2019/el-gr/0x10-api-security-risks.md similarity index 98% rename from 2019/el-gr/src/0x10-api-security-risks.md rename to editions/2019/el-gr/0x10-api-security-risks.md index 56a3ed9b8..2c6cbb452 100644 --- a/2019/el-gr/src/0x10-api-security-risks.md +++ b/editions/2019/el-gr/0x10-api-security-risks.md @@ -1,5 +1,4 @@ -Ρίσκα Ασφαλείας API -================== +# Ρίσκα Ασφαλείας API Για την ανάλυση κινδύνου χρησιμοποιήθηκε η [Μεθοδολογία Αξιολόγησης Ρίσκου OWASP][1]. diff --git a/2019/el-gr/src/0x11-t10.md b/editions/2019/el-gr/0x11-t10.md similarity index 98% rename from 2019/el-gr/src/0x11-t10.md rename to editions/2019/el-gr/0x11-t10.md index 8a765b152..ffc1fe5dd 100644 --- a/2019/el-gr/src/0x11-t10.md +++ b/editions/2019/el-gr/0x11-t10.md @@ -1,5 +1,4 @@ -OWASP Τα 10 Κορυφαία Ρίσκα Ασφαλείας API – 2019 -====================================== +# OWASP Τα 10 Κορυφαία Ρίσκα Ασφαλείας API – 2019 | Ρίσκο | Περιγραφή | | ---- | ----------- | diff --git a/2019/el-gr/src/0xa1-broken-object-level-authorization.md b/editions/2019/el-gr/0xa1-broken-object-level-authorization.md similarity index 99% rename from 2019/el-gr/src/0xa1-broken-object-level-authorization.md rename to editions/2019/el-gr/0xa1-broken-object-level-authorization.md index 09953a868..ad7788b5f 100644 --- a/2019/el-gr/src/0xa1-broken-object-level-authorization.md +++ b/editions/2019/el-gr/0xa1-broken-object-level-authorization.md @@ -1,5 +1,4 @@ -API1:2019 Broken Object Level Authorization -=========================================== +# API1:2019 Broken Object Level Authorization | Παράγοντες Απειλής (Threat agents) / Φορείς Επίθεσης (Attack vectors) | Αδυναμία Ασφαλείας (Security Weakness) | Επιπτώσεις (Impacts) | | - | - | - | diff --git a/2019/el-gr/src/0xa2-broken-user-authentication.md b/editions/2019/el-gr/0xa2-broken-user-authentication.md similarity index 99% rename from 2019/el-gr/src/0xa2-broken-user-authentication.md rename to editions/2019/el-gr/0xa2-broken-user-authentication.md index 142a1dd04..71c655d4c 100644 --- a/2019/el-gr/src/0xa2-broken-user-authentication.md +++ b/editions/2019/el-gr/0xa2-broken-user-authentication.md @@ -1,5 +1,4 @@ -API2:2019 Broken User Authentication -==================================== +# API2:2019 Broken User Authentication | Παράγοντες Απειλής (Threat agents) / Φορείς Επίθεσης (Attack vectors) | Αδυναμία Ασφαλείας (Security Weakness) | Επιπτώσεις (Impacts) | | - | - | - | diff --git a/2019/el-gr/src/0xa3-excessive-data-exposure.md b/editions/2019/el-gr/0xa3-excessive-data-exposure.md similarity index 99% rename from 2019/el-gr/src/0xa3-excessive-data-exposure.md rename to editions/2019/el-gr/0xa3-excessive-data-exposure.md index f4e3b87a9..e269ea4cb 100644 --- a/2019/el-gr/src/0xa3-excessive-data-exposure.md +++ b/editions/2019/el-gr/0xa3-excessive-data-exposure.md @@ -1,5 +1,4 @@ -API3:2019 Excessive Data Exposure -================================= +# API3:2019 Excessive Data Exposure | Παράγοντες Απειλής (Threat agents) / Φορείς Επίθεσης (Attack vectors) | Αδυναμία Ασφαλείας (Security Weakness) | Επιπτώσεις (Impacts) | | - | - | - | diff --git a/2019/el-gr/src/0xa4-lack-of-resources-and-rate-limiting.md b/editions/2019/el-gr/0xa4-lack-of-resources-and-rate-limiting.md similarity index 98% rename from 2019/el-gr/src/0xa4-lack-of-resources-and-rate-limiting.md rename to editions/2019/el-gr/0xa4-lack-of-resources-and-rate-limiting.md index cbd9008e0..046fb9658 100644 --- a/2019/el-gr/src/0xa4-lack-of-resources-and-rate-limiting.md +++ b/editions/2019/el-gr/0xa4-lack-of-resources-and-rate-limiting.md @@ -1,5 +1,4 @@ -API4:2019 Lack of Resources & Rate Limiting -=========================================== +# API4:2019 Lack of Resources & Rate Limiting | Παράγοντες Απειλής (Threat agents) / Φορείς Επίθεσης (Attack vectors) | Αδυναμία Ασφαλείας (Security Weakness) | Επιπτώσεις (Impacts) | | - | - | - | diff --git a/2019/el-gr/src/0xa5-broken-function-level-authorization.md b/editions/2019/el-gr/0xa5-broken-function-level-authorization.md similarity index 99% rename from 2019/el-gr/src/0xa5-broken-function-level-authorization.md rename to editions/2019/el-gr/0xa5-broken-function-level-authorization.md index 7c2f8cb9d..e185797ad 100644 --- a/2019/el-gr/src/0xa5-broken-function-level-authorization.md +++ b/editions/2019/el-gr/0xa5-broken-function-level-authorization.md @@ -1,5 +1,4 @@ -API5:2019 Broken Function Level Authorization -============================================= +# API5:2019 Broken Function Level Authorization | Παράγοντες Απειλής (Threat agents) / Φορείς Επίθεσης (Attack vectors) | Αδυναμία Ασφαλείας (Security Weakness) | Επιπτώσεις (Impacts) | | - | - | - | diff --git a/2019/el-gr/src/0xa6-mass-assignment.md b/editions/2019/el-gr/0xa6-mass-assignment.md similarity index 99% rename from 2019/el-gr/src/0xa6-mass-assignment.md rename to editions/2019/el-gr/0xa6-mass-assignment.md index d829b21b0..0b4f9c8ea 100644 --- a/2019/el-gr/src/0xa6-mass-assignment.md +++ b/editions/2019/el-gr/0xa6-mass-assignment.md @@ -1,5 +1,4 @@ -API6:2019 Mass Assignment -=========================== +# API6:2019 Mass Assignment | Παράγοντες Απειλής (Threat agents) / Φορείς Επίθεσης (Attack vectors) | Αδυναμία Ασφαλείας (Security Weakness) | Επιπτώσεις (Impacts) | | - | - | - | diff --git a/2019/el-gr/src/0xa7-security-misconfiguration.md b/editions/2019/el-gr/0xa7-security-misconfiguration.md similarity index 99% rename from 2019/el-gr/src/0xa7-security-misconfiguration.md rename to editions/2019/el-gr/0xa7-security-misconfiguration.md index 51f1edd00..ab14f13b0 100644 --- a/2019/el-gr/src/0xa7-security-misconfiguration.md +++ b/editions/2019/el-gr/0xa7-security-misconfiguration.md @@ -1,5 +1,4 @@ -API7:2019 Security Misconfiguration -=================================== +# API7:2019 Security Misconfiguration | Παράγοντες Απειλής (Threat agents) / Φορείς Επίθεσης (Attack vectors) | Αδυναμία Ασφαλείας (Security Weakness) | Επιπτώσεις (Impacts) | | - | - | - | diff --git a/2019/el-gr/src/0xa8-injection.md b/editions/2019/el-gr/0xa8-injection.md similarity index 99% rename from 2019/el-gr/src/0xa8-injection.md rename to editions/2019/el-gr/0xa8-injection.md index 7f9b37713..6365fde1e 100644 --- a/2019/el-gr/src/0xa8-injection.md +++ b/editions/2019/el-gr/0xa8-injection.md @@ -1,5 +1,4 @@ -API8:2019 Injection -=================== +# API8:2019 Injection | Παράγοντες Απειλής (Threat agents) / Φορείς Επίθεσης (Attack vectors) | Αδυναμία Ασφαλείας (Security Weakness) | Επιπτώσεις (Impacts) | | - | - | - | diff --git a/2019/el-gr/src/0xa9-improper-assets-management.md b/editions/2019/el-gr/0xa9-improper-assets-management.md similarity index 99% rename from 2019/el-gr/src/0xa9-improper-assets-management.md rename to editions/2019/el-gr/0xa9-improper-assets-management.md index 2135b1b33..87406e470 100644 --- a/2019/el-gr/src/0xa9-improper-assets-management.md +++ b/editions/2019/el-gr/0xa9-improper-assets-management.md @@ -1,5 +1,4 @@ -API9:2019 Improper Assets Management -==================================== +# API9:2019 Improper Assets Management | Παράγοντες Απειλής (Threat agents) / Φορείς Επίθεσης (Attack vectors) | Αδυναμία Ασφαλείας (Security Weakness) | Επιπτώσεις (Impacts) | | - | - | - | diff --git a/2019/el-gr/src/0xaa-insufficient-logging-monitoring.md b/editions/2019/el-gr/0xaa-insufficient-logging-monitoring.md similarity index 98% rename from 2019/el-gr/src/0xaa-insufficient-logging-monitoring.md rename to editions/2019/el-gr/0xaa-insufficient-logging-monitoring.md index 2af6cf56e..bfc56d891 100644 --- a/2019/el-gr/src/0xaa-insufficient-logging-monitoring.md +++ b/editions/2019/el-gr/0xaa-insufficient-logging-monitoring.md @@ -1,5 +1,4 @@ -API10:2019 Insufficient Logging & Monitoring -============================================ +# API10:2019 Insufficient Logging & Monitoring | Παράγοντες Απειλής (Threat agents) / Φορείς Επίθεσης (Attack vectors) | Αδυναμία Ασφαλείας (Security Weakness) | Επιπτώσεις (Impacts) | | - | - | - | diff --git a/2019/el-gr/src/0xb0-next-devs.md b/editions/2019/el-gr/0xb0-next-devs.md similarity index 98% rename from 2019/el-gr/src/0xb0-next-devs.md rename to editions/2019/el-gr/0xb0-next-devs.md index c19f6f0ad..b60423680 100644 --- a/2019/el-gr/src/0xb0-next-devs.md +++ b/editions/2019/el-gr/0xb0-next-devs.md @@ -1,5 +1,4 @@ -Επόμενα Βήματα για Προγραμματιστές -========================== +# Επόμενα Βήματα για Προγραμματιστές Η εργασία δημιουργίας και συντήρησης ασφαλούς λογισμικού καθώς και η επιδιόρθωση αυτού είναι δύσκολη υπόθεση. Το ίδιο ισχύει και για τα APIs. diff --git a/2019/el-gr/src/0xb1-next-devsecops.md b/editions/2019/el-gr/0xb1-next-devsecops.md similarity index 98% rename from 2019/el-gr/src/0xb1-next-devsecops.md rename to editions/2019/el-gr/0xb1-next-devsecops.md index 3e6fc9c7c..5b5fbab0c 100644 --- a/2019/el-gr/src/0xb1-next-devsecops.md +++ b/editions/2019/el-gr/0xb1-next-devsecops.md @@ -1,5 +1,4 @@ -Επόμενα Βήματα για DevSecOps -========================= +# Επόμενα Βήματα για DevSecOps Λόγω της σημασίας τους στις σύγχρονες αρχιτεκτονικές εφαρμογών, η δημιουργία ασφαλών API είναι ζωτικής σημασίας. Η ασφάλεια δεν μπορεί να παραμεληθεί και θα πρέπει να αποτελεί μέρος ολόκληρου του κύκλου ζωής της ανάπτυξης των APIs. diff --git a/2019/el-gr/src/0xd0-about-data.md b/editions/2019/el-gr/0xd0-about-data.md similarity index 98% rename from 2019/el-gr/src/0xd0-about-data.md rename to editions/2019/el-gr/0xd0-about-data.md index 9159a6dff..9d9e86c26 100644 --- a/2019/el-gr/src/0xd0-about-data.md +++ b/editions/2019/el-gr/0xd0-about-data.md @@ -1,5 +1,4 @@ -Μεθοδολογία και Δεδομένα -==================== +# Μεθοδολογία και Δεδομένα ## Σύνοψη diff --git a/2019/el-gr/src/0xd1-acknowledgments.md b/editions/2019/el-gr/0xd1-acknowledgments.md similarity index 94% rename from 2019/el-gr/src/0xd1-acknowledgments.md rename to editions/2019/el-gr/0xd1-acknowledgments.md index 231bd704a..1cf646356 100644 --- a/2019/el-gr/src/0xd1-acknowledgments.md +++ b/editions/2019/el-gr/0xd1-acknowledgments.md @@ -1,5 +1,4 @@ -Ευχαριστίες -=============== +# Ευχαριστίες ## Ευχαριστίες προς τους Συντελεστές diff --git a/2019/el-gr/dist/owasp-api-security-top-10.odt b/editions/2019/el-gr/dist/owasp-api-security-top-10.odt similarity index 100% rename from 2019/el-gr/dist/owasp-api-security-top-10.odt rename to editions/2019/el-gr/dist/owasp-api-security-top-10.odt diff --git a/2019/el-gr/dist/owasp-api-security-top-10.pdf b/editions/2019/el-gr/dist/owasp-api-security-top-10.pdf similarity index 100% rename from 2019/el-gr/dist/owasp-api-security-top-10.pdf rename to editions/2019/el-gr/dist/owasp-api-security-top-10.pdf diff --git a/2019/el-gr/src/images/cover.jpg b/editions/2019/el-gr/images/cover.jpg similarity index 100% rename from 2019/el-gr/src/images/cover.jpg rename to editions/2019/el-gr/images/cover.jpg diff --git a/2019/el-gr/src/images/front-cc.png b/editions/2019/el-gr/images/front-cc.png similarity index 100% rename from 2019/el-gr/src/images/front-cc.png rename to editions/2019/el-gr/images/front-cc.png diff --git a/2019/el-gr/src/images/front-wasp.png b/editions/2019/el-gr/images/front-wasp.png similarity index 100% rename from 2019/el-gr/src/images/front-wasp.png rename to editions/2019/el-gr/images/front-wasp.png diff --git a/2019/el-gr/src/images/license.png b/editions/2019/el-gr/images/license.png similarity index 100% rename from 2019/el-gr/src/images/license.png rename to editions/2019/el-gr/images/license.png diff --git a/2019/el-gr/src/images/owasp-logo.png b/editions/2019/el-gr/images/owasp-logo.png similarity index 100% rename from 2019/el-gr/src/images/owasp-logo.png rename to editions/2019/el-gr/images/owasp-logo.png diff --git a/2019/en/src/0x00-header.md b/editions/2019/en/0x00-header.md similarity index 70% rename from 2019/en/src/0x00-header.md rename to editions/2019/en/0x00-header.md index 395feecf9..87da470ae 100644 --- a/2019/en/src/0x00-header.md +++ b/editions/2019/en/0x00-header.md @@ -1,12 +1,16 @@ -![OWASP LOGO](images/owasp-logo.png) +--- +title: '' +--- -## OWASP API Security Top 10 2019 +![OWASP LOGO](./images/owasp-logo.png) + +# OWASP API Security Top 10 2019 The Ten Most Critical API Security Risks May 29th, 2019 -![WASP Logo URL TBA](images/front-wasp.png) +![WASP Logo URL TBA](./images/front-wasp.png) | | | | | - | - | - | diff --git a/2019/en/src/0x00-notice.md b/editions/2019/en/0x00-notice.md similarity index 89% rename from 2019/en/src/0x00-notice.md rename to editions/2019/en/0x00-notice.md index 96f02e468..b0aecaa39 100644 --- a/2019/en/src/0x00-notice.md +++ b/editions/2019/en/0x00-notice.md @@ -1,5 +1,4 @@ -Notice -====== +# Notice This is the text version of OWASP API Security Top 10, used as source for the official version distributed as a Portable Document Format (PDF). @@ -11,4 +10,4 @@ should be done here. For details on [How To Contribute][1], please refer to * Erez Yallon * Inon Shkedy -[1]: ../../CONTRIBUTING.md +[1]: ../../../CONTRIBUTING.md diff --git a/2019/en/src/0x00-toc.md b/editions/2019/en/0x00-toc.md similarity index 94% rename from 2019/en/src/0x00-toc.md rename to editions/2019/en/0x00-toc.md index 39892887e..a65bd18e2 100644 --- a/2019/en/src/0x00-toc.md +++ b/editions/2019/en/0x00-toc.md @@ -1,9 +1,8 @@ -Table of Contents -================= +# Table of Contents * [Table of Contents](0x00-toc.md) * [About OWASP](0x01-about-owasp.md) -* [Foreword](0x02-foreward.md) +* [Foreword](0x02-foreword.md) * [Introduction](0x03-introduction.md) * [Release Notes](0x04-release-notes.md) * [API Security Risks](0x10-api-security-risks.md) diff --git a/2019/en/src/0x01-about-owasp.md b/editions/2019/en/0x01-about-owasp.md similarity index 98% rename from 2019/en/src/0x01-about-owasp.md rename to editions/2019/en/0x01-about-owasp.md index 23df5789c..1bc4b3c51 100644 --- a/2019/en/src/0x01-about-owasp.md +++ b/editions/2019/en/0x01-about-owasp.md @@ -1,5 +1,4 @@ -About OWASP -=========== +# About OWASP The Open Web Application Security Project (OWASP) is an open community dedicated to enabling organizations to develop, purchase, and maintain applications and diff --git a/2019/en/src/0x02-foreword.md b/editions/2019/en/0x02-foreword.md similarity index 99% rename from 2019/en/src/0x02-foreword.md rename to editions/2019/en/0x02-foreword.md index da5502990..ef9fbd801 100644 --- a/2019/en/src/0x02-foreword.md +++ b/editions/2019/en/0x02-foreword.md @@ -1,5 +1,4 @@ -Foreword -======== +# Foreword A foundational element of innovation in today’s app-driven world is the Application Programming Interface (API). From banks, retail, and transportation diff --git a/2019/en/src/0x03-introduction.md b/editions/2019/en/0x03-introduction.md similarity index 98% rename from 2019/en/src/0x03-introduction.md rename to editions/2019/en/0x03-introduction.md index 719156c45..fea95cf7d 100644 --- a/2019/en/src/0x03-introduction.md +++ b/editions/2019/en/0x03-introduction.md @@ -1,5 +1,4 @@ -Introduction -============ +# Introduction ## Welcome to the OWASP API Security Top 10 - 2019! diff --git a/2019/en/src/0x04-release-notes.md b/editions/2019/en/0x04-release-notes.md similarity index 97% rename from 2019/en/src/0x04-release-notes.md rename to editions/2019/en/0x04-release-notes.md index f17a4e475..923f59047 100644 --- a/2019/en/src/0x04-release-notes.md +++ b/editions/2019/en/0x04-release-notes.md @@ -1,5 +1,4 @@ -Release Notes -============= +# Release Notes This is the first OWASP API Security Top 10 edition, which we plan to be updated periodically, every three or four years. diff --git a/2019/en/src/0x10-api-security-risks.md b/editions/2019/en/0x10-api-security-risks.md similarity index 98% rename from 2019/en/src/0x10-api-security-risks.md rename to editions/2019/en/0x10-api-security-risks.md index 84ef40644..552df87ff 100644 --- a/2019/en/src/0x10-api-security-risks.md +++ b/editions/2019/en/0x10-api-security-risks.md @@ -1,5 +1,4 @@ -API Security Risks -================== +# API Security Risks The [OWASP Risk Rating Methodology][1] was used to do the risk analysis. diff --git a/2019/en/src/0x11-t10.md b/editions/2019/en/0x11-t10.md similarity index 97% rename from 2019/en/src/0x11-t10.md rename to editions/2019/en/0x11-t10.md index 3827ded29..0c79313cb 100644 --- a/2019/en/src/0x11-t10.md +++ b/editions/2019/en/0x11-t10.md @@ -1,5 +1,4 @@ -OWASP Top 10 API Security Risks – 2019 -====================================== +# OWASP Top 10 API Security Risks – 2019 | Risk | Description | | ---- | ----------- | diff --git a/2019/en/src/0xa1-broken-object-level-authorization.md b/editions/2019/en/0xa1-broken-object-level-authorization.md similarity index 97% rename from 2019/en/src/0xa1-broken-object-level-authorization.md rename to editions/2019/en/0xa1-broken-object-level-authorization.md index 3b0bcf44c..b0dd7fa0c 100644 --- a/2019/en/src/0xa1-broken-object-level-authorization.md +++ b/editions/2019/en/0xa1-broken-object-level-authorization.md @@ -1,5 +1,4 @@ -API1:2019 Broken Object Level Authorization -=========================================== +# API1:2019 Broken Object Level Authorization | Threat agents/Attack vectors | Security Weakness | Impacts | | - | - | - | diff --git a/2019/en/src/0xa2-broken-user-authentication.md b/editions/2019/en/0xa2-broken-user-authentication.md similarity index 98% rename from 2019/en/src/0xa2-broken-user-authentication.md rename to editions/2019/en/0xa2-broken-user-authentication.md index 0e5e90cfc..6df23abf8 100644 --- a/2019/en/src/0xa2-broken-user-authentication.md +++ b/editions/2019/en/0xa2-broken-user-authentication.md @@ -1,5 +1,4 @@ -API2:2019 Broken User Authentication -==================================== +# API2:2019 Broken User Authentication | Threat agents/Attack vectors | Security Weakness | Impacts | | - | - | - | diff --git a/2019/en/src/0xa3-excessive-data-exposure.md b/editions/2019/en/0xa3-excessive-data-exposure.md similarity index 97% rename from 2019/en/src/0xa3-excessive-data-exposure.md rename to editions/2019/en/0xa3-excessive-data-exposure.md index 1084570cb..24adf5e2f 100644 --- a/2019/en/src/0xa3-excessive-data-exposure.md +++ b/editions/2019/en/0xa3-excessive-data-exposure.md @@ -1,5 +1,4 @@ -API3:2019 Excessive Data Exposure -================================= +# API3:2019 Excessive Data Exposure | Threat agents/Attack vectors | Security Weakness | Impacts | | - | - | - | diff --git a/2019/en/src/0xa4-lack-of-resources-and-rate-limiting.md b/editions/2019/en/0xa4-lack-of-resources-and-rate-limiting.md similarity index 97% rename from 2019/en/src/0xa4-lack-of-resources-and-rate-limiting.md rename to editions/2019/en/0xa4-lack-of-resources-and-rate-limiting.md index d5bd691d6..44649ced2 100644 --- a/2019/en/src/0xa4-lack-of-resources-and-rate-limiting.md +++ b/editions/2019/en/0xa4-lack-of-resources-and-rate-limiting.md @@ -1,5 +1,4 @@ -API4:2019 Lack of Resources & Rate Limiting -=========================================== +# API4:2019 Lack of Resources & Rate Limiting | Threat agents/Attack vectors | Security Weakness | Impacts | | - | - | - | diff --git a/2019/en/src/0xa5-broken-function-level-authorization.md b/editions/2019/en/0xa5-broken-function-level-authorization.md similarity index 98% rename from 2019/en/src/0xa5-broken-function-level-authorization.md rename to editions/2019/en/0xa5-broken-function-level-authorization.md index 4cc762391..9a3b967a7 100644 --- a/2019/en/src/0xa5-broken-function-level-authorization.md +++ b/editions/2019/en/0xa5-broken-function-level-authorization.md @@ -1,5 +1,4 @@ -API5:2019 Broken Function Level Authorization -============================================= +# API5:2019 Broken Function Level Authorization | Threat agents/Attack vectors | Security Weakness | Impacts | | - | - | - | diff --git a/2019/en/src/0xa6-mass-assignment.md b/editions/2019/en/0xa6-mass-assignment.md similarity index 98% rename from 2019/en/src/0xa6-mass-assignment.md rename to editions/2019/en/0xa6-mass-assignment.md index 8045d13a7..d67e73f57 100644 --- a/2019/en/src/0xa6-mass-assignment.md +++ b/editions/2019/en/0xa6-mass-assignment.md @@ -1,5 +1,4 @@ -API6:2019 - Mass Assignment -=========================== +# API6:2019 - Mass Assignment | Threat agents/Attack vectors | Security Weakness | Impacts | | - | - | - | diff --git a/2019/en/src/0xa7-security-misconfiguration.md b/editions/2019/en/0xa7-security-misconfiguration.md similarity index 98% rename from 2019/en/src/0xa7-security-misconfiguration.md rename to editions/2019/en/0xa7-security-misconfiguration.md index f82b5cc6e..b49cce53b 100644 --- a/2019/en/src/0xa7-security-misconfiguration.md +++ b/editions/2019/en/0xa7-security-misconfiguration.md @@ -1,5 +1,4 @@ -API7:2019 Security Misconfiguration -=================================== +# API7:2019 Security Misconfiguration | Threat agents/Attack vectors | Security Weakness | Impacts | | - | - | - | diff --git a/2019/en/src/0xa8-injection.md b/editions/2019/en/0xa8-injection.md similarity index 99% rename from 2019/en/src/0xa8-injection.md rename to editions/2019/en/0xa8-injection.md index f82710af2..defeeaf56 100644 --- a/2019/en/src/0xa8-injection.md +++ b/editions/2019/en/0xa8-injection.md @@ -1,5 +1,4 @@ -API8:2019 Injection -=================== +# API8:2019 Injection | Threat agents/Attack vectors | Security Weakness | Impacts | | - | - | - | diff --git a/2019/en/src/0xa9-improper-assets-management.md b/editions/2019/en/0xa9-improper-assets-management.md similarity index 98% rename from 2019/en/src/0xa9-improper-assets-management.md rename to editions/2019/en/0xa9-improper-assets-management.md index fb3818759..061b3b8fe 100644 --- a/2019/en/src/0xa9-improper-assets-management.md +++ b/editions/2019/en/0xa9-improper-assets-management.md @@ -1,5 +1,4 @@ -API9:2019 Improper Assets Management -==================================== +# API9:2019 Improper Assets Management | Threat agents/Attack vectors | Security Weakness | Impacts | | - | - | - | diff --git a/2019/en/src/0xaa-insufficient-logging-monitoring.md b/editions/2019/en/0xaa-insufficient-logging-monitoring.md similarity index 97% rename from 2019/en/src/0xaa-insufficient-logging-monitoring.md rename to editions/2019/en/0xaa-insufficient-logging-monitoring.md index c3988c6f5..fb264a810 100644 --- a/2019/en/src/0xaa-insufficient-logging-monitoring.md +++ b/editions/2019/en/0xaa-insufficient-logging-monitoring.md @@ -1,5 +1,4 @@ -API10:2019 Insufficient Logging & Monitoring -============================================ +# API10:2019 Insufficient Logging & Monitoring | Threat agents/Attack vectors | Security Weakness | Impacts | | - | - | - | diff --git a/2019/en/src/0xb0-next-devs.md b/editions/2019/en/0xb0-next-devs.md similarity index 98% rename from 2019/en/src/0xb0-next-devs.md rename to editions/2019/en/0xb0-next-devs.md index 7c7742d2f..a4a3f785a 100644 --- a/2019/en/src/0xb0-next-devs.md +++ b/editions/2019/en/0xb0-next-devs.md @@ -1,5 +1,4 @@ -What's Next For Developers -========================== +# What's Next For Developers The task to create and maintain secure software, or fixing existing sofware, can be difficult. APIs are no different. diff --git a/2019/en/src/0xb1-next-devsecops.md b/editions/2019/en/0xb1-next-devsecops.md similarity index 98% rename from 2019/en/src/0xb1-next-devsecops.md rename to editions/2019/en/0xb1-next-devsecops.md index 940f5fb29..b4b43a4c6 100644 --- a/2019/en/src/0xb1-next-devsecops.md +++ b/editions/2019/en/0xb1-next-devsecops.md @@ -1,5 +1,4 @@ -What's Next For DevSecOps -========================= +# What's Next For DevSecOps Due to their importance in modern application architectures, building secure APIs is crucial. Security cannot be neglected, and it should be part of the diff --git a/2019/en/src/0xd0-about-data.md b/editions/2019/en/0xd0-about-data.md similarity index 97% rename from 2019/en/src/0xd0-about-data.md rename to editions/2019/en/0xd0-about-data.md index c440d196a..d37d2ef38 100644 --- a/2019/en/src/0xd0-about-data.md +++ b/editions/2019/en/0xd0-about-data.md @@ -1,5 +1,4 @@ -Methodology and Data -==================== +# Methodology and Data ## Overview diff --git a/2019/en/src/0xd1-acknowledgments.md b/editions/2019/en/0xd1-acknowledgments.md similarity index 94% rename from 2019/en/src/0xd1-acknowledgments.md rename to editions/2019/en/0xd1-acknowledgments.md index c0e96564d..d2ab4dbba 100644 --- a/2019/en/src/0xd1-acknowledgments.md +++ b/editions/2019/en/0xd1-acknowledgments.md @@ -1,5 +1,4 @@ -Acknowledgments -=============== +# Acknowledgments ## Acknowledgments to Contributors diff --git a/2019/en/dist/owasp-api-security-top-10.odt b/editions/2019/en/dist/owasp-api-security-top-10.odt similarity index 100% rename from 2019/en/dist/owasp-api-security-top-10.odt rename to editions/2019/en/dist/owasp-api-security-top-10.odt diff --git a/2019/en/dist/owasp-api-security-top-10.pdf b/editions/2019/en/dist/owasp-api-security-top-10.pdf similarity index 100% rename from 2019/en/dist/owasp-api-security-top-10.pdf rename to editions/2019/en/dist/owasp-api-security-top-10.pdf diff --git a/2019/en/src/images/cover.jpg b/editions/2019/en/images/cover.jpg similarity index 100% rename from 2019/en/src/images/cover.jpg rename to editions/2019/en/images/cover.jpg diff --git a/2019/en/src/images/front-cc.png b/editions/2019/en/images/front-cc.png similarity index 100% rename from 2019/en/src/images/front-cc.png rename to editions/2019/en/images/front-cc.png diff --git a/2019/en/src/images/front-wasp.png b/editions/2019/en/images/front-wasp.png similarity index 100% rename from 2019/en/src/images/front-wasp.png rename to editions/2019/en/images/front-wasp.png diff --git a/2019/en/src/images/license.png b/editions/2019/en/images/license.png similarity index 100% rename from 2019/en/src/images/license.png rename to editions/2019/en/images/license.png diff --git a/2019/en/src/images/owasp-logo.png b/editions/2019/en/images/owasp-logo.png similarity index 100% rename from 2019/en/src/images/owasp-logo.png rename to editions/2019/en/images/owasp-logo.png diff --git a/2019/fa/src/0x00-header.md b/editions/2019/fa/0x00-header.md similarity index 83% rename from 2019/fa/src/0x00-header.md rename to editions/2019/fa/0x00-header.md index 2b9950db7..9f19a8983 100644 --- a/2019/fa/src/0x00-header.md +++ b/editions/2019/fa/0x00-header.md @@ -1,24 +1,19 @@ -
    - -![OWASP LOGO](images/owasp-logo.png) - - -## OWASP API Security Top 10 2019 - -10 ریسک بحرانی امنیت API از منظر OWASP - 2019 - -29 می 2019 - -![WASP Logo URL TBA](images/front-wasp.png) - -
    - - - -| | | | -| - | - | - | -| https://owasp.org |
    این اثر تحت مجوز زیر توسعه داده شده است:
     [Creative Commons Attribution-ShareAlike 4.0 International License][1] | ![Creative Commons License Logo](images/front-cc.png) | - -[1]: https://creativecommons.org/licenses/by-sa/4.0/ - - +--- +title: '' +--- + +![OWASP LOGO](images/owasp-logo.png) + +# OWASP API Security Top 10 2019 + +10 ریسک بحرانی امنیت API از منظر OWASP - 2019 + +29 می 2019 + +![WASP Logo URL TBA](images/front-wasp.png) + +| | | | +| - | - | - | +| https://owasp.org |
    این اثر تحت مجوز زیر توسعه داده شده است:
     [Creative Commons Attribution-ShareAlike 4.0 International License][1] | ![Creative Commons License Logo](images/front-cc.png) | + +[1]: https://creativecommons.org/licenses/by-sa/4.0/ diff --git a/2019/fa/src/0x00-notice.md b/editions/2019/fa/0x00-notice.md similarity index 86% rename from 2019/fa/src/0x00-notice.md rename to editions/2019/fa/0x00-notice.md index b0cb79024..e5d6ea1ef 100644 --- a/2019/fa/src/0x00-notice.md +++ b/editions/2019/fa/0x00-notice.md @@ -1,16 +1,11 @@ -
    - -اطلاعیه -====== - -این نسخه متنی OWASP API Security Top 10 است. به عنوان مرجع برای نسخه رسمی منتشر شده، در قالب یک سند قابل حمل (PDF) استفاده می شود. - -مشارکت در پروژه مانند نظرات، اصلاحات یا ترجمه ها باید در اینجا انجام شود. برای جزئیات بیشتر در مورد نحوه مشارکت، لطفاً به CONTRIBUTING.md مراجعه فرمایید. - -
    - -* Erez Yallon -* Inon Shkedy - - - +# اطلاعیه + +این نسخه متنی OWASP API Security Top 10 است. به عنوان مرجع برای نسخه رسمی منتشر شده، در قالب یک سند قابل حمل (PDF) استفاده می شود. + +مشارکت در پروژه مانند نظرات، اصلاحات یا ترجمه ها باید در اینجا انجام شود. برای جزئیات بیشتر در مورد نحوه مشارکت، لطفاً به CONTRIBUTING.md مراجعه فرمایید. + +* Erez Yallon +* Inon Shkedy + + + diff --git a/2019/fa/src/0x00-toc.md b/editions/2019/fa/0x00-toc.md similarity index 92% rename from 2019/fa/src/0x00-toc.md rename to editions/2019/fa/0x00-toc.md index 3d46653ba..739b4381d 100644 --- a/2019/fa/src/0x00-toc.md +++ b/editions/2019/fa/0x00-toc.md @@ -1,29 +1,23 @@ -
    - -فهرست مطالب -========================== - -* [ فهرست مطالب](0x00-toc.md) -* [درباره OWASP](0x01-about-owasp.md) -* [ پیش‌گفتار](0x02-foreword.md) -* [ مقدمه](0x03-introduction.md) -* [ یادداشت](0x04-release-notes.md) -* [ ریسک‌های امنیت API](0x10-api-security-risks.md) -* [ ده ریسک امنیت API OWASP 2019](0x11-t10.md) -* [API1:2019 مجوزدهی نادرست در سطح اشیا](0xa1-broken-object-level-authorization.md) -* [API2:2019 احرازهویت نادرست کاربر](0xa2-broken-user-autentication.md) -* [API3:2019 افشای مفرط داده](0xa3-excessive-data-exposure.md) -* [API4:2019 کمبود منابع و نبود محدودیت بر نرخ ارسال](0xa4-lack-of-resources-and-rate-limiting.md) -* [API5:2019 مجوزدهی نادرست در سطح توابع](0xa5-broken-function-level-authorizaion.md) -* [API6:2019 تخصیص جمعی](0xa6-mass-assignment.md) -* [API7:2019 پیکربندی امنیتی نادرست](0xa7-security-misconfiguration.md) -* [API8:2019 تزریق ورودی‌های مخرب](0xa8-injections.md) -* [API9:2019 مدیریت نادرست دارایی‌ها](0xa9-improper-asset-management.md) -* [API10:2019 پایش و نظارت ناکافی](0xaa-insufficient-monitoring.md) -* [ادامه برای توسعه دهندگان](0xb0-next-devs.md) -* [ ادامه برای DevSecOps](0xb1-next-devsecops.md) -* [ متدولوژی و داده](0xd0-about-data.md) -* [سپاسگزاری](0xd1-acknowledgments.md) - - -
    +# فهرست مطالب + +* [ فهرست مطالب](0x00-toc.md) +* [درباره OWASP](0x01-about-owasp.md) +* [ پیش‌گفتار](0x02-foreword.md) +* [ مقدمه](0x03-introduction.md) +* [ یادداشت](0x04-release-notes.md) +* [ ریسک‌های امنیت API](0x10-api-security-risks.md) +* [ ده ریسک امنیت API OWASP 2019](0x11-t10.md) +* [API1:2019 مجوزدهی نادرست در سطح اشیا](0xa1-broken-object-level-authorization.md) +* [API2:2019 احرازهویت نادرست کاربر](0xa2-broken-user-autentication.md) +* [API3:2019 افشای مفرط داده](0xa3-excessive-data-exposure.md) +* [API4:2019 کمبود منابع و نبود محدودیت بر نرخ ارسال](0xa4-lack-of-resources-and-rate-limiting.md) +* [API5:2019 مجوزدهی نادرست در سطح توابع](0xa5-broken-function-level-authorizaion.md) +* [API6:2019 تخصیص جمعی](0xa6-mass-assignment.md) +* [API7:2019 پیکربندی امنیتی نادرست](0xa7-security-misconfiguration.md) +* [API8:2019 تزریق ورودی‌های مخرب](0xa8-injections.md) +* [API9:2019 مدیریت نادرست دارایی‌ها](0xa9-improper-asset-management.md) +* [API10:2019 پایش و نظارت ناکافی](0xaa-insufficient-monitoring.md) +* [ادامه برای توسعه دهندگان](0xb0-next-devs.md) +* [ ادامه برای DevSecOps](0xb1-next-devsecops.md) +* [ متدولوژی و داده](0xd0-about-data.md) +* [سپاسگزاری](0xd1-acknowledgments.md) diff --git a/2019/fa/src/0x01-about-owasp.md b/editions/2019/fa/0x01-about-owasp.md similarity index 97% rename from 2019/fa/src/0x01-about-owasp.md rename to editions/2019/fa/0x01-about-owasp.md index 9944f975b..a59e8f4cc 100644 --- a/2019/fa/src/0x01-about-owasp.md +++ b/editions/2019/fa/0x01-about-owasp.md @@ -1,48 +1,43 @@ -
    - -درباره OWASP -============ - -پروژه بازمتن امنیت وب اپلیکیشن‌ها (OWASP) جامعه ای باز و آزاد است که اختصاصا در حوزه توانمندسازی سازمان‌ها در حوزه توسعه، تهیه و ایجاد اپلیکیشن‌ها و APIهای قابل اعتماد فعالیت دارد. - - در OWASP، موارد زیر را بصورت رایگان و آزاد خواهید یافت: - -* استانداردها و ابزارهای امنیت اپلیکیشن. -* کتاب‌هایی درباره تست امنیت اپلیکیشن‌ها، توسعه ایمن کد و بازبینی امنیت کد. -* ارائه‌ها و [ویدئوها][1]. -* [راهنما و برگه تقلب][2] برای بسیاری از موضوعات رایج. -* کنترل‌ها و کتابخانه‌های استاندارد در حوزه امنیت. -* [شعب محلی در سرتاسر جهان.][3] -* تحقیقات به روز و پیشرو در حوزه امنیت. -* [کنفرانس‌های تخصصی][4] در سرتاسر جهان. -* [یست‌های پست الکترونیک][5] برای ارسال اخبار. - -اطلاعات بیشتر در: https://owasp.org - -تمامی ابزارها، مستندات، ویدئوها، ارائه‌ها و شعب OWASP رایگان بوده و استفاده از یا مشارکت در آنها برای کلیه افرادی که تمایل به بهبود امنیت اپلیکیشن‌ها دارند، آزاد است. - -در OWASP امنیت اپلیکیشن بعنوان مساله‌ای مهم از منظر افراد، فرایندها و فناوری‌ها در نظر گرفته می‌شود چرا که موثرترین رویکردها در امنیت اطلاعات نیز به بهبود در این حوزه‌ها نیاز دارند. - -OWASP تعریف جدیدی از سازمان ارائه می‌دهد. رهایی از بند فشار مسائل مالی امکان فراهم آوردن اطلاعات بیطرفانه، عملی و مقرون به صرفه در حوزه امنیت اپلیکیشن‌ها را به ما داده است. - -OWASP به هیچ کمپانی فناوری وابستگی ندارد اگرچه از استفاده آگاهانه از فناوری‌های تجاری در حوزه امنیت نیز حمایت می‌کنیم. OWASP انواع مختلفی از اطلاعات را به گونه‌ای همکارانه، شفاف و باز ارائه می‌دهد. - -بنیاد OWASP موجودیتی غیرانتفاعی و عام المنفعه است که توفیق بلند مدت پروژه OWASP را تضمین می‌نماید. تقریبا تمامی کسانی که با OWASP پیوند دارند، از قبیل اعضای هیئت مدیره، روسای شعبه‌ها، راهبران پروژه‌ها و اعضای پروژه‌ها داوطلبانه این همکاری را انجام می‌دهند. همچنین ما از تحقیقات نوآورانه در حوزه امنیت با ارائه کمک‌های مالی و زیرساختی حمایت می‌کنیم. - -به ما بپیوندید! - -## حق چاپ و مجوز - -![license](images/license.png) - -حق چاپ © 2003-2019 بنیاد OWASP. این اثر تحت مجوز [Creative Commons Attribution ShareAlike 4.0 International License][7] توسعه داده شده است. برای هرگونه استفاده مجدد یا انتشار، باید شرایط مجوز این اثر را برای دیگران شفاف نمایید. - -[1]: https://www.youtube.com/user/OWASPGLOBAL -[2]: https://owasp.org/index.php/OWASP_Cheat_Sheet_Series -[3]: https://owasp.org/index.php/OWASP_Chapter -[4]: https://owasp.org/index.php/Category:OWASP_AppSec_Conference -[5]: https://lists.owasp.org/mailman/listinfo -[6]: https://www.owasp.org -[7]: http://creativecommons.org/licenses/by-sa/4.0/ - -
    +# درباره OWASP + +پروژه بازمتن امنیت وب اپلیکیشن‌ها (OWASP) جامعه ای باز و آزاد است که اختصاصا در حوزه توانمندسازی سازمان‌ها در حوزه توسعه، تهیه و ایجاد اپلیکیشن‌ها و APIهای قابل اعتماد فعالیت دارد. + + در OWASP، موارد زیر را بصورت رایگان و آزاد خواهید یافت: + +* استانداردها و ابزارهای امنیت اپلیکیشن. +* کتاب‌هایی درباره تست امنیت اپلیکیشن‌ها، توسعه ایمن کد و بازبینی امنیت کد. +* ارائه‌ها و [ویدئوها][1]. +* [راهنما و برگه تقلب][2] برای بسیاری از موضوعات رایج. +* کنترل‌ها و کتابخانه‌های استاندارد در حوزه امنیت. +* [شعب محلی در سرتاسر جهان.][3] +* تحقیقات به روز و پیشرو در حوزه امنیت. +* [کنفرانس‌های تخصصی][4] در سرتاسر جهان. +* [یست‌های پست الکترونیک][5] برای ارسال اخبار. + +اطلاعات بیشتر در: https://owasp.org + +تمامی ابزارها، مستندات، ویدئوها، ارائه‌ها و شعب OWASP رایگان بوده و استفاده از یا مشارکت در آنها برای کلیه افرادی که تمایل به بهبود امنیت اپلیکیشن‌ها دارند، آزاد است. + +در OWASP امنیت اپلیکیشن بعنوان مساله‌ای مهم از منظر افراد، فرایندها و فناوری‌ها در نظر گرفته می‌شود چرا که موثرترین رویکردها در امنیت اطلاعات نیز به بهبود در این حوزه‌ها نیاز دارند. + +OWASP تعریف جدیدی از سازمان ارائه می‌دهد. رهایی از بند فشار مسائل مالی امکان فراهم آوردن اطلاعات بیطرفانه، عملی و مقرون به صرفه در حوزه امنیت اپلیکیشن‌ها را به ما داده است. + +OWASP به هیچ کمپانی فناوری وابستگی ندارد اگرچه از استفاده آگاهانه از فناوری‌های تجاری در حوزه امنیت نیز حمایت می‌کنیم. OWASP انواع مختلفی از اطلاعات را به گونه‌ای همکارانه، شفاف و باز ارائه می‌دهد. + +بنیاد OWASP موجودیتی غیرانتفاعی و عام المنفعه است که توفیق بلند مدت پروژه OWASP را تضمین می‌نماید. تقریبا تمامی کسانی که با OWASP پیوند دارند، از قبیل اعضای هیئت مدیره، روسای شعبه‌ها، راهبران پروژه‌ها و اعضای پروژه‌ها داوطلبانه این همکاری را انجام می‌دهند. همچنین ما از تحقیقات نوآورانه در حوزه امنیت با ارائه کمک‌های مالی و زیرساختی حمایت می‌کنیم. + +به ما بپیوندید! + +## حق چاپ و مجوز + +![license](images/license.png) + +حق چاپ © 2003-2019 بنیاد OWASP. این اثر تحت مجوز [Creative Commons Attribution ShareAlike 4.0 International License][7] توسعه داده شده است. برای هرگونه استفاده مجدد یا انتشار، باید شرایط مجوز این اثر را برای دیگران شفاف نمایید. + +[1]: https://www.youtube.com/user/OWASPGLOBAL +[2]: https://owasp.org/index.php/OWASP_Cheat_Sheet_Series +[3]: https://owasp.org/index.php/OWASP_Chapter +[4]: https://owasp.org/index.php/Category:OWASP_AppSec_Conference +[5]: https://lists.owasp.org/mailman/listinfo +[6]: https://www.owasp.org +[7]: http://creativecommons.org/licenses/by-sa/4.0/ diff --git a/2019/fa/src/0x02-foreword.md b/editions/2019/fa/0x02-foreword.md similarity index 94% rename from 2019/fa/src/0x02-foreword.md rename to editions/2019/fa/0x02-foreword.md index 8e9bfd695..4259964f2 100644 --- a/2019/fa/src/0x02-foreword.md +++ b/editions/2019/fa/0x02-foreword.md @@ -1,39 +1,26 @@ -
    - -پیش‌گفتار -======== - -در دنیای مبتنی بر App امروز، یکی از ابعاد بنیادین نوآوری واسط برنامه نویسی اپلیکیشن یا همان APIها هستند. از بانک‌‌ها گرفته تا خرده فروشی‌‌ها، حوزه حمل نقل، اینترنت اشیا، وسائل نقلیه خودران و شهرهای هوشمند، APIها بخشی حیاتی از اپلیکیشن‌‌های موبایل، وب و SaaS به شمار می‌آیند. - -ذاتا APIها منطق اپلیکیشن و داده‌‌های حساسی PII (از قبیل داده‌‌هایی که به تنهایی و بدون نیاز به داده اضافی دیگر، هویت یک کاربر را عیان می کنند نظیر شماره ملی) را در معرض دید قرارداده و در نتیجه، به طور روزافزون توجه بخش بیشتری از مهاجمین را به خود جلب می‌نمایند. بدون داشتن APIهایی ایمن، توسعه سریع نوآوری‌‌های فناورانه، امکان پذیر نخواهد بود. - -اگر چه کماکان می‌توان از لیست ده آسیب‌پذیری امنیتی بحرانی وب اپلیکیشن‌‌ها نیز برای امنیت APIها بهره برد، اما با توجه به ماهیت خاص APIها نیاز به لیستی از تهدیدات امنیتی مختص آنها احساس می‌شود. مقوله امنیت API بر راهکارها و استراتژی‌‌های لازم برای فهم و رفع آسیب‌پذیری‌‌ها و تهدیدات امنیتی خاص و منحصر به APIها تمرکز دارد. - -اگر با [پروژه OWASP Top 10][1] آشنایی داشته باشید، شباهت‌‌هایی بین آن و مستند پیش رو خواهید یافت: هر دو با نیت فهم آسان توسط مخاطب و قابلیت بکارگیری و انطباق در سازمان تهیه شده‌اند. در صورتی که با مجموعه‌‌های OWASP Top 10 آشنایی ندارید، بهتر است پیش از رفتن به سراغ لیست اصلی، بخش‌‌های [ریسک‌‌های امنیتی API][2] و [متدلوژی و داده][3] از همین مستند را مطالعه نمایید. - -با پرسش‌‌ها، نظرات و ایده‌‌های خود در GitHub پروژه می توانید در توسعه OWASP API Security Top 10 مشارکت کنید: - -
    - -* https://github.com/OWASP/API-Security/issues -* https://github.com/OWASP/API-Security/blob/master/CONTRIBUTING.md - -
    - -در اینجا می توانید OWASP API Security Top 10 را بیابید: - -
    - -* https://www.owasp.org/index.php/OWASP_API_Security_Project -* https://github.com/OWASP/API-Security - -
    - -بدین وسیله از تمامی مشارکت کنندگان در این پروژه که با تلاش‌‌های خود در بوجود آمدن آن نقش داشته اند سپاسگزاریم. لیست تمامی آنها در [قسمت سپاسگزاری‌‌ها][4] قابل مشاهده است. متشکریم! - -[1]: https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project -[2]: ./0x10-api-security-risks.md -[3]: ./0xd0-about-data.md -[4]: ./0xd1-acknowledgments.md - -
    \ No newline at end of file +# پیش‌گفتار + +در دنیای مبتنی بر App امروز، یکی از ابعاد بنیادین نوآوری واسط برنامه نویسی اپلیکیشن یا همان APIها هستند. از بانک‌‌ها گرفته تا خرده فروشی‌‌ها، حوزه حمل نقل، اینترنت اشیا، وسائل نقلیه خودران و شهرهای هوشمند، APIها بخشی حیاتی از اپلیکیشن‌‌های موبایل، وب و SaaS به شمار می‌آیند. + +ذاتا APIها منطق اپلیکیشن و داده‌‌های حساسی PII (از قبیل داده‌‌هایی که به تنهایی و بدون نیاز به داده اضافی دیگر، هویت یک کاربر را عیان می کنند نظیر شماره ملی) را در معرض دید قرارداده و در نتیجه، به طور روزافزون توجه بخش بیشتری از مهاجمین را به خود جلب می‌نمایند. بدون داشتن APIهایی ایمن، توسعه سریع نوآوری‌‌های فناورانه، امکان پذیر نخواهد بود. + +اگر چه کماکان می‌توان از لیست ده آسیب‌پذیری امنیتی بحرانی وب اپلیکیشن‌‌ها نیز برای امنیت APIها بهره برد، اما با توجه به ماهیت خاص APIها نیاز به لیستی از تهدیدات امنیتی مختص آنها احساس می‌شود. مقوله امنیت API بر راهکارها و استراتژی‌‌های لازم برای فهم و رفع آسیب‌پذیری‌‌ها و تهدیدات امنیتی خاص و منحصر به APIها تمرکز دارد. + +اگر با [پروژه OWASP Top 10][1] آشنایی داشته باشید، شباهت‌‌هایی بین آن و مستند پیش رو خواهید یافت: هر دو با نیت فهم آسان توسط مخاطب و قابلیت بکارگیری و انطباق در سازمان تهیه شده‌اند. در صورتی که با مجموعه‌‌های OWASP Top 10 آشنایی ندارید، بهتر است پیش از رفتن به سراغ لیست اصلی، بخش‌‌های [ریسک‌‌های امنیتی API][2] و [متدلوژی و داده][3] از همین مستند را مطالعه نمایید. + +با پرسش‌‌ها، نظرات و ایده‌‌های خود در GitHub پروژه می توانید در توسعه OWASP API Security Top 10 مشارکت کنید: + +* https://github.com/OWASP/API-Security/issues +* https://github.com/OWASP/API-Security/blob/master/CONTRIBUTING.md + +در اینجا می توانید OWASP API Security Top 10 را بیابید: + +* https://www.owasp.org/index.php/OWASP_API_Security_Project +* https://github.com/OWASP/API-Security + +بدین وسیله از تمامی مشارکت کنندگان در این پروژه که با تلاش‌‌های خود در بوجود آمدن آن نقش داشته اند سپاسگزاریم. لیست تمامی آنها در [قسمت سپاسگزاری‌‌ها][4] قابل مشاهده است. متشکریم! + +[1]: https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project +[2]: ./0x10-api-security-risks.md +[3]: ./0xd0-about-data.md +[4]: ./0xd1-acknowledgments.md diff --git a/2019/fa/src/0x03-introduction.md b/editions/2019/fa/0x03-introduction.md similarity index 96% rename from 2019/fa/src/0x03-introduction.md rename to editions/2019/fa/0x03-introduction.md index 66724cb38..8380e523b 100644 --- a/2019/fa/src/0x03-introduction.md +++ b/editions/2019/fa/0x03-introduction.md @@ -1,21 +1,16 @@ -
    - -مقدمه -============ - -## به OWASP API Security Top 10 – 2019 خوش آمدید! - -به اولین ویراست ده ‌‌آسیب‌پذیری برتر امنیت API خوش آمدید. اگر با پروژه OWASP Top 10 آشنایی داشته باشید، شباهت‌هایی بین آن و مستند پیش رو خواهید یافت: هر دو با نیت فهم آسان توسط مخاطب و قابلیت بکارگیری و انطباق در سازمان تهیه شده‌اند. در غیر این صورت، پیش از مطالعه عمیق‌تر ریسک‌‌های بحرانی امنیت API بهتر است [صفحه ویکی پروژه امنیت API][1] را مطالعه نمایید. - -در معماری اپلیکیشن‌‌های مدرن امروزی API نقش خیلی مهمی دارد. از آنجا که آگاهی بخشی امنیتی و نوآوری در این حوزه گام‌‌های مختلفی دارد، تمرکز بر نقاط ضعف رایج APIها اهمیت زیادی خواهد داشت. - -هدف اصلی مستند و پروژه ده ‌‌آسیب‌پذیری بحرانی امنیت API آموزش افراد دخیل در توسعه و نگهداری APIها از قبیل توسعه دهندگان، طراحان، معماران، مدیران و سازمان‌‌ها است. - -در بخش [متدلوژی و داده][2]، اطلاعات بیشتری درباره نحوه ایجاد اولین نسخه از مستند حاضر خواهید یافت. در نسخه‌‌های آتی، جامعه امنیت را نیز دخیل نموده و به منظور دریافت داده‌‌های مرتبط، فراخوان عمومی خواهیم داد. در حال حاضر همگان را به مشارکت در [مخزن Github][3] یا [لیست پست الکترونیک][4] ما از طریق ارسال سوال، نظر و پیشنهاد تشویق می‌کنیم. - -[1]: https://www.owasp.org/index.php/OWASP_API_Security_Project -[2]: ./0xd0-about-data.md -[3]: https://github.com/OWASP/API-Security -[4]: https://groups.google.com/a/owasp.org/forum/#!forum/api-security-project - -
    \ No newline at end of file +# مقدمه + +## به OWASP API Security Top 10 – 2019 خوش آمدید! + +به اولین ویراست ده ‌‌آسیب‌پذیری برتر امنیت API خوش آمدید. اگر با پروژه OWASP Top 10 آشنایی داشته باشید، شباهت‌هایی بین آن و مستند پیش رو خواهید یافت: هر دو با نیت فهم آسان توسط مخاطب و قابلیت بکارگیری و انطباق در سازمان تهیه شده‌اند. در غیر این صورت، پیش از مطالعه عمیق‌تر ریسک‌‌های بحرانی امنیت API بهتر است [صفحه ویکی پروژه امنیت API][1] را مطالعه نمایید. + +در معماری اپلیکیشن‌‌های مدرن امروزی API نقش خیلی مهمی دارد. از آنجا که آگاهی بخشی امنیتی و نوآوری در این حوزه گام‌‌های مختلفی دارد، تمرکز بر نقاط ضعف رایج APIها اهمیت زیادی خواهد داشت. + +هدف اصلی مستند و پروژه ده ‌‌آسیب‌پذیری بحرانی امنیت API آموزش افراد دخیل در توسعه و نگهداری APIها از قبیل توسعه دهندگان، طراحان، معماران، مدیران و سازمان‌‌ها است. + +در بخش [متدلوژی و داده][2]، اطلاعات بیشتری درباره نحوه ایجاد اولین نسخه از مستند حاضر خواهید یافت. در نسخه‌‌های آتی، جامعه امنیت را نیز دخیل نموده و به منظور دریافت داده‌‌های مرتبط، فراخوان عمومی خواهیم داد. در حال حاضر همگان را به مشارکت در [مخزن Github][3] یا [لیست پست الکترونیک][4] ما از طریق ارسال سوال، نظر و پیشنهاد تشویق می‌کنیم. + +[1]: https://www.owasp.org/index.php/OWASP_API_Security_Project +[2]: ./0xd0-about-data.md +[3]: https://github.com/OWASP/API-Security +[4]: https://groups.google.com/a/owasp.org/forum/#!forum/api-security-project diff --git a/2019/fa/src/0x04-release-notes.md b/editions/2019/fa/0x04-release-notes.md similarity index 94% rename from 2019/fa/src/0x04-release-notes.md rename to editions/2019/fa/0x04-release-notes.md index cddfb387e..f9b87403e 100644 --- a/2019/fa/src/0x04-release-notes.md +++ b/editions/2019/fa/0x04-release-notes.md @@ -1,20 +1,15 @@ -
    - -یادداشت -======================= - -مستند پیش رو اولین ویراست ده ‌‌آسیب‌پذیری بحرانی امنیت API است و ما بنا برآن داریم که بصورت دوره‌ای، هر سه یا چهارسال یکبار، آن را بروزرسانی نماییم. - -بر خلاف نسخه حاضر، در نسخه‌های آتی برای دریافت داده‌های عمومی فراخوان داده و صنعت امنیت سایبری را نیز در تلاش خود سهیم خواهیم کرد. برای آشنایی بیشتر با نحوه آماده سازی این مستند می‌توانید به بخش [متدولوژی و داده][1] مراجعه نمایید. همچنین جزئیات ریسک‌های امنیتی مرتبط در بخش [ریسک‌‌‌های امنیتی API][2] قابل مطالعه هستند. - -فهم تغییرات اساسی در معماری اپلیکیشن‌ها در سالیان گذشته از اهمیت زیادی برخوردار است. امروره APIها نقشی کلیدی در معماری ریزسرویس‌ها ، اپلیکیشن‌های تک صفحه ای (SPA )، اپلیکیشن‌های موبایل، اینترنت اشیاء و ... دارند. - -پروژه ده آسیب‌پذیری بحرانی امنیت API تلاشی ضروری برای آگاهی بخشی در حوزه مسائل امنیتی APIهای مدرن به شمار می‌رود که بدون تلاش‌های داوطلبانه افراد متعدد، که در بخش [سپاسگزاری‌ها][3] از تمامی آنان نام برده شده، به سرانجام رساندن آن امکان پذیر نبود. متشکریم! - - - -[1]: ./0xd0-about-data.md -[2]: ./0x10-api-security-risks.md -[3]: ./0xd1-acknowledgments.md - -
    +# یادداشت + +مستند پیش رو اولین ویراست ده ‌‌آسیب‌پذیری بحرانی امنیت API است و ما بنا برآن داریم که بصورت دوره‌ای، هر سه یا چهارسال یکبار، آن را بروزرسانی نماییم. + +بر خلاف نسخه حاضر، در نسخه‌های آتی برای دریافت داده‌های عمومی فراخوان داده و صنعت امنیت سایبری را نیز در تلاش خود سهیم خواهیم کرد. برای آشنایی بیشتر با نحوه آماده سازی این مستند می‌توانید به بخش [متدولوژی و داده][1] مراجعه نمایید. همچنین جزئیات ریسک‌های امنیتی مرتبط در بخش [ریسک‌‌‌های امنیتی API][2] قابل مطالعه هستند. + +فهم تغییرات اساسی در معماری اپلیکیشن‌ها در سالیان گذشته از اهمیت زیادی برخوردار است. امروره APIها نقشی کلیدی در معماری ریزسرویس‌ها ، اپلیکیشن‌های تک صفحه ای (SPA )، اپلیکیشن‌های موبایل، اینترنت اشیاء و ... دارند. + +پروژه ده آسیب‌پذیری بحرانی امنیت API تلاشی ضروری برای آگاهی بخشی در حوزه مسائل امنیتی APIهای مدرن به شمار می‌رود که بدون تلاش‌های داوطلبانه افراد متعدد، که در بخش [سپاسگزاری‌ها][3] از تمامی آنان نام برده شده، به سرانجام رساندن آن امکان پذیر نبود. متشکریم! + + + +[1]: ./0xd0-about-data.md +[2]: ./0x10-api-security-risks.md +[3]: ./0xd1-acknowledgments.md diff --git a/2019/fa/src/0x10-api-security-risks.md b/editions/2019/fa/0x10-api-security-risks.md similarity index 93% rename from 2019/fa/src/0x10-api-security-risks.md rename to editions/2019/fa/0x10-api-security-risks.md index bde06112e..5e681ac41 100644 --- a/2019/fa/src/0x10-api-security-risks.md +++ b/editions/2019/fa/0x10-api-security-risks.md @@ -1,51 +1,40 @@ -
    - -ریسک‌‌‌های امنیتی API -================================ - -به منظور تحلیل ریسک، از [متدولوژی رتبه بندی ریسک OWASP][1] استفاده شده است. - -جدول زیر، واژگان مرتبط با رتبه ریسک را مختصرا نشان می‌دهد. - - - -| عوامل تهدید | قابلیت بهره برداری | میزان شیوع آسیب‌پذیری| قابلیت شناسایی آسیب‌پذیری | پیامد فنی | تاثیر بر کسب و کار | -|-------------|--------------------|---------------------|---------------------------|---------------|---------------------| -| خاص API | آسان: 3 | گسترده: 3 | آسان: 3 | شدید: 3 | خاص کسب و کار | -| خاص API | متوسط: 2 | متداول: 2 | متوسط: 2 | متوسط: 2 | خاص کسب و کار | -| خاص API | سخت: 1 | سخت: 1 | سخت: 1 | جزئی: 1 | خاص کسب و کار | - -**توجه:** در این رویکرد، نوع فناوری مورد استفاده و احتمال وقوع آسیب‌پذیری در رتبه ریسک تاثیر ندارند؛ بعبارت دیگر در این روش رتبه بندی ریسک، راهکار مورد استفاده برای پیاده سازی API ، با رویکردی مستقل از جزئیات فناوری به ارزیابی ریسک می‌پردازد. هرکدام از عوامل یاد شده می‌تواند در پیداکردن و سواستفاده از یک آسیب‌پذیری به مهاجم کمک بسزایی کند. این رتبه بندی تاثیر واقعی بر کسب و کارها را نشان نداده و این سازمان‌ها هستند که با توجه به نوع کسب و کار و فرهنگ سازمانی خود، در میزان پذیرش خطر امنیتی استفاده از اپلیکیشن‌ها و APIها تصمیم گیرنده هستند. هدف از مستند ده آسیب‌پذیری بحرانی امنیت API، تحلیل ریسک نیست. - -## مراجع - -
    - -### OWASP - -* [OWASP Risk Rating Methodology][1] -* [Article on Threat/Risk Modeling][2] - -
    - -### خارجی - -
    - -* [ISO 31000: Risk Management Std][3] -* [ISO 27001: ISMS][4] -* [NIST Cyber Framework (US)][5] -* [ASD Strategic Mitigations (AU)][6] -* [NIST CVSS 3.0][7] -* [Microsoft Threat Modeling Tool][8] - -[1]: https://owasp.org/index.php/OWASP_Risk_Rating_Methodology -[2]: https://www.owasp.org/index.php/Threat_Risk_Modeling -[3]: https://www.iso.org/iso-31000-risk-management.html -[4]: https://www.iso.org/isoiec-27001-information-security.html -[5]: https://www.nist.gov/cyberframework -[6]: https://www.asd.gov.au/infosec/mitigationstrategies.htm -[7]: https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator -[8]: https://www.microsoft.com/en-us/download/details.aspx?id=49168 - - +# ریسک‌‌‌های امنیتی API + +به منظور تحلیل ریسک، از [متدولوژی رتبه بندی ریسک OWASP][1] استفاده شده است. + +جدول زیر، واژگان مرتبط با رتبه ریسک را مختصرا نشان می‌دهد. + + + +| عوامل تهدید | قابلیت بهره برداری | میزان شیوع آسیب‌پذیری| قابلیت شناسایی آسیب‌پذیری | پیامد فنی | تاثیر بر کسب و کار | +|-------------|--------------------|---------------------|---------------------------|---------------|---------------------| +| خاص API | آسان: 3 | گسترده: 3 | آسان: 3 | شدید: 3 | خاص کسب و کار | +| خاص API | متوسط: 2 | متداول: 2 | متوسط: 2 | متوسط: 2 | خاص کسب و کار | +| خاص API | سخت: 1 | سخت: 1 | سخت: 1 | جزئی: 1 | خاص کسب و کار | + +**توجه:** در این رویکرد، نوع فناوری مورد استفاده و احتمال وقوع آسیب‌پذیری در رتبه ریسک تاثیر ندارند؛ بعبارت دیگر در این روش رتبه بندی ریسک، راهکار مورد استفاده برای پیاده سازی API ، با رویکردی مستقل از جزئیات فناوری به ارزیابی ریسک می‌پردازد. هرکدام از عوامل یاد شده می‌تواند در پیداکردن و سواستفاده از یک آسیب‌پذیری به مهاجم کمک بسزایی کند. این رتبه بندی تاثیر واقعی بر کسب و کارها را نشان نداده و این سازمان‌ها هستند که با توجه به نوع کسب و کار و فرهنگ سازمانی خود، در میزان پذیرش خطر امنیتی استفاده از اپلیکیشن‌ها و APIها تصمیم گیرنده هستند. هدف از مستند ده آسیب‌پذیری بحرانی امنیت API، تحلیل ریسک نیست. + +## مراجع + +### OWASP + +* [OWASP Risk Rating Methodology][1] +* [Article on Threat/Risk Modeling][2] + +### خارجی + +* [ISO 31000: Risk Management Std][3] +* [ISO 27001: ISMS][4] +* [NIST Cyber Framework (US)][5] +* [ASD Strategic Mitigations (AU)][6] +* [NIST CVSS 3.0][7] +* [Microsoft Threat Modeling Tool][8] + +[1]: https://owasp.org/index.php/OWASP_Risk_Rating_Methodology +[2]: https://www.owasp.org/index.php/Threat_Risk_Modeling +[3]: https://www.iso.org/iso-31000-risk-management.html +[4]: https://www.iso.org/isoiec-27001-information-security.html +[5]: https://www.nist.gov/cyberframework +[6]: https://www.asd.gov.au/infosec/mitigationstrategies.htm +[7]: https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator +[8]: https://www.microsoft.com/en-us/download/details.aspx?id=49168 diff --git a/2019/fa/src/0x11-t10.md b/editions/2019/fa/0x11-t10.md similarity index 97% rename from 2019/fa/src/0x11-t10.md rename to editions/2019/fa/0x11-t10.md index 676d16ee7..6ba47375f 100644 --- a/2019/fa/src/0x11-t10.md +++ b/editions/2019/fa/0x11-t10.md @@ -1,21 +1,14 @@ -
    - -ده ‌‌‌آسیب‌پذیری بحرانی امنیت API از منظر OWASP – 2019 -=================================================== - - -| ریسک | توضیحات | -|--------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| API1:2019 مجوزدهی نادرست در سطح اشیا | APIها معمولا توابع مدیریت کننده شناسه‌های اشیا را در معرض دید قرار داده و سطح حمله گسترده ای را برای نقض کنترل دسترسی ایجاد می‌نمایند. کنترل‌های مجوزدهی در سطح اشیا بایستی در کلیه توابعی که با گرفتن ورودی از کاربر به منابع داده دسترسی دارند پیاده‌سازی شود. | -| API2:2019 احرازهویت نادرست کاربر | مکانیزم‌های احرازهویت غالبا به درستی پیاده‌سازی نشده و سبب دسترسی مهاجمین به توکن‌های احرازهویت و ربایش موقت یا دائمی هویت سایر کاربران با استفاده از نقایص این مکانیزم‌ها می شوند. نقض توانایی سیستم در شناسایی کلاینت یا کاربر، منجر به نقض امنیت API خواهد شد. | -| API3:2019 افشای مفرط داده | با بکارگیری سرویس‌‌های عمومی API، توسعه دهندگان عملا تمامی ویژگی‌‌های اشیا را بدون درنظر گرفتن حساسیت تک تک آنها و صرفا با تکیه بر فیلترینگ داده پیش از نمایش به کاربر، توسط کلاینت، در معرض دید عموم قرار می‌دهند. | -| API4:2019 کمبود منابع و نبود محدودیت نرخ در ارسال درخواست | معمولا APIها هیچ محدودیتی بر اندازه یا تعداد منابع درخواستی توسط کلاینت یا کاربر اعمال نمی‌نمایند. این موضوع نه تنها با تاثیرگذاری منفی بر عملکرد سرور API می‌تواند منجر به حمله رد سرویس (DoS) شود، بلکه در را برای نقض احرازهویت از طریق حملاتی نظیر Force Brute نیز باز می‌گذارد. | -| API5:2019 مجوزدهی نادرست در سطح توابع | مکانیزم‌‌های پیچیده کنترل دسترسی با سلسله مراتب، گروه‌‌ها و نقش‌‌های متفاوت و مرز نامشخص بین توابع عادی و مدیریتی سبب بروز نقایص مجوزدهی می‌شوند. با بهره برداری از این آسیب‌پذیری‌‌ها مهاجمین به منابع سایر کاربران و یا توابع مدیریتی دست خواهند یافت. | -| API6:2019 تخصیص جمعی | پیوند دادن داده ارائه شده توسط کلاینت (نظیر اشیا JSON) با مدل‌‌های داده بدون فیلترکردن مناسب آنها بر مبنای یک لیست سفید می‌تواند منجر به تخصیص جمعی شود. با تشخیص ویژگی‌‌های اشیا، کاوش سایر توابع، خواندن مستندات یا ارائه ویژگی‌‌های اضافی برای اشیا در بدنه درخواست‌‌ها، مهاجم می‌تواند ویژگی‌‌هایی از اشیا که برای وی مجاز نیست را دستکاری نماید. | -| API7:2019 پیکربندی امنیتی نادرست | پیکربندی امنیتی نادرست پیامدی از بکارگیری پیکربندی ناایمن پیشفرض، پیکربندی ناقص یا غیرمتمرکز، فضای ذخیره سازی ابری باز و محافظت نشده، سرایندهای HTTP با پیکربندی نادرست، متدهای غیرضروری HTTP، خط مشی‌‌های سهل انگارانه برای اشتراک گذاری منابع متقابل (CORS) و پیامهای خطای تفصیلی و مشروح می‌باشد. | -| API8:2019 ‌‌‌آسیب‌پذیری‌‌های تزریق | آسیب‌پذیری‌‌های مبتنی بر تزریق نظیر SQL، NoSQL، تزریق دستور و ... زمانی رخ می‌دهند که داده‌ی نامطمئن بعنوان بخشی از یک دستور یا پرس و جو به مفسر تحویل داده شود. این داده مخرب می‌تواند مفسر را وادار به اجرای دستوری ناخواسته یا دسترسی غیرمجاز به داده‌‌ها نماید. | -| API9:2019 مدیریت نادرست دارایی‌‌ها | APIها معمولا توابع بیشتری را نسبت به وب اپلیکیشن‌‌های سنتی در معرض دید قرار می‌دهند که این موضوع اهمیت مستندسازی مناسب و بروز را دوچندان می‌نماید. داشتن فهرستی از میزبان‌‌ها و نسخه‌‌های بکارگرفته شده API نقش مهمی در رفع ‌‌‌آسیب‌پذیری‌‌های مرتبط با نسخ قدیمی API و توابع مرتبط با debugging ایفا می‌کند. | -| API10:2019 پایش و نظارت ناکافی | پایش و نظارت ناکافی در کنار عدم وجود فرایند پاسخ دهی به وقایع یا پیاده‌سازی ناقص آن به مهاجم امکان تثبیت دسترسی، حمله به سایر سیستم‌‌ها و استخراج/نابودسازی داده‌‌ها را می‌دهد. مطالعات انجام شده بیانگر آن است که زمان آگاهی یافتن از نفوذ انجام شده به طور میانگین بیش از 200 روز پس از انجام نفوذ بوده و تشخیص آن نیز بجای آنکه توسط فرایندهای درونی پایش و نظارت باشد توسط شرکت‌‌های ثالث صورت می‌پذیرد. | - - -
    +# ده ‌‌‌آسیب‌پذیری بحرانی امنیت API از منظر OWASP – 2019 + +| ریسک | توضیحات | +|--------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| API1:2019 مجوزدهی نادرست در سطح اشیا | APIها معمولا توابع مدیریت کننده شناسه‌های اشیا را در معرض دید قرار داده و سطح حمله گسترده ای را برای نقض کنترل دسترسی ایجاد می‌نمایند. کنترل‌های مجوزدهی در سطح اشیا بایستی در کلیه توابعی که با گرفتن ورودی از کاربر به منابع داده دسترسی دارند پیاده‌سازی شود. | +| API2:2019 احرازهویت نادرست کاربر | مکانیزم‌های احرازهویت غالبا به درستی پیاده‌سازی نشده و سبب دسترسی مهاجمین به توکن‌های احرازهویت و ربایش موقت یا دائمی هویت سایر کاربران با استفاده از نقایص این مکانیزم‌ها می شوند. نقض توانایی سیستم در شناسایی کلاینت یا کاربر، منجر به نقض امنیت API خواهد شد. | +| API3:2019 افشای مفرط داده | با بکارگیری سرویس‌‌های عمومی API، توسعه دهندگان عملا تمامی ویژگی‌‌های اشیا را بدون درنظر گرفتن حساسیت تک تک آنها و صرفا با تکیه بر فیلترینگ داده پیش از نمایش به کاربر، توسط کلاینت، در معرض دید عموم قرار می‌دهند. | +| API4:2019 کمبود منابع و نبود محدودیت نرخ در ارسال درخواست | معمولا APIها هیچ محدودیتی بر اندازه یا تعداد منابع درخواستی توسط کلاینت یا کاربر اعمال نمی‌نمایند. این موضوع نه تنها با تاثیرگذاری منفی بر عملکرد سرور API می‌تواند منجر به حمله رد سرویس (DoS) شود، بلکه در را برای نقض احرازهویت از طریق حملاتی نظیر Force Brute نیز باز می‌گذارد. | +| API5:2019 مجوزدهی نادرست در سطح توابع | مکانیزم‌‌های پیچیده کنترل دسترسی با سلسله مراتب، گروه‌‌ها و نقش‌‌های متفاوت و مرز نامشخص بین توابع عادی و مدیریتی سبب بروز نقایص مجوزدهی می‌شوند. با بهره برداری از این آسیب‌پذیری‌‌ها مهاجمین به منابع سایر کاربران و یا توابع مدیریتی دست خواهند یافت. | +| API6:2019 تخصیص جمعی | پیوند دادن داده ارائه شده توسط کلاینت (نظیر اشیا JSON) با مدل‌‌های داده بدون فیلترکردن مناسب آنها بر مبنای یک لیست سفید می‌تواند منجر به تخصیص جمعی شود. با تشخیص ویژگی‌‌های اشیا، کاوش سایر توابع، خواندن مستندات یا ارائه ویژگی‌‌های اضافی برای اشیا در بدنه درخواست‌‌ها، مهاجم می‌تواند ویژگی‌‌هایی از اشیا که برای وی مجاز نیست را دستکاری نماید. | +| API7:2019 پیکربندی امنیتی نادرست | پیکربندی امنیتی نادرست پیامدی از بکارگیری پیکربندی ناایمن پیشفرض، پیکربندی ناقص یا غیرمتمرکز، فضای ذخیره سازی ابری باز و محافظت نشده، سرایندهای HTTP با پیکربندی نادرست، متدهای غیرضروری HTTP، خط مشی‌‌های سهل انگارانه برای اشتراک گذاری منابع متقابل (CORS) و پیامهای خطای تفصیلی و مشروح می‌باشد. | +| API8:2019 ‌‌‌آسیب‌پذیری‌‌های تزریق | آسیب‌پذیری‌‌های مبتنی بر تزریق نظیر SQL، NoSQL، تزریق دستور و ... زمانی رخ می‌دهند که داده‌ی نامطمئن بعنوان بخشی از یک دستور یا پرس و جو به مفسر تحویل داده شود. این داده مخرب می‌تواند مفسر را وادار به اجرای دستوری ناخواسته یا دسترسی غیرمجاز به داده‌‌ها نماید. | +| API9:2019 مدیریت نادرست دارایی‌‌ها | APIها معمولا توابع بیشتری را نسبت به وب اپلیکیشن‌‌های سنتی در معرض دید قرار می‌دهند که این موضوع اهمیت مستندسازی مناسب و بروز را دوچندان می‌نماید. داشتن فهرستی از میزبان‌‌ها و نسخه‌‌های بکارگرفته شده API نقش مهمی در رفع ‌‌‌آسیب‌پذیری‌‌های مرتبط با نسخ قدیمی API و توابع مرتبط با debugging ایفا می‌کند. | +| API10:2019 پایش و نظارت ناکافی | پایش و نظارت ناکافی در کنار عدم وجود فرایند پاسخ دهی به وقایع یا پیاده‌سازی ناقص آن به مهاجم امکان تثبیت دسترسی، حمله به سایر سیستم‌‌ها و استخراج/نابودسازی داده‌‌ها را می‌دهد. مطالعات انجام شده بیانگر آن است که زمان آگاهی یافتن از نفوذ انجام شده به طور میانگین بیش از 200 روز پس از انجام نفوذ بوده و تشخیص آن نیز بجای آنکه توسط فرایندهای درونی پایش و نظارت باشد توسط شرکت‌‌های ثالث صورت می‌پذیرد. | diff --git a/2019/fa/src/0xa1-broken-object-level-authorization.md b/editions/2019/fa/0xa1-broken-object-level-authorization.md similarity index 97% rename from 2019/fa/src/0xa1-broken-object-level-authorization.md rename to editions/2019/fa/0xa1-broken-object-level-authorization.md index e49cfaf24..a58a18ff8 100644 --- a/2019/fa/src/0xa1-broken-object-level-authorization.md +++ b/editions/2019/fa/0xa1-broken-object-level-authorization.md @@ -1,49 +1,44 @@ -
    - -API1:2019 مجوزدهی نادرست در سطح اشیاء -=========================================== - -| عوامل تهدید / مسیر حمله | ضعف امنیتی | پیامد | -| - | - | - | -| API خاص: قابلیت بهره‌برداری**3** | میزان شیوع**3** : قابلیت تشخیص**2** | پیامد فنی**3** : خاص کسب و کار | -| مهاجمین می‌توانند از نقاط و توابع ‌آسیب‌پذیر (از منظر مجوزدهی نادرست در سطح اشیا) با دستکاری شناسه شیء ارسالی درون درخواست سوءاستفاده و بهره برداری نمایند. این امر می‌تواند منجر به دسترسی غیرمجاز به داده حساس شود. دسترسی غیرمجاز به داده حساس، مساله‌ای رایج در اپلیکیشن‌های مبتنی بر API است چرا که مولفه سرور غالبا به طور کامل وضعیت کلاینت را رهگیری نمی‌کند و در عوض برای تصمیم گیری درباره دسترسی کلاینت به اشیاء از پارامترهایی نظیر شناسه شی که از سوی خود کلاینت ارسال می‌شوند، تکیه دارند. | مهاجمین می‌توانند از نقاط و توابع ‌آسیب‌پذیر (از منظر مجوزدهی نادرست در سطح اشیا) با دستکاری شناسه شیء ارسالی درون درخواست سوءاستفاده و بهره برداری نمایند. این امر می‌تواند منجر به دسترسی غیرمجاز به داده حساس شود. دسترسی غیرمجاز به داده حساس، مساله‌ای رایج در اپلیکیشن‌های مبتنی بر API است چرا که مولفه سرور غالبا به طور کامل وضعیت کلاینت را رهگیری نمی‌کند و در عوض برای تصمیم گیری درباره دسترسی کلاینت به اشیاء از پارامترهایی نظیر شناسه شی که از سوی خود کلاینت ارسال می‌شوند، تکیه دارند. | دسترسی غیرمجاز می‌تواند منجر به افشای اطلاعات به طرف‌های غیرمجاز، از دست رفتن داده یا دستکاری آن شود. همچنین دسترسی غیرمجاز به اشیا می‌تواند سبب تحت کنترل گرفتن کامل حساب کاربری توسط مهاجم گردد. - -## آیا API از نظر مجوزدهی نادرست در سطح اشیاء آسیب‌پذیر است؟ - -مجوزدهی در سطح اشیا مکانیزمی برای کنترل دسترسی است که غالبا در سطح کد ‌‌‌‌پیاده‌سازی شده و دسترسی کاربر به اشیایی که بایستی به آنها دسترسی داشته باشد را تضمین می‌نماید. -هر تابعی در API که یک شناسه شی دریافت نموده و نوعی عملیات بر روی آن شی انجام می‌دهد، بایستی کنترل‌های مجوزدهی در سطح اشیا را بکار گیرد. این کنترل‌ها باید دسترسی کاربرِ واردشده به انجام عمل درخواستی بر روی شی درخواستی را اعتبارسنجی نمایند. -وجود ایراد و نقصان در این مکانیزم منجر به افشای اطلاعات غیرمجاز، تغییر یا از بین رفتن تمامی داده خواهد شد. - - -## مثال‌هایی از سناریوهای حمله - -### سناریو #1 - -یک پلتفرم تجارت الکترونیک، برای فروشگاه‌های آنلاین نمودارهای سود فروشگاه‌های میزبانی شده را در قالب یک لیست چندصفحه‌ای ارائه می‌دهد. مهاجم با بررسی درخواست‌های مرورگر، توابعی از API که نقش منبع داده برای نمودارهای مذبور را دارند و الگوی آنها به صورت `/shops/{shopName}/revenue_data.json` می‌باشد را شناسایی می‌کند. با استفاده از یک تابع دیگر API، مهاجم می‌تواند لیست نام کلیه فروشگاه‌های میزبانی شده را استخراج نماید. همچنین مهاجم با استفاده از یک اسکریپت ساده و جایگزین کردن `{shopName}` در URL خواهد توانست به داده‌ی فروش هزاران فروشگاه دسترسی یابد. - -### سناریو #2 - -با پایش ترافیک شبکه‌ی یک گجت پوشیدنی درخواست HTTP `PATCH` زیر توجه مهاجم را به وجود سرآیند HTTP سفارشی `X-User-Id: 54796` جلب می‌نماید. با جایگزین کردن مقدار `X-User-Id` با `54795`، مهاجم پاسخ HTTP موفقیت آمیز گرفته و قادر به تغییر اطلاعات حساب سایر کاربران خواهد بود. - -## چگونه از آسیب‌پذیری مجوزدهی نادرست در سطح اشیاء پیشگیری کنیم؟ - -* بکارگیری یک مکانیزم مجوزدهی که بر خط مشی و سلسله مراتب کاربری تمرکز دارد. -* استفاده از یک مکانیزم مجوزدهی برای بررسی اینکه آیا کاربر واردشده مجوز لازم برای انجام عملیات درخواستی بر روی رکورد در تمامی توابعی که از کلاینت، ورودی می‌گیرند تا به رکورد مذبور در پایگاه داده دسترسی داشته باشند را دارا است یا خیر؟ -* ارجحیت استفاده از مقادیر تصادفی و غیرقابل پیش بینی بعنوان GUID برای شناسه رکوردها. -* طراحی آزمونهایی برای ارزیابی صحت عملکرد مکانیزم‌های مجوزدهی. - -## مراجع - -### خارجی - -
    - -* [CWE-284: Improper Access Control][1] -* [CWE-285: Improper Authorization][2] -* [CWE-639: Authorization Bypass Through User-Controlled Key][3] - -[1]: https://cwe.mitre.org/data/definitions/284.html -[2]: https://cwe.mitre.org/data/definitions/285.html -[3]: https://cwe.mitre.org/data/definitions/639.html - - +# API1:2019 مجوزدهی نادرست در سطح اشیاء + +| عوامل تهدید / مسیر حمله | ضعف امنیتی | پیامد | +| - | - | - | +| API خاص: قابلیت بهره‌برداری**3** | میزان شیوع**3** : قابلیت تشخیص**2** | پیامد فنی**3** : خاص کسب و کار | +| مهاجمین می‌توانند از نقاط و توابع ‌آسیب‌پذیر (از منظر مجوزدهی نادرست در سطح اشیا) با دستکاری شناسه شیء ارسالی درون درخواست سوءاستفاده و بهره برداری نمایند. این امر می‌تواند منجر به دسترسی غیرمجاز به داده حساس شود. دسترسی غیرمجاز به داده حساس، مساله‌ای رایج در اپلیکیشن‌های مبتنی بر API است چرا که مولفه سرور غالبا به طور کامل وضعیت کلاینت را رهگیری نمی‌کند و در عوض برای تصمیم گیری درباره دسترسی کلاینت به اشیاء از پارامترهایی نظیر شناسه شی که از سوی خود کلاینت ارسال می‌شوند، تکیه دارند. | مهاجمین می‌توانند از نقاط و توابع ‌آسیب‌پذیر (از منظر مجوزدهی نادرست در سطح اشیا) با دستکاری شناسه شیء ارسالی درون درخواست سوءاستفاده و بهره برداری نمایند. این امر می‌تواند منجر به دسترسی غیرمجاز به داده حساس شود. دسترسی غیرمجاز به داده حساس، مساله‌ای رایج در اپلیکیشن‌های مبتنی بر API است چرا که مولفه سرور غالبا به طور کامل وضعیت کلاینت را رهگیری نمی‌کند و در عوض برای تصمیم گیری درباره دسترسی کلاینت به اشیاء از پارامترهایی نظیر شناسه شی که از سوی خود کلاینت ارسال می‌شوند، تکیه دارند. | دسترسی غیرمجاز می‌تواند منجر به افشای اطلاعات به طرف‌های غیرمجاز، از دست رفتن داده یا دستکاری آن شود. همچنین دسترسی غیرمجاز به اشیا می‌تواند سبب تحت کنترل گرفتن کامل حساب کاربری توسط مهاجم گردد. + +## آیا API از نظر مجوزدهی نادرست در سطح اشیاء آسیب‌پذیر است؟ + +مجوزدهی در سطح اشیا مکانیزمی برای کنترل دسترسی است که غالبا در سطح کد ‌‌‌‌پیاده‌سازی شده و دسترسی کاربر به اشیایی که بایستی به آنها دسترسی داشته باشد را تضمین می‌نماید. +هر تابعی در API که یک شناسه شی دریافت نموده و نوعی عملیات بر روی آن شی انجام می‌دهد، بایستی کنترل‌های مجوزدهی در سطح اشیا را بکار گیرد. این کنترل‌ها باید دسترسی کاربرِ واردشده به انجام عمل درخواستی بر روی شی درخواستی را اعتبارسنجی نمایند. +وجود ایراد و نقصان در این مکانیزم منجر به افشای اطلاعات غیرمجاز، تغییر یا از بین رفتن تمامی داده خواهد شد. + + +## مثال‌هایی از سناریوهای حمله + +### سناریو #1 + +یک پلتفرم تجارت الکترونیک، برای فروشگاه‌های آنلاین نمودارهای سود فروشگاه‌های میزبانی شده را در قالب یک لیست چندصفحه‌ای ارائه می‌دهد. مهاجم با بررسی درخواست‌های مرورگر، توابعی از API که نقش منبع داده برای نمودارهای مذبور را دارند و الگوی آنها به صورت `/shops/{shopName}/revenue_data.json` می‌باشد را شناسایی می‌کند. با استفاده از یک تابع دیگر API، مهاجم می‌تواند لیست نام کلیه فروشگاه‌های میزبانی شده را استخراج نماید. همچنین مهاجم با استفاده از یک اسکریپت ساده و جایگزین کردن `{shopName}` در URL خواهد توانست به داده‌ی فروش هزاران فروشگاه دسترسی یابد. + +### سناریو #2 + +با پایش ترافیک شبکه‌ی یک گجت پوشیدنی درخواست HTTP `PATCH` زیر توجه مهاجم را به وجود سرآیند HTTP سفارشی `X-User-Id: 54796` جلب می‌نماید. با جایگزین کردن مقدار `X-User-Id` با `54795`، مهاجم پاسخ HTTP موفقیت آمیز گرفته و قادر به تغییر اطلاعات حساب سایر کاربران خواهد بود. + +## چگونه از آسیب‌پذیری مجوزدهی نادرست در سطح اشیاء پیشگیری کنیم؟ + +* بکارگیری یک مکانیزم مجوزدهی که بر خط مشی و سلسله مراتب کاربری تمرکز دارد. +* استفاده از یک مکانیزم مجوزدهی برای بررسی اینکه آیا کاربر واردشده مجوز لازم برای انجام عملیات درخواستی بر روی رکورد در تمامی توابعی که از کلاینت، ورودی می‌گیرند تا به رکورد مذبور در پایگاه داده دسترسی داشته باشند را دارا است یا خیر؟ +* ارجحیت استفاده از مقادیر تصادفی و غیرقابل پیش بینی بعنوان GUID برای شناسه رکوردها. +* طراحی آزمونهایی برای ارزیابی صحت عملکرد مکانیزم‌های مجوزدهی. + +## مراجع + +### خارجی + +* [CWE-284: Improper Access Control][1] +* [CWE-285: Improper Authorization][2] +* [CWE-639: Authorization Bypass Through User-Controlled Key][3] + +[1]: https://cwe.mitre.org/data/definitions/284.html +[2]: https://cwe.mitre.org/data/definitions/285.html +[3]: https://cwe.mitre.org/data/definitions/639.html + + diff --git a/2019/fa/src/0xa2-broken-user-autentication.md b/editions/2019/fa/0xa2-broken-user-autentication.md similarity index 97% rename from 2019/fa/src/0xa2-broken-user-autentication.md rename to editions/2019/fa/0xa2-broken-user-autentication.md index 3083fd375..743afc74f 100644 --- a/2019/fa/src/0xa2-broken-user-autentication.md +++ b/editions/2019/fa/0xa2-broken-user-autentication.md @@ -1,73 +1,63 @@ -
    - -API2:2019 احرازهویت نادرست کاربر -==================================== - -| عوامل تهدید/مسیر حمله | ضعف امنیتی | پیامد | -| - | - | - | -| API خاص: قابلیت بهره‌برداری**3** | میزان شیوع**2** : قابلیت تشخیص**2** | پیامد فنی**3** : خاص کسب و کار | -|احرازهویت در APIها مکانیزمی پیچیده و سردرگم کننده است. در نتیجه امکان دارد مهندسین نرم افزار و امنیت تصورات غلطی درباره حد و مرز احرازهویت و نحوه ‌پیاده‌سازی آن داشته باشند. بعلاوه، مکانیزم احرازهویت هدفی بدیهی و آسان برای مهاجمان خواهد بود چرا که در معرض دید عموم قرار دارد. این دو نکته، مولفه احراز هویت را درمقابل بهره برداری‌ها و اکسپلویت‌های متعدد آسیب‌پذیر می‌سازد.|در اینجا دو مساله وجود دارد:1. نبود مکانیزم‌های حفاظتی: رفتار با نقاط و توابع مسئول احراز هویت در API بایستی متفاوت از سایر نقاط و توابع بوده و لایه‌های حفاظتی بیشتری داشته باشد.2. ‌پیاده‌سازی نادرست مکانیزم حفاظتی: مکانیزم حفاظتی بدون لحاظ کردن بردارهای حمله یا با موارداستفاده نادرست (مثلا بکارگیری مکانیزم احرازهویتی که برای IoT طراحی شده در وب اپلیکیشن‌ها) ‌پیاده‌سازی یا استفاده شده‌اند.|مهاجمین می‌توانند به حساب‌های کاربری سایر کاربران دسترسی یافته، اطلاعات شخصی آنها را خوانده و عملیات حساس (نظیر نقل و انتقالات مالی و ارسال پیام‌های شخصی) را از طرف آنها انجام دهد.| - -## آیا API از نظر احرازهویت نادرست کاربر آسیب‌پذیر است؟ - -نقاط، توابع و جریان‌های احرازهویت API دارایی‌هایی هستند که بایستی محافظت شوند. همچنین توابع «فراموشی گذرواژه یا بازیابی گذرواژه» نیز بایستی در زمره مکانیزم‌های احرازهویت در نظر گرفته شوند. - -یک API از منظر احرازهویت نادرست کاربر آسیب‌پذیر است اگر: -* اجازه حمله [درج هویت][1] را بدهد که در آن مهاجم از لیستی از نام‌های کاربری و گذرواژه‌های معتبر استفاده می‌نماید. -* بدون استفاده از مکانیزم‌های CAPTCHA یا قفل کردن حساب کاربری اجازه حمله Brute Force روی یک حساب کاربری را بدهد. -* اجازه استفاده از گذرواژه‌های ضعیف را بدهد. -* جزئیات و داده‌های حساس مرتبط با احرازهویت از قبیل توکن‌های اصالت سنجی و گذرواژه‌ها را از طریق URL ارسال نماید. -* اصالت توکن‌ها را به بوته آزمون نگذارد. -* توکن‌ها JWT ضعیف یا بدون امضا (`"alg”:”none"`) را بپذیرد یا تاریخ انقضای آنها را اعتبارسنجی ننماید. -* از گذرواژه‌های آشکار ، رمزگذاری نشده یا درهم سازی شده بصورت ضعیف استفاده نماید. -* از کلیدهای رمزگذاری ضعیف بهره ببرد. - -## مثال‌هایی از سناریوهای حمله - -## سناریو #1 - -[درج هویت][1] (استفاده از [لیستی از نام‌های کاربری یا گذرواژه‌های شناخته شده][2]) حمله‌ای رایج است. اگر اپلیکیشن از مکانیزم‌های حفاظتی خودکار در مقابل تهدیداتی نظیر درج هویت بهره نبرده باشد، آنگاه اپلیکیشن می‌تواند بعنوان یک پیشگوی گذرواژه یا آزمونگر جهت بررسی صحت اطلاعات هویتی جهت عبور از مکانیزم احرازهویت بکار رود. - -## سناریو #2 - -مهاجم جریان بازیابی گذرواژه را با ارسال یک درخواست POST به `/api/system/verification-codes` و ارائه نام کاربری در بدنه پیام آغاز می‌کند. سپس یک توکن پیامک 6 رقمی به تلفن قربانی ارسال می‌گردد. از آنجا که API خط مشی محدودیت سازی نرخ ارسال درخواست را بکار نگرفته، مهاجم می‌تواند تمامی جایگشت‌ها و ترکیبات محتمل را با استفاده از یک اسکریپت چندنخی با تابع زیر برای یافتن توکن صحیح ظرف چند دقیقه بیازماید `/api/system/verification-codes/{smsToken}`. - -## چگونه از ‌آسیب‌پذیری احرازهویت نادرست کاربر پیشگیری کنیم؟ - -* حصول اطمینان از آنکه تمامی جریان‌های ممکن برای احراز هویت API (موبایل یا وب، سایر لینک‌هایی که از مکانیزم احرازهویت با یک کلیک و غیره) شناسایی شده است. -* مشورت با توسعه دهندگان و مهندسین در ارتباط با جریان‌های احرازهویتی که ممکن است از نظر دور مانده باشند. -* مطالعه و فهم کامل مکانیزم‌های احرازهویت استفاده شده در اپلیکیشن؛ بایستی درنظر داشت که OAuth و کلیدهای API نمی‌توانند بعنوان مکانیزمی برای احرازهویت به شمار آیند. -* در مساله احرازهویت، تولید توکن و ذخیره‌سازی گذرواژه، نباید چرخ را از ابتدا اختراع کرد بلکه بایستی از استانداردها استفاده نمود. -* توابع بازیابی یا فراموشی گذرواژه بایستی از منظر محافظت در مقابل Brute Force، محدودسازی نرخ و قفل شدن حساب کاربری هم ارز با توابع و نقاط ورود در نظر گرفته شود. -* از [راهنمای احرازهویت OWASP][3] استفاده شود. -* بکارگیری احرازهویت چندعاملی، در هر جا که امکان داشت. -* بکارگیری مکانیزم‌های ضد Brute Force برای جلوگیری از حملات درج هویت، Dictionary و Brute Force بر روی توابع و نقاط احرازهویت در API. این مکانیزم بایستی سختگیرانه‌تر از مکانیزم محدودسازی نرخ معمول ‌پیاده‌سازی شود. -* بکارگیری مکانیزم‌های [قفل کردن حساب کاربری][4] / CAPTCHA برای جلوگیری از حمله Brute Force علیه کاربران خاص. -* کلیدهای API نبایستی برای احرازهویت کاربران بکار برده شود اما در عوض می‌تواند برای [احرازهویت اپلیکیشن/پروژه کلاینت][5] استفاده گردد. - -## مراجع - -
    - -### OWASP - -* [OWASP Key Management Cheat Sheet][6] -* [OWASP Authentication Cheatsheet][3] -* [Credential Stuffing][1] - -
    - -### خارجی - -
    - -* [CWE-798: Use of Hard-coded Credentials][7] - -[1]: https://www.owasp.org/index.php/Credential_stuffing -[2]: https://github.com/danielmiessler/SecLists -[3]: https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html -[4]: https://www.owasp.org/index.php/Testing_for_Weak_lock_out_mechanism_(OTG-AUTHN-003) -[5]: https://cloud.google.com/endpoints/docs/openapi/when-why-api-key -[6]: https://www.owasp.org/index.php/Key_Management_Cheat_Sheet -[7]: https://cwe.mitre.org/data/definitions/798.html - +# API2:2019 احرازهویت نادرست کاربر + +| عوامل تهدید/مسیر حمله | ضعف امنیتی | پیامد | +| - | - | - | +| API خاص: قابلیت بهره‌برداری**3** | میزان شیوع**2** : قابلیت تشخیص**2** | پیامد فنی**3** : خاص کسب و کار | +|احرازهویت در APIها مکانیزمی پیچیده و سردرگم کننده است. در نتیجه امکان دارد مهندسین نرم افزار و امنیت تصورات غلطی درباره حد و مرز احرازهویت و نحوه ‌پیاده‌سازی آن داشته باشند. بعلاوه، مکانیزم احرازهویت هدفی بدیهی و آسان برای مهاجمان خواهد بود چرا که در معرض دید عموم قرار دارد. این دو نکته، مولفه احراز هویت را درمقابل بهره برداری‌ها و اکسپلویت‌های متعدد آسیب‌پذیر می‌سازد.|در اینجا دو مساله وجود دارد:1. نبود مکانیزم‌های حفاظتی: رفتار با نقاط و توابع مسئول احراز هویت در API بایستی متفاوت از سایر نقاط و توابع بوده و لایه‌های حفاظتی بیشتری داشته باشد.2. ‌پیاده‌سازی نادرست مکانیزم حفاظتی: مکانیزم حفاظتی بدون لحاظ کردن بردارهای حمله یا با موارداستفاده نادرست (مثلا بکارگیری مکانیزم احرازهویتی که برای IoT طراحی شده در وب اپلیکیشن‌ها) ‌پیاده‌سازی یا استفاده شده‌اند.|مهاجمین می‌توانند به حساب‌های کاربری سایر کاربران دسترسی یافته، اطلاعات شخصی آنها را خوانده و عملیات حساس (نظیر نقل و انتقالات مالی و ارسال پیام‌های شخصی) را از طرف آنها انجام دهد.| + +## آیا API از نظر احرازهویت نادرست کاربر آسیب‌پذیر است؟ + +نقاط، توابع و جریان‌های احرازهویت API دارایی‌هایی هستند که بایستی محافظت شوند. همچنین توابع «فراموشی گذرواژه یا بازیابی گذرواژه» نیز بایستی در زمره مکانیزم‌های احرازهویت در نظر گرفته شوند. + +یک API از منظر احرازهویت نادرست کاربر آسیب‌پذیر است اگر: +* اجازه حمله [درج هویت][1] را بدهد که در آن مهاجم از لیستی از نام‌های کاربری و گذرواژه‌های معتبر استفاده می‌نماید. +* بدون استفاده از مکانیزم‌های CAPTCHA یا قفل کردن حساب کاربری اجازه حمله Brute Force روی یک حساب کاربری را بدهد. +* اجازه استفاده از گذرواژه‌های ضعیف را بدهد. +* جزئیات و داده‌های حساس مرتبط با احرازهویت از قبیل توکن‌های اصالت سنجی و گذرواژه‌ها را از طریق URL ارسال نماید. +* اصالت توکن‌ها را به بوته آزمون نگذارد. +* توکن‌ها JWT ضعیف یا بدون امضا (`"alg”:”none"`) را بپذیرد یا تاریخ انقضای آنها را اعتبارسنجی ننماید. +* از گذرواژه‌های آشکار ، رمزگذاری نشده یا درهم سازی شده بصورت ضعیف استفاده نماید. +* از کلیدهای رمزگذاری ضعیف بهره ببرد. + +## مثال‌هایی از سناریوهای حمله + +## سناریو #1 + +[درج هویت][1] (استفاده از [لیستی از نام‌های کاربری یا گذرواژه‌های شناخته شده][2]) حمله‌ای رایج است. اگر اپلیکیشن از مکانیزم‌های حفاظتی خودکار در مقابل تهدیداتی نظیر درج هویت بهره نبرده باشد، آنگاه اپلیکیشن می‌تواند بعنوان یک پیشگوی گذرواژه یا آزمونگر جهت بررسی صحت اطلاعات هویتی جهت عبور از مکانیزم احرازهویت بکار رود. + +## سناریو #2 + +مهاجم جریان بازیابی گذرواژه را با ارسال یک درخواست POST به `/api/system/verification-codes` و ارائه نام کاربری در بدنه پیام آغاز می‌کند. سپس یک توکن پیامک 6 رقمی به تلفن قربانی ارسال می‌گردد. از آنجا که API خط مشی محدودیت سازی نرخ ارسال درخواست را بکار نگرفته، مهاجم می‌تواند تمامی جایگشت‌ها و ترکیبات محتمل را با استفاده از یک اسکریپت چندنخی با تابع زیر برای یافتن توکن صحیح ظرف چند دقیقه بیازماید `/api/system/verification-codes/{smsToken}`. + +## چگونه از ‌آسیب‌پذیری احرازهویت نادرست کاربر پیشگیری کنیم؟ + +* حصول اطمینان از آنکه تمامی جریان‌های ممکن برای احراز هویت API (موبایل یا وب، سایر لینک‌هایی که از مکانیزم احرازهویت با یک کلیک و غیره) شناسایی شده است. +* مشورت با توسعه دهندگان و مهندسین در ارتباط با جریان‌های احرازهویتی که ممکن است از نظر دور مانده باشند. +* مطالعه و فهم کامل مکانیزم‌های احرازهویت استفاده شده در اپلیکیشن؛ بایستی درنظر داشت که OAuth و کلیدهای API نمی‌توانند بعنوان مکانیزمی برای احرازهویت به شمار آیند. +* در مساله احرازهویت، تولید توکن و ذخیره‌سازی گذرواژه، نباید چرخ را از ابتدا اختراع کرد بلکه بایستی از استانداردها استفاده نمود. +* توابع بازیابی یا فراموشی گذرواژه بایستی از منظر محافظت در مقابل Brute Force، محدودسازی نرخ و قفل شدن حساب کاربری هم ارز با توابع و نقاط ورود در نظر گرفته شود. +* از [راهنمای احرازهویت OWASP][3] استفاده شود. +* بکارگیری احرازهویت چندعاملی، در هر جا که امکان داشت. +* بکارگیری مکانیزم‌های ضد Brute Force برای جلوگیری از حملات درج هویت، Dictionary و Brute Force بر روی توابع و نقاط احرازهویت در API. این مکانیزم بایستی سختگیرانه‌تر از مکانیزم محدودسازی نرخ معمول ‌پیاده‌سازی شود. +* بکارگیری مکانیزم‌های [قفل کردن حساب کاربری][4] / CAPTCHA برای جلوگیری از حمله Brute Force علیه کاربران خاص. +* کلیدهای API نبایستی برای احرازهویت کاربران بکار برده شود اما در عوض می‌تواند برای [احرازهویت اپلیکیشن/پروژه کلاینت][5] استفاده گردد. + +## مراجع + +### OWASP + +* [OWASP Key Management Cheat Sheet][6] +* [OWASP Authentication Cheatsheet][3] +* [Credential Stuffing][1] + +### خارجی + +* [CWE-798: Use of Hard-coded Credentials][7] + +[1]: https://www.owasp.org/index.php/Credential_stuffing +[2]: https://github.com/danielmiessler/SecLists +[3]: https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html +[4]: https://www.owasp.org/index.php/Testing_for_Weak_lock_out_mechanism_(OTG-AUTHN-003) +[5]: https://cloud.google.com/endpoints/docs/openapi/when-why-api-key +[6]: https://www.owasp.org/index.php/Key_Management_Cheat_Sheet +[7]: https://cwe.mitre.org/data/definitions/798.html diff --git a/2019/fa/src/0xa3-excessive-data-exposure.md b/editions/2019/fa/0xa3-excessive-data-exposure.md similarity index 97% rename from 2019/fa/src/0xa3-excessive-data-exposure.md rename to editions/2019/fa/0xa3-excessive-data-exposure.md index c9bb35c1c..d81db5a4a 100644 --- a/2019/fa/src/0xa3-excessive-data-exposure.md +++ b/editions/2019/fa/0xa3-excessive-data-exposure.md @@ -1,44 +1,38 @@ -
    - -API3:2019 افشای مفرط داده -================================= - -| عوامل تهدید/مسیر حمله | ضعف امنیتی | پیامد | -| - | - | - | -| API خاص: قابلیت بهره‌برداری**3** | میزان شیوع**2** : قابلیت تشخیص**2** | پیامد فنی**2** : خاص کسب و کار | -| بهره برداری از این آسیب‌پذیری آسان بوده و غالبا با شنود ترافیک به منظور تحلیل پاسخ‌های API برای یافتن داده حساسی که نباید به کاربر بازگردانده شود امکان پذیر است. | APIها برای فیلتر کردن داده به کلاینت‌ها اتکا می‌کنند. از آنجا که APIها به عنوان منابع داده استفاده می‌شوند، توسعه دهندگان گاها آنها را بدون توجه به حساسیت اطلاعاتی که افشا می‌شود بکار می‌گیرند. ابزارهای خودکار غالبا نمی‌توانند این ‌آسیب‌پذیری را کشف کنند چرا که تمایز دادن بین داده مجازی که توسط API بازگردانده می‌شود با داده حساسی که نباید توسط API بازگردانده شود بدون داشتن فهمی عمیق از اپلیکیشن امکان پذیر نیست. | افشای مفرط و بیش از حد داده معمولا منجر به افشای اطلاعات حساس می‌شود. | - -## آیا API از نظر افشای مفرط داده ‌آسیب‌پذیر است؟ - -طراحی API به گونه‌ای است که داده حساس را به کلاینت باز می‌گرداند. این داده غالبا پیش از ارائه و نمایش به کاربر در سمت کلاینت فیلتر می‌شود. در نتیجه مهاجم می‌تواند براحتی و با شنود ترافیک، این داده حساس را مشاهده نماید. - -## مثال‌هایی از سناریوهای حمله - -### سناریو #1 - -تیم توسعه موبایل از `/api/articles/{articleId}/comments/{commentId}` برای مشاهده و پردازش فراداده کامنت‌ها بهره می‌برد. با شنود ترافیک اپلیکیشن موبایل، مهاجم در می‌یابد که داده مرتبط با نویسنده کامنت نیز بازگردانده می‌شود. این موضوع به این دلیل است که ‌‌پیاده‌سازی API از یک متد عمومی `toJSON()` برای سریالیزه کردن شیء `User` بهره می‌برد که این شی حاوی داده حساس PII می باشد. - -### سناریو #2 - -یک سیستم نظارتی مبتنی بر IoT به مدیران خود اجازه ایجاد کاربرانی با سطوح مجوز مختلف می‌نماید. یکی از مدیران یک حساب کاربری برای یک نیروی حفاظت فیزیکی (نگهبان) جدید می‌سازد که بر مبنای آن تنها امکان دسترسی به ساختمان‌های مشخصی بایستی وجود داشته باشد. به محض استفاده نگهبان مذبور از اپلیکیشن موبایل خود، یک فراخوانی API به سوی `/api/sites/111/cameras` روانه می‌شود تا اطلاعات مرتبط با دوربین‌های موجود را دریافت نموده و آنها را در دشبورد خود نمایش دهد. پاسخ، لیستی از جزئیات دوربین‌ها با فرمت زیر را در بردارد. `{"id":"xxx","live_access_token":"xxxx-bbbbb","building_id":"yyy"}`. -در حالیکه رابط گرافیکی کلاینت فقط دوربین‌هایی که نگهبان مذبور بایستی به آنها دسترسی داشته باشد را نشان می‌دهد، اما لیست کامل این دوربین‌ها در پاسخ API وجود دارد. - -## چگونه از ‌آسیب‌پذیری افشای مفرط داده پیشگیری کنیم؟ - -* عدم تکیه بر کلاینت در مساله فیلتر کردن داده حساس. -* بازبینی پاسخ دریافتی از API به منظور حصول اطمینان از آنکه فقط داده لازم و اصلی در آن نمایش داده می شود. -* پیش از افشا و در معرض دید عموم قراردادن یک API، مهندسین توسعه دهندگان Back-End بایستی از خود بپرسند: مصرف کننده و مخاطب این داده چه کسی است؟ -* اجتناب از استفاده از متدهای عمومی `to_json()` و `to_string()` و در عوض دستچین کردن تک تک ویژگی‌ها و مشخصه‌هایی که برای پاسخ ضروری هستند. -* طبقه بندی اطلاعات حساس و شخصی ذخیره شده در APIها و بازبینی تمامی فراخوانی‌های APIهایی که این اطلاعات را باز می‌گردانند به منظور کشف و شناسایی مواردی که ضعف امنیتی در پی دارند. -* بکارگیری یک مکانیزم اعتبارسنجی الگومحور برای بررسی اعتبار پاسخ‌ها بعنوان یک لایه امنیتی دیگر و همچنین تعریف و اعمال این مکانیزم بر روی داده بازگردانده شده تمامی APIها از جمله خطاها. - -## مراجع - -### خارجی - -
    - -* [CWE-213: Intentional Information Exposure][1] - -[1]: https://cwe.mitre.org/data/definitions/213.html - +# API3:2019 افشای مفرط داده + +| عوامل تهدید/مسیر حمله | ضعف امنیتی | پیامد | +| - | - | - | +| API خاص: قابلیت بهره‌برداری**3** | میزان شیوع**2** : قابلیت تشخیص**2** | پیامد فنی**2** : خاص کسب و کار | +| بهره برداری از این آسیب‌پذیری آسان بوده و غالبا با شنود ترافیک به منظور تحلیل پاسخ‌های API برای یافتن داده حساسی که نباید به کاربر بازگردانده شود امکان پذیر است. | APIها برای فیلتر کردن داده به کلاینت‌ها اتکا می‌کنند. از آنجا که APIها به عنوان منابع داده استفاده می‌شوند، توسعه دهندگان گاها آنها را بدون توجه به حساسیت اطلاعاتی که افشا می‌شود بکار می‌گیرند. ابزارهای خودکار غالبا نمی‌توانند این ‌آسیب‌پذیری را کشف کنند چرا که تمایز دادن بین داده مجازی که توسط API بازگردانده می‌شود با داده حساسی که نباید توسط API بازگردانده شود بدون داشتن فهمی عمیق از اپلیکیشن امکان پذیر نیست. | افشای مفرط و بیش از حد داده معمولا منجر به افشای اطلاعات حساس می‌شود. | + +## آیا API از نظر افشای مفرط داده ‌آسیب‌پذیر است؟ + +طراحی API به گونه‌ای است که داده حساس را به کلاینت باز می‌گرداند. این داده غالبا پیش از ارائه و نمایش به کاربر در سمت کلاینت فیلتر می‌شود. در نتیجه مهاجم می‌تواند براحتی و با شنود ترافیک، این داده حساس را مشاهده نماید. + +## مثال‌هایی از سناریوهای حمله + +### سناریو #1 + +تیم توسعه موبایل از `/api/articles/{articleId}/comments/{commentId}` برای مشاهده و پردازش فراداده کامنت‌ها بهره می‌برد. با شنود ترافیک اپلیکیشن موبایل، مهاجم در می‌یابد که داده مرتبط با نویسنده کامنت نیز بازگردانده می‌شود. این موضوع به این دلیل است که ‌‌پیاده‌سازی API از یک متد عمومی `toJSON()` برای سریالیزه کردن شیء `User` بهره می‌برد که این شی حاوی داده حساس PII می باشد. + +### سناریو #2 + +یک سیستم نظارتی مبتنی بر IoT به مدیران خود اجازه ایجاد کاربرانی با سطوح مجوز مختلف می‌نماید. یکی از مدیران یک حساب کاربری برای یک نیروی حفاظت فیزیکی (نگهبان) جدید می‌سازد که بر مبنای آن تنها امکان دسترسی به ساختمان‌های مشخصی بایستی وجود داشته باشد. به محض استفاده نگهبان مذبور از اپلیکیشن موبایل خود، یک فراخوانی API به سوی `/api/sites/111/cameras` روانه می‌شود تا اطلاعات مرتبط با دوربین‌های موجود را دریافت نموده و آنها را در دشبورد خود نمایش دهد. پاسخ، لیستی از جزئیات دوربین‌ها با فرمت زیر را در بردارد. `{"id":"xxx","live_access_token":"xxxx-bbbbb","building_id":"yyy"}`. +در حالیکه رابط گرافیکی کلاینت فقط دوربین‌هایی که نگهبان مذبور بایستی به آنها دسترسی داشته باشد را نشان می‌دهد، اما لیست کامل این دوربین‌ها در پاسخ API وجود دارد. + +## چگونه از ‌آسیب‌پذیری افشای مفرط داده پیشگیری کنیم؟ + +* عدم تکیه بر کلاینت در مساله فیلتر کردن داده حساس. +* بازبینی پاسخ دریافتی از API به منظور حصول اطمینان از آنکه فقط داده لازم و اصلی در آن نمایش داده می شود. +* پیش از افشا و در معرض دید عموم قراردادن یک API، مهندسین توسعه دهندگان Back-End بایستی از خود بپرسند: مصرف کننده و مخاطب این داده چه کسی است؟ +* اجتناب از استفاده از متدهای عمومی `to_json()` و `to_string()` و در عوض دستچین کردن تک تک ویژگی‌ها و مشخصه‌هایی که برای پاسخ ضروری هستند. +* طبقه بندی اطلاعات حساس و شخصی ذخیره شده در APIها و بازبینی تمامی فراخوانی‌های APIهایی که این اطلاعات را باز می‌گردانند به منظور کشف و شناسایی مواردی که ضعف امنیتی در پی دارند. +* بکارگیری یک مکانیزم اعتبارسنجی الگومحور برای بررسی اعتبار پاسخ‌ها بعنوان یک لایه امنیتی دیگر و همچنین تعریف و اعمال این مکانیزم بر روی داده بازگردانده شده تمامی APIها از جمله خطاها. + +## مراجع + +### خارجی + +* [CWE-213: Intentional Information Exposure][1] + +[1]: https://cwe.mitre.org/data/definitions/213.html diff --git a/2019/fa/src/0xa4-lack-of-resources-and-rate-limiting.md b/editions/2019/fa/0xa4-lack-of-resources-and-rate-limiting.md similarity index 96% rename from 2019/fa/src/0xa4-lack-of-resources-and-rate-limiting.md rename to editions/2019/fa/0xa4-lack-of-resources-and-rate-limiting.md index d32ed7ec8..20e12faa0 100644 --- a/2019/fa/src/0xa4-lack-of-resources-and-rate-limiting.md +++ b/editions/2019/fa/0xa4-lack-of-resources-and-rate-limiting.md @@ -1,77 +1,66 @@ -
    - -API4:2019 کمبود منابع و نبود محدودیت بر نرخ ارسال -=========================================== - -| عوامل تهدید/مسیر حمله | ضعف امنیتی | پیامد | -| - | - | - | -| API خاص: قابلیت بهره‌برداری**2** | میزان شیوع**3** : قابلیت تشخیص**3** | پیامد فنی**2** : خاص کسب و کار | -| بهره برداری از این آسیب‌پذیری نیاز به ارسال درخواست‌های ساده‌ای به سوی API دارد و به احراز هویت هم نیازی نیست. کافی است تعدادی درخواست هم‌زمان از یک ماشین و یا با استفاده از منابع رایانش ابری به سوی API ارسال گردد تا بتوان از این آسیب‌پذیری بهره برد. | یافتن APIهایی که محدودسازی نرخ ارسال را بکار نگرفته یا محدودیت‌های اعمال شده آنها ناکافی است، کار دشواری نیست. | بهره برداری از این آسیب‌پذیری می‌تواند منجر به بروز DoS شده، در نتیجه API را از پاسخ به درخواست‌ها باز دارد و یا حتی آن را از دسترس خارج نماید.| - -## آیا API از نظر کمبود منابع و نبود محدودیت بر نرخ ارسال ‌‌آسیب‌پذیر است؟ - -درخواست‌‌های ارسال شده به سوی API منابعی از قبیل پهنای باند شبکه، پردازنده، حافظه و فضای ذخیره‌سازی را مصرف می‌کنند. مقدار منابعی که برای پاسخگویی به یک درخواست صرف می‌شود عمدتا به ورودی‌‌های کاربر و منطق تجاری توابع API بستگی دارد. همچنین باید این موضوع را نیز درنظر داشت که درخواست‌‌های کلاینت‌‌های API مختلف برای دریافت منابع رقابت می‌کنند. -اگر دست‌کم یکی از محدودیت‌‌های زیر در سمت API به کلی اعمال نشده یا بطور نادرست (مثلا بیش از حد زیاد یا بیش از حد کم) ‌‌‌‌پیاده‌سازی شده باشد آنگاه API از منظر محدودیت یا کمبود نرخ ارسال، ‌‌آسیب‌پذیر خواهد بود: - -* اجرای محدودیت زمانی (time out) -* حداکثر میزان حافظه قابل تخصیص -* تعداد توصیف‌گر فایل‌‌ها -* تعداد پردازه‌‌ها -* اندازه محموله در درخواست‌‌ها (مثلا در هنگام آپلود) -* تعداد درخواست‌‌ها به ازای کلاینت یا منبع -* تعداد رکوردهایی که به ازای یک درخواست در یک صفحه نمایش داده می‌شوند. - - -## مثال‌‌هایی از سناریوهای حمله - -### سناریو #1 - -مهاجم از طریق ارسال یک درخواست POST به `/api/v1/images` اقدام به آپلود یک تصویر بزرگ می‌نماید. بعد از اتمام آپلود، API از روی تصویر آپلود شده تصاویرانگشتی متعددی با اندازه‌‌های مختلف ایجاد می نماید. به دلیل اندازه تصویر آپلودشده، حافظه‌ی دردسترس در خلال فرایند ایجاد تصاویر انگشتی تحت فشار قرار گرفته و API به وضعیت غیرپاسخگو می‌رسد. - -### سناریو #2 - -اپلیکیشنی لیست کاربران را در UI با محدودیت `200` کاربر در صفحه نمایش می‌دهد. لیست این کاربران از طربق ارسال پرس و جوی زیر از سرور دریافت می‌گردد: `/api/users?page=1&size=200`. در اینجا مهاجم می‌تواند با تغییر پارامتر `size` به `200 000`، مشکلاتی در عملکرد پایگاه داده پدید آورده و API را به وضعیت غیرپاسخگو برساند. در این حالت API قادر به پاسخگویی به هیچ درخواستی نخواهد بود (همان DoS). -همین سناریو را می‌توان به طریق مشابه برای ایجاد حملات سرریز Integer و سرریز Buffer استفاده نمود. - -## چگونه از ‌‌آسیب‌پذیری کمبود منابع و نبود محدودیت بر نرخ ارسال پیشگیری کنیم؟ - -* محدودسازی [حافظه][1]، [پردازنده][2]، [تعداد دفعات راه اندازی مجدد][3]، [توصیف‌گرهای فایل و پردازه‌‌ها][4] با استفاده از Docker. -* اعمال محدودیت بر تعداد دفعاتی که در یک زمان مشخص امکان فراخوانی API وجود دارد. -* پس از ردشدن کلاینت از آستانه مجاز، این موضوع به همراه زمان رفع محدودیت به کلاینت اطلاع داده شود. -* افزودن اعتبارسنجی سمت سرور برای بررسی پارامترهای موجود در بدنه درخواست‌‌ها و رشته‌‌های پرس و جو، خصوصا مواردی که به نحوی با تعداد رکوردهای نمایش داده شده در پاسخ ارتباط دارند. -* تعریف و اِعمال بیشینه اندازه داده (نظیر بیشینه طول برای رشته‌‌ها یا بیشینه تعداد عناصر در آرایه‌‌ها) در درخواست‌‌ها و محموله‌‌های ورودی. - -## مراجع - -
    - -### OWASP - -* [Blocking Brute Force Attacks][5] -* [Docker Cheat Sheet - Limit resources (memory, CPU, file descriptors, - processes, restarts)][6] -* [REST Assessment Cheat Sheet][7] - -
    - -### خارجی - -
    - -* [CWE-307: Improper Restriction of Excessive Authentication Attempts][8] -* [CWE-770: Allocation of Resources Without Limits or Throttling][9] -* “_Rate Limiting (Throttling)_” - [Security Strategies for Microservices-based - Application Systems][10], NIST - -[1]: https://docs.docker.com/config/containers/resource_constraints/#memory -[2]: https://docs.docker.com/config/containers/resource_constraints/#cpu -[3]: https://docs.docker.com/engine/reference/commandline/run/#restart-policies---restart -[4]: https://docs.docker.com/engine/reference/commandline/run/#set-ulimits-in-container---ulimit -[5]: https://www.owasp.org/index.php/Blocking_Brute_Force_Attacks -[6]: https://github.com/OWASP/CheatSheetSeries/blob/3a8134d792528a775142471b1cb14433b4fda3fb/cheatsheets/Docker_Security_Cheat_Sheet.md#rule-7---limit-resources-memory-cpu-file-descriptors-processes-restarts -[7]: https://github.com/OWASP/CheatSheetSeries/blob/3a8134d792528a775142471b1cb14433b4fda3fb/cheatsheets/REST_Assessment_Cheat_Sheet.md -[8]: https://cwe.mitre.org/data/definitions/307.html -[9]: https://cwe.mitre.org/data/definitions/770.html -[10]: https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-204-draft.pdf - - +# API4:2019 کمبود منابع و نبود محدودیت بر نرخ ارسال + +| عوامل تهدید/مسیر حمله | ضعف امنیتی | پیامد | +| - | - | - | +| API خاص: قابلیت بهره‌برداری**2** | میزان شیوع**3** : قابلیت تشخیص**3** | پیامد فنی**2** : خاص کسب و کار | +| بهره برداری از این آسیب‌پذیری نیاز به ارسال درخواست‌های ساده‌ای به سوی API دارد و به احراز هویت هم نیازی نیست. کافی است تعدادی درخواست هم‌زمان از یک ماشین و یا با استفاده از منابع رایانش ابری به سوی API ارسال گردد تا بتوان از این آسیب‌پذیری بهره برد. | یافتن APIهایی که محدودسازی نرخ ارسال را بکار نگرفته یا محدودیت‌های اعمال شده آنها ناکافی است، کار دشواری نیست. | بهره برداری از این آسیب‌پذیری می‌تواند منجر به بروز DoS شده، در نتیجه API را از پاسخ به درخواست‌ها باز دارد و یا حتی آن را از دسترس خارج نماید.| + +## آیا API از نظر کمبود منابع و نبود محدودیت بر نرخ ارسال ‌‌آسیب‌پذیر است؟ + +درخواست‌‌های ارسال شده به سوی API منابعی از قبیل پهنای باند شبکه، پردازنده، حافظه و فضای ذخیره‌سازی را مصرف می‌کنند. مقدار منابعی که برای پاسخگویی به یک درخواست صرف می‌شود عمدتا به ورودی‌‌های کاربر و منطق تجاری توابع API بستگی دارد. همچنین باید این موضوع را نیز درنظر داشت که درخواست‌‌های کلاینت‌‌های API مختلف برای دریافت منابع رقابت می‌کنند. +اگر دست‌کم یکی از محدودیت‌‌های زیر در سمت API به کلی اعمال نشده یا بطور نادرست (مثلا بیش از حد زیاد یا بیش از حد کم) ‌‌‌‌پیاده‌سازی شده باشد آنگاه API از منظر محدودیت یا کمبود نرخ ارسال، ‌‌آسیب‌پذیر خواهد بود: + +* اجرای محدودیت زمانی (time out) +* حداکثر میزان حافظه قابل تخصیص +* تعداد توصیف‌گر فایل‌‌ها +* تعداد پردازه‌‌ها +* اندازه محموله در درخواست‌‌ها (مثلا در هنگام آپلود) +* تعداد درخواست‌‌ها به ازای کلاینت یا منبع +* تعداد رکوردهایی که به ازای یک درخواست در یک صفحه نمایش داده می‌شوند. + + +## مثال‌‌هایی از سناریوهای حمله + +### سناریو #1 + +مهاجم از طریق ارسال یک درخواست POST به `/api/v1/images` اقدام به آپلود یک تصویر بزرگ می‌نماید. بعد از اتمام آپلود، API از روی تصویر آپلود شده تصاویرانگشتی متعددی با اندازه‌‌های مختلف ایجاد می نماید. به دلیل اندازه تصویر آپلودشده، حافظه‌ی دردسترس در خلال فرایند ایجاد تصاویر انگشتی تحت فشار قرار گرفته و API به وضعیت غیرپاسخگو می‌رسد. + +### سناریو #2 + +اپلیکیشنی لیست کاربران را در UI با محدودیت `200` کاربر در صفحه نمایش می‌دهد. لیست این کاربران از طربق ارسال پرس و جوی زیر از سرور دریافت می‌گردد: `/api/users?page=1&size=200`. در اینجا مهاجم می‌تواند با تغییر پارامتر `size` به `200 000`، مشکلاتی در عملکرد پایگاه داده پدید آورده و API را به وضعیت غیرپاسخگو برساند. در این حالت API قادر به پاسخگویی به هیچ درخواستی نخواهد بود (همان DoS). +همین سناریو را می‌توان به طریق مشابه برای ایجاد حملات سرریز Integer و سرریز Buffer استفاده نمود. + +## چگونه از ‌‌آسیب‌پذیری کمبود منابع و نبود محدودیت بر نرخ ارسال پیشگیری کنیم؟ + +* محدودسازی [حافظه][1]، [پردازنده][2]، [تعداد دفعات راه اندازی مجدد][3]، [توصیف‌گرهای فایل و پردازه‌‌ها][4] با استفاده از Docker. +* اعمال محدودیت بر تعداد دفعاتی که در یک زمان مشخص امکان فراخوانی API وجود دارد. +* پس از ردشدن کلاینت از آستانه مجاز، این موضوع به همراه زمان رفع محدودیت به کلاینت اطلاع داده شود. +* افزودن اعتبارسنجی سمت سرور برای بررسی پارامترهای موجود در بدنه درخواست‌‌ها و رشته‌‌های پرس و جو، خصوصا مواردی که به نحوی با تعداد رکوردهای نمایش داده شده در پاسخ ارتباط دارند. +* تعریف و اِعمال بیشینه اندازه داده (نظیر بیشینه طول برای رشته‌‌ها یا بیشینه تعداد عناصر در آرایه‌‌ها) در درخواست‌‌ها و محموله‌‌های ورودی. + +## مراجع + +### OWASP + +* [Blocking Brute Force Attacks][5] +* [Docker Cheat Sheet - Limit resources (memory, CPU, file descriptors, + processes, restarts)][6] +* [REST Assessment Cheat Sheet][7] + +### خارجی + +* [CWE-307: Improper Restriction of Excessive Authentication Attempts][8] +* [CWE-770: Allocation of Resources Without Limits or Throttling][9] +* “_Rate Limiting (Throttling)_” - [Security Strategies for Microservices-based + Application Systems][10], NIST + +[1]: https://docs.docker.com/config/containers/resource_constraints/#memory +[2]: https://docs.docker.com/config/containers/resource_constraints/#cpu +[3]: https://docs.docker.com/engine/reference/commandline/run/#restart-policies---restart +[4]: https://docs.docker.com/engine/reference/commandline/run/#set-ulimits-in-container---ulimit +[5]: https://www.owasp.org/index.php/Blocking_Brute_Force_Attacks +[6]: https://github.com/OWASP/CheatSheetSeries/blob/3a8134d792528a775142471b1cb14433b4fda3fb/cheatsheets/Docker_Security_Cheat_Sheet.md#rule-7---limit-resources-memory-cpu-file-descriptors-processes-restarts +[7]: https://github.com/OWASP/CheatSheetSeries/blob/3a8134d792528a775142471b1cb14433b4fda3fb/cheatsheets/REST_Assessment_Cheat_Sheet.md +[8]: https://cwe.mitre.org/data/definitions/307.html +[9]: https://cwe.mitre.org/data/definitions/770.html +[10]: https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-204-draft.pdf diff --git a/2019/fa/src/0xa5-broken-function-level-authorizaion.md b/editions/2019/fa/0xa5-broken-function-level-authorizaion.md similarity index 96% rename from 2019/fa/src/0xa5-broken-function-level-authorizaion.md rename to editions/2019/fa/0xa5-broken-function-level-authorizaion.md index d605037c3..3d952ef69 100644 --- a/2019/fa/src/0xa5-broken-function-level-authorizaion.md +++ b/editions/2019/fa/0xa5-broken-function-level-authorizaion.md @@ -1,78 +1,64 @@ -
    - -API5:2019 مجوزدهی نادرست در سطح توابع -============================================= - -| عوامل تهدید/مسیر حمله | ضعف امنیتی | پیامد | -| - | - | - | -| API خاص: قابلیت بهره‌برداری**2** | میزان شیوع**2** : قابلیت تشخیص**1** | پیامد فنی**2** : خاص کسب و کار | -| بهره برداری از این ‌‌آسیب‌پذیری یعنی ارسال فراخوانی‌های API درست توسط مهاجم به سوی API Endpoint در ارتباط با فراخوانی‌هایی که مهاجم مجوز آنها را ندارد. این Endpointها ممکن است در معرض دید کاربران ناشناس، بدون مجوز یا عادی قرار داشته باشند. برای مهاجم تشخیص وجود چنین نواقصی در API آسان تر است چرا که ساختارمندتر بوده و نحوه دسترسی آنها به توابع، قابل پیش بینی تر است (مثلا تغییر متد HTTP از GET به PUT یا تغییر رشته “users” در URL به “admins”). | کنترل‌های مجوزدهی برای توابع یا منابع غالبا در سطح پیکربندی یا کد مدیریت می شوند. بکارگیری کنترل‌های مناسب می‌تواند گیج کننده باشد چرا که اپلیکیشن‌های مدرن امروزی غالبا دارای انواع مختلفی از نقش‌ها و گروه‌ها و سلسله مراتب کاربری هستند (مثلا کاربران دارای بیش از یک نقش). | چنین مشکلاتی منجر به دسترسی مهاجم به توابع غیرمجاز می‌شود. در این صورت توابع مدیریتی از جمله اهداف کلیدی مهاجم خواهند بود. | - -## آیا API از نظر مجوزدهی نادرست در سطح توابع ‌‌آسیب‌پذیر است؟ - -بهترین راه یافتن مشکلات مجوزدهی در سطح توابع، تحلیل عمیق مکانیزم مجوزدهی با لحاظ کردن سلسله مراتب کاربران، نقش‌‌‌ها و گروهاه‌‌‌های متفاوت موجود در اپلیکیشن و پرسیدن پرسش‌‌‌های زیر است: - -* آیا کاربر عادی می‌تواند به توابع و نقاط مدیریتی در API دسترسی داشته باشد؟ -* آیا کاربری می‌تواند عمل حساسی که مجوز انجام آن را ندارد (نظیر ایجاد، تغییر یا حذف) را صرفا با تغییر متد HTTP (مثلا از `GET` به `DELETE`) انجام دهد؟ -* آیا کاربری از گروه X می‌تواند صرفا با حدس زدن URLهای توابع و پارامترهای آن به مسیری (نظیر `/api/v1/users/export_all`) که فقط باید برای کاربران گروه Y قابل مشاهده باشد دسترسی یابد؟ - -بایستی در نظر داشت که عادی یا مدیریتی بودن یک تابع در API (همان API Endpoint) صرفا بر مبنای مسیر URL تعیین نمی‌شود. - -در حالیکه توسعه دهندگان بیشتر تمایل دارند که توابع مدیریتی را ذیل یک مسیر نسبی معین مانند `api/admins` قرار دهند، اما بسیار دیده می شود که این توابع مدیریتی در کنار توابع عادی در مسیرهایی نظیر `api/users` قرار داده شده‌اند. - -## مثال‌‌‌هایی از سناریوهای حمله - -### سناریو #1 - -در خلال فرایند ثبت نام در یک اپلیکیشن که فقط به کاربران دعوت شده اجازه عضویت می‌دهد، اپلیکیشن موبایل، یک فراخوانی API به `GET /api/invites/{invite_guid}` می‌فرستد. پاسخ دریافتی فایل JSONی را دارا است که درون آن اطلاعات دعوتنامه‌‌‌ها شامل نقش کاربر و آدرس ایمیل وی دیده می‌شود. - -مهاجم درخواست مذبور را ضبط کرده و متد HTTP را به `POST /api/invites/new` تغییر می‌دهد. این تابع تنها بایستی از طریق کنسول مدیریت و برای ادمین‌‌‌ها قابل دسترسی باشد که بعلت عدم بکارگیری کنترل‌‌‌های صحیح مجوزدهی درسطح توابع اینگونه نیست. - -در گام بعد مهاجم از این مساله بهره برداری کرده و برای خود دعوتنامه‌ای جهت ساخت یک اکانت ادمین می‌فرستد: - -
    - -``` -POST /api/invites/new - -{“email”:”hugo@malicious.com”,”role”:”admin”} -``` - -
    - -### سناریو #2 - -یک API دارای تابعی است که فقط ادمین‌‌‌ها بایستی آن را ببینند - `GET /api/admin/v1/users/all`. این تابع در پاسخ جزئیات تمامی کاربران اپلیکیشن را برگردانده و کنترل‌‌‌های مجوزدهی در سطح توابع را نیز به درستی ‌‌‌‌پیاده‌سازی نکرده است. مهاجمی که با ساختار API آشنایی پیدا کرده، این مسیر را حدس زده و اطلاعات حساس تمامی کاربران اپلیکیشن را می‌رباید. - -## چگونه از ‌‌آسیب‌پذیری مجوزدهی نادرست در سطح توابع پیشگیری کنیم؟ - -ماژول مجوزدهی اپلیکیشن بایستی بطور یکپارچه توسط تمامی توابع اپلیکیشن فراخوانی شده و تحلیل آن نیز آسان باشد. همچنین در بیشتر مواقع، این روش حفاطتی توسط یک یا چند مولفه بیرونی و خارج از کد اصلی اپلیکیشن فراهم می‌شود. - -* مکانیزم (های) اعمال شده بایستی بطور پیشفرض کلیه دسترسی‌‌‌ها را Deny (رد) نموده و برای دسترسی به هر یک از توابع، مجوزخاص دسترسی نقش مربوطه را طلب نمایند. -* توابع API از منظر عیوب مجوزدهی در سطح تابع با درنظر گرفتن منطق اپلیکیشن و سلسله مراتب گروه‌‌‌های کاربری مورد بازبینی قرار گیرد. -* تمامی کنترلگرهای مدیریتی از یک کنترلگر مدیریتی انتزاعی که مجوزها را بر حسب نقش کاربر یا گروه پیاده‌سازی نموده، ارث بری داشته باشند. -* تمامی توابع مدیریتی درون یک کنترلگر عادی (غیرمدیریتی)، کنترل‌‌‌های مجوز مبتنی بر نقش کاربر یا گروه را بکارگیرند. - -## مراجع - -
    - -### OWASP - -* [OWASP Article on Forced Browsing][1] -* [OWASP Top 10 2013-A7-Missing Function Level Access Control][2] -* [OWASP Development Guide: Chapter on Authorization][3] - -
    - -### خارجی - -
    - -* [CWE-285: Improper Authorization][4] - -[1]: https://www.owasp.org/index.php/Forced_browsing -[2]: https://www.owasp.org/index.php/Top_10_2013-A7-Missing_Function_Level_Access_Control -[3]: https://www.owasp.org/index.php/Category:Access_Control -[4]: https://cwe.mitre.org/data/definitions/285.html - +# API5:2019 مجوزدهی نادرست در سطح توابع + +| عوامل تهدید/مسیر حمله | ضعف امنیتی | پیامد | +| - | - | - | +| API خاص: قابلیت بهره‌برداری**2** | میزان شیوع**2** : قابلیت تشخیص**1** | پیامد فنی**2** : خاص کسب و کار | +| بهره برداری از این ‌‌آسیب‌پذیری یعنی ارسال فراخوانی‌های API درست توسط مهاجم به سوی API Endpoint در ارتباط با فراخوانی‌هایی که مهاجم مجوز آنها را ندارد. این Endpointها ممکن است در معرض دید کاربران ناشناس، بدون مجوز یا عادی قرار داشته باشند. برای مهاجم تشخیص وجود چنین نواقصی در API آسان تر است چرا که ساختارمندتر بوده و نحوه دسترسی آنها به توابع، قابل پیش بینی تر است (مثلا تغییر متد HTTP از GET به PUT یا تغییر رشته “users” در URL به “admins”). | کنترل‌های مجوزدهی برای توابع یا منابع غالبا در سطح پیکربندی یا کد مدیریت می شوند. بکارگیری کنترل‌های مناسب می‌تواند گیج کننده باشد چرا که اپلیکیشن‌های مدرن امروزی غالبا دارای انواع مختلفی از نقش‌ها و گروه‌ها و سلسله مراتب کاربری هستند (مثلا کاربران دارای بیش از یک نقش). | چنین مشکلاتی منجر به دسترسی مهاجم به توابع غیرمجاز می‌شود. در این صورت توابع مدیریتی از جمله اهداف کلیدی مهاجم خواهند بود. | + +## آیا API از نظر مجوزدهی نادرست در سطح توابع ‌‌آسیب‌پذیر است؟ + +بهترین راه یافتن مشکلات مجوزدهی در سطح توابع، تحلیل عمیق مکانیزم مجوزدهی با لحاظ کردن سلسله مراتب کاربران، نقش‌‌‌ها و گروهاه‌‌‌های متفاوت موجود در اپلیکیشن و پرسیدن پرسش‌‌‌های زیر است: + +* آیا کاربر عادی می‌تواند به توابع و نقاط مدیریتی در API دسترسی داشته باشد؟ +* آیا کاربری می‌تواند عمل حساسی که مجوز انجام آن را ندارد (نظیر ایجاد، تغییر یا حذف) را صرفا با تغییر متد HTTP (مثلا از `GET` به `DELETE`) انجام دهد؟ +* آیا کاربری از گروه X می‌تواند صرفا با حدس زدن URLهای توابع و پارامترهای آن به مسیری (نظیر `/api/v1/users/export_all`) که فقط باید برای کاربران گروه Y قابل مشاهده باشد دسترسی یابد؟ + +بایستی در نظر داشت که عادی یا مدیریتی بودن یک تابع در API (همان API Endpoint) صرفا بر مبنای مسیر URL تعیین نمی‌شود. + +در حالیکه توسعه دهندگان بیشتر تمایل دارند که توابع مدیریتی را ذیل یک مسیر نسبی معین مانند `api/admins` قرار دهند، اما بسیار دیده می شود که این توابع مدیریتی در کنار توابع عادی در مسیرهایی نظیر `api/users` قرار داده شده‌اند. + +## مثال‌‌‌هایی از سناریوهای حمله + +### سناریو #1 + +در خلال فرایند ثبت نام در یک اپلیکیشن که فقط به کاربران دعوت شده اجازه عضویت می‌دهد، اپلیکیشن موبایل، یک فراخوانی API به `GET /api/invites/{invite_guid}` می‌فرستد. پاسخ دریافتی فایل JSONی را دارا است که درون آن اطلاعات دعوتنامه‌‌‌ها شامل نقش کاربر و آدرس ایمیل وی دیده می‌شود. + +مهاجم درخواست مذبور را ضبط کرده و متد HTTP را به `POST /api/invites/new` تغییر می‌دهد. این تابع تنها بایستی از طریق کنسول مدیریت و برای ادمین‌‌‌ها قابل دسترسی باشد که بعلت عدم بکارگیری کنترل‌‌‌های صحیح مجوزدهی درسطح توابع اینگونه نیست. + +در گام بعد مهاجم از این مساله بهره برداری کرده و برای خود دعوتنامه‌ای جهت ساخت یک اکانت ادمین می‌فرستد: + +``` +POST /api/invites/new + +{“email”:”hugo@malicious.com”,”role”:”admin”} +``` + +### سناریو #2 + +یک API دارای تابعی است که فقط ادمین‌‌‌ها بایستی آن را ببینند - `GET /api/admin/v1/users/all`. این تابع در پاسخ جزئیات تمامی کاربران اپلیکیشن را برگردانده و کنترل‌‌‌های مجوزدهی در سطح توابع را نیز به درستی ‌‌‌‌پیاده‌سازی نکرده است. مهاجمی که با ساختار API آشنایی پیدا کرده، این مسیر را حدس زده و اطلاعات حساس تمامی کاربران اپلیکیشن را می‌رباید. + +## چگونه از ‌‌آسیب‌پذیری مجوزدهی نادرست در سطح توابع پیشگیری کنیم؟ + +ماژول مجوزدهی اپلیکیشن بایستی بطور یکپارچه توسط تمامی توابع اپلیکیشن فراخوانی شده و تحلیل آن نیز آسان باشد. همچنین در بیشتر مواقع، این روش حفاطتی توسط یک یا چند مولفه بیرونی و خارج از کد اصلی اپلیکیشن فراهم می‌شود. + +* مکانیزم (های) اعمال شده بایستی بطور پیشفرض کلیه دسترسی‌‌‌ها را Deny (رد) نموده و برای دسترسی به هر یک از توابع، مجوزخاص دسترسی نقش مربوطه را طلب نمایند. +* توابع API از منظر عیوب مجوزدهی در سطح تابع با درنظر گرفتن منطق اپلیکیشن و سلسله مراتب گروه‌‌‌های کاربری مورد بازبینی قرار گیرد. +* تمامی کنترلگرهای مدیریتی از یک کنترلگر مدیریتی انتزاعی که مجوزها را بر حسب نقش کاربر یا گروه پیاده‌سازی نموده، ارث بری داشته باشند. +* تمامی توابع مدیریتی درون یک کنترلگر عادی (غیرمدیریتی)، کنترل‌‌‌های مجوز مبتنی بر نقش کاربر یا گروه را بکارگیرند. + +## مراجع + +### OWASP + +* [OWASP Article on Forced Browsing][1] +* [OWASP Top 10 2013-A7-Missing Function Level Access Control][2] +* [OWASP Development Guide: Chapter on Authorization][3] + +### خارجی + +* [CWE-285: Improper Authorization][4] + +[1]: https://www.owasp.org/index.php/Forced_browsing +[2]: https://www.owasp.org/index.php/Top_10_2013-A7-Missing_Function_Level_Access_Control +[3]: https://www.owasp.org/index.php/Category:Access_Control +[4]: https://cwe.mitre.org/data/definitions/285.html diff --git a/2019/fa/src/0xa6-mass-assignment.md b/editions/2019/fa/0xa6-mass-assignment.md similarity index 95% rename from 2019/fa/src/0xa6-mass-assignment.md rename to editions/2019/fa/0xa6-mass-assignment.md index 07e72bbfc..42122ae25 100644 --- a/2019/fa/src/0xa6-mass-assignment.md +++ b/editions/2019/fa/0xa6-mass-assignment.md @@ -1,79 +1,64 @@ -
    - -API6:2019 - تخصیص جمعی -=========================== - -| عوامل تهدید/مسیر حمله | ضعف امنیتی | پیامد | -| - | - | - | -| API خاص: قابلیت بهره‌برداری**2** | میزان شیوع**2** : قابلیت تشخیص**2** | پیامد فنی**2** : خاص کسب و کار | -| بهره برداری از این آسیب‌پذیری غالبا نیاز به فهم منطق تجاری، روابط مابین اشیا و ساختار API از سوی مهاجم دارد. بهره برداری از مقوله تخصیص جمعی در APIها ساده تر است چرا که در مرحله طراحی، پیاده‌سازی زیرین اپلیکیشن به همراه نام ویژگی‌های اشیا افشا می‌شود و در معرض دید عموم قرار می‌گیرد.| چارچوبهای جدید غالبا توسعه دهندگان را به استفاده از توابعی تشویق می‌کنند که بطور خودکار، ورودی‌های دریافتی از کلاینت را به متغیرهای کد و اشیاء داخلی آن پیوند می‌دهند. مهاجمین با سواستفاده از این متدلوژی می‌توانند به گونه ای اقدام به بروزرسانی یا بازنویسی ویژگی‌های اشیاء (داده) حساس نمایند که توسعه دهنده هیچگاه قصد افشای آن ویژگی‌ها را نداشته است. | بهره برداری از این ‌‌‌آسیب‌پذیری می‌تواند منجر به افزایش سطح دسترسی، دستکاری داده، عبور از مکانیزم‌های امنیتی و ... شود. | - -## آیا API از نظر تخصیص جمعی ‌‌‌آسیب‌پذیر است؟ - -اشیا در اپلیکیشن‌‌‌های مدرن می‌توانند ویژگی‌‌‌های متعددی داشته باشند. برخی از این ویژگی‌‌‌ها بایستی مستقیما توسط کلاینت قابل بروزرسانی باشند (مثلا `user.first_name` یا `user.address`) در حالی که کلاینت نباید بتواند سایر ویژگی‌‌‌ها را دستکاری نماید (مثلا پرچم `user.is_vip`). - -یک تابع درAPI اگر بطور خودکار پارامترهای کلاینت را بدون لحاظ کردن حساسیت و سطح افشای ویژگی‌‌‌های آن، مستقیما تبدیل به ویژگی‌‌‌های اشیای داخلی نماید، از منظر تخصیص جمعی ‌‌‌آسیب‌پذیر خواهد بود. این ‌‌‌آسیب‌پذیری به مهاجم اجازه می‌دهد تا بتواند ویژگی‌‌‌هایی از اشیا را که نباید به آنها دسترسی داشته باشد، بروزرسانی نماید. - -نمونه‌‌‌هایی از «ویژگی‌‌‌های حساس» عبارتند از: - -* **ویژگی‌‌‌های مرتبط با مجوزها**: پرچم‌‌‌هایی نظیر `user.is_admin` و `user.is_vip` فقط بایستی توسط ادمین‌‌‌ها تنظیم شوند. -* **ویژگی‌‌‌های وابسته به فرایند**: `user.cash` فقط باید بصورت داخلی و پس از تایید پرداخت بروزرسانی شود. -* **ویژگی‌‌‌های داخلی**: `article.created_time` فقط باید بصورت داخلی و توسط اپلیکیشن تنظیم گردد. - -## مثال‌‌‌هایی از سناریوهای حمله - -### سناریو #1 - -یک اپلیکیشن هم‌سفری به کاربر امکان ویرایش اطلاعات پایه‌ای پروفایل خود را می‌دهد. در خلال این فرایند، یک فراخوانی API به `PUT /api/v1/users/me` با شی مجاز JSON زیر فرستاده می‌شود: - -
    - -```json -{"user_name":"inons","age":24} -``` -
    - -اما درخواست `GET /api/v1/users/me` ویژگی اضافی credit_balance را نیز در خود دارد: - -
    - -```json -{"user_name":"inons","age":24,"credit_balance":10} -``` -
    - -در اینجا مهاجم درخواست اول را با محتوای مخرب زیر بازارسال می‌نماید: - -
    - -```json -{"user_name":"attacker","age":60,"credit_balance":99999} -``` -
    - -به دلیل وجود آسیب‌پذیری تخصیص جمعی در endpoint، مهاجم می‌تواند بدون انجام پرداخت اعتبار دریافت کند. - -### سناریو #2 - -یک پلتفرم اشتراک‌گذاری ویدئو به کاربران خود اجازه دانلود محتوا با فرمت‌‌‌های مختلفی را می‌دهد. مهاجم که در حال بررسی API است، در می‌یابد که `GET /api/v1/videos/{video_id}/meta_data` یک شیء JSON با ویژگی‌‌‌های ویدئو را باز می‌گرداند. یکی از این ویژگی‌‌‌ها، `"mp4_conversion_params”:”-v codec h264" ` است که نشان می‌دهد اپلیکیشن از یک دستور Shell برای تبدیل ویدئو بهره می‌برد. - -همچنین مهاجم متوجه می‌شود که `POST /api/v1/videos/new` در برابر تخصیص جمعی ‌‌‌آسیب‌پذیر بوده و به کلاینت اجازه می‌دهد که هریک از ویژگی‌‌‌های شیءویدئو را با به صورت دلخواه تنظیم نماید. در نتیجه مهاجم مقدار مخربی را به صورت `"mp4_conversion_params":"-v codec h264 && format C:/"` در قست ویژگی ویدئو وارد می‌کند که در نتیجه آن با دانلود ویدئو با فرمت MP4 توسط مهاجم حمله تزریق دستور Shell اجرا خواهد شد. - - -## چگونه از ‌‌‌آسیب‌پذیری تخصیص جمعی پیشگیری کنیم؟ - -* در صورت امکان، از بکارگیری توابعی که ورودی کلاینت را بصورت خودکار تبدیل به متغیرهای کد یا اشیای داخلی اپلیکیشن می کنند خودداری شود. -* تنها ویژگی‌‌‌های ضروری که باید توسط کلاینت بروزرسانی شوند در لیست سفید قرار گیرد. -* از قابلیت‌‌‌های تعبیه شده در اپلیکیشن‌‌‌ها برای قراردادن ویژگی‌‌‌هایی که تغییر آنها برای کلاینت غیرمجاز است در لیست سیاه استفاده شود. -* در صورت امکان، الگوهای واضح و بدون ابهام برای داده ورودی تعریف و اعمال شود. - -## مراجع - -### خارجی - -
    - -* [CWE-915: Improperly Controlled Modification of Dynamically-Determined Object Attributes][1] - -[1]: https://cwe.mitre.org/data/definitions/915.html - +# API6:2019 - تخصیص جمعی + +| عوامل تهدید/مسیر حمله | ضعف امنیتی | پیامد | +| - | - | - | +| API خاص: قابلیت بهره‌برداری**2** | میزان شیوع**2** : قابلیت تشخیص**2** | پیامد فنی**2** : خاص کسب و کار | +| بهره برداری از این آسیب‌پذیری غالبا نیاز به فهم منطق تجاری، روابط مابین اشیا و ساختار API از سوی مهاجم دارد. بهره برداری از مقوله تخصیص جمعی در APIها ساده تر است چرا که در مرحله طراحی، پیاده‌سازی زیرین اپلیکیشن به همراه نام ویژگی‌های اشیا افشا می‌شود و در معرض دید عموم قرار می‌گیرد.| چارچوبهای جدید غالبا توسعه دهندگان را به استفاده از توابعی تشویق می‌کنند که بطور خودکار، ورودی‌های دریافتی از کلاینت را به متغیرهای کد و اشیاء داخلی آن پیوند می‌دهند. مهاجمین با سواستفاده از این متدلوژی می‌توانند به گونه ای اقدام به بروزرسانی یا بازنویسی ویژگی‌های اشیاء (داده) حساس نمایند که توسعه دهنده هیچگاه قصد افشای آن ویژگی‌ها را نداشته است. | بهره برداری از این ‌‌‌آسیب‌پذیری می‌تواند منجر به افزایش سطح دسترسی، دستکاری داده، عبور از مکانیزم‌های امنیتی و ... شود. | + +## آیا API از نظر تخصیص جمعی ‌‌‌آسیب‌پذیر است؟ + +اشیا در اپلیکیشن‌‌‌های مدرن می‌توانند ویژگی‌‌‌های متعددی داشته باشند. برخی از این ویژگی‌‌‌ها بایستی مستقیما توسط کلاینت قابل بروزرسانی باشند (مثلا `user.first_name` یا `user.address`) در حالی که کلاینت نباید بتواند سایر ویژگی‌‌‌ها را دستکاری نماید (مثلا پرچم `user.is_vip`). + +یک تابع درAPI اگر بطور خودکار پارامترهای کلاینت را بدون لحاظ کردن حساسیت و سطح افشای ویژگی‌‌‌های آن، مستقیما تبدیل به ویژگی‌‌‌های اشیای داخلی نماید، از منظر تخصیص جمعی ‌‌‌آسیب‌پذیر خواهد بود. این ‌‌‌آسیب‌پذیری به مهاجم اجازه می‌دهد تا بتواند ویژگی‌‌‌هایی از اشیا را که نباید به آنها دسترسی داشته باشد، بروزرسانی نماید. + +نمونه‌‌‌هایی از «ویژگی‌‌‌های حساس» عبارتند از: + +* **ویژگی‌‌‌های مرتبط با مجوزها**: پرچم‌‌‌هایی نظیر `user.is_admin` و `user.is_vip` فقط بایستی توسط ادمین‌‌‌ها تنظیم شوند. +* **ویژگی‌‌‌های وابسته به فرایند**: `user.cash` فقط باید بصورت داخلی و پس از تایید پرداخت بروزرسانی شود. +* **ویژگی‌‌‌های داخلی**: `article.created_time` فقط باید بصورت داخلی و توسط اپلیکیشن تنظیم گردد. + +## مثال‌‌‌هایی از سناریوهای حمله + +### سناریو #1 + +یک اپلیکیشن هم‌سفری به کاربر امکان ویرایش اطلاعات پایه‌ای پروفایل خود را می‌دهد. در خلال این فرایند، یک فراخوانی API به `PUT /api/v1/users/me` با شی مجاز JSON زیر فرستاده می‌شود: + +```json +{"user_name":"inons","age":24} +``` + +اما درخواست `GET /api/v1/users/me` ویژگی اضافی credit_balance را نیز در خود دارد: + +```json +{"user_name":"inons","age":24,"credit_balance":10} +``` + +در اینجا مهاجم درخواست اول را با محتوای مخرب زیر بازارسال می‌نماید: + +```json +{"user_name":"attacker","age":60,"credit_balance":99999} +``` + +به دلیل وجود آسیب‌پذیری تخصیص جمعی در endpoint، مهاجم می‌تواند بدون انجام پرداخت اعتبار دریافت کند. + +### سناریو #2 + +یک پلتفرم اشتراک‌گذاری ویدئو به کاربران خود اجازه دانلود محتوا با فرمت‌‌‌های مختلفی را می‌دهد. مهاجم که در حال بررسی API است، در می‌یابد که `GET /api/v1/videos/{video_id}/meta_data` یک شیء JSON با ویژگی‌‌‌های ویدئو را باز می‌گرداند. یکی از این ویژگی‌‌‌ها، `"mp4_conversion_params”:”-v codec h264" ` است که نشان می‌دهد اپلیکیشن از یک دستور Shell برای تبدیل ویدئو بهره می‌برد. + +همچنین مهاجم متوجه می‌شود که `POST /api/v1/videos/new` در برابر تخصیص جمعی ‌‌‌آسیب‌پذیر بوده و به کلاینت اجازه می‌دهد که هریک از ویژگی‌‌‌های شیءویدئو را با به صورت دلخواه تنظیم نماید. در نتیجه مهاجم مقدار مخربی را به صورت `"mp4_conversion_params":"-v codec h264 && format C:/"` در قست ویژگی ویدئو وارد می‌کند که در نتیجه آن با دانلود ویدئو با فرمت MP4 توسط مهاجم حمله تزریق دستور Shell اجرا خواهد شد. + + +## چگونه از ‌‌‌آسیب‌پذیری تخصیص جمعی پیشگیری کنیم؟ + +* در صورت امکان، از بکارگیری توابعی که ورودی کلاینت را بصورت خودکار تبدیل به متغیرهای کد یا اشیای داخلی اپلیکیشن می کنند خودداری شود. +* تنها ویژگی‌‌‌های ضروری که باید توسط کلاینت بروزرسانی شوند در لیست سفید قرار گیرد. +* از قابلیت‌‌‌های تعبیه شده در اپلیکیشن‌‌‌ها برای قراردادن ویژگی‌‌‌هایی که تغییر آنها برای کلاینت غیرمجاز است در لیست سیاه استفاده شود. +* در صورت امکان، الگوهای واضح و بدون ابهام برای داده ورودی تعریف و اعمال شود. + +## مراجع + +### خارجی + +* [CWE-915: Improperly Controlled Modification of Dynamically-Determined Object Attributes][1] + +[1]: https://cwe.mitre.org/data/definitions/915.html diff --git a/2019/fa/src/0xa7-security-misconfiguration.md b/editions/2019/fa/0xa7-security-misconfiguration.md similarity index 96% rename from 2019/fa/src/0xa7-security-misconfiguration.md rename to editions/2019/fa/0xa7-security-misconfiguration.md index 01b810cf1..040c25aaf 100644 --- a/2019/fa/src/0xa7-security-misconfiguration.md +++ b/editions/2019/fa/0xa7-security-misconfiguration.md @@ -1,97 +1,83 @@ -
    - -API7:2019 پیکربندی امنیتی نادرست -================================= - -|عوامل تهدید / مسیر حمله | ضعف امنیتی | پیامد | -| - | - | - | -| API خاص: قابلیت بهره‌برداری**3** | میزان شیوع**3** : قابلیت تشخیص**3** | پیامد فنی**2** : خاص کسب و کار | -| مهاجمین غالبا در تلاش برای یافتن حفره‌های وصله نشده، توابع رایج یا فایل‌ها و مسیرهای محافظت نشده به منظور دسترسی غیرمجاز به سیستم هستند.| پیکربندی امنیتی نادرست می‌تواند در هر سطحی از API، از سطح شبکه تا سطح اپلیکشن روی دهد. ابزارهای خودکاری وجود دارند که فرایند تشخیص و بهره برداری از پیکربندی‌های نادرست نظیر تشخیص سرویس‌های غیرضروری را انجام می‌دهند. | پیکربندی امنیتی نادرست نه تنها می‌تواند اطلاعات حساس کاربر را افشا کند بلکه جزئیاتی از سیستم که ممکن است به از دست رفتن کامل سرور منجر شود را نیز در معرض خطر قرار می‌دهد. - -## آیا API از نظر پیکربندی امنیتی نادرست ‌‌‌آسیب‌پذیر است؟ - -از منظر پیکربندی امنیتی نادرست api آسیب پذیر است اگر: - -* ایمن سازی امنیتی مناسب در هر قسمت از پشته اپلیکیشن رعایت نشده یا اپلیکیشن مجوزهای با پیکربندی نادرست روی سرویس‌‌‌‌های ابری داشته باشد. -* جدیدترین وصله‌‌‌‌های امنیتی نصب نشده و سیستم‌‌‌‌ها کاملا بروز نباشند. -* ویژگی غیرضروری (نظیر افعال اضافی HTTP) فعال باشند. -* امنیت لایه انتقال (TLS) غیرفعال باشد. -* دستورات و الزامات امنیتی (نظیر [سرایندهای امنیتی][1]) به سوی کلاینت ارسال نشوند. -* خط مشی اشتراک متقابل منابع (CORS ) وجود نداشته یا به درستی ‌پیاده‌سازی نشده باشد. -* پیام‌‌‌‌های خطا ردپای پشته یا اطلاعات حساس دیگر را افشا نمایند. - -## مثال‌هایی از سناریوهای حمله - -### سناریو #1 - -مهاجم فایل `.bash_history` را (که دستورات مورد استفاده تیم DevOps برای دسترسی به API را در خود دارد) در مسیر root سرور می‌یابد: - -
    - -``` -$ curl -X GET 'https://api.server/endpoint/' -H 'authorization: Basic Zm9vOmJhcg==' -``` -
    - -همچنین مهاجم خواهد توانست توابعی از API که تنها توسط تیم DevOps مورد استفاده قرارگرفته و مستند نشده‌اند را نیز بیابد. - - -### سناریو #2 - -برای هدف قراردادن یک سرویس مشخص، مهاجم از موتورهای جستجوی رایج برای یافتن کامپیوترهایی که مستقیما توسط اینترنت قابل دسترسی هستند بهره می‌برد. در نتیجه، مهاجم میزبانی را می‌یابد که از یک سیستم مدیریت پایگاه داده محبوب استفاده نموده و اقدام به شنود روی پورت پیشفرض آن dbms می‌کند. از آنجا که میزبان از پیکربندی پیشفرض (که احراز هویت را بطور پیشفرض غیرفعال نموده) استفاده کرده، مهاجم می‌تواند به میلیون‌‌‌‌ها رکورد حاوی PII، داده‌‌‌‌های احرازهویت و ... دست یابد. - -### سناریو #3 - -مهاجم با بررسی ترافیک یک اپلیکیشن موبایل متوجه می‌شود که تمامی ترافیک HTTP بر بستر یک پروتکل ایمن (نظیر TLS) منتقل نمی‌شود و این موضوع خصوصا در زمان دانلود تصاویر پروفایل صدق می‌کند. از آنجا که تعامل کاربر با اپلیکیشن دودویی است، علیرغم انتقال ترافیک API بر بستر پروتکلی ایمن، مهاجم خواهد توانست الگویی را در اندازه پاسخ API شناسایی نموده و از آن برای رهگیری ترجیحات کاربر در خصوص محتوای ارائه شده به اپلیکیشن (مثلا تصاویر پروفایل) بهره ببرد. - - -## چگونه از ‌‌‌آسیب‌پذیری پیکربندی امنیتی نادرست پیشگیری کنیم؟ - -چرخه حیات API بایستی شامل موارد زیر باشد: - -* فرایندی تکرار شونده برای ایمن سازی API که منجر به ‌پیاده‌سازی سریع و آسان یک محیط ایمن شود. -* فرایندی برای بازبینی و بروزرسانی پیکربندی‌‌‌‌ها در سراسر پشته API؛ این بازبینی بایستی موارد از جمله بازبینی هماهنگی بین فایل‌‌‌‌ها، مولفه‌‌‌‌های API و سرویس‌‌‌‌های ابری (نظیر مجوزهای باکت‌‌‌‌های S3) را دربرگیرد. -* برقراری یک کانال ارتباطی ایمن برای دسترسی تمامی تعاملات API به دارایی‌‌‌‌های ایستا (نظیر تصاویر). -* خودکار جهت ارزیابی پیوسته و مداوم اثربخشی پیکربندی و تنظیمات اعمال شده در سراسر محیط API و اپلیکیشن. - -بعلاوه: - -* برای جلوگیری از ارسال رهگیری رویدادهای استثنا و سایر داده‌‌‌‌های ارزشمند به مهاجم، در صورت امکان برای تمامی پاسخ‌‌‌‌های API (از جمله خطاها) الگوهای محموله مشخص تعریف و اعمال گردد. -* حصول اطمینان از اینکه API فقط به افعال HTTP مدنظر توسعه دهنده پاسخ می دهد و غیرفعال کردن سایر افعال (نظیر `HEAD`). -* APIهایی که انتظار می‌رود دسترسی به آنها از طریق کلاینت‌‌‌‌های مبتنی بر مرورگر (مثلا فرانت WebApp) باشد، بایستی خط مشی CORS مناسب را بکار گیرند. - - -## مراجع - -
    - -### OWASP - -* [OWASP Secure Headers Project][1] -* [OWASP Testing Guide: Configuration Management][2] -* [OWASP Testing Guide: Testing for Error Codes][3] -* [OWASP Testing Guide: Test Cross Origin Resource Sharing][9] - -
    - -### خارجی - -
    - -* [CWE-2: Environmental Security Flaws][4] -* [CWE-16: Configuration][5] -* [CWE-388: Error Handling][6] -* [Guide to General Server Security][7], NIST -* [Let’s Encrypt: a free, automated, and open Certificate Authority][8] - -[1]: https://www.owasp.org/index.php/OWASP_Secure_Headers_Project -[2]: https://www.owasp.org/index.php/Testing_for_configuration_management -[3]: https://www.owasp.org/index.php/Testing_for_Error_Code_(OTG-ERR-001) -[4]: https://cwe.mitre.org/data/definitions/2.html -[5]: https://cwe.mitre.org/data/definitions/16.html -[6]: https://cwe.mitre.org/data/definitions/388.html -[7]: https://csrc.nist.gov/publications/detail/sp/800-123/final -[8]: https://letsencrypt.org/ -[9]: https://www.owasp.org/index.php/Test_Cross_Origin_Resource_Sharing_(OTG-CLIENT-007) - - +# API7:2019 پیکربندی امنیتی نادرست + +|عوامل تهدید / مسیر حمله | ضعف امنیتی | پیامد | +| - | - | - | +| API خاص: قابلیت بهره‌برداری**3** | میزان شیوع**3** : قابلیت تشخیص**3** | پیامد فنی**2** : خاص کسب و کار | +| مهاجمین غالبا در تلاش برای یافتن حفره‌های وصله نشده، توابع رایج یا فایل‌ها و مسیرهای محافظت نشده به منظور دسترسی غیرمجاز به سیستم هستند.| پیکربندی امنیتی نادرست می‌تواند در هر سطحی از API، از سطح شبکه تا سطح اپلیکشن روی دهد. ابزارهای خودکاری وجود دارند که فرایند تشخیص و بهره برداری از پیکربندی‌های نادرست نظیر تشخیص سرویس‌های غیرضروری را انجام می‌دهند. | پیکربندی امنیتی نادرست نه تنها می‌تواند اطلاعات حساس کاربر را افشا کند بلکه جزئیاتی از سیستم که ممکن است به از دست رفتن کامل سرور منجر شود را نیز در معرض خطر قرار می‌دهد. + +## آیا API از نظر پیکربندی امنیتی نادرست ‌‌‌آسیب‌پذیر است؟ + +از منظر پیکربندی امنیتی نادرست api آسیب پذیر است اگر: + +* ایمن سازی امنیتی مناسب در هر قسمت از پشته اپلیکیشن رعایت نشده یا اپلیکیشن مجوزهای با پیکربندی نادرست روی سرویس‌‌‌‌های ابری داشته باشد. +* جدیدترین وصله‌‌‌‌های امنیتی نصب نشده و سیستم‌‌‌‌ها کاملا بروز نباشند. +* ویژگی غیرضروری (نظیر افعال اضافی HTTP) فعال باشند. +* امنیت لایه انتقال (TLS) غیرفعال باشد. +* دستورات و الزامات امنیتی (نظیر [سرایندهای امنیتی][1]) به سوی کلاینت ارسال نشوند. +* خط مشی اشتراک متقابل منابع (CORS ) وجود نداشته یا به درستی ‌پیاده‌سازی نشده باشد. +* پیام‌‌‌‌های خطا ردپای پشته یا اطلاعات حساس دیگر را افشا نمایند. + +## مثال‌هایی از سناریوهای حمله + +### سناریو #1 + +مهاجم فایل `.bash_history` را (که دستورات مورد استفاده تیم DevOps برای دسترسی به API را در خود دارد) در مسیر root سرور می‌یابد: + +``` +$ curl -X GET 'https://api.server/endpoint/' -H 'authorization: Basic Zm9vOmJhcg==' +``` + +همچنین مهاجم خواهد توانست توابعی از API که تنها توسط تیم DevOps مورد استفاده قرارگرفته و مستند نشده‌اند را نیز بیابد. + + +### سناریو #2 + +برای هدف قراردادن یک سرویس مشخص، مهاجم از موتورهای جستجوی رایج برای یافتن کامپیوترهایی که مستقیما توسط اینترنت قابل دسترسی هستند بهره می‌برد. در نتیجه، مهاجم میزبانی را می‌یابد که از یک سیستم مدیریت پایگاه داده محبوب استفاده نموده و اقدام به شنود روی پورت پیشفرض آن dbms می‌کند. از آنجا که میزبان از پیکربندی پیشفرض (که احراز هویت را بطور پیشفرض غیرفعال نموده) استفاده کرده، مهاجم می‌تواند به میلیون‌‌‌‌ها رکورد حاوی PII، داده‌‌‌‌های احرازهویت و ... دست یابد. + +### سناریو #3 + +مهاجم با بررسی ترافیک یک اپلیکیشن موبایل متوجه می‌شود که تمامی ترافیک HTTP بر بستر یک پروتکل ایمن (نظیر TLS) منتقل نمی‌شود و این موضوع خصوصا در زمان دانلود تصاویر پروفایل صدق می‌کند. از آنجا که تعامل کاربر با اپلیکیشن دودویی است، علیرغم انتقال ترافیک API بر بستر پروتکلی ایمن، مهاجم خواهد توانست الگویی را در اندازه پاسخ API شناسایی نموده و از آن برای رهگیری ترجیحات کاربر در خصوص محتوای ارائه شده به اپلیکیشن (مثلا تصاویر پروفایل) بهره ببرد. + + +## چگونه از ‌‌‌آسیب‌پذیری پیکربندی امنیتی نادرست پیشگیری کنیم؟ + +چرخه حیات API بایستی شامل موارد زیر باشد: + +* فرایندی تکرار شونده برای ایمن سازی API که منجر به ‌پیاده‌سازی سریع و آسان یک محیط ایمن شود. +* فرایندی برای بازبینی و بروزرسانی پیکربندی‌‌‌‌ها در سراسر پشته API؛ این بازبینی بایستی موارد از جمله بازبینی هماهنگی بین فایل‌‌‌‌ها، مولفه‌‌‌‌های API و سرویس‌‌‌‌های ابری (نظیر مجوزهای باکت‌‌‌‌های S3) را دربرگیرد. +* برقراری یک کانال ارتباطی ایمن برای دسترسی تمامی تعاملات API به دارایی‌‌‌‌های ایستا (نظیر تصاویر). +* خودکار جهت ارزیابی پیوسته و مداوم اثربخشی پیکربندی و تنظیمات اعمال شده در سراسر محیط API و اپلیکیشن. + +بعلاوه: + +* برای جلوگیری از ارسال رهگیری رویدادهای استثنا و سایر داده‌‌‌‌های ارزشمند به مهاجم، در صورت امکان برای تمامی پاسخ‌‌‌‌های API (از جمله خطاها) الگوهای محموله مشخص تعریف و اعمال گردد. +* حصول اطمینان از اینکه API فقط به افعال HTTP مدنظر توسعه دهنده پاسخ می دهد و غیرفعال کردن سایر افعال (نظیر `HEAD`). +* APIهایی که انتظار می‌رود دسترسی به آنها از طریق کلاینت‌‌‌‌های مبتنی بر مرورگر (مثلا فرانت WebApp) باشد، بایستی خط مشی CORS مناسب را بکار گیرند. + + +## مراجع + +### OWASP + +* [OWASP Secure Headers Project][1] +* [OWASP Testing Guide: Configuration Management][2] +* [OWASP Testing Guide: Testing for Error Codes][3] +* [OWASP Testing Guide: Test Cross Origin Resource Sharing][9] + +### خارجی + +* [CWE-2: Environmental Security Flaws][4] +* [CWE-16: Configuration][5] +* [CWE-388: Error Handling][6] +* [Guide to General Server Security][7], NIST +* [Let’s Encrypt: a free, automated, and open Certificate Authority][8] + +[1]: https://www.owasp.org/index.php/OWASP_Secure_Headers_Project +[2]: https://www.owasp.org/index.php/Testing_for_configuration_management +[3]: https://www.owasp.org/index.php/Testing_for_Error_Code_(OTG-ERR-001) +[4]: https://cwe.mitre.org/data/definitions/2.html +[5]: https://cwe.mitre.org/data/definitions/16.html +[6]: https://cwe.mitre.org/data/definitions/388.html +[7]: https://csrc.nist.gov/publications/detail/sp/800-123/final +[8]: https://letsencrypt.org/ +[9]: https://www.owasp.org/index.php/Test_Cross_Origin_Resource_Sharing_(OTG-CLIENT-007) diff --git a/2019/fa/src/0xa8-injections.md b/editions/2019/fa/0xa8-injections.md similarity index 93% rename from 2019/fa/src/0xa8-injections.md rename to editions/2019/fa/0xa8-injections.md index 3224c30e6..d9cc8e931 100644 --- a/2019/fa/src/0xa8-injections.md +++ b/editions/2019/fa/0xa8-injections.md @@ -1,122 +1,88 @@ -
    - -API8:2019 تزریق ورودی‌های مخرب -============================== - - - -|عوامل تهدید / مسیر حمله | ضعف امنیتی | پیامد | -| - | - | - | -| API خاص: قابلیت بهره‌برداری**3** | میزان شیوع**2** : قابلیت تشخیص**3** | پیامد فنی**3** : خاص کسب و کار | -| مهاجمین تلاش می‌کنند تا هرچه مسیر‌ برای تزریق (از جمله، ورودی‌های مستقیم، متغییرها و سرویس‌های یکپارچه) وجود دارد را با داده‌های مخرب پر کنند و انتظار دارند این اطلاعات بدست لایه مفسر برسد.| وجود ‌آسیب‌پذیری تزریق ورودی‌های مخرب، امری متداول بوده و معمولا در پرس و جو‌های SQL، LDAP یا NoSQL، دستورات سیستم عامل، تجزیه کنندگان XML و ORM یافت می‌شود. این نقص‌ها به سادگی در زمان بازبینی کد منبع قابل کشف می‌باشند. مهاجمین نیز برای این منظور از اسکنرها و Fuzzerها استفاده می‌کنند. | ‌آسیب‌پذیری تزریق ورودی‌های مخرب می‌تواند منجر به افشای اطلاعات و یا از دست رفتن اطلاعات شود. همچنین ممکن است این ضعف منجر به اختلال در سرویس‌دهی شده و یا حتی باعث از دست رفتن کامل دسترسی میزبان شود. - -## آیا API از نظر نقص تزریق ورودی‌های مخرب آسیب‌پذیر است؟ - -از منظر نقصِ تزریق ورودی‌های مخرب API ‌آسیب‌پذیر است اگر: - -* اطلاعات وارد شده توسط کاربر توسط API اعتبار سنجی، فیلتر یا پاکسازی نشود. -* اطلاعات وارد شده توسط کاربر به صورت مستقیم استفاده شده و یا به انواع دستورات پرس و جو (SQL یا NoSQL یا LDAP) یا دستورات سیستم عامل، تجزیه‌کنندگان XML، ORM یا ORM افزوده شود. -* اطلاعات دریافت شده از سیستم‌های خارجی توسط API اعتبار سنجی، فیلتر یا پاکسازی نشود. - - - -## مثال‌هایی از سناریوهای حمله - -### سناریو #1 - -میان‌افزار یک دستگاه کنترل (فرزندان) توسط والدین تابعی را در مسیر `/api/CONFIG/restore` ارائه می‌کند، که انتظار دارد مقدار appId ارسال شده به سمت آن، دارای مقادیر چند متغیره باشد. با استفاده از یک دیکامپایلر، مهاجم در می‌یابد مقدار appId بدون هیچ‌گونه تغییر یا پاکسازی‌ به یک فراخوانی سیستمی ارسال می‌شود. - -
    - -``` -snprintf(cmd, 128, "%srestore_backup.sh /tmp/postfile.bin %s %d", - "/mnt/shares/usr/bin/scripts/", appid, 66); -system(cmd); -``` - -
    - -دستور زیر به مهاجم این امکان را می‌دهد تا هر دستگاهی با این میان افزار ‌آسیب‌پذیر را خاموش کند. - -
    - -``` -$ curl -k "https://${deviceIP}:4567/api/CONFIG/restore" -F 'appid=$(/etc/pod/power_down.sh)' -``` -
    - - - - -### سناریو #2 - -سامانه تحت وب ساده‌ای با عملکرد‌های اولیه CRUD ، برای انجام عملیات‌های رزرو وجود دارد. مهاجم موفق به شناسایی تزریق NoSQL از طریق متغیر `bookingId` در رشته پرس و جو و در درخواست حذف رزرو شده است. درخواست مذکور شبیه به `DELETE /api/bookings?bookingId=678` می‌باشد. - -سرور API از تابع زیر برای رسیدگی کردن به درخواست‌های حذف استفاده می‌کند: - -
    - -```javascript -router.delete('/bookings', async function (req, res, next) { - try { - const deletedBooking = await Bookings.findOneAndRemove({'_id' : req.query.bookingId}); - res.status(200); - } catch (err) { - res.status(400).json({error: 'Unexpected error occured while processing a request'}); - } -}); -``` -
    - -مانند آنچه در زیر مشاهده می‌کنید، مهاجم پس از رهگیری درخواست و تغییر مقدار `bookingId` استفاده شده در رشته پرس و جو، می‌تواند رزرو انجام شده توسط کاربر دیگری را حذف نماید. - -
    - -``` -DELETE /api/bookings?bookingId[$ne]=678 -``` - -
    - -## چگونه از آسیب‌پذیری تزریق ورودی‌های مخرب پیشگیری کنیم؟ - -جلوگیری از ‌آسیب‌پذیری تزریق ورودی‌های مخرب، نیازمند جداسازی اطلاعات از دستورات و پرس و جو‌ها می‌باشد. - -* داده‌ها باید توسط یک کتابخانه پایدار، فعال و قابل اطمینان اعتبار سنجی شود. -* تمامی اطلاعات وارد شده توسط کاربران و دیگر سیستم‌های یکپارچه باید اعتبار سنجی، فیلتر یا پاکسازی شود. -* کاراکترهای خاص باید توسط قوانین مشخص برای مفسران نهایی تغییر داده شود. -* همواره تعداد رکوردهای بازگردانده شده باید محدود شود تا در صورت وجود نقص تزریق ورودی‌های مخرب، از افشای انبوه اطلاعات جلوگیری شود. -* داده‌های ورودی باید توسط فیلترهای مناسب اعتبار سنجی شود تا تنها مقادیر معتبر برای هر پارامتر ورودی مجاز به وارد شدن باشند. -* برای تمامی متغییر‌های رشته‌ای، نوع داده و الگوی سخت‌گیرانه‌ای تعریف شود. - - - -## مراجع - -
    - -### OWASP - -* [OWASP Injection Flaws][1] -* [SQL Injection][2] -* [NoSQL Injection Fun with Objects and Arrays][3] -* [Command Injection][4] - -
    - -### خارجی - -
    - -* [CWE-77: Command Injection][5] -* [CWE-89: SQL Injection][6] - -[1]: https://www.owasp.org/index.php/Injection_Flaws -[2]: https://www.owasp.org/index.php/SQL_Injection -[3]: https://www.owasp.org/images/e/ed/GOD16-NOSQL.pdf -[4]: https://www.owasp.org/index.php/Command_Injection -[5]: https://cwe.mitre.org/data/definitions/77.html -[6]: https://cwe.mitre.org/data/definitions/89.html - - - +# API8:2019 تزریق ورودی‌های مخرب + +|عوامل تهدید / مسیر حمله | ضعف امنیتی | پیامد | +| - | - | - | +| API خاص: قابلیت بهره‌برداری**3** | میزان شیوع**2** : قابلیت تشخیص**3** | پیامد فنی**3** : خاص کسب و کار | +| مهاجمین تلاش می‌کنند تا هرچه مسیر‌ برای تزریق (از جمله، ورودی‌های مستقیم، متغییرها و سرویس‌های یکپارچه) وجود دارد را با داده‌های مخرب پر کنند و انتظار دارند این اطلاعات بدست لایه مفسر برسد.| وجود ‌آسیب‌پذیری تزریق ورودی‌های مخرب، امری متداول بوده و معمولا در پرس و جو‌های SQL، LDAP یا NoSQL، دستورات سیستم عامل، تجزیه کنندگان XML و ORM یافت می‌شود. این نقص‌ها به سادگی در زمان بازبینی کد منبع قابل کشف می‌باشند. مهاجمین نیز برای این منظور از اسکنرها و Fuzzerها استفاده می‌کنند. | ‌آسیب‌پذیری تزریق ورودی‌های مخرب می‌تواند منجر به افشای اطلاعات و یا از دست رفتن اطلاعات شود. همچنین ممکن است این ضعف منجر به اختلال در سرویس‌دهی شده و یا حتی باعث از دست رفتن کامل دسترسی میزبان شود. + +## آیا API از نظر نقص تزریق ورودی‌های مخرب آسیب‌پذیر است؟ + +از منظر نقصِ تزریق ورودی‌های مخرب API ‌آسیب‌پذیر است اگر: + +* اطلاعات وارد شده توسط کاربر توسط API اعتبار سنجی، فیلتر یا پاکسازی نشود. +* اطلاعات وارد شده توسط کاربر به صورت مستقیم استفاده شده و یا به انواع دستورات پرس و جو (SQL یا NoSQL یا LDAP) یا دستورات سیستم عامل، تجزیه‌کنندگان XML، ORM یا ORM افزوده شود. +* اطلاعات دریافت شده از سیستم‌های خارجی توسط API اعتبار سنجی، فیلتر یا پاکسازی نشود. + + + +## مثال‌هایی از سناریوهای حمله + +### سناریو #1 + +میان‌افزار یک دستگاه کنترل (فرزندان) توسط والدین تابعی را در مسیر `/api/CONFIG/restore` ارائه می‌کند، که انتظار دارد مقدار appId ارسال شده به سمت آن، دارای مقادیر چند متغیره باشد. با استفاده از یک دیکامپایلر، مهاجم در می‌یابد مقدار appId بدون هیچ‌گونه تغییر یا پاکسازی‌ به یک فراخوانی سیستمی ارسال می‌شود. + +``` +snprintf(cmd, 128, "%srestore_backup.sh /tmp/postfile.bin %s %d", + "/mnt/shares/usr/bin/scripts/", appid, 66); +system(cmd); +``` + +دستور زیر به مهاجم این امکان را می‌دهد تا هر دستگاهی با این میان افزار ‌آسیب‌پذیر را خاموش کند. + +``` +$ curl -k "https://${deviceIP}:4567/api/CONFIG/restore" -F 'appid=$(/etc/pod/power_down.sh)' +``` + +### سناریو #2 + +سامانه تحت وب ساده‌ای با عملکرد‌های اولیه CRUD ، برای انجام عملیات‌های رزرو وجود دارد. مهاجم موفق به شناسایی تزریق NoSQL از طریق متغیر `bookingId` در رشته پرس و جو و در درخواست حذف رزرو شده است. درخواست مذکور شبیه به `DELETE /api/bookings?bookingId=678` می‌باشد. + +سرور API از تابع زیر برای رسیدگی کردن به درخواست‌های حذف استفاده می‌کند: + +```javascript +router.delete('/bookings', async function (req, res, next) { + try { + const deletedBooking = await Bookings.findOneAndRemove({'_id' : req.query.bookingId}); + res.status(200); + } catch (err) { + res.status(400).json({error: 'Unexpected error occured while processing a request'}); + } +}); +``` +مانند آنچه در زیر مشاهده می‌کنید، مهاجم پس از رهگیری درخواست و تغییر مقدار `bookingId` استفاده شده در رشته پرس و جو، می‌تواند رزرو انجام شده توسط کاربر دیگری را حذف نماید. + +``` +DELETE /api/bookings?bookingId[$ne]=678 +``` + +## چگونه از آسیب‌پذیری تزریق ورودی‌های مخرب پیشگیری کنیم؟ + +جلوگیری از ‌آسیب‌پذیری تزریق ورودی‌های مخرب، نیازمند جداسازی اطلاعات از دستورات و پرس و جو‌ها می‌باشد. + +* داده‌ها باید توسط یک کتابخانه پایدار، فعال و قابل اطمینان اعتبار سنجی شود. +* تمامی اطلاعات وارد شده توسط کاربران و دیگر سیستم‌های یکپارچه باید اعتبار سنجی، فیلتر یا پاکسازی شود. +* کاراکترهای خاص باید توسط قوانین مشخص برای مفسران نهایی تغییر داده شود. +* همواره تعداد رکوردهای بازگردانده شده باید محدود شود تا در صورت وجود نقص تزریق ورودی‌های مخرب، از افشای انبوه اطلاعات جلوگیری شود. +* داده‌های ورودی باید توسط فیلترهای مناسب اعتبار سنجی شود تا تنها مقادیر معتبر برای هر پارامتر ورودی مجاز به وارد شدن باشند. +* برای تمامی متغییر‌های رشته‌ای، نوع داده و الگوی سخت‌گیرانه‌ای تعریف شود. + +## مراجع + +### OWASP + +* [OWASP Injection Flaws][1] +* [SQL Injection][2] +* [NoSQL Injection Fun with Objects and Arrays][3] +* [Command Injection][4] + +### خارجی + +* [CWE-77: Command Injection][5] +* [CWE-89: SQL Injection][6] + +[1]: https://www.owasp.org/index.php/Injection_Flaws +[2]: https://www.owasp.org/index.php/SQL_Injection +[3]: https://www.owasp.org/images/e/ed/GOD16-NOSQL.pdf +[4]: https://www.owasp.org/index.php/Command_Injection +[5]: https://cwe.mitre.org/data/definitions/77.html +[6]: https://cwe.mitre.org/data/definitions/89.html diff --git a/2019/fa/src/0xa9-improper-asset-management.md b/editions/2019/fa/0xa9-improper-asset-management.md similarity index 97% rename from 2019/fa/src/0xa9-improper-asset-management.md rename to editions/2019/fa/0xa9-improper-asset-management.md index 9e4fb928b..5815e9cd1 100644 --- a/2019/fa/src/0xa9-improper-asset-management.md +++ b/editions/2019/fa/0xa9-improper-asset-management.md @@ -1,61 +1,53 @@ -
    - -API09:2019 مدیریت نادرست دارایی‌ها -=================================== - -|عوامل تهدید / مسیر حمله | ضعف امنیتی | پیامد | -| - | - | - | -| API خاص: قابلیت بهره‌برداری**3** | میزان شیوع**3** : قابلیت تشخیص**2** | پیامد فنی**2** : خاص کسب و کار | -|نسخه‌های قدیمی API غالبا اصلاح و بروزرسانی نشده‌اند و از آنجا که از مکانیزم‌های دفاعی نوین موجود در APIهای جدید بهره نمی‌برند، راهی آسان برای دسترسی به سیستم‌ها برای مهاجمین فراهم می‌سازند.|مستندات قدیمی و بروزرسانی نشده، امکان یافتن و یا رفع آسیب‌پذیری‌ها را دشوار می‌سازند. همچنین نبود فهرستی از دارایی‌ها و فقدان یک استراتژی مدون برای از دور خارج کردن نسخه‌های قدیمی منجر به وجود سیستم‌های وصله یا تعمیر نشده و نهایتا نشت اطلاعات خواهد شد. امروزه با کمک مفاهیم نوینی نظیر مایکروسرویس‌ها که امکان بکارگیری اپلیکیشن‌ها بصورت مستقل را تسهیل نموده‌اند (نظیر رایانش ابری، k8s یا کوبرنیتس و ...)، یافتن APIهایی که به صورت غیرضروری در معرض دید همگان قرار دارند تبدیل به امری رایج و آسان شده است.|مهاجم می‌تواند از طریق نسخه‌های قدیمی API که کماکان به پایگاه داده‌ی اصلی متصل هستند، به داده‌ی حساس و یا حتی سرور دسترسی یابد. - -## آیا API از نظر مدیریت نادرست دارایی‌ها ‌آسیب‌پذیر است؟ - -در صورتی که یکی ازشرایط زیر وجود داشته باشد، API ‌آسیب‌پذیر خواهد بود: - -* اهدف از وجود API نامشخص بوده و پاسخی برای سوال‌های زیر وجود نداشته باشد: - - در چه محیطی API در حال اجرا است (مثلا محیط تست، توسعه، اجرا یا عملیات )؟ - - چه کسانی بایستی دسترسی شبکه‌ای به API داشته باشند (همه، افراد دخیل یا شرکا)؟ - - چه نسخه‌ای از API در حال اجرا است؟ - - چه داده‌ای (نظیر PII) توسط API در حال جمع آوری و پردازش است؟ - - جریان داده به چه صورت است؟ -* مستندی برای API وجود ندارد یا بروز نیست. -* برنام‌ ای برای بازنشستگی و از دور خارج شدن هریک از نسخه‌های API وجود ندارد. -* فهرست میزبان‌ها وجود ندارد یا قدیمی است. -* فهرست سرویس‌های یکپارچه ، چه سرویس‌های متعلق به خود سازمان و چه سرویس‌های شرکت‌های ثالث، وجود ندارد یا قدیمی است. -* نسخه‌های قدیمی یا پیشین API بدون اصلاح و وصله شدن کماکان در حال اجرا هستند. - - - -## مثال‌هایی از سناریوهای حمله - -### سناریو #1 - -پس از بازطراحی یک اپلیکیشن، یک سرویس جستجوی Local وجود دارد که از یک نسخه قدیمی API (`api.someservice.com/v1`) به صورت محافظت نشده بهره می‌برد که در عین حال این API قدیمی به پایگاه داده کاربران دسترسی دارد. مهاجم که جدیدترین نسخه اپلیکیشن را به عنوان هدف درنظر گرفته، آدرس API (`api.someservice.com/v2`) را می‌یابد. جایگزینی `v2` با `v1` در URL سبب دسترسی مهاجم به API محافظت نشده و قدیمی می‌شود که در نتیجه‌ی آن، اطلاعات شناسایی شخصی (PII) بیش از 100 میلیون کاربر افشا گردیده است. - -### سناریو #2 - -یک شبکه اجتماعی از مکانیزم محدودسازی نرخ ارسال درخواست برای جلوگیری از انجام حملات Brute Force توسط مهاجمین جهت حدس توکن‌های تغییر گذرواژه بهره می‌برد. این مکانیزم نه به عنوان بخشی از کد API، بلکه به عنوان مولفه ای مابین کلاینت و API اصلی (در `www.socialnetwork.com`) ‌پیاده‌سازی شده است. مهاجم یک نسخه بتا از میزبان API (`www.mbasic.beta.socialnetwork.com`) می‌یابد که از API یکسانی بهره می‌برد و رویه تغییر گذرواژه یکسانی دارد با این تفاوت که در آن هیچ مکانیزمی جهت محدودسازی نرخ درخواست تعبیه نشده است؛ در نتیحه مهاجم قادر خواهد بود که گذرواژه هر یک از کاربران را طی یک عملیات Brute Force ساده با حدس زدن یک توکن 6 رقمی تغییر دهد. - -## چگونه از آسیب‌پذیری مجوزدهی نادرست در سطح اشیاء پیشگیری کنیم؟ - -* فهرستی از تمامی میزبان‌های API تهیه شده و جنبه‌های مهم هرکدام با تمرکز بر محیط API (محیط تست، توسعه، اجرا یا عملیات)، افراد مجاز به دسترسی شبکه‌ای به میزبان (همه، افراد دخیل یا شرکا) و نسخه API مستند شود. -* فهرستی از سرویس‌های یکپارچه تهیه شده و جنبه‌های مهم این سرویس‌ها نظیر نقش آنها، داده‌ی مبادله شده (جریان داده) و میزان حساسیت آنها مستند شود. -* تمامی جنبه‌های API نظیر نحوه احراز هویت، خطاها، ریدایرکت‌ها، محدودسازی نرخ درخواست، خط مشی‌های اشتراک گذاری منابع متقابل (CORS) و نقاط پایانی یا توابع (Endpointها) شامل پارامترها، درخواست‌ها و پاسخ‌ها مستند شوند. -* با بکارگیری و انطباق با استانداردهای باز، فرایند تولید مستند بطور خودکار انجام شده و این فرایند در CI/CD Pipeline تعبیه گردد. -* مستندات API در اختیار افرادی که مجاز به دسترسی به API هستند قرار گیرد. -* از مکانیزم‌های محافظتی خارجی از جمله فایروال‌های امنیت API برای محافظت از تمامی نسخه‌های در معرض دید API (نه فقط نسخه فعلی) استفاده گردد. -* از استفاده همزمان نسخه‌های عملیاتی شده و عملیاتی نشده API اجتناب شود. اگر این همزمانی اجتناب ناپذیر است، برای نسخه‌های عملیاتی نشده API نیز باید همان حفاظت‌های امنیتی نسخه‌های عملیاتی شده برقرار باشد. -* هنگامی که در نسخه‌های جدیدتر API بهبودهای امنیتی اعمال می‌شود، بایستی فرایند تحلیل ریسک نیز صورت پذیرد تا بتوان تصمیمات لازم در خصوص اقدامات جبرانی برای رفع مشکلات امنیتی نسخه‌های قدیمی‌تر را اتخاذ نمود. بعنوان نمونه، آیا می‌توان بدون تحت‌الشعاع قراردادن انطباق‌پذیری API بهبودهای امنیتی را در نسخه‌های قدیمی نیز وارد نمود یا اینکه بایستی تمامی نسخه‌های قدیمی به سرعت از دسترس خارج شده و تمامی کلاینت‌های مجبور به استفاده از آخرین نسخه شوند؟ - - -## مراجع - -### خارجی -
    - -* [CWE-1059: Incomplete Documentation][1] -* [OpenAPI Initiative][2] - -[1]: https://cwe.mitre.org/data/definitions/1059.html -[2]: https://www.openapis.org/ - +# API09:2019 مدیریت نادرست دارایی‌ها + +|عوامل تهدید / مسیر حمله | ضعف امنیتی | پیامد | +| - | - | - | +| API خاص: قابلیت بهره‌برداری**3** | میزان شیوع**3** : قابلیت تشخیص**2** | پیامد فنی**2** : خاص کسب و کار | +|نسخه‌های قدیمی API غالبا اصلاح و بروزرسانی نشده‌اند و از آنجا که از مکانیزم‌های دفاعی نوین موجود در APIهای جدید بهره نمی‌برند، راهی آسان برای دسترسی به سیستم‌ها برای مهاجمین فراهم می‌سازند.|مستندات قدیمی و بروزرسانی نشده، امکان یافتن و یا رفع آسیب‌پذیری‌ها را دشوار می‌سازند. همچنین نبود فهرستی از دارایی‌ها و فقدان یک استراتژی مدون برای از دور خارج کردن نسخه‌های قدیمی منجر به وجود سیستم‌های وصله یا تعمیر نشده و نهایتا نشت اطلاعات خواهد شد. امروزه با کمک مفاهیم نوینی نظیر مایکروسرویس‌ها که امکان بکارگیری اپلیکیشن‌ها بصورت مستقل را تسهیل نموده‌اند (نظیر رایانش ابری، k8s یا کوبرنیتس و ...)، یافتن APIهایی که به صورت غیرضروری در معرض دید همگان قرار دارند تبدیل به امری رایج و آسان شده است.|مهاجم می‌تواند از طریق نسخه‌های قدیمی API که کماکان به پایگاه داده‌ی اصلی متصل هستند، به داده‌ی حساس و یا حتی سرور دسترسی یابد. + +## آیا API از نظر مدیریت نادرست دارایی‌ها ‌آسیب‌پذیر است؟ + +در صورتی که یکی ازشرایط زیر وجود داشته باشد، API ‌آسیب‌پذیر خواهد بود: + +* اهدف از وجود API نامشخص بوده و پاسخی برای سوال‌های زیر وجود نداشته باشد: + - در چه محیطی API در حال اجرا است (مثلا محیط تست، توسعه، اجرا یا عملیات )؟ + - چه کسانی بایستی دسترسی شبکه‌ای به API داشته باشند (همه، افراد دخیل یا شرکا)؟ + - چه نسخه‌ای از API در حال اجرا است؟ + - چه داده‌ای (نظیر PII) توسط API در حال جمع آوری و پردازش است؟ + - جریان داده به چه صورت است؟ +* مستندی برای API وجود ندارد یا بروز نیست. +* برنام‌ ای برای بازنشستگی و از دور خارج شدن هریک از نسخه‌های API وجود ندارد. +* فهرست میزبان‌ها وجود ندارد یا قدیمی است. +* فهرست سرویس‌های یکپارچه ، چه سرویس‌های متعلق به خود سازمان و چه سرویس‌های شرکت‌های ثالث، وجود ندارد یا قدیمی است. +* نسخه‌های قدیمی یا پیشین API بدون اصلاح و وصله شدن کماکان در حال اجرا هستند. + +## مثال‌هایی از سناریوهای حمله + +### سناریو #1 + +پس از بازطراحی یک اپلیکیشن، یک سرویس جستجوی Local وجود دارد که از یک نسخه قدیمی API (`api.someservice.com/v1`) به صورت محافظت نشده بهره می‌برد که در عین حال این API قدیمی به پایگاه داده کاربران دسترسی دارد. مهاجم که جدیدترین نسخه اپلیکیشن را به عنوان هدف درنظر گرفته، آدرس API (`api.someservice.com/v2`) را می‌یابد. جایگزینی `v2` با `v1` در URL سبب دسترسی مهاجم به API محافظت نشده و قدیمی می‌شود که در نتیجه‌ی آن، اطلاعات شناسایی شخصی (PII) بیش از 100 میلیون کاربر افشا گردیده است. + +### سناریو #2 + +یک شبکه اجتماعی از مکانیزم محدودسازی نرخ ارسال درخواست برای جلوگیری از انجام حملات Brute Force توسط مهاجمین جهت حدس توکن‌های تغییر گذرواژه بهره می‌برد. این مکانیزم نه به عنوان بخشی از کد API، بلکه به عنوان مولفه ای مابین کلاینت و API اصلی (در `www.socialnetwork.com`) ‌پیاده‌سازی شده است. مهاجم یک نسخه بتا از میزبان API (`www.mbasic.beta.socialnetwork.com`) می‌یابد که از API یکسانی بهره می‌برد و رویه تغییر گذرواژه یکسانی دارد با این تفاوت که در آن هیچ مکانیزمی جهت محدودسازی نرخ درخواست تعبیه نشده است؛ در نتیحه مهاجم قادر خواهد بود که گذرواژه هر یک از کاربران را طی یک عملیات Brute Force ساده با حدس زدن یک توکن 6 رقمی تغییر دهد. + +## چگونه از آسیب‌پذیری مجوزدهی نادرست در سطح اشیاء پیشگیری کنیم؟ + +* فهرستی از تمامی میزبان‌های API تهیه شده و جنبه‌های مهم هرکدام با تمرکز بر محیط API (محیط تست، توسعه، اجرا یا عملیات)، افراد مجاز به دسترسی شبکه‌ای به میزبان (همه، افراد دخیل یا شرکا) و نسخه API مستند شود. +* فهرستی از سرویس‌های یکپارچه تهیه شده و جنبه‌های مهم این سرویس‌ها نظیر نقش آنها، داده‌ی مبادله شده (جریان داده) و میزان حساسیت آنها مستند شود. +* تمامی جنبه‌های API نظیر نحوه احراز هویت، خطاها، ریدایرکت‌ها، محدودسازی نرخ درخواست، خط مشی‌های اشتراک گذاری منابع متقابل (CORS) و نقاط پایانی یا توابع (Endpointها) شامل پارامترها، درخواست‌ها و پاسخ‌ها مستند شوند. +* با بکارگیری و انطباق با استانداردهای باز، فرایند تولید مستند بطور خودکار انجام شده و این فرایند در CI/CD Pipeline تعبیه گردد. +* مستندات API در اختیار افرادی که مجاز به دسترسی به API هستند قرار گیرد. +* از مکانیزم‌های محافظتی خارجی از جمله فایروال‌های امنیت API برای محافظت از تمامی نسخه‌های در معرض دید API (نه فقط نسخه فعلی) استفاده گردد. +* از استفاده همزمان نسخه‌های عملیاتی شده و عملیاتی نشده API اجتناب شود. اگر این همزمانی اجتناب ناپذیر است، برای نسخه‌های عملیاتی نشده API نیز باید همان حفاظت‌های امنیتی نسخه‌های عملیاتی شده برقرار باشد. +* هنگامی که در نسخه‌های جدیدتر API بهبودهای امنیتی اعمال می‌شود، بایستی فرایند تحلیل ریسک نیز صورت پذیرد تا بتوان تصمیمات لازم در خصوص اقدامات جبرانی برای رفع مشکلات امنیتی نسخه‌های قدیمی‌تر را اتخاذ نمود. بعنوان نمونه، آیا می‌توان بدون تحت‌الشعاع قراردادن انطباق‌پذیری API بهبودهای امنیتی را در نسخه‌های قدیمی نیز وارد نمود یا اینکه بایستی تمامی نسخه‌های قدیمی به سرعت از دسترس خارج شده و تمامی کلاینت‌های مجبور به استفاده از آخرین نسخه شوند؟ + +## مراجع + +### خارجی + +* [CWE-1059: Incomplete Documentation][1] +* [OpenAPI Initiative][2] + +[1]: https://cwe.mitre.org/data/definitions/1059.html +[2]: https://www.openapis.org/ diff --git a/2019/fa/src/0xaa-insufficient-monitoring.md b/editions/2019/fa/0xaa-insufficient-monitoring.md similarity index 95% rename from 2019/fa/src/0xaa-insufficient-monitoring.md rename to editions/2019/fa/0xaa-insufficient-monitoring.md index 35cf48a20..f5b94b916 100644 --- a/2019/fa/src/0xaa-insufficient-monitoring.md +++ b/editions/2019/fa/0xaa-insufficient-monitoring.md @@ -1,68 +1,54 @@ -
    - -API10:2019 پایش و نظارت ناکافی -======================================== - -|عوامل تهدید / مسیر حمله | ضعف امنیتی | پیامد | -| - | - | - | -| API خاص: قابلیت بهره‌برداری**2** | میزان شیوع**3** : قابلیت تشخیص**1** | پیامد فنی**2** : خاص کسب و کار | -| مهاجمین می توانند از فقدان فرایند ثبت وقایع و پایش برای سوءاستفاده پنهانی از سیستم‌ها بهره ببرند.| بدون ثبت وقایع و پایش آنها یا با ثبت و پایش ناکافی، رهگیری فعالیت‌های مخرب و پاسخ آنها در زمان مناسب تقریبا غیرممکن خواهد بود. | بدون پایش فعالیت‌های مخربی که در حال انجام است، مهاجمین زمان زیادی برای نفوذ به سیستم‌ها خواهند داشت. - -## آیا API از نظر پایش و نظارت ناکافی ‌آسیب‌پذیر است؟ - -در صورتی که یکی ازشرایط زیر وجود داشته باشد، API ‌آسیب‌پذیر خواهد بود: - -* هیچگونه Logای توسط API تولید نشود، سطح ثبت وقایع به درستی تنظیم نشده باشد یا پیام‌‌های Log، حاوی جزئیات کافی نباشند.. -* جامعیت Logها تضمین نشده باشد (مثلا [Log Injection][1] رخ دهد). -* به طور پیوسته Logها پایش نشوند. -* زیرساخت API به طور پیوسته پایش نشود. - -## مثال‌هایی از سناریوهای حمله - -### سناریو #1 - -کلیدهای دسترسی به یک API مدیریتی در یک انباره عمومی افشا شده و در اختیار همگان قرار گرفته است. مالک انباره از طریق یک ایمیل از این افشای احتمالی مطلع می‌شود اما بیش از 48 ساعت طول می‌کشد تا اقدام مقتضی انجام شود که در این حدفاصل، افشای کلید دسترسی ممکن سبب دسترسی غیرمجاز به داده حساس شده باشد. از آنجا که پایش کافی وجود نداشته است، سازمان نخواهد توانست بفهمد عوامل مخرب به چه داده‌ای دسترسی پیدا کرده‌اند. - -### سناریو #2 - -یک پلتفرم اشتراک گذاری ویدئو با یک حمله درج هویت در مقیاسی بزرگ مواجه می‌شود. علیرغم آنکه تلاش‌‌های ناموفق ورود ثبت می‌شوند، اما هیچگونه هشداری در طول زمان حمله اعلام نشده است؛ بلکه تنها در واکنش به شکایت‌‌های کاربران، Logهای API تحلیل و حمله کشف شده است. در نتیجه سازمان مجبور به صدور اعلامیه‌ای رسمی شده و از تمامی کاربران می‌خواهد که گذرواژه‌‌های خود را تغییر دهند. همچنین سازمان بایستی به مراجع نظارتی درخصوص این حادثه گزارش داده و پاسخگوی آنها باشد. - -## چگونه از ‌آسیب‌پذیری پایش و نظارت ناکافی پیشگیری کنیم؟ - -* تمامی تلاش‌‌های ناموفق احراز هویت، دسترسی‌‌های غیرمجاز و خطاهای اعتبارستجی ورودی بایستی ثبت شوند. -* Logها باید به گونه ای تهیه شوند که توسط راهکارهای مدیریت Log قابل استفاده بوده و همچنین جزئیات کافی جهت شناسایی عامل مخرب را در خود داشته باشند. -* با Logها بایستی به عنوان داده حساس رفتار شده و جامعیت آنها هم در زمان ذخیره سازی و هم در زمان انتقال تضمین شود. -* یک سیستم پایش پیکربندی و راه اندازی شود تا بتوان بطور مداوم و پیوسته عملکرد زیرساخت، شبکه و API را پایش نمود. -* از یک سیستم مدیریت رویدادها و اطلاعات امنیتی (SIEM) برای تجمیع و مدیریت Logهای دریافتی از تمامی مولفه‌‌های پشته API و میزبان‌‌های آن استفاده شود. -* از Dashboardها و هشدارها یا اعلان‌‌های سفارشی‌سازی شده به منظور تشخیص و پاسخ سریع به فعالیت‌‌های مشکوک استفاده شود. - - -## مراجع - -
    - -### OWASP - -* [OWASP Logging Cheat Sheet][2] -* [OWASP Proactive Controls: Implement Logging][3] -* [OWASP Application Security Verification Standard: V7: Error Handling and Logging Verification Requirements][4] - -
    - -### خارجی - -
    - -* [CWE-1059: Incomplete Documentation][5] -* [OpenAPI Initiative][6] - - -[1]: https://owasp.org/index.php/Log_Injection -[2]: https://owasp.org/index.php/Logging_Cheat_Sheet -[3]: https://owasp.org/www-project-proactive-controls/ -[4]: https://github.com/OWASP/ASVS/blob/master/4.0/en/0x15-V7-Error-Logging.md - -[5]: https://cwe.mitre.org/data/definitions/1059.html -[6]: https://www.openapis.org/ - - +# API10:2019 پایش و نظارت ناکافی + +|عوامل تهدید / مسیر حمله | ضعف امنیتی | پیامد | +| - | - | - | +| API خاص: قابلیت بهره‌برداری**2** | میزان شیوع**3** : قابلیت تشخیص**1** | پیامد فنی**2** : خاص کسب و کار | +| مهاجمین می توانند از فقدان فرایند ثبت وقایع و پایش برای سوءاستفاده پنهانی از سیستم‌ها بهره ببرند.| بدون ثبت وقایع و پایش آنها یا با ثبت و پایش ناکافی، رهگیری فعالیت‌های مخرب و پاسخ آنها در زمان مناسب تقریبا غیرممکن خواهد بود. | بدون پایش فعالیت‌های مخربی که در حال انجام است، مهاجمین زمان زیادی برای نفوذ به سیستم‌ها خواهند داشت. + +## آیا API از نظر پایش و نظارت ناکافی ‌آسیب‌پذیر است؟ + +در صورتی که یکی ازشرایط زیر وجود داشته باشد، API ‌آسیب‌پذیر خواهد بود: + +* هیچگونه Logای توسط API تولید نشود، سطح ثبت وقایع به درستی تنظیم نشده باشد یا پیام‌‌های Log، حاوی جزئیات کافی نباشند.. +* جامعیت Logها تضمین نشده باشد (مثلا [Log Injection][1] رخ دهد). +* به طور پیوسته Logها پایش نشوند. +* زیرساخت API به طور پیوسته پایش نشود. + +## مثال‌هایی از سناریوهای حمله + +### سناریو #1 + +کلیدهای دسترسی به یک API مدیریتی در یک انباره عمومی افشا شده و در اختیار همگان قرار گرفته است. مالک انباره از طریق یک ایمیل از این افشای احتمالی مطلع می‌شود اما بیش از 48 ساعت طول می‌کشد تا اقدام مقتضی انجام شود که در این حدفاصل، افشای کلید دسترسی ممکن سبب دسترسی غیرمجاز به داده حساس شده باشد. از آنجا که پایش کافی وجود نداشته است، سازمان نخواهد توانست بفهمد عوامل مخرب به چه داده‌ای دسترسی پیدا کرده‌اند. + +### سناریو #2 + +یک پلتفرم اشتراک گذاری ویدئو با یک حمله درج هویت در مقیاسی بزرگ مواجه می‌شود. علیرغم آنکه تلاش‌‌های ناموفق ورود ثبت می‌شوند، اما هیچگونه هشداری در طول زمان حمله اعلام نشده است؛ بلکه تنها در واکنش به شکایت‌‌های کاربران، Logهای API تحلیل و حمله کشف شده است. در نتیجه سازمان مجبور به صدور اعلامیه‌ای رسمی شده و از تمامی کاربران می‌خواهد که گذرواژه‌‌های خود را تغییر دهند. همچنین سازمان بایستی به مراجع نظارتی درخصوص این حادثه گزارش داده و پاسخگوی آنها باشد. + +## چگونه از ‌آسیب‌پذیری پایش و نظارت ناکافی پیشگیری کنیم؟ + +* تمامی تلاش‌‌های ناموفق احراز هویت، دسترسی‌‌های غیرمجاز و خطاهای اعتبارستجی ورودی بایستی ثبت شوند. +* Logها باید به گونه ای تهیه شوند که توسط راهکارهای مدیریت Log قابل استفاده بوده و همچنین جزئیات کافی جهت شناسایی عامل مخرب را در خود داشته باشند. +* با Logها بایستی به عنوان داده حساس رفتار شده و جامعیت آنها هم در زمان ذخیره سازی و هم در زمان انتقال تضمین شود. +* یک سیستم پایش پیکربندی و راه اندازی شود تا بتوان بطور مداوم و پیوسته عملکرد زیرساخت، شبکه و API را پایش نمود. +* از یک سیستم مدیریت رویدادها و اطلاعات امنیتی (SIEM) برای تجمیع و مدیریت Logهای دریافتی از تمامی مولفه‌‌های پشته API و میزبان‌‌های آن استفاده شود. +* از Dashboardها و هشدارها یا اعلان‌‌های سفارشی‌سازی شده به منظور تشخیص و پاسخ سریع به فعالیت‌‌های مشکوک استفاده شود. + +## مراجع + +### OWASP + +* [OWASP Logging Cheat Sheet][2] +* [OWASP Proactive Controls: Implement Logging][3] +* [OWASP Application Security Verification Standard: V7: Error Handling and Logging Verification Requirements][4] + +### خارجی + +* [CWE-1059: Incomplete Documentation][5] +* [OpenAPI Initiative][6] + +[1]: https://owasp.org/index.php/Log_Injection +[2]: https://owasp.org/index.php/Logging_Cheat_Sheet +[3]: https://owasp.org/www-project-proactive-controls/ +[4]: https://github.com/OWASP/ASVS/blob/master/4.0/en/0x15-V7-Error-Logging.md +[5]: https://cwe.mitre.org/data/definitions/1059.html +[6]: https://www.openapis.org/ diff --git a/2019/fa/src/0xb0-next-devs.md b/editions/2019/fa/0xb0-next-devs.md similarity index 97% rename from 2019/fa/src/0xb0-next-devs.md rename to editions/2019/fa/0xb0-next-devs.md index 602cf9223..386f3d305 100644 --- a/2019/fa/src/0xb0-next-devs.md +++ b/editions/2019/fa/0xb0-next-devs.md @@ -1,37 +1,32 @@ -
    - -گام بعدی برای توسعه‌دهندگان -============================ - -وظایف مرتبط با ایجاد و نگهداری ایمن از نرم افزارها یا تعمیر نرم افزارهای موجود می‌تواند دشوار باشد و APIها نیز از قضیه مستثنی نیستند. - -بر این باوریم که آموزش و آگاه سازی، گامی کلیدی در راستای نوشتن و توسعه نرم افزارهای ایمن هستند. تمامی الزامات دیگر در راستای نیل به هدف فوق به **ایجاد و استفاده از فرایندهای امنیتی تکرارپذیر و کنترل‌های امنیتی استاندارد بستگی دارد.** - -OWASP منابع آزاد و رایگان متعددی برای پاسخ به مسائل امنیتی از ابتدای پروژه ایجاد نموده است. به منظور آشنایی با لیست جامع پروژه‌‌های دردسترس، [صفحه پروژه‌‌های OWASP][1] را ملاحظه نمایید. - - -| | | -|-|-| -| **آموزش** | برای شروع می‌توان از [پروژه مطالب آموزشی OWASP][2] بسته به علاقه و نوع حرفه آغاز نمود. برای آموزش عملیاتی، crAPI را نیز به [نقشه راه][3] خود افزوده‌ایم. تست‌‌های مربوط به WebAppSec را می‌توان با [OWASP DevSlop Pixi Module][4] که یک WebApp و سرویس API آزمایشگاهی آسیب‌پذیر است، انجام داد. استفاده از چنین ابزارهایی سبب یادگیری نحوه تست وب اپلیکیشن‌‌ها و APIهای مدرن از منظر مسائل امنیتی و چگونگی توسعه APIهای مدرن در آینده خواهد شد. همچنین امکان شرکت در جلسات آموزشی [کنفرانس AppSec][5] و عضویت در [شَعب محلی OWASP][6] نیز برای علاقه مندان وجود دارد.| -| **الزامات امنیتی** | امنیت باید بعنوان بخشی تفکیک ناپذیر در تمامی پروژه‌‌ها از ابتدا درنظر گرفته شود. در هنگام استخراج الزامات امنیتی، باید معنی واژه «ایمن» برای هر پروژه مشخصا تعریف شود. OWASP استفاده از [استاندارد امنیت سنجی اپلیکیشن (ASVS)][7] را بعنوان راهنمایی برای تعیین الزامات امنیتی توصیه می‌کند. در صورت برون سپاری نیز، استفاده از [ضمیمه قرارداد نرم افزار ایمن OWASP][8] (که بایستی با قوانین و رگولاتوری‌‌های محلی انطباق یابد) می‌تواند انتخاب مناسبی باشد. | -| **معماری امنیتی** | امنیت بایستی در تمامی مراحل توسعه پروژه‌‌ها اهمیت داشته باشد. [برگه‌‌های راهنمای پیشگیری OWASP][9] نقطه شروع مناسبی برای چگونگی طراحی ایمن در خلال فاز طراحی معماری به شمار آید. [همچنین برگه راهنمای امنیت REST][10] و [برگه راهنمای ارزیابی REST][11] نیز گزینه‌‌های مناسبی در این راستا هستند. | -| **کنترل‌‌های امنیتی استاندارد** | بکارگیری و انطباق با کنترل‌‌های امنیتی استاندارد ریسک ایجاد ضعف‌‌های امنیتی در خلال ایجاد برنامه‌‌ها با منطق سازمانی را کاهش می‌دهد. علیرغم اینکه بسیاری از چارچوب‌های مدرن امروزی با استانداردهای توکار و موثر امنیتی توزیع می‌شوند، اما [کنترل‌‌های پیشگیرانه و فعال OWASP][12] دید خوبی از کنترل‌‌هایی که باید در پروژه‌‌ها لحاظ شوند بدست می‌دهد. OWASP کتابخانه و ابزارهای متعددی از جمله در حوزه کنترل‌‌های اعتبارسنجی در اختیار عموم قرار می‌دهد که می‌توانند مفید باشند.| -| **چرخه حیات توسعه نرم افزار ایمن** | به منظور بهبود فرایندها در هنگام ایجاد و ساخت APIها می‌توان از [مدل ضمانت کمال نرم افزار OWASP (SAMM)][13] بهره برد. همچنین پروژه‌‌های متعدد دیگری نیز در OWASP وجود دارند که می‌توانند در فازهای مختلف توسعه API مفید باشند که از جمله آنها می‌توان، [پروژه بازبینی کد OWASP][14] را نام برد. | - - -[1]: https://www.owasp.org/index.php/Category:OWASP_Project -[2]: https://www.owasp.org/index.php/OWASP_Education_Material_Categorized -[3]: https://www.owasp.org/index.php/OWASP_API_Security_Project#tab=Road_Map -[4]: https://devslop.co/Home/Pixi -[5]: https://www.owasp.org/index.php/Category:OWASP_AppSec_Conference -[6]: https://www.owasp.org/index.php/OWASP_Chapter -[7]: https://www.owasp.org/index.php/Category:OWASP_Application_Security_Verification_Standard_Project -[8]: https://www.owasp.org/index.php/OWASP_Secure_Software_Contract_Annex -[9]: https://www.owasp.org/index.php/OWASP_Cheat_Sheet_Series -[10]: https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/REST_Security_Cheat_Sheet.md -[11]: https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/REST_Assessment_Cheat_Sheet.md -[12]: https://www.owasp.org/index.php/OWASP_Proactive_Controls#tab=OWASP_Proactive_Controls_2018 -[13]: https://www.owasp.org/index.php/OWASP_SAMM_Project -[14]: https://www.owasp.org/index.php/Category:OWASP_Code_Review_Project - -
    +# گام بعدی برای توسعه‌دهندگان + +وظایف مرتبط با ایجاد و نگهداری ایمن از نرم افزارها یا تعمیر نرم افزارهای موجود می‌تواند دشوار باشد و APIها نیز از قضیه مستثنی نیستند. + +بر این باوریم که آموزش و آگاه سازی، گامی کلیدی در راستای نوشتن و توسعه نرم افزارهای ایمن هستند. تمامی الزامات دیگر در راستای نیل به هدف فوق به **ایجاد و استفاده از فرایندهای امنیتی تکرارپذیر و کنترل‌های امنیتی استاندارد بستگی دارد.** + +OWASP منابع آزاد و رایگان متعددی برای پاسخ به مسائل امنیتی از ابتدای پروژه ایجاد نموده است. به منظور آشنایی با لیست جامع پروژه‌‌های دردسترس، [صفحه پروژه‌‌های OWASP][1] را ملاحظه نمایید. + + +| | | +|-|-| +| **آموزش** | برای شروع می‌توان از [پروژه مطالب آموزشی OWASP][2] بسته به علاقه و نوع حرفه آغاز نمود. برای آموزش عملیاتی، crAPI را نیز به [نقشه راه][3] خود افزوده‌ایم. تست‌‌های مربوط به WebAppSec را می‌توان با [OWASP DevSlop Pixi Module][4] که یک WebApp و سرویس API آزمایشگاهی آسیب‌پذیر است، انجام داد. استفاده از چنین ابزارهایی سبب یادگیری نحوه تست وب اپلیکیشن‌‌ها و APIهای مدرن از منظر مسائل امنیتی و چگونگی توسعه APIهای مدرن در آینده خواهد شد. همچنین امکان شرکت در جلسات آموزشی [کنفرانس AppSec][5] و عضویت در [شَعب محلی OWASP][6] نیز برای علاقه مندان وجود دارد.| +| **الزامات امنیتی** | امنیت باید بعنوان بخشی تفکیک ناپذیر در تمامی پروژه‌‌ها از ابتدا درنظر گرفته شود. در هنگام استخراج الزامات امنیتی، باید معنی واژه «ایمن» برای هر پروژه مشخصا تعریف شود. OWASP استفاده از [استاندارد امنیت سنجی اپلیکیشن (ASVS)][7] را بعنوان راهنمایی برای تعیین الزامات امنیتی توصیه می‌کند. در صورت برون سپاری نیز، استفاده از [ضمیمه قرارداد نرم افزار ایمن OWASP][8] (که بایستی با قوانین و رگولاتوری‌‌های محلی انطباق یابد) می‌تواند انتخاب مناسبی باشد. | +| **معماری امنیتی** | امنیت بایستی در تمامی مراحل توسعه پروژه‌‌ها اهمیت داشته باشد. [برگه‌‌های راهنمای پیشگیری OWASP][9] نقطه شروع مناسبی برای چگونگی طراحی ایمن در خلال فاز طراحی معماری به شمار آید. [همچنین برگه راهنمای امنیت REST][10] و [برگه راهنمای ارزیابی REST][11] نیز گزینه‌‌های مناسبی در این راستا هستند. | +| **کنترل‌‌های امنیتی استاندارد** | بکارگیری و انطباق با کنترل‌‌های امنیتی استاندارد ریسک ایجاد ضعف‌‌های امنیتی در خلال ایجاد برنامه‌‌ها با منطق سازمانی را کاهش می‌دهد. علیرغم اینکه بسیاری از چارچوب‌های مدرن امروزی با استانداردهای توکار و موثر امنیتی توزیع می‌شوند، اما [کنترل‌‌های پیشگیرانه و فعال OWASP][12] دید خوبی از کنترل‌‌هایی که باید در پروژه‌‌ها لحاظ شوند بدست می‌دهد. OWASP کتابخانه و ابزارهای متعددی از جمله در حوزه کنترل‌‌های اعتبارسنجی در اختیار عموم قرار می‌دهد که می‌توانند مفید باشند.| +| **چرخه حیات توسعه نرم افزار ایمن** | به منظور بهبود فرایندها در هنگام ایجاد و ساخت APIها می‌توان از [مدل ضمانت کمال نرم افزار OWASP (SAMM)][13] بهره برد. همچنین پروژه‌‌های متعدد دیگری نیز در OWASP وجود دارند که می‌توانند در فازهای مختلف توسعه API مفید باشند که از جمله آنها می‌توان، [پروژه بازبینی کد OWASP][14] را نام برد. | + + +[1]: https://www.owasp.org/index.php/Category:OWASP_Project +[2]: https://www.owasp.org/index.php/OWASP_Education_Material_Categorized +[3]: https://www.owasp.org/index.php/OWASP_API_Security_Project#tab=Road_Map +[4]: https://devslop.co/Home/Pixi +[5]: https://www.owasp.org/index.php/Category:OWASP_AppSec_Conference +[6]: https://www.owasp.org/index.php/OWASP_Chapter +[7]: https://www.owasp.org/index.php/Category:OWASP_Application_Security_Verification_Standard_Project +[8]: https://www.owasp.org/index.php/OWASP_Secure_Software_Contract_Annex +[9]: https://www.owasp.org/index.php/OWASP_Cheat_Sheet_Series +[10]: https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/REST_Security_Cheat_Sheet.md +[11]: https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/REST_Assessment_Cheat_Sheet.md +[12]: https://www.owasp.org/index.php/OWASP_Proactive_Controls#tab=OWASP_Proactive_Controls_2018 +[13]: https://www.owasp.org/index.php/OWASP_SAMM_Project +[14]: https://www.owasp.org/index.php/Category:OWASP_Code_Review_Project diff --git a/2019/fa/src/0xb1-next-devsecops.md b/editions/2019/fa/0xb1-next-devsecops.md similarity index 97% rename from 2019/fa/src/0xb1-next-devsecops.md rename to editions/2019/fa/0xb1-next-devsecops.md index c7760ce17..f61b17db8 100644 --- a/2019/fa/src/0xb1-next-devsecops.md +++ b/editions/2019/fa/0xb1-next-devsecops.md @@ -1,31 +1,22 @@ -
    - -گام بعدی برای DevSecOps -============================= - -با توجه به اهمیت APIها در معماری اپلیکیشن‌های جدید، ایجاد APIهای ایمن امری حیاتی می‌باشد. مقوله امنیت را نمی‌توان نادیده گرفت و باید آن را جزئی از کل چرخه توسعه اپلیکیشن در نظر گرفت. انجام اسکن و تست‌ نفود، آن هم به صورت سالیانه به هیچ عنوان کافی نمی‌باشد. - -باید به فرایند توسعه DevSecOps افزوده شده و در تمام زمان‌های توسعه نرم افزار، انجام تست‌های امنیتی مداوم را تسهیل کند. هدف آنها بهره‌گیری از خودکارسازی‌ فرایندهای امنیتی در جهت بهبود فرایند تولید نرم افزار بوده به شکلی که تاثیری بر سرعت توسعه نداشته باشد. اگر شک دارید، [مانیفست DevSecOps][1] را بررسی کنید تا در جریان باشید. - -| | | -|--------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| درک مدل تهدیدات | اولویت‌ تست‌ها از مدل تهدیدات بدست می‌آید. اگر شما مدل تهدیدات ندارید می‌توانید از [OWASP Application Security Verification Standard (ASVS)][2] و [OWASP Testing Guide][3] به عنوان ورودی استفاده کنید. همچنین مشارکت دادن تیم توسعه می‌تواند باعث شود آنها نسبت به موضوعات امنیتی آگاه‌تر شوند. | -| درک چرخه توسعه نرم افزار | تیم توسعه را به فرایند اضافه کنید تا آنها نیز درک بهتری از چرحه توسعه نرم افزار پیدا کنند. مشارکت شما در انجام تست‌های مداوم امنیتی باید همراستا با افراد، فرایند‌ها و ابزارها باشد. همه باید با فرایند موافق باشند تا هیچ گونه اصطکاک و مقاومتی وجود نداشته باشد. | -| راهبرد انجام تست | با توجه به اینکه کار شما نباید تاثیری بر سرعت توسعه داشته باشد. بنابراین باید خیلی آگاهانه بهترین تکنیک (ساده، سریع‌ترین و دقیق‌ترین)‌ را برای تایید الزامات امنیتی انتخاب کنید. [OWASP Security Knowledge Framework][4] و [OWASP Application Security Verification Standard][5] می‌توانند منابع خوبی برای الزامات عملکردی و غیر عملکردی باشند. منابع خوب دیگری از [پروژه‌ها][6] و [ابزارها][7] مشابه با مواردی که توسط [DevSecOps community][8] پیشنهاد می‌شود، وجود دارد. | -| دستیابی به جامعیت و دقت | شما پلی هستید بین تیم‌ توسعه دهنده و ‌‌‌پیاده‌سازی، برای اینکه به این مهم دست یابید نه تنها باید بر روی عملکرد و قابلیت‌ها تمرکز کنید بلکه باید به هماهنگی نیز توجه کنید. از ابتدا به صورت نزدیک با هر دو تیم توسعه و ‌‌‌پیاده‌سازی کار کنید تا بتوانید زمان و تلاش‌تان را بهینه نمایید. شما باید برای حالتی که الزامات امنیتی به صورت مداوم بررسی شوند، هدف گذاری کنید. | -| به وضوح یافته‌‌‌ها را به اشتراک بگذارید | با کمترین اصطکاک یا بدون اصطکاک مشارکت داشته باشید. یافته‌‌ها را در بازه زمانی مشخص و در قالب ابزارهای مورد استفاده توسط تیم توسعه (نه فایل‌های PDF) تحویل دهید. به تیم توسعه اضافه شوید تا یافته‌ها را به آن‌ها نشان دهید. از این فرصت برای آموزش آنها استفاده کنید، به صورت شفاف در مورد نقطه ضعف و روش‌های سوء استفاده از آن (که شامل سناریو‌های حملات می‌باشند) توضیح دهید تا واقعی به نظر برسد. | - - - - - -[1]: https://www.devsecops.org/ -[2]: https://owasp.org/www-project-application-security-verification-standard/ -[3]: https://owasp.org/www-project-web-security-testing-guide/ -[4]: https://owasp.org/www-project-security-knowledge-framework/ -[5]: https://owasp.org/www-project-application-security-verification-standard/ -[6]: http://devsecops.github.io/ -[7]: https://github.com/devsecops/awesome-devsecops -[8]: https://www.devsecops.org/ - -
    +# گام بعدی برای DevSecOps + +با توجه به اهمیت APIها در معماری اپلیکیشن‌های جدید، ایجاد APIهای ایمن امری حیاتی می‌باشد. مقوله امنیت را نمی‌توان نادیده گرفت و باید آن را جزئی از کل چرخه توسعه اپلیکیشن در نظر گرفت. انجام اسکن و تست‌ نفود، آن هم به صورت سالیانه به هیچ عنوان کافی نمی‌باشد. + +باید به فرایند توسعه DevSecOps افزوده شده و در تمام زمان‌های توسعه نرم افزار، انجام تست‌های امنیتی مداوم را تسهیل کند. هدف آنها بهره‌گیری از خودکارسازی‌ فرایندهای امنیتی در جهت بهبود فرایند تولید نرم افزار بوده به شکلی که تاثیری بر سرعت توسعه نداشته باشد. اگر شک دارید، [مانیفست DevSecOps][1] را بررسی کنید تا در جریان باشید. + +| | | +|--------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| درک مدل تهدیدات | اولویت‌ تست‌ها از مدل تهدیدات بدست می‌آید. اگر شما مدل تهدیدات ندارید می‌توانید از [OWASP Application Security Verification Standard (ASVS)][2] و [OWASP Testing Guide][3] به عنوان ورودی استفاده کنید. همچنین مشارکت دادن تیم توسعه می‌تواند باعث شود آنها نسبت به موضوعات امنیتی آگاه‌تر شوند. | +| درک چرخه توسعه نرم افزار | تیم توسعه را به فرایند اضافه کنید تا آنها نیز درک بهتری از چرحه توسعه نرم افزار پیدا کنند. مشارکت شما در انجام تست‌های مداوم امنیتی باید همراستا با افراد، فرایند‌ها و ابزارها باشد. همه باید با فرایند موافق باشند تا هیچ گونه اصطکاک و مقاومتی وجود نداشته باشد. | +| راهبرد انجام تست | با توجه به اینکه کار شما نباید تاثیری بر سرعت توسعه داشته باشد. بنابراین باید خیلی آگاهانه بهترین تکنیک (ساده، سریع‌ترین و دقیق‌ترین)‌ را برای تایید الزامات امنیتی انتخاب کنید. [OWASP Security Knowledge Framework][4] و [OWASP Application Security Verification Standard][5] می‌توانند منابع خوبی برای الزامات عملکردی و غیر عملکردی باشند. منابع خوب دیگری از [پروژه‌ها][6] و [ابزارها][7] مشابه با مواردی که توسط [DevSecOps community][8] پیشنهاد می‌شود، وجود دارد. | +| دستیابی به جامعیت و دقت | شما پلی هستید بین تیم‌ توسعه دهنده و ‌‌‌پیاده‌سازی، برای اینکه به این مهم دست یابید نه تنها باید بر روی عملکرد و قابلیت‌ها تمرکز کنید بلکه باید به هماهنگی نیز توجه کنید. از ابتدا به صورت نزدیک با هر دو تیم توسعه و ‌‌‌پیاده‌سازی کار کنید تا بتوانید زمان و تلاش‌تان را بهینه نمایید. شما باید برای حالتی که الزامات امنیتی به صورت مداوم بررسی شوند، هدف گذاری کنید. | +| به وضوح یافته‌‌‌ها را به اشتراک بگذارید | با کمترین اصطکاک یا بدون اصطکاک مشارکت داشته باشید. یافته‌‌ها را در بازه زمانی مشخص و در قالب ابزارهای مورد استفاده توسط تیم توسعه (نه فایل‌های PDF) تحویل دهید. به تیم توسعه اضافه شوید تا یافته‌ها را به آن‌ها نشان دهید. از این فرصت برای آموزش آنها استفاده کنید، به صورت شفاف در مورد نقطه ضعف و روش‌های سوء استفاده از آن (که شامل سناریو‌های حملات می‌باشند) توضیح دهید تا واقعی به نظر برسد. | + +[1]: https://www.devsecops.org/ +[2]: https://owasp.org/www-project-application-security-verification-standard/ +[3]: https://owasp.org/www-project-web-security-testing-guide/ +[4]: https://owasp.org/www-project-security-knowledge-framework/ +[5]: https://owasp.org/www-project-application-security-verification-standard/ +[6]: http://devsecops.github.io/ +[7]: https://github.com/devsecops/awesome-devsecops +[8]: https://www.devsecops.org/ diff --git a/2019/fa/src/0xd0-about-data.md b/editions/2019/fa/0xd0-about-data.md similarity index 96% rename from 2019/fa/src/0xd0-about-data.md rename to editions/2019/fa/0xd0-about-data.md index e1e8b06c4..304b5cb6e 100644 --- a/2019/fa/src/0xd0-about-data.md +++ b/editions/2019/fa/0xd0-about-data.md @@ -1,28 +1,23 @@ -
    - -متدلوژی و داده -==================== - -## بررسی اجمالی - -از آنجا که صنعت AppSec مشخصا بر امنیت اپلیکیشن‌‌های معماری نوین که در آنها API نقشی حیاتی دارد، تمرکز ننموده، ایجاد لیستی از ده ریسک امنیتی بحرانی امنیت API بر مبنای فراخوان عمومی کاری سخت خواهد بود. علیرغم اینکه فراخوانی برای داده‌‌های عمومی داده نشده، اما لیست فعلی بر مبنای داده‌های در دسترس عموم، مشارکت کارشناسان امنیتی و نظرات متخصصان حوزه امنیت، تهیه گردیده است. - -## متدلوژی - -در فاز اول، داده‌‌های در دسترس عموم در حوزه رخداده‌‌های مرتبط با امنیت API توسط گروهی از متخصصین امنیت جمع آوری، بازبینی و دسته بندی شدند. این داده‌‌ها از پلتفرم‌‌های شکار باگ و پایگاه‌‌های داده آسیب‌پذیری در یک چارچوب زمانی یک ساله به منظور تحلیل آماری جمع آوری شده اند. - -در فاز بعد، از متخصصین امنیت با سویه عملیاتی و تجربه تست نفوذ خواسته شد تا آنان نیز لیست ده ریسک امنیتی بحرانی API از منظر خود را با گروه به اشتراک گذارند. - -به منظور انجام فرایند تحلیل ریسک از [متدلوژی رتبه بندی ریسک OWASP][1] استفاده و نتایج آن نیز توسط متخصصین امنیتی بازبینی قرار گرفت. برای مطالعه بیشتر در این حوزه به بخش [ریسک‌‌های امنیتی API][2] مراجعه نمایید. - -پیش نویس اولیه ده ریسک امنیتی بحرانی APIها در 2019 از منظر OWASP از اجماع بین نتایج آماری فاز اول و لیست مدنظر متخصصین بدست آمده است و سپس به منظور بازبینی مجدد در اختیار گروه دیگری از متخصصین (با تجربه مرتبط در حوزه امنیت API) قرار گرفته است. - -مستند ده ریسک امنیتی بحرانی APIها در 2019 از منظر OWASP اولین بار در رویداد جهانیOWASP AppSec در تل‌آویو (می 2019) ارائه شده و پس از آن برای بحث و مشارکت عموم در GitHub قرار گرفت. - -لیست مشارکت کنندگان در بخش [سپاسگزاری‌‌ها][3] قابل مشاهده است. - -[1]: https://www.owasp.org/index.php/OWASP_Risk_Rating_Methodology -[2]: ./0x10-api-security-risks.md -[3]: ./0xd1-acknowledgments.md - -
    \ No newline at end of file +# متدلوژی و داده + +## بررسی اجمالی + +از آنجا که صنعت AppSec مشخصا بر امنیت اپلیکیشن‌‌های معماری نوین که در آنها API نقشی حیاتی دارد، تمرکز ننموده، ایجاد لیستی از ده ریسک امنیتی بحرانی امنیت API بر مبنای فراخوان عمومی کاری سخت خواهد بود. علیرغم اینکه فراخوانی برای داده‌‌های عمومی داده نشده، اما لیست فعلی بر مبنای داده‌های در دسترس عموم، مشارکت کارشناسان امنیتی و نظرات متخصصان حوزه امنیت، تهیه گردیده است. + +## متدلوژی + +در فاز اول، داده‌‌های در دسترس عموم در حوزه رخداده‌‌های مرتبط با امنیت API توسط گروهی از متخصصین امنیت جمع آوری، بازبینی و دسته بندی شدند. این داده‌‌ها از پلتفرم‌‌های شکار باگ و پایگاه‌‌های داده آسیب‌پذیری در یک چارچوب زمانی یک ساله به منظور تحلیل آماری جمع آوری شده اند. + +در فاز بعد، از متخصصین امنیت با سویه عملیاتی و تجربه تست نفوذ خواسته شد تا آنان نیز لیست ده ریسک امنیتی بحرانی API از منظر خود را با گروه به اشتراک گذارند. + +به منظور انجام فرایند تحلیل ریسک از [متدلوژی رتبه بندی ریسک OWASP][1] استفاده و نتایج آن نیز توسط متخصصین امنیتی بازبینی قرار گرفت. برای مطالعه بیشتر در این حوزه به بخش [ریسک‌‌های امنیتی API][2] مراجعه نمایید. + +پیش نویس اولیه ده ریسک امنیتی بحرانی APIها در 2019 از منظر OWASP از اجماع بین نتایج آماری فاز اول و لیست مدنظر متخصصین بدست آمده است و سپس به منظور بازبینی مجدد در اختیار گروه دیگری از متخصصین (با تجربه مرتبط در حوزه امنیت API) قرار گرفته است. + +مستند ده ریسک امنیتی بحرانی APIها در 2019 از منظر OWASP اولین بار در رویداد جهانیOWASP AppSec در تل‌آویو (می 2019) ارائه شده و پس از آن برای بحث و مشارکت عموم در GitHub قرار گرفت. + +لیست مشارکت کنندگان در بخش [سپاسگزاری‌‌ها][3] قابل مشاهده است. + +[1]: https://www.owasp.org/index.php/OWASP_Risk_Rating_Methodology +[2]: ./0x10-api-security-risks.md +[3]: ./0xd1-acknowledgments.md diff --git a/2019/fa/src/0xd1-acknowledgments.md b/editions/2019/fa/0xd1-acknowledgments.md similarity index 85% rename from 2019/fa/src/0xd1-acknowledgments.md rename to editions/2019/fa/0xd1-acknowledgments.md index d4c69b8eb..463e51e48 100644 --- a/2019/fa/src/0xd1-acknowledgments.md +++ b/editions/2019/fa/0xd1-acknowledgments.md @@ -1,48 +1,42 @@ -
    - -سپاسگزاری‌ها -=========== - -## سپاسگزاری از مشارکت کنندگان - -بدینوسیله از تمامی مشارکت کنندگانی که به طور عمومی در GitHub و به سایر طرق در توسعه این مستند نقش داشته‌اند تشکر می‌نماییم - -
    - -* 007divyachawla -* Abid Khan -* Adam Fisher -* anotherik -* bkimminich -* caseysoftware -* Chris Westphal -* dsopas -* DSotnikov -* emilva -* ErezYalon -* flascelles -* Guillaume Benats -* IgorSasovets -* Inonshk -* JonnySchnittger -* jmanico -* jmdx -* Keith Casey -* kozmic -* LauraRosePorter -* Matthieu Estrade -* Mr-Listener -* nathanawmk -* PauloASilva -* pentagramz -* philippederyck -* pleothaud -* r00ter -* Raj kumar -* RNPG -* Sagar Popat -* Stephen Gates -* This-is-neo -* thomaskonrad -* xycloops123 - +# سپاسگزاری‌ها + +## سپاسگزاری از مشارکت کنندگان + +بدینوسیله از تمامی مشارکت کنندگانی که به طور عمومی در GitHub و به سایر طرق در توسعه این مستند نقش داشته‌اند تشکر می‌نماییم + +* 007divyachawla +* Abid Khan +* Adam Fisher +* anotherik +* bkimminich +* caseysoftware +* Chris Westphal +* dsopas +* DSotnikov +* emilva +* ErezYalon +* flascelles +* Guillaume Benats +* IgorSasovets +* Inonshk +* JonnySchnittger +* jmanico +* jmdx +* Keith Casey +* kozmic +* LauraRosePorter +* Matthieu Estrade +* Mr-Listener +* nathanawmk +* PauloASilva +* pentagramz +* philippederyck +* pleothaud +* r00ter +* Raj kumar +* RNPG +* Sagar Popat +* Stephen Gates +* This-is-neo +* thomaskonrad +* xycloops123 diff --git a/2019/fa/dist/owasp-api-security-top-10.odt b/editions/2019/fa/dist/owasp-api-security-top-10.odt similarity index 100% rename from 2019/fa/dist/owasp-api-security-top-10.odt rename to editions/2019/fa/dist/owasp-api-security-top-10.odt diff --git a/2019/fa/dist/owasp-api-security-top-10.pdf b/editions/2019/fa/dist/owasp-api-security-top-10.pdf similarity index 100% rename from 2019/fa/dist/owasp-api-security-top-10.pdf rename to editions/2019/fa/dist/owasp-api-security-top-10.pdf diff --git a/2019/fa/src/images/cover.jpg b/editions/2019/fa/images/cover.jpg similarity index 100% rename from 2019/fa/src/images/cover.jpg rename to editions/2019/fa/images/cover.jpg diff --git a/2019/fa/src/images/front-cc.png b/editions/2019/fa/images/front-cc.png similarity index 100% rename from 2019/fa/src/images/front-cc.png rename to editions/2019/fa/images/front-cc.png diff --git a/2019/fa/src/images/front-wasp.png b/editions/2019/fa/images/front-wasp.png similarity index 100% rename from 2019/fa/src/images/front-wasp.png rename to editions/2019/fa/images/front-wasp.png diff --git a/2019/fa/src/images/license.png b/editions/2019/fa/images/license.png similarity index 100% rename from 2019/fa/src/images/license.png rename to editions/2019/fa/images/license.png diff --git a/2019/fa/src/images/owasp-logo.png b/editions/2019/fa/images/owasp-logo.png similarity index 100% rename from 2019/fa/src/images/owasp-logo.png rename to editions/2019/fa/images/owasp-logo.png diff --git a/2019/fa/src/images/rnpg-logo.png b/editions/2019/fa/images/rnpg-logo.png similarity index 100% rename from 2019/fa/src/images/rnpg-logo.png rename to editions/2019/fa/images/rnpg-logo.png diff --git a/2019/fr/src/0x00-header.md b/editions/2019/fr/0x00-header.md similarity index 89% rename from 2019/fr/src/0x00-header.md rename to editions/2019/fr/0x00-header.md index a001e608b..2ff43157b 100755 --- a/2019/fr/src/0x00-header.md +++ b/editions/2019/fr/0x00-header.md @@ -1,6 +1,10 @@ +--- +title: '' +--- + ![OWASP LOGO](images/owasp-logo.png) -## OWASP API Security Top 10 2019 +# OWASP API Security Top 10 2019 Une traduction en français du projet original "The Ten Most Critical API Security Risks" diff --git a/2019/fr/src/0x00-notice.md b/editions/2019/fr/0x00-notice.md similarity index 91% rename from 2019/fr/src/0x00-notice.md rename to editions/2019/fr/0x00-notice.md index 45caf982b..b11fba9c8 100755 --- a/2019/fr/src/0x00-notice.md +++ b/editions/2019/fr/0x00-notice.md @@ -1,5 +1,4 @@ -Note -==== +# Note Ceci est la version texte de l'OWASP API Security Top 10, utilisé comme source pour la version officielle distribuée en Portable Document Format (PDF). @@ -11,4 +10,4 @@ traductions doivent être effectuées ici. Pour plus de détails sur * Erez Yallon * Inon Shkedy -[1]: ../../CONTRIBUTING.md +[1]: ../../../CONTRIBUTING.md diff --git a/2019/fr/src/0x00-toc.md b/editions/2019/fr/0x00-toc.md similarity index 94% rename from 2019/fr/src/0x00-toc.md rename to editions/2019/fr/0x00-toc.md index 18f1c471c..431cbb06a 100755 --- a/2019/fr/src/0x00-toc.md +++ b/editions/2019/fr/0x00-toc.md @@ -1,9 +1,8 @@ -Table des Matières -================== +# Table des Matières * [Table des Matières](0x00-toc.md) * [À propos d'OWASP](0x01-about-owasp.md) -* [Avant-propos](0x02-foreward.md) +* [Avant-propos](0x02-foreword.md) * [Introduction](0x03-introduction.md) * [Notes de versions](0x04-release-notes.md) * [Risques de sécurité des API](0x10-api-security-risks.md) diff --git a/2019/fr/src/0x01-about-owasp.md b/editions/2019/fr/0x01-about-owasp.md similarity index 98% rename from 2019/fr/src/0x01-about-owasp.md rename to editions/2019/fr/0x01-about-owasp.md index c4de919eb..46f00e9fb 100755 --- a/2019/fr/src/0x01-about-owasp.md +++ b/editions/2019/fr/0x01-about-owasp.md @@ -1,5 +1,4 @@ -À propos d'OWASP -================ +# À propos d'OWASP L'Open Web Application Security Project (OWASP) est une communauté ouverte dédiée à permettre aux organisations de développer, d'acheter et de maintenir diff --git a/2019/fr/src/0x02-foreword.md b/editions/2019/fr/0x02-foreword.md similarity index 98% rename from 2019/fr/src/0x02-foreword.md rename to editions/2019/fr/0x02-foreword.md index af9bc1c5a..994490e5c 100755 --- a/2019/fr/src/0x02-foreword.md +++ b/editions/2019/fr/0x02-foreword.md @@ -1,5 +1,4 @@ -Avant-propos -============ +# Avant-propos L'Application Programming Interface (API), en français interface de programmation applicative, est un élément fondateur des applications omniprésentes dans le monde actuel. Des banques, commerces, du diff --git a/2019/fr/src/0x03-introduction.md b/editions/2019/fr/0x03-introduction.md similarity index 98% rename from 2019/fr/src/0x03-introduction.md rename to editions/2019/fr/0x03-introduction.md index 181b5eab3..cfd30a687 100755 --- a/2019/fr/src/0x03-introduction.md +++ b/editions/2019/fr/0x03-introduction.md @@ -1,5 +1,4 @@ -Introduction -============ +# Introduction ## Bienvenue à l'OWASP API Security Top 10 - 2019 ! diff --git a/2019/fr/src/0x04-release-notes.md b/editions/2019/fr/0x04-release-notes.md similarity index 97% rename from 2019/fr/src/0x04-release-notes.md rename to editions/2019/fr/0x04-release-notes.md index 81d2c6932..c335882ed 100755 --- a/2019/fr/src/0x04-release-notes.md +++ b/editions/2019/fr/0x04-release-notes.md @@ -1,5 +1,4 @@ -Notes de versions -================= +# Notes de versions Ceci est la première édition de l'OWASP API Security Top 10, que nous prévoyons de mettre à jour périodiquement, tous les trois ou quatre ans. diff --git a/2019/fr/src/0x10-api-security-risks.md b/editions/2019/fr/0x10-api-security-risks.md similarity index 97% rename from 2019/fr/src/0x10-api-security-risks.md rename to editions/2019/fr/0x10-api-security-risks.md index e2383cc24..3e6199dce 100755 --- a/2019/fr/src/0x10-api-security-risks.md +++ b/editions/2019/fr/0x10-api-security-risks.md @@ -1,5 +1,4 @@ -Risques de sécurité des API -=========================== +# Risques de sécurité des API La [méthodologie d'évaluation de risques OWASP][1] a été utilisée pour effectuer l'analyse de risques. diff --git a/2019/fr/src/0x11-t10.md b/editions/2019/fr/0x11-t10.md similarity index 97% rename from 2019/fr/src/0x11-t10.md rename to editions/2019/fr/0x11-t10.md index 9184fcb48..7ff302c42 100755 --- a/2019/fr/src/0x11-t10.md +++ b/editions/2019/fr/0x11-t10.md @@ -1,5 +1,4 @@ -OWASP Top 10 Risques de sécurité des API – 2019 -=============================================== +# OWASP Top 10 Risques de sécurité des API – 2019 | Risque | Description | | ------ | ----------- | diff --git a/2019/fr/src/0xa1-broken-object-level-authorization.md b/editions/2019/fr/0xa1-broken-object-level-authorization.md similarity index 98% rename from 2019/fr/src/0xa1-broken-object-level-authorization.md rename to editions/2019/fr/0xa1-broken-object-level-authorization.md index d7f41b4b1..110b5e34f 100755 --- a/2019/fr/src/0xa1-broken-object-level-authorization.md +++ b/editions/2019/fr/0xa1-broken-object-level-authorization.md @@ -1,5 +1,4 @@ -API1:2019 Broken Object Level Authorization -=========================================== +# API1:2019 Broken Object Level Authorization | Facteurs de menace / Vecteurs d'attaque | Faille de sécurité | Impact | | - | - | - | diff --git a/2019/fr/src/0xa2-broken-user-authentication.md b/editions/2019/fr/0xa2-broken-user-authentication.md similarity index 98% rename from 2019/fr/src/0xa2-broken-user-authentication.md rename to editions/2019/fr/0xa2-broken-user-authentication.md index 74a6960eb..e32c78079 100755 --- a/2019/fr/src/0xa2-broken-user-authentication.md +++ b/editions/2019/fr/0xa2-broken-user-authentication.md @@ -1,5 +1,4 @@ -API2:2019 Broken User Authentication -==================================== +# API2:2019 Broken User Authentication | Facteurs de menace / Vecteurs d'attaque | Faille de sécurité | Impact | | - | - | - | diff --git a/2019/fr/src/0xa3-excessive-data-exposure.md b/editions/2019/fr/0xa3-excessive-data-exposure.md similarity index 98% rename from 2019/fr/src/0xa3-excessive-data-exposure.md rename to editions/2019/fr/0xa3-excessive-data-exposure.md index 1ff2a8b95..a32cebba0 100755 --- a/2019/fr/src/0xa3-excessive-data-exposure.md +++ b/editions/2019/fr/0xa3-excessive-data-exposure.md @@ -1,5 +1,4 @@ -API3:2019 Excessive Data Exposure -================================= +# API3:2019 Excessive Data Exposure | Facteurs de menace / Vecteurs d'attaque | Faille de sécurité | Impact | | - | - | - | diff --git a/2019/fr/src/0xa4-lack-of-resources-and-rate-limiting.md b/editions/2019/fr/0xa4-lack-of-resources-and-rate-limiting.md similarity index 98% rename from 2019/fr/src/0xa4-lack-of-resources-and-rate-limiting.md rename to editions/2019/fr/0xa4-lack-of-resources-and-rate-limiting.md index 7260d5775..58894535e 100755 --- a/2019/fr/src/0xa4-lack-of-resources-and-rate-limiting.md +++ b/editions/2019/fr/0xa4-lack-of-resources-and-rate-limiting.md @@ -1,5 +1,4 @@ -API4:2019 Lack of Resources & Rate Limiting -=========================================== +# API4:2019 Lack of Resources & Rate Limiting | Facteurs de menace / Vecteurs d'attaque | Faille de sécurité | Impact | | - | - | - | diff --git a/2019/fr/src/0xa5-broken-function-level-authorization.md b/editions/2019/fr/0xa5-broken-function-level-authorization.md similarity index 98% rename from 2019/fr/src/0xa5-broken-function-level-authorization.md rename to editions/2019/fr/0xa5-broken-function-level-authorization.md index a0dfed1a9..c0649bcf8 100755 --- a/2019/fr/src/0xa5-broken-function-level-authorization.md +++ b/editions/2019/fr/0xa5-broken-function-level-authorization.md @@ -1,5 +1,4 @@ -API5:2019 Broken Function Level Authorization -============================================= +# API5:2019 Broken Function Level Authorization | Facteurs de menace / Vecteurs d'attaque | Faille de sécurité | Impact | | - | - | - | diff --git a/2019/fr/src/0xa6-mass-assignment.md b/editions/2019/fr/0xa6-mass-assignment.md similarity index 98% rename from 2019/fr/src/0xa6-mass-assignment.md rename to editions/2019/fr/0xa6-mass-assignment.md index a8b877606..d8de49516 100755 --- a/2019/fr/src/0xa6-mass-assignment.md +++ b/editions/2019/fr/0xa6-mass-assignment.md @@ -1,5 +1,4 @@ -API6:2019 - Mass Assignment -=========================== +# API6:2019 - Mass Assignment | Facteurs de menace / Vecteurs d'attaque | Faille de sécurité | Impact | | - | - | - | diff --git a/2019/fr/src/0xa7-security-misconfiguration.md b/editions/2019/fr/0xa7-security-misconfiguration.md similarity index 98% rename from 2019/fr/src/0xa7-security-misconfiguration.md rename to editions/2019/fr/0xa7-security-misconfiguration.md index a6193e1a5..03209ecff 100755 --- a/2019/fr/src/0xa7-security-misconfiguration.md +++ b/editions/2019/fr/0xa7-security-misconfiguration.md @@ -1,5 +1,4 @@ -API7:2019 Security Misconfiguration -=================================== +# API7:2019 Security Misconfiguration | Facteurs de menace / Vecteurs d'attaque | Faille de sécurité | Impact | | - | - | - | diff --git a/2019/fr/src/0xa8-injection.md b/editions/2019/fr/0xa8-injection.md similarity index 99% rename from 2019/fr/src/0xa8-injection.md rename to editions/2019/fr/0xa8-injection.md index 9d5c6e490..eb2891046 100755 --- a/2019/fr/src/0xa8-injection.md +++ b/editions/2019/fr/0xa8-injection.md @@ -1,5 +1,4 @@ -API8:2019 Injection -=================== +# API8:2019 Injection | Facteurs de menace / Vecteurs d'attaque | Faille de sécurité | Impact | | - | - | - | diff --git a/2019/fr/src/0xa9-improper-assets-management.md b/editions/2019/fr/0xa9-improper-assets-management.md similarity index 98% rename from 2019/fr/src/0xa9-improper-assets-management.md rename to editions/2019/fr/0xa9-improper-assets-management.md index d041071fc..45ae0a044 100755 --- a/2019/fr/src/0xa9-improper-assets-management.md +++ b/editions/2019/fr/0xa9-improper-assets-management.md @@ -1,5 +1,4 @@ -API9:2019 Improper Assets Management -==================================== +# API9:2019 Improper Assets Management | Facteurs de menace / Vecteurs d'attaque | Faille de sécurité | Impact | | - | - | - | diff --git a/2019/fr/src/0xaa-insufficient-logging-monitoring.md b/editions/2019/fr/0xaa-insufficient-logging-monitoring.md similarity index 97% rename from 2019/fr/src/0xaa-insufficient-logging-monitoring.md rename to editions/2019/fr/0xaa-insufficient-logging-monitoring.md index beaaef28f..d9f303a22 100755 --- a/2019/fr/src/0xaa-insufficient-logging-monitoring.md +++ b/editions/2019/fr/0xaa-insufficient-logging-monitoring.md @@ -1,5 +1,4 @@ -API10:2019 Insufficient Logging & Monitoring -============================================ +# API10:2019 Insufficient Logging & Monitoring | Facteurs de menace / Vecteurs d'attaque | Faille de sécurité | Impact | | - | - | - | diff --git a/2019/fr/src/0xb0-next-devs.md b/editions/2019/fr/0xb0-next-devs.md similarity index 98% rename from 2019/fr/src/0xb0-next-devs.md rename to editions/2019/fr/0xb0-next-devs.md index 4ba1a79d5..12ae47daf 100755 --- a/2019/fr/src/0xb0-next-devs.md +++ b/editions/2019/fr/0xb0-next-devs.md @@ -1,5 +1,4 @@ -Perspectives pour les Développeurs -================================== +# Perspectives pour les Développeurs Créer ou maintenir la sécurité d'un logiciel, ou corriger un logiciel existant, peut s'avérer difficile. Il en va de même pour les API. diff --git a/2019/fr/src/0xb1-next-devsecops.md b/editions/2019/fr/0xb1-next-devsecops.md similarity index 98% rename from 2019/fr/src/0xb1-next-devsecops.md rename to editions/2019/fr/0xb1-next-devsecops.md index d80ea42c7..098f498e6 100755 --- a/2019/fr/src/0xb1-next-devsecops.md +++ b/editions/2019/fr/0xb1-next-devsecops.md @@ -1,5 +1,4 @@ -Perspectives pour les DevSecOps -=============================== +# Perspectives pour les DevSecOps Du fait de leur importance dans les architectures des applications modernes, il est crucial de construire des API sécurisées. La sécurité ne peut pas être diff --git a/2019/fr/src/0xd0-about-data.md b/editions/2019/fr/0xd0-about-data.md similarity index 97% rename from 2019/fr/src/0xd0-about-data.md rename to editions/2019/fr/0xd0-about-data.md index 7a278c8db..edde51877 100755 --- a/2019/fr/src/0xd0-about-data.md +++ b/editions/2019/fr/0xd0-about-data.md @@ -1,5 +1,4 @@ -Méthodologie et Données -======================= +# Méthodologie et Données ## Présentation diff --git a/2019/fr/src/0xd1-acknowledgments.md b/editions/2019/fr/0xd1-acknowledgments.md similarity index 95% rename from 2019/fr/src/0xd1-acknowledgments.md rename to editions/2019/fr/0xd1-acknowledgments.md index c17e534d4..1e58ad044 100755 --- a/2019/fr/src/0xd1-acknowledgments.md +++ b/editions/2019/fr/0xd1-acknowledgments.md @@ -1,5 +1,4 @@ -Remerciements -============= +# Remerciements ## Remerciements aux Contributeurs diff --git a/2019/fr/dist/owasp-api-security-top-10.odt b/editions/2019/fr/dist/owasp-api-security-top-10.odt similarity index 100% rename from 2019/fr/dist/owasp-api-security-top-10.odt rename to editions/2019/fr/dist/owasp-api-security-top-10.odt diff --git a/2019/fr/dist/owasp-api-security-top-10.pdf b/editions/2019/fr/dist/owasp-api-security-top-10.pdf similarity index 100% rename from 2019/fr/dist/owasp-api-security-top-10.pdf rename to editions/2019/fr/dist/owasp-api-security-top-10.pdf diff --git a/2019/fr/src/images/cover.jpg b/editions/2019/fr/images/cover.jpg similarity index 100% rename from 2019/fr/src/images/cover.jpg rename to editions/2019/fr/images/cover.jpg diff --git a/2019/fr/src/images/front-cc.png b/editions/2019/fr/images/front-cc.png similarity index 100% rename from 2019/fr/src/images/front-cc.png rename to editions/2019/fr/images/front-cc.png diff --git a/2019/fr/src/images/front-wasp.png b/editions/2019/fr/images/front-wasp.png similarity index 100% rename from 2019/fr/src/images/front-wasp.png rename to editions/2019/fr/images/front-wasp.png diff --git a/2019/fr/src/images/license.png b/editions/2019/fr/images/license.png similarity index 100% rename from 2019/fr/src/images/license.png rename to editions/2019/fr/images/license.png diff --git a/2019/fr/src/images/owasp-logo.png b/editions/2019/fr/images/owasp-logo.png similarity index 100% rename from 2019/fr/src/images/owasp-logo.png rename to editions/2019/fr/images/owasp-logo.png diff --git a/editions/2019/mkdocs.yml b/editions/2019/mkdocs.yml new file mode 100644 index 000000000..8bdd5baf4 --- /dev/null +++ b/editions/2019/mkdocs.yml @@ -0,0 +1,21 @@ +site_name: editions/2019 +docs_dir: . + +extra: + alternate: + - name: Arabic + lang: ar + - name: Greek (Greece) + lang: el-gr + - name: English + lang: en + - name: Farsi + lang: fa + - name: French + lang: fr + - name: Portugês (Brasil) + lang: pt-BR + - name: Portugês (Portugal) + lang: pt-pt + - name: Russian + lang: ru diff --git a/2019/pt-br/src/0x00-header.md b/editions/2019/pt-BR/0x00-header.md similarity index 87% rename from 2019/pt-br/src/0x00-header.md rename to editions/2019/pt-BR/0x00-header.md index ad35e6ea5..08497d6dd 100644 --- a/2019/pt-br/src/0x00-header.md +++ b/editions/2019/pt-BR/0x00-header.md @@ -1,6 +1,10 @@ +--- +title: '' +--- + ![OWASP LOGO](images/owasp-logo.png) -## Os dez mais críticos riscos de segurança de API +# Os dez mais críticos riscos de segurança de API Uma tradução para o português do Brasil do projeto original "The Ten Most Critical API Security Risks" @@ -13,5 +17,3 @@ March 10th, 2020 | https://owasp.org | Este trabalho é licenciado sob a [Atribuição-CompartilhaIgual 4.0 Internacional (CC BY-SA 4.0)][1] | ![Creative Commons License Logo](images/front-cc.png) | [1]: https://creativecommons.org/licenses/by-sa/4.0/deed.pt_BR - - diff --git a/2019/pt-br/src/0x00-notice.md b/editions/2019/pt-BR/0x00-notice.md similarity index 91% rename from 2019/pt-br/src/0x00-notice.md rename to editions/2019/pt-BR/0x00-notice.md index 83ca47d3b..08e9c39d4 100644 --- a/2019/pt-br/src/0x00-notice.md +++ b/editions/2019/pt-BR/0x00-notice.md @@ -1,5 +1,4 @@ -Nota -====== +# Nota Esta é a versão em formato texto do projeto "OWASP API Security Top 10", sendo utilizado como fonte da versão oficial distribuída no formato PDF. @@ -8,4 +7,4 @@ Contribuições com o projeto, tais como comentários, correções ou traduçõe * Erez Yallon * Inon Shkedy -[1]: ../CONTRIBUTING.md \ No newline at end of file +[1]: ./CONTRIBUTING.md diff --git a/2019/pt-br/src/0x00-toc.md b/editions/2019/pt-BR/0x00-toc.md similarity index 94% rename from 2019/pt-br/src/0x00-toc.md rename to editions/2019/pt-BR/0x00-toc.md index 49a65da8b..c7546d247 100644 --- a/2019/pt-br/src/0x00-toc.md +++ b/editions/2019/pt-BR/0x00-toc.md @@ -1,9 +1,8 @@ -Tabela de conteúdo -================== +# Tabela de conteúdo * [Tabela de conteúdo](0x00-toc.md) * [Sobre o OWASP](0x01-about-owasp.md) -* [Prefácio](0x02-foreward.md) +* [Prefácio](0x02-foreword.md) * [Introdução](0x03-introduction.md) * [Notas da Versão](0x04-release-notes.md) * [Riscos de Segurança de API](0x10-api-security-risks.md) diff --git a/2019/pt-br/src/0x01-about-owasp.md b/editions/2019/pt-BR/0x01-about-owasp.md similarity index 96% rename from 2019/pt-br/src/0x01-about-owasp.md rename to editions/2019/pt-BR/0x01-about-owasp.md index 524ac1db1..609cbde7c 100644 --- a/2019/pt-br/src/0x01-about-owasp.md +++ b/editions/2019/pt-BR/0x01-about-owasp.md @@ -1,5 +1,4 @@ -Sobre o OWASP -============= +# Sobre o OWASP OWASP é o acrônimo em inglês para "Open Web Application Security Project", é uma comunidade aberta, dedicada a habilitar as organizações a desenvolver, comprar e manter aplicações e APIs que podem ser confiáveis. @@ -41,4 +40,4 @@ Copyright © 2003-2019 The OWASP Foundation. Este documento é liberado sob a [A [4]: https://wiki.owasp.org/index.php/Category:OWASP_AppSec_Conference [5]: https://lists.owasp.org/mailman/listinfo [6]: https://owasp.org/ -[7]: https://creativecommons.org/licenses/by-sa/4.0/deed.pt_BR \ No newline at end of file +[7]: https://creativecommons.org/licenses/by-sa/4.0/deed.pt_BR diff --git a/2019/pt-br/src/0x02-foreword.md b/editions/2019/pt-BR/0x02-foreword.md similarity index 99% rename from 2019/pt-br/src/0x02-foreword.md rename to editions/2019/pt-BR/0x02-foreword.md index ab4bed8ef..a911cde45 100644 --- a/2019/pt-br/src/0x02-foreword.md +++ b/editions/2019/pt-BR/0x02-foreword.md @@ -1,5 +1,4 @@ -Prefácio -======== +# Prefácio Elemento fundamental na inovação nas soluções *app-driven* nos dias de hoje são as APIs (*Application Programming Interface*). Desde os bancos, lojas, transportes, IoT, veículos autônomos e cidades inteligentes, as APIs são parte crítica de soluções modernas de móvel, SaaS, aplicações web em geral, e podem ser encontradas em interfaces com o cliente, parceiros e aplicações internas. diff --git a/2019/pt-br/src/0x03-introduction.md b/editions/2019/pt-BR/0x03-introduction.md similarity index 98% rename from 2019/pt-br/src/0x03-introduction.md rename to editions/2019/pt-BR/0x03-introduction.md index 881582e7a..d031b5704 100644 --- a/2019/pt-br/src/0x03-introduction.md +++ b/editions/2019/pt-BR/0x03-introduction.md @@ -1,5 +1,4 @@ -Introdução -============ +# Introdução ## Seja bem-vindo ao OWASP API Security Top 10 - 2019! diff --git a/2019/pt-br/src/0x04-release-notes.md b/editions/2019/pt-BR/0x04-release-notes.md similarity index 97% rename from 2019/pt-br/src/0x04-release-notes.md rename to editions/2019/pt-BR/0x04-release-notes.md index 7bf043657..cfc25e836 100644 --- a/2019/pt-br/src/0x04-release-notes.md +++ b/editions/2019/pt-BR/0x04-release-notes.md @@ -1,5 +1,4 @@ -Notas da Versão -=============== +# Notas da Versão Esta é a primeira edição do projeto OWASP API Security Top 10, que desejamos que seja atualizado periodicamente a cada três ou quatro anos. diff --git a/2019/pt-br/src/0x10-api-security-risks.md b/editions/2019/pt-BR/0x10-api-security-risks.md similarity index 97% rename from 2019/pt-br/src/0x10-api-security-risks.md rename to editions/2019/pt-BR/0x10-api-security-risks.md index 195046a7f..fd886009f 100644 --- a/2019/pt-br/src/0x10-api-security-risks.md +++ b/editions/2019/pt-BR/0x10-api-security-risks.md @@ -1,5 +1,4 @@ -Riscos de Segurança de API -========================== +# Riscos de Segurança de API A [Metodologia de Avaliação de Risco do OWASP][1] foi adotada para a análise dos riscos de API. diff --git a/2019/pt-br/src/0x11-t10.md b/editions/2019/pt-BR/0x11-t10.md similarity index 97% rename from 2019/pt-br/src/0x11-t10.md rename to editions/2019/pt-BR/0x11-t10.md index ba06a22f8..09fca704b 100644 --- a/2019/pt-br/src/0x11-t10.md +++ b/editions/2019/pt-BR/0x11-t10.md @@ -1,5 +1,4 @@ -OWASP Top 10 Riscos de Segurança de API – 2019 -============================================== +# OWASP Top 10 Riscos de Segurança de API – 2019 | Risco | Descrição | | ---- | ----------- | diff --git a/2019/pt-br/src/0xa1-broken-object-level-authorization.md b/editions/2019/pt-BR/0xa1-broken-object-level-authorization.md similarity index 97% rename from 2019/pt-br/src/0xa1-broken-object-level-authorization.md rename to editions/2019/pt-BR/0xa1-broken-object-level-authorization.md index 36d78873b..340f05736 100644 --- a/2019/pt-br/src/0xa1-broken-object-level-authorization.md +++ b/editions/2019/pt-BR/0xa1-broken-object-level-authorization.md @@ -1,5 +1,4 @@ -API1:2019 Broken Object Level Authorization -=========================================== +# API1:2019 Broken Object Level Authorization | Agentes/Vetores | Fraquezas de Segurança | Impactos | | - | - | - | diff --git a/2019/pt-br/src/0xa2-broken-user-authentication.md b/editions/2019/pt-BR/0xa2-broken-user-authentication.md similarity index 98% rename from 2019/pt-br/src/0xa2-broken-user-authentication.md rename to editions/2019/pt-BR/0xa2-broken-user-authentication.md index aad1198bb..8feef6333 100644 --- a/2019/pt-br/src/0xa2-broken-user-authentication.md +++ b/editions/2019/pt-BR/0xa2-broken-user-authentication.md @@ -1,5 +1,4 @@ -API2:2019 Broken User Authentication -==================================== +# API2:2019 Broken User Authentication | Agentes/Vetores | Fraquezas de Segurança | Impactos | | - | - | - | diff --git a/2019/pt-br/src/0xa3-excessive-data-exposure.md b/editions/2019/pt-BR/0xa3-excessive-data-exposure.md similarity index 98% rename from 2019/pt-br/src/0xa3-excessive-data-exposure.md rename to editions/2019/pt-BR/0xa3-excessive-data-exposure.md index 20c857f15..b69f4fe28 100644 --- a/2019/pt-br/src/0xa3-excessive-data-exposure.md +++ b/editions/2019/pt-BR/0xa3-excessive-data-exposure.md @@ -1,5 +1,4 @@ -API3:2019 Excessive Data Exposure -================================= +# API3:2019 Excessive Data Exposure | Agentes/Vetores | Fraquezas de Segurança | Impactos | | - | - | - | diff --git a/2019/pt-br/src/0xa4-lack-of-resources-and-rate-limiting.md b/editions/2019/pt-BR/0xa4-lack-of-resources-and-rate-limiting.md similarity index 98% rename from 2019/pt-br/src/0xa4-lack-of-resources-and-rate-limiting.md rename to editions/2019/pt-BR/0xa4-lack-of-resources-and-rate-limiting.md index 65f1b2810..0bb3fbbe6 100644 --- a/2019/pt-br/src/0xa4-lack-of-resources-and-rate-limiting.md +++ b/editions/2019/pt-BR/0xa4-lack-of-resources-and-rate-limiting.md @@ -1,5 +1,4 @@ -API4:2019 Lack of Resources & Rate Limiting -=========================================== +# API4:2019 Lack of Resources & Rate Limiting | Agentes/Vetores | Fraquezas de Segurança | Impactos | | - | - | - | diff --git a/2019/pt-br/src/0xa5-broken-function-level-authorization.md b/editions/2019/pt-BR/0xa5-broken-function-level-authorization.md similarity index 98% rename from 2019/pt-br/src/0xa5-broken-function-level-authorization.md rename to editions/2019/pt-BR/0xa5-broken-function-level-authorization.md index f24d3f9ad..fb39a0b2b 100644 --- a/2019/pt-br/src/0xa5-broken-function-level-authorization.md +++ b/editions/2019/pt-BR/0xa5-broken-function-level-authorization.md @@ -1,5 +1,4 @@ -API5:2019 Broken Function Level Authorization -============================================= +# API5:2019 Broken Function Level Authorization | Agentes/Vetores | Fraquezas de Segurança | Impactos | | - | - | - | diff --git a/2019/pt-br/src/0xa6-mass-assignment.md b/editions/2019/pt-BR/0xa6-mass-assignment.md similarity index 98% rename from 2019/pt-br/src/0xa6-mass-assignment.md rename to editions/2019/pt-BR/0xa6-mass-assignment.md index 0988bedc7..74d074368 100644 --- a/2019/pt-br/src/0xa6-mass-assignment.md +++ b/editions/2019/pt-BR/0xa6-mass-assignment.md @@ -1,5 +1,4 @@ -API6:2019 - Mass Assignment -=========================== +# API6:2019 - Mass Assignment | Agentes/Vetores | Fraquezas de Segurança | Impactos | | - | - | - | diff --git a/2019/pt-br/src/0xa7-security-misconfiguration.md b/editions/2019/pt-BR/0xa7-security-misconfiguration.md similarity index 98% rename from 2019/pt-br/src/0xa7-security-misconfiguration.md rename to editions/2019/pt-BR/0xa7-security-misconfiguration.md index f2b5b92b1..f4efaec7f 100644 --- a/2019/pt-br/src/0xa7-security-misconfiguration.md +++ b/editions/2019/pt-BR/0xa7-security-misconfiguration.md @@ -1,5 +1,4 @@ -API7:2019 Security Misconfiguration -=================================== +# API7:2019 Security Misconfiguration | Agentes/Vetores | Fraquezas de Segurança | Impactos | | - | - | - | diff --git a/2019/pt-br/src/0xa8-injection.md b/editions/2019/pt-BR/0xa8-injection.md similarity index 99% rename from 2019/pt-br/src/0xa8-injection.md rename to editions/2019/pt-BR/0xa8-injection.md index 7bd7ffa30..15c8530d0 100644 --- a/2019/pt-br/src/0xa8-injection.md +++ b/editions/2019/pt-BR/0xa8-injection.md @@ -1,5 +1,4 @@ -API8:2019 Injection -=================== +# API8:2019 Injection | Agentes/Vetores | Fraquezas de Segurança | Impactos | | - | - | - | diff --git a/2019/pt-br/src/0xa9-improper-assets-management.md b/editions/2019/pt-BR/0xa9-improper-assets-management.md similarity index 98% rename from 2019/pt-br/src/0xa9-improper-assets-management.md rename to editions/2019/pt-BR/0xa9-improper-assets-management.md index 3fa99df58..a826b8570 100644 --- a/2019/pt-br/src/0xa9-improper-assets-management.md +++ b/editions/2019/pt-BR/0xa9-improper-assets-management.md @@ -1,5 +1,4 @@ -API9:2019 Improper Assets Management -==================================== +# API9:2019 Improper Assets Management | Agentes/Vetores | Fraquezas de Segurança | Impactos | | - | - | - | diff --git a/2019/pt-br/src/0xaa-insufficient-logging-monitoring.md b/editions/2019/pt-BR/0xaa-insufficient-logging-monitoring.md similarity index 96% rename from 2019/pt-br/src/0xaa-insufficient-logging-monitoring.md rename to editions/2019/pt-BR/0xaa-insufficient-logging-monitoring.md index efde3c889..334a6a811 100644 --- a/2019/pt-br/src/0xaa-insufficient-logging-monitoring.md +++ b/editions/2019/pt-BR/0xaa-insufficient-logging-monitoring.md @@ -1,5 +1,4 @@ -API10:2019 Insufficient Logging & Monitoring -============================================ +# API10:2019 Insufficient Logging & Monitoring | Agentes/Vetores | Fraquezas de Segurança | Impactos | | - | - | - | @@ -53,4 +52,4 @@ Uma plataforma de compartilhamento de vídeos foi atingida por um ataque de *cre [3]: https://owasp.org/www-project-proactive-controls/ [4]: https://github.com/OWASP/ASVS/blob/master/4.0/en/0x15-V7-Error-Logging.md [5]: https://cwe.mitre.org/data/definitions/223.html -[6]: https://cwe.mitre.org/data/definitions/778.html \ No newline at end of file +[6]: https://cwe.mitre.org/data/definitions/778.html diff --git a/2019/pt-br/src/0xb0-next-devs.md b/editions/2019/pt-BR/0xb0-next-devs.md similarity index 98% rename from 2019/pt-br/src/0xb0-next-devs.md rename to editions/2019/pt-BR/0xb0-next-devs.md index 058cdb919..e346f99ed 100644 --- a/2019/pt-br/src/0xb0-next-devs.md +++ b/editions/2019/pt-BR/0xb0-next-devs.md @@ -1,5 +1,4 @@ -Próximos passos para Desenvolvedores -==================================== +# Próximos passos para Desenvolvedores A tarefa de criar e manter software seguro, ou, corrigir software existente, pode ser uma tarefa difícil. APIs não são diferentes. diff --git a/2019/pt-br/src/0xb1-next-devsecops.md b/editions/2019/pt-BR/0xb1-next-devsecops.md similarity index 97% rename from 2019/pt-br/src/0xb1-next-devsecops.md rename to editions/2019/pt-BR/0xb1-next-devsecops.md index 74cf0c19f..2eaef51c1 100644 --- a/2019/pt-br/src/0xb1-next-devsecops.md +++ b/editions/2019/pt-BR/0xb1-next-devsecops.md @@ -1,5 +1,4 @@ -Próximos passos para DevSecOps -============================== +# Próximos passos para DevSecOps Considerando sua importância na arquitetura de aplicações modernas, a construção de APIs seguras é crucial. A segurança não pode ser negligenciadas, e deve fazer parte de todo o ciclo de vida de desenvolvendo. Executar verificações e testes de penetração anualmente não é mais suficiente. @@ -22,4 +21,4 @@ Em caso de dúvidas, mantenha-se informado, e reveja o [Manifesto DevSecOps][1] [5]: https://www.owasp.org/index.php/Category:OWASP_Application_Security_Verification_Standard_Project [6]: http://devsecops.github.io/ [7]: https://github.com/devsecops/awesome-devsecops -[8]: http://devsecops.org \ No newline at end of file +[8]: http://devsecops.org diff --git a/2019/pt-br/src/0xd0-about-data.md b/editions/2019/pt-BR/0xd0-about-data.md similarity index 98% rename from 2019/pt-br/src/0xd0-about-data.md rename to editions/2019/pt-BR/0xd0-about-data.md index 5243f25c5..6e901e242 100644 --- a/2019/pt-br/src/0xd0-about-data.md +++ b/editions/2019/pt-BR/0xd0-about-data.md @@ -1,5 +1,4 @@ -Dados e Metodologia -=================== +# Dados e Metodologia ## Visão Geral diff --git a/2019/pt-br/src/0xd1-acknowledgments.md b/editions/2019/pt-BR/0xd1-acknowledgments.md similarity index 93% rename from 2019/pt-br/src/0xd1-acknowledgments.md rename to editions/2019/pt-BR/0xd1-acknowledgments.md index c5134d00c..296e431a0 100644 --- a/2019/pt-br/src/0xd1-acknowledgments.md +++ b/editions/2019/pt-BR/0xd1-acknowledgments.md @@ -1,5 +1,4 @@ -Agradecimentos -============== +# Agradecimentos ## Agradecimentos aos colaboradores @@ -43,4 +42,4 @@ Gostaríamos de agradecer os seguintes colaboradores que contribuiram publicamen * Raphael Hagi * Bruno Barbosa -* Eduardo Bellis \ No newline at end of file +* Eduardo Bellis diff --git a/2019/pt-br/CONTRIBUTING.md b/editions/2019/pt-BR/CONTRIBUTING.md similarity index 96% rename from 2019/pt-br/CONTRIBUTING.md rename to editions/2019/pt-BR/CONTRIBUTING.md index 24ef095b3..5261a9f85 100644 --- a/2019/pt-br/CONTRIBUTING.md +++ b/editions/2019/pt-BR/CONTRIBUTING.md @@ -1,5 +1,4 @@ -Como contribuir -=============== +# Como contribuir Quando quiser contribuir com este repositório, por favor, antes discuta a mudança que deseja fazer enviando a questão com o proprietário do repositório antes de efetivar a mudança. Correções de digitação ou de refraseamento para melhor compreensão NÃO requerem discussão com o proprietário. @@ -42,5 +41,5 @@ Contribuições a este repositório são bem-vindas. Para facilitar o gerencialm ``` 7. Abra um *pull request* do seu *branch* `fix/foreword-section` para o *branch* `develop` do repositório original do projeto. -[1]: .editorconfig +[1]: https://github.com/OWASP/API-Security/blob/master/.editorconfig [2]: https://editorconfig.org/ diff --git a/2019/pt-br/README.md b/editions/2019/pt-BR/README.md similarity index 96% rename from 2019/pt-br/README.md rename to editions/2019/pt-BR/README.md index 3208f5553..a10f6f40a 100644 --- a/2019/pt-br/README.md +++ b/editions/2019/pt-BR/README.md @@ -1,5 +1,4 @@ -Os dez mais críticos riscos de segurança de API -=============================================== +# Os dez mais críticos riscos de segurança de API Uma tradução para o português do Brasil do projeto OWASP API Security Top 10. diff --git a/2019/pt-br/dist/owasp-api-security-top-10-pt-br.odt b/editions/2019/pt-BR/dist/owasp-api-security-top-10-pt-br.odt similarity index 100% rename from 2019/pt-br/dist/owasp-api-security-top-10-pt-br.odt rename to editions/2019/pt-BR/dist/owasp-api-security-top-10-pt-br.odt diff --git a/2019/pt-br/dist/owasp-api-security-top-10-pt-br.pdf b/editions/2019/pt-BR/dist/owasp-api-security-top-10-pt-br.pdf similarity index 100% rename from 2019/pt-br/dist/owasp-api-security-top-10-pt-br.pdf rename to editions/2019/pt-BR/dist/owasp-api-security-top-10-pt-br.pdf diff --git a/2019/pt-br/src/images/cover.jpg b/editions/2019/pt-BR/images/cover.jpg similarity index 100% rename from 2019/pt-br/src/images/cover.jpg rename to editions/2019/pt-BR/images/cover.jpg diff --git a/2019/pt-br/src/images/front-cc.png b/editions/2019/pt-BR/images/front-cc.png similarity index 100% rename from 2019/pt-br/src/images/front-cc.png rename to editions/2019/pt-BR/images/front-cc.png diff --git a/2019/pt-br/src/images/front-wasp.png b/editions/2019/pt-BR/images/front-wasp.png similarity index 100% rename from 2019/pt-br/src/images/front-wasp.png rename to editions/2019/pt-BR/images/front-wasp.png diff --git a/2019/pt-br/src/images/license.png b/editions/2019/pt-BR/images/license.png similarity index 100% rename from 2019/pt-br/src/images/license.png rename to editions/2019/pt-BR/images/license.png diff --git a/2019/pt-br/src/images/owasp-logo.png b/editions/2019/pt-BR/images/owasp-logo.png similarity index 100% rename from 2019/pt-br/src/images/owasp-logo.png rename to editions/2019/pt-BR/images/owasp-logo.png diff --git a/2019/pt-pt/src/0x00-header.md b/editions/2019/pt-pt/0x00-header.md similarity index 89% rename from 2019/pt-pt/src/0x00-header.md rename to editions/2019/pt-pt/0x00-header.md index 1d04a55b0..d746d21b2 100644 --- a/2019/pt-pt/src/0x00-header.md +++ b/editions/2019/pt-pt/0x00-header.md @@ -1,6 +1,10 @@ +--- +title: '' +--- + ![OWASP LOGO](images/owasp-logo.png) -## OWASP API Security Top 10 2019 +# OWASP API Security Top 10 2019 Os Dez Problemas de Segurança Mais Críticos em APIs @@ -13,5 +17,3 @@ Os Dez Problemas de Segurança Mais Críticos em APIs | https://owasp.org | Distribuído ao abrigo da licença [Creative Commons Attribution-ShareAlike 4.0 International License][1] | ![Creative Commons License Logo](images/front-cc.png) | [1]: http://creativecommons.org/licenses/by-sa/4.0/ - - diff --git a/2019/pt-pt/src/0x00-notice.md b/editions/2019/pt-pt/0x00-notice.md similarity index 91% rename from 2019/pt-pt/src/0x00-notice.md rename to editions/2019/pt-pt/0x00-notice.md index 22b6e1654..aafb244ef 100644 --- a/2019/pt-pt/src/0x00-notice.md +++ b/editions/2019/pt-pt/0x00-notice.md @@ -1,5 +1,4 @@ -Nota -==== +# Nota Esta é a versão de texto do OWASP API Security Top 10, usada como fonte para a versão oficial distribuída em formato PDF - Portable Document Format. @@ -11,4 +10,4 @@ consulte a secção [CONTRIBUTING.md][1]. * Erez Yallon * Inon Shkedy -[1]: ../../CONTRIBUTING.md +[1]: ../../../CONTRIBUTING.md diff --git a/2019/pt-pt/src/0x00-toc.md b/editions/2019/pt-pt/0x00-toc.md similarity index 94% rename from 2019/pt-pt/src/0x00-toc.md rename to editions/2019/pt-pt/0x00-toc.md index 86c65c48a..8464fa21a 100644 --- a/2019/pt-pt/src/0x00-toc.md +++ b/editions/2019/pt-pt/0x00-toc.md @@ -1,9 +1,8 @@ -Tabela de Conteúdos -=================== +# Tabela de Conteúdos * [Tabela de Conteúdos](0x00-toc.md) * [Sobre a OWASP](0x01-about-owasp.md) -* [Prefácio](0x02-foreward.md) +* [Prefácio](0x02-foreword.md) * [Introdução](0x03-introduction.md) * [Notas da Versão](0x04-release-notes.md) * [Riscos de Segurança em APIs](0x10-api-security-risks.md) diff --git a/2019/pt-pt/src/0x01-about-owasp.md b/editions/2019/pt-pt/0x01-about-owasp.md similarity index 99% rename from 2019/pt-pt/src/0x01-about-owasp.md rename to editions/2019/pt-pt/0x01-about-owasp.md index 525ce855e..6cf1f2676 100644 --- a/2019/pt-pt/src/0x01-about-owasp.md +++ b/editions/2019/pt-pt/0x01-about-owasp.md @@ -1,5 +1,4 @@ -Sobre a OWASP -=========== +# Sobre a OWASP OWASP - Open Web Application Security Project é uma comunidade aberta que se dedica a ajudar as organizações a desenvolver, adquirir e manter aplicações e diff --git a/2019/pt-pt/src/0x02-foreword.md b/editions/2019/pt-pt/0x02-foreword.md similarity index 99% rename from 2019/pt-pt/src/0x02-foreword.md rename to editions/2019/pt-pt/0x02-foreword.md index 1a1f7c162..b12c747f1 100644 --- a/2019/pt-pt/src/0x02-foreword.md +++ b/editions/2019/pt-pt/0x02-foreword.md @@ -1,5 +1,4 @@ -Prefácio -======== +# Prefácio As APIs - _Application Programming Interface_ têm um papel fundamental na inovação que observamos nos dias de hoje ao nível das aplicações. Desde a banca, diff --git a/2019/pt-pt/src/0x03-introduction.md b/editions/2019/pt-pt/0x03-introduction.md similarity index 98% rename from 2019/pt-pt/src/0x03-introduction.md rename to editions/2019/pt-pt/0x03-introduction.md index ff3066476..ddbc85156 100644 --- a/2019/pt-pt/src/0x03-introduction.md +++ b/editions/2019/pt-pt/0x03-introduction.md @@ -1,5 +1,4 @@ -Introdução -========== +# Introdução ## Bem-vindo ao OWASP API Security Top 10 - 2019! diff --git a/2019/pt-pt/src/0x04-release-notes.md b/editions/2019/pt-pt/0x04-release-notes.md similarity index 98% rename from 2019/pt-pt/src/0x04-release-notes.md rename to editions/2019/pt-pt/0x04-release-notes.md index ae452e99e..908874fbc 100644 --- a/2019/pt-pt/src/0x04-release-notes.md +++ b/editions/2019/pt-pt/0x04-release-notes.md @@ -1,5 +1,4 @@ -Notas da Versão -=============== +# Notas da Versão Esta é a primeira edição do OWASP API Security Top 10, que prevemos atualizar periodicamente a cada três ou quatro anos. diff --git a/2019/pt-pt/src/0x10-api-security-risks.md b/editions/2019/pt-pt/0x10-api-security-risks.md similarity index 97% rename from 2019/pt-pt/src/0x10-api-security-risks.md rename to editions/2019/pt-pt/0x10-api-security-risks.md index b4a379980..7f091d783 100644 --- a/2019/pt-pt/src/0x10-api-security-risks.md +++ b/editions/2019/pt-pt/0x10-api-security-risks.md @@ -1,5 +1,4 @@ -Riscos de Segurança em APIs -=========================== +# Riscos de Segurança em APIs Para a análise de risco usámos a [metodologia de avaliação de risco da OWASP][1]. diff --git a/2019/pt-pt/src/0x11-t10.md b/editions/2019/pt-pt/0x11-t10.md similarity index 98% rename from 2019/pt-pt/src/0x11-t10.md rename to editions/2019/pt-pt/0x11-t10.md index f48244235..0e019a894 100644 --- a/2019/pt-pt/src/0x11-t10.md +++ b/editions/2019/pt-pt/0x11-t10.md @@ -1,5 +1,4 @@ -OWASP Top 10 API Security Risks – 2019 -====================================== +# OWASP Top 10 API Security Risks – 2019 | Risk | Description | | ---- | ----------- | diff --git a/2019/pt-pt/src/0xa1-broken-object-level-authorization.md b/editions/2019/pt-pt/0xa1-broken-object-level-authorization.md similarity index 97% rename from 2019/pt-pt/src/0xa1-broken-object-level-authorization.md rename to editions/2019/pt-pt/0xa1-broken-object-level-authorization.md index b1041e861..d6e2609de 100644 --- a/2019/pt-pt/src/0xa1-broken-object-level-authorization.md +++ b/editions/2019/pt-pt/0xa1-broken-object-level-authorization.md @@ -1,5 +1,4 @@ -API1:2019 Broken Object Level Authorization -=========================================== +# API1:2019 Broken Object Level Authorization | Agentes Ameaça/Vetores Ataque | Falha Segurança | Impactos | | - | - | - | diff --git a/2019/pt-pt/src/0xa2-broken-user-authentication.md b/editions/2019/pt-pt/0xa2-broken-user-authentication.md similarity index 98% rename from 2019/pt-pt/src/0xa2-broken-user-authentication.md rename to editions/2019/pt-pt/0xa2-broken-user-authentication.md index dc7ef5ed7..fcca96e18 100644 --- a/2019/pt-pt/src/0xa2-broken-user-authentication.md +++ b/editions/2019/pt-pt/0xa2-broken-user-authentication.md @@ -1,5 +1,4 @@ -API2:2019 Broken User Authentication -==================================== +# API2:2019 Broken User Authentication | Agentes Ameaça/Vetores Ataque | Falha Segurança | Impactos | | - | - | - | diff --git a/2019/pt-pt/src/0xa3-excessive-data-exposure.md b/editions/2019/pt-pt/0xa3-excessive-data-exposure.md similarity index 98% rename from 2019/pt-pt/src/0xa3-excessive-data-exposure.md rename to editions/2019/pt-pt/0xa3-excessive-data-exposure.md index 89e69dc00..087f127af 100644 --- a/2019/pt-pt/src/0xa3-excessive-data-exposure.md +++ b/editions/2019/pt-pt/0xa3-excessive-data-exposure.md @@ -1,5 +1,4 @@ -API3:2019 Excessive Data Exposure -================================= +# API3:2019 Excessive Data Exposure | Agentes Ameaça/Vetores Ataque | Falha Segurança | Impactos | | - | - | - | diff --git a/2019/pt-pt/src/0xa4-lack-of-resources-and-rate-limiting.md b/editions/2019/pt-pt/0xa4-lack-of-resources-and-rate-limiting.md similarity index 98% rename from 2019/pt-pt/src/0xa4-lack-of-resources-and-rate-limiting.md rename to editions/2019/pt-pt/0xa4-lack-of-resources-and-rate-limiting.md index 921978b37..4c856ab70 100644 --- a/2019/pt-pt/src/0xa4-lack-of-resources-and-rate-limiting.md +++ b/editions/2019/pt-pt/0xa4-lack-of-resources-and-rate-limiting.md @@ -1,5 +1,4 @@ -API4:2019 Lack of Resources & Rate Limiting -=========================================== +# API4:2019 Lack of Resources & Rate Limiting | Agentes Ameaça/Vetores Ataque | Falha Segurança | Impactos | | - | - | - | diff --git a/2019/pt-pt/src/0xa5-broken-function-level-authorization.md b/editions/2019/pt-pt/0xa5-broken-function-level-authorization.md similarity index 98% rename from 2019/pt-pt/src/0xa5-broken-function-level-authorization.md rename to editions/2019/pt-pt/0xa5-broken-function-level-authorization.md index bfab037a7..99bd0f3be 100644 --- a/2019/pt-pt/src/0xa5-broken-function-level-authorization.md +++ b/editions/2019/pt-pt/0xa5-broken-function-level-authorization.md @@ -1,5 +1,4 @@ -API5:2019 Broken Function Level Authorization -============================================= +# API5:2019 Broken Function Level Authorization | Agentes Ameaça/Vetores Ataque | Falha Segurança | Impactos | | - | - | - | diff --git a/2019/pt-pt/src/0xa6-mass-assignment.md b/editions/2019/pt-pt/0xa6-mass-assignment.md similarity index 98% rename from 2019/pt-pt/src/0xa6-mass-assignment.md rename to editions/2019/pt-pt/0xa6-mass-assignment.md index 6a1bfeb46..c4b4a19a6 100644 --- a/2019/pt-pt/src/0xa6-mass-assignment.md +++ b/editions/2019/pt-pt/0xa6-mass-assignment.md @@ -1,5 +1,4 @@ -API6:2019 - Mass Assignment -=========================== +# API6:2019 - Mass Assignment | Agentes Ameaça/Vetores Ataque | Falha Segurança | Impactos | | - | - | - | diff --git a/2019/pt-pt/src/0xa7-security-misconfiguration.md b/editions/2019/pt-pt/0xa7-security-misconfiguration.md similarity index 98% rename from 2019/pt-pt/src/0xa7-security-misconfiguration.md rename to editions/2019/pt-pt/0xa7-security-misconfiguration.md index 9d111cc37..433e1671e 100644 --- a/2019/pt-pt/src/0xa7-security-misconfiguration.md +++ b/editions/2019/pt-pt/0xa7-security-misconfiguration.md @@ -1,5 +1,4 @@ -API7:2019 Security Misconfiguration -=================================== +# API7:2019 Security Misconfiguration | Agentes Ameaça/Vetores Ataque | Falha Segurança | Impactos | | - | - | - | diff --git a/2019/pt-pt/src/0xa8-injection.md b/editions/2019/pt-pt/0xa8-injection.md similarity index 99% rename from 2019/pt-pt/src/0xa8-injection.md rename to editions/2019/pt-pt/0xa8-injection.md index edc84519d..77d558ba7 100644 --- a/2019/pt-pt/src/0xa8-injection.md +++ b/editions/2019/pt-pt/0xa8-injection.md @@ -1,5 +1,4 @@ -API8:2019 Injection -=================== +# API8:2019 Injection | Agentes Ameaça/Vetores Ataque | Falha Segurança | Impactos | | - | - | - | diff --git a/2019/pt-pt/src/0xa9-improper-assets-management.md b/editions/2019/pt-pt/0xa9-improper-assets-management.md similarity index 98% rename from 2019/pt-pt/src/0xa9-improper-assets-management.md rename to editions/2019/pt-pt/0xa9-improper-assets-management.md index b9a226890..768da31b5 100644 --- a/2019/pt-pt/src/0xa9-improper-assets-management.md +++ b/editions/2019/pt-pt/0xa9-improper-assets-management.md @@ -1,5 +1,4 @@ -API9:2019 Improper Assets Management -==================================== +# API9:2019 Improper Assets Management | Agentes Ameaça/Vetores Ataque | Falha Segurança | Impactos | | - | - | - | diff --git a/2019/pt-pt/src/0xaa-insufficient-logging-monitoring.md b/editions/2019/pt-pt/0xaa-insufficient-logging-monitoring.md similarity index 97% rename from 2019/pt-pt/src/0xaa-insufficient-logging-monitoring.md rename to editions/2019/pt-pt/0xaa-insufficient-logging-monitoring.md index 8ec93b8f2..e28e5c338 100644 --- a/2019/pt-pt/src/0xaa-insufficient-logging-monitoring.md +++ b/editions/2019/pt-pt/0xaa-insufficient-logging-monitoring.md @@ -1,5 +1,4 @@ -API10:2019 Insufficient Logging & Monitoring -============================================ +# API10:2019 Insufficient Logging & Monitoring | Agentes Ameaça/Vetores Ataque | Falha Segurança | Impactos | | - | - | - | diff --git a/2019/pt-pt/src/0xb0-next-devs.md b/editions/2019/pt-pt/0xb0-next-devs.md similarity index 98% rename from 2019/pt-pt/src/0xb0-next-devs.md rename to editions/2019/pt-pt/0xb0-next-devs.md index c9f286744..37318e90c 100644 --- a/2019/pt-pt/src/0xb0-next-devs.md +++ b/editions/2019/pt-pt/0xb0-next-devs.md @@ -1,5 +1,4 @@ -O Que Se Segue Para Programadores -================================= +# O Que Se Segue Para Programadores A tarefa de criar e manter software seguro, ou corrigir software existente, pode ser difícil. O mesmo se verifica em relação às APIs. diff --git a/2019/pt-pt/src/0xb1-next-devsecops.md b/editions/2019/pt-pt/0xb1-next-devsecops.md similarity index 98% rename from 2019/pt-pt/src/0xb1-next-devsecops.md rename to editions/2019/pt-pt/0xb1-next-devsecops.md index 52bee13e7..f2f032e04 100644 --- a/2019/pt-pt/src/0xb1-next-devsecops.md +++ b/editions/2019/pt-pt/0xb1-next-devsecops.md @@ -1,5 +1,4 @@ -O que Se Segue Para DevSecOps -============================= +# O que Se Segue Para DevSecOps Dada a sua importância na arquitetura das aplicações modernas, desenvolver APIs seguras é crucial. A segurança não pode ser negligenciada e deve estar presente diff --git a/2019/pt-pt/src/0xd0-about-data.md b/editions/2019/pt-pt/0xd0-about-data.md similarity index 98% rename from 2019/pt-pt/src/0xd0-about-data.md rename to editions/2019/pt-pt/0xd0-about-data.md index c682f5d62..3042e7f89 100644 --- a/2019/pt-pt/src/0xd0-about-data.md +++ b/editions/2019/pt-pt/0xd0-about-data.md @@ -1,5 +1,4 @@ -Methodology and Data -==================== +# Methodology and Data ## Preâmbulo diff --git a/2019/pt-pt/src/0xd1-acknowledgments.md b/editions/2019/pt-pt/0xd1-acknowledgments.md similarity index 95% rename from 2019/pt-pt/src/0xd1-acknowledgments.md rename to editions/2019/pt-pt/0xd1-acknowledgments.md index 65c1ab8e5..d2ba2fd1f 100644 --- a/2019/pt-pt/src/0xd1-acknowledgments.md +++ b/editions/2019/pt-pt/0xd1-acknowledgments.md @@ -1,5 +1,4 @@ -Agradecimentos -============== +# Agradecimentos ## Agradecimento ao Contribuidores diff --git a/2019/pt-pt/dist/owasp-api-security-top-10.odt b/editions/2019/pt-pt/dist/owasp-api-security-top-10.odt similarity index 100% rename from 2019/pt-pt/dist/owasp-api-security-top-10.odt rename to editions/2019/pt-pt/dist/owasp-api-security-top-10.odt diff --git a/2019/pt-pt/dist/owasp-api-security-top-10.pdf b/editions/2019/pt-pt/dist/owasp-api-security-top-10.pdf similarity index 100% rename from 2019/pt-pt/dist/owasp-api-security-top-10.pdf rename to editions/2019/pt-pt/dist/owasp-api-security-top-10.pdf diff --git a/2019/pt-pt/src/images/cover.jpg b/editions/2019/pt-pt/images/cover.jpg similarity index 100% rename from 2019/pt-pt/src/images/cover.jpg rename to editions/2019/pt-pt/images/cover.jpg diff --git a/2019/pt-pt/src/images/front-cc.png b/editions/2019/pt-pt/images/front-cc.png similarity index 100% rename from 2019/pt-pt/src/images/front-cc.png rename to editions/2019/pt-pt/images/front-cc.png diff --git a/2019/pt-pt/src/images/front-wasp.png b/editions/2019/pt-pt/images/front-wasp.png similarity index 100% rename from 2019/pt-pt/src/images/front-wasp.png rename to editions/2019/pt-pt/images/front-wasp.png diff --git a/2019/pt-pt/src/images/license.png b/editions/2019/pt-pt/images/license.png similarity index 100% rename from 2019/pt-pt/src/images/license.png rename to editions/2019/pt-pt/images/license.png diff --git a/2019/pt-pt/src/images/owasp-logo.png b/editions/2019/pt-pt/images/owasp-logo.png similarity index 100% rename from 2019/pt-pt/src/images/owasp-logo.png rename to editions/2019/pt-pt/images/owasp-logo.png diff --git a/2019/ru/src/0x00-header.md b/editions/2019/ru/0x00-header.md similarity index 90% rename from 2019/ru/src/0x00-header.md rename to editions/2019/ru/0x00-header.md index caa209388..d70ce7b91 100644 --- a/2019/ru/src/0x00-header.md +++ b/editions/2019/ru/0x00-header.md @@ -1,6 +1,10 @@ +--- +title: '' +--- + ![OWASP LOGO](images/owasp-logo.png) -## OWASP API Security Top 10 2019 +# OWASP API Security Top 10 2019 Десять наиболее критичных рисков безопастности API @@ -13,5 +17,3 @@ | https://owasp.org | В соответствии с лицензией [Creative Commons Attribution-ShareAlike 4.0 International License][1] | ![Creative Commons License Logo](images/front-cc.png) | [1]: http://creativecommons.org/licenses/by-sa/4.0/ - - diff --git a/2019/ru/src/0x00-notice.md b/editions/2019/ru/0x00-notice.md similarity index 90% rename from 2019/ru/src/0x00-notice.md rename to editions/2019/ru/0x00-notice.md index a5f360c0b..967411c8f 100644 --- a/2019/ru/src/0x00-notice.md +++ b/editions/2019/ru/0x00-notice.md @@ -1,5 +1,4 @@ -Примечание -====== +# Примечание Это текстовая версия OWASP API Security Top 10, используемая для создания официальной версии, распространяемой в формате PDF. @@ -8,4 +7,4 @@ * Erez Yallon * Inon Shkedy -[1]: ../../CONTRIBUTING.md +[1]: ../../../CONTRIBUTING.md diff --git a/2019/ru/src/0x00-toc.md b/editions/2019/ru/0x00-toc.md similarity index 95% rename from 2019/ru/src/0x00-toc.md rename to editions/2019/ru/0x00-toc.md index eaa9a859f..15a51cda2 100644 --- a/2019/ru/src/0x00-toc.md +++ b/editions/2019/ru/0x00-toc.md @@ -1,9 +1,8 @@ -Содержание -================= +# Содержание * [Содержание](0x00-toc.md) * [Об OWASP](0x01-about-owasp.md) -* [Предисловие](0x02-foreward.md) +* [Предисловие](0x02-foreword.md) * [Введение](0x03-introduction.md) * [Анонс выпуска](0x04-release-notes.md) * [Риски безопасности API](0x10-api-security-risks.md) diff --git a/2019/ru/src/0x01-about-owasp.md b/editions/2019/ru/0x01-about-owasp.md similarity index 99% rename from 2019/ru/src/0x01-about-owasp.md rename to editions/2019/ru/0x01-about-owasp.md index eefe114b3..a9e376ae2 100644 --- a/2019/ru/src/0x01-about-owasp.md +++ b/editions/2019/ru/0x01-about-owasp.md @@ -1,5 +1,4 @@ -Об OWASP -=========== +# Об OWASP Open Web Application Security Project (OWASP) - открытое сообщество, нацеленное на предоставление возможности организациям разрабатывать, покупать и поддерживать приложения и API, которым можно доверять. diff --git a/2019/ru/src/0x02-foreword.md b/editions/2019/ru/0x02-foreword.md similarity index 99% rename from 2019/ru/src/0x02-foreword.md rename to editions/2019/ru/0x02-foreword.md index c79c71935..60ef1ad86 100644 --- a/2019/ru/src/0x02-foreword.md +++ b/editions/2019/ru/0x02-foreword.md @@ -1,5 +1,4 @@ -Предисловие -======== +# Предисловие Программный интерфейс приложений (API) - фундаментальный элемент инноваций в современном, движимом приложениями мире. API - важная составляющая современных мобильных, SaaS и веб приложений, используемая в клиентских, партнерских и внутренних приложениях от банковской сферы, сфер розничных продаж и логистики до интернета вещей, автономных автомобилей и умных городов. diff --git a/2019/ru/src/0x03-introduction.md b/editions/2019/ru/0x03-introduction.md similarity index 98% rename from 2019/ru/src/0x03-introduction.md rename to editions/2019/ru/0x03-introduction.md index c15591d21..f0939e74a 100644 --- a/2019/ru/src/0x03-introduction.md +++ b/editions/2019/ru/0x03-introduction.md @@ -1,5 +1,4 @@ -Введение -============ +# Введение ## Добро пожаловать в OWASP API Security Top 10 - 2019! diff --git a/2019/ru/src/0x04-release-notes.md b/editions/2019/ru/0x04-release-notes.md similarity index 97% rename from 2019/ru/src/0x04-release-notes.md rename to editions/2019/ru/0x04-release-notes.md index a556aba1f..730eb2ddf 100644 --- a/2019/ru/src/0x04-release-notes.md +++ b/editions/2019/ru/0x04-release-notes.md @@ -1,5 +1,4 @@ -Анонс выпуска -============= +# Анонс выпуска Это первая версия OWASP API Security Top 10, которую мы планируем обновлять каждые три-четыре года. diff --git a/2019/ru/src/0x10-api-security-risks.md b/editions/2019/ru/0x10-api-security-risks.md similarity index 98% rename from 2019/ru/src/0x10-api-security-risks.md rename to editions/2019/ru/0x10-api-security-risks.md index 524a10567..7b2deba6d 100644 --- a/2019/ru/src/0x10-api-security-risks.md +++ b/editions/2019/ru/0x10-api-security-risks.md @@ -1,5 +1,4 @@ -Риски безопасности API -================== +# Риски безопасности API Для анализа рисков была использована [Методология оценки рисков OWASP][1]. diff --git a/2019/ru/src/0x11-t10.md b/editions/2019/ru/0x11-t10.md similarity index 98% rename from 2019/ru/src/0x11-t10.md rename to editions/2019/ru/0x11-t10.md index c9d3c66bd..9db30b03f 100644 --- a/2019/ru/src/0x11-t10.md +++ b/editions/2019/ru/0x11-t10.md @@ -1,5 +1,4 @@ -OWASP Top 10 API Security Risks – 2019 -====================================== +# OWASP Top 10 API Security Risks – 2019 | Риск | Описание | | ---- | ----------- | @@ -12,4 +11,4 @@ OWASP Top 10 API Security Risks – 2019 | API7:2019 - Ошибки настроек безопасности | Как правило, ошибки настроек безопасности - результат небезопасных настроек по умолчанию, неполных или временных настроек, незащищенного облачного хранилища, некорректно настроенных заголовков HTTP, излишних методов HTTP, нестрогой политики разделения ресурсов между источниками (CORS) и детальных сообщений об ошибках, содержащих критичные данные. | | API8:2019 - Инъекции | Инъекции, такие как SQL, NoSQL, инъекции команд на операционной системе и другие, случаются, когда недоверенные данные отправляются в интерпретатор как часть команды или запроса. Злоумышленник может вынудить интерпретатор выполнить команду или получить данные в обход проверок авторизации. | | API9:2019 - Ненадлежащее управление активами | API обычно имеют больше точек входа по сравнению с традиционным веб приложениями, что приводит к необходимости постоянного ведения и обновления документации. Надлежащая инвентаризация хостов (доменов и серверов, на которых функционирует API) и развернутых версий API играет важную роль в предотвращении проблем, таких как публикация устаревших версий API и точек входа, используемых для отладки. | -| API10:2019 - Недостаточное логирование и мониторинг | Недостаточное логирование и мониторинг вместе с отсутствующим или неэффективным реагированием на инциденты позволяет злоумышленникам атаковать и оставаться в системе, атаковать другие системы, доступные из скомпрометированной, а также извлекать или уничтожать данные. Большинство исследований произошедших атак показывает, что время обнаружения атак превышает 200 дней, а также что обычно атаки обнаруживаются извне, а не внутренними процессами или мониторингом. | \ No newline at end of file +| API10:2019 - Недостаточное логирование и мониторинг | Недостаточное логирование и мониторинг вместе с отсутствующим или неэффективным реагированием на инциденты позволяет злоумышленникам атаковать и оставаться в системе, атаковать другие системы, доступные из скомпрометированной, а также извлекать или уничтожать данные. Большинство исследований произошедших атак показывает, что время обнаружения атак превышает 200 дней, а также что обычно атаки обнаруживаются извне, а не внутренними процессами или мониторингом. | diff --git a/2019/ru/src/0xa1-broken-object-level-authorization.md b/editions/2019/ru/0xa1-broken-object-level-authorization.md similarity index 98% rename from 2019/ru/src/0xa1-broken-object-level-authorization.md rename to editions/2019/ru/0xa1-broken-object-level-authorization.md index de8b6b13d..a3fc713db 100644 --- a/2019/ru/src/0xa1-broken-object-level-authorization.md +++ b/editions/2019/ru/0xa1-broken-object-level-authorization.md @@ -1,5 +1,4 @@ -API1:2019 Некорректная Авторизация на Уровне Объектов -=========================================== +# API1:2019 Некорректная Авторизация на Уровне Объектов | Источники угроз/Векторы атак | Недостатки безопасности | Последствия | | - | - | - | diff --git a/2019/ru/src/0xa2-broken-user-authentication.md b/editions/2019/ru/0xa2-broken-user-authentication.md similarity index 98% rename from 2019/ru/src/0xa2-broken-user-authentication.md rename to editions/2019/ru/0xa2-broken-user-authentication.md index a9ca7ea5c..93d9326dc 100644 --- a/2019/ru/src/0xa2-broken-user-authentication.md +++ b/editions/2019/ru/0xa2-broken-user-authentication.md @@ -1,5 +1,4 @@ -API2:2019 Некорректная Аутентификация Пользователей -==================================== +# API2:2019 Некорректная Аутентификация Пользователей | Источники угроз/Векторы атак | Недостатки безопасности | Последствия | | - | - | - | diff --git a/2019/ru/src/0xa3-excessive-data-exposure.md b/editions/2019/ru/0xa3-excessive-data-exposure.md similarity index 98% rename from 2019/ru/src/0xa3-excessive-data-exposure.md rename to editions/2019/ru/0xa3-excessive-data-exposure.md index ece1ff36a..498b513db 100644 --- a/2019/ru/src/0xa3-excessive-data-exposure.md +++ b/editions/2019/ru/0xa3-excessive-data-exposure.md @@ -1,5 +1,4 @@ -API3:2019 Предоставление Излишних Данных -================================= +# API3:2019 Предоставление Излишних Данных | Источники угроз/Векторы атак | Недостатки безопасности | Последствия | | - | - | - | diff --git a/2019/ru/src/0xa4-lack-of-resources-and-rate-limiting.md b/editions/2019/ru/0xa4-lack-of-resources-and-rate-limiting.md similarity index 97% rename from 2019/ru/src/0xa4-lack-of-resources-and-rate-limiting.md rename to editions/2019/ru/0xa4-lack-of-resources-and-rate-limiting.md index 0074e9a3e..d102e7cf7 100644 --- a/2019/ru/src/0xa4-lack-of-resources-and-rate-limiting.md +++ b/editions/2019/ru/0xa4-lack-of-resources-and-rate-limiting.md @@ -1,5 +1,4 @@ -API4:2019 Отсутствие Ограничений на Количество Запросов и Потребляемые Ресурсы -=========================================== +# API4:2019 Отсутствие Ограничений на Количество Запросов и Потребляемые Ресурсы | Источники угроз/Векторы атак | Недостатки безопасности | Последствия | | - | - | - | diff --git a/2019/ru/src/0xa5-broken-function-level-authorization.md b/editions/2019/ru/0xa5-broken-function-level-authorization.md similarity index 98% rename from 2019/ru/src/0xa5-broken-function-level-authorization.md rename to editions/2019/ru/0xa5-broken-function-level-authorization.md index 9fd8088c8..0e5e23af8 100644 --- a/2019/ru/src/0xa5-broken-function-level-authorization.md +++ b/editions/2019/ru/0xa5-broken-function-level-authorization.md @@ -1,5 +1,4 @@ -API5:2019 Некорректная Авторизация на Уровне Функций -============================================= +# API5:2019 Некорректная Авторизация на Уровне Функций | Источники угроз/Векторы атак | Недостатки безопасности | Последствия | | - | - | - | diff --git a/2019/ru/src/0xa6-mass-assignment.md b/editions/2019/ru/0xa6-mass-assignment.md similarity index 98% rename from 2019/ru/src/0xa6-mass-assignment.md rename to editions/2019/ru/0xa6-mass-assignment.md index 67e5b88b4..69cbf5c2a 100644 --- a/2019/ru/src/0xa6-mass-assignment.md +++ b/editions/2019/ru/0xa6-mass-assignment.md @@ -1,5 +1,4 @@ -API6:2019 - Массовое Переназначение Параметров (Mass assignment) -=========================== +# API6:2019 - Массовое Переназначение Параметров (Mass assignment) | Источники угроз/Векторы атак | Недостатки безопасности | Последствия | | - | - | - | diff --git a/2019/ru/src/0xa7-security-misconfiguration.md b/editions/2019/ru/0xa7-security-misconfiguration.md similarity index 98% rename from 2019/ru/src/0xa7-security-misconfiguration.md rename to editions/2019/ru/0xa7-security-misconfiguration.md index 2bec311f0..0ee354b1c 100644 --- a/2019/ru/src/0xa7-security-misconfiguration.md +++ b/editions/2019/ru/0xa7-security-misconfiguration.md @@ -1,5 +1,4 @@ -API7:2019 Ошибки Настроек Безопасности -=================================== +# API7:2019 Ошибки Настроек Безопасности | Источники угроз/Векторы атак | Недостатки безопасности | Последствия | | - | - | - | diff --git a/2019/ru/src/0xa8-injection.md b/editions/2019/ru/0xa8-injection.md similarity index 99% rename from 2019/ru/src/0xa8-injection.md rename to editions/2019/ru/0xa8-injection.md index 57e815613..f7061b1aa 100644 --- a/2019/ru/src/0xa8-injection.md +++ b/editions/2019/ru/0xa8-injection.md @@ -1,5 +1,4 @@ -API8:2019 Инъекции -=================== +# API8:2019 Инъекции | Источники угроз/Векторы атак | Недостатки безопасности | Последствия | | - | - | - | diff --git a/2019/ru/src/0xa9-improper-assets-management.md b/editions/2019/ru/0xa9-improper-assets-management.md similarity index 98% rename from 2019/ru/src/0xa9-improper-assets-management.md rename to editions/2019/ru/0xa9-improper-assets-management.md index a611b7fa3..6d73f210a 100644 --- a/2019/ru/src/0xa9-improper-assets-management.md +++ b/editions/2019/ru/0xa9-improper-assets-management.md @@ -1,5 +1,4 @@ -API9:2019 Ненадлежащее Управление Активами -==================================== +# API9:2019 Ненадлежащее Управление Активами | Источники угроз/Векторы атак | Недостатки безопасности | Последствия | | - | - | - | diff --git a/2019/ru/src/0xaa-insufficient-logging-monitoring.md b/editions/2019/ru/0xaa-insufficient-logging-monitoring.md similarity index 97% rename from 2019/ru/src/0xaa-insufficient-logging-monitoring.md rename to editions/2019/ru/0xaa-insufficient-logging-monitoring.md index 90ab0987d..04c55f6e0 100644 --- a/2019/ru/src/0xaa-insufficient-logging-monitoring.md +++ b/editions/2019/ru/0xaa-insufficient-logging-monitoring.md @@ -1,5 +1,4 @@ -API10:2019 Недостаточное Логирование и Мониторинг -============================================ +# API10:2019 Недостаточное Логирование и Мониторинг | Источники угроз/Векторы атак | Недостатки безопасности | Последствия | | - | - | - | diff --git a/2019/ru/src/0xb0-next-devs.md b/editions/2019/ru/0xb0-next-devs.md similarity index 98% rename from 2019/ru/src/0xb0-next-devs.md rename to editions/2019/ru/0xb0-next-devs.md index 7c2cf1a85..1e90c48d8 100644 --- a/2019/ru/src/0xb0-next-devs.md +++ b/editions/2019/ru/0xb0-next-devs.md @@ -1,5 +1,4 @@ -Дальнейшие шаги для разработчиков -========================== +# Дальнейшие шаги для разработчиков Задача по созданию и поддержке ПО в безопасном состоянии, или исправлению уже существующего ПО может быть сложной. То же верно и для API. diff --git a/2019/ru/src/0xb1-next-devsecops.md b/editions/2019/ru/0xb1-next-devsecops.md similarity index 98% rename from 2019/ru/src/0xb1-next-devsecops.md rename to editions/2019/ru/0xb1-next-devsecops.md index 785fb14b4..388678c9f 100644 --- a/2019/ru/src/0xb1-next-devsecops.md +++ b/editions/2019/ru/0xb1-next-devsecops.md @@ -1,5 +1,4 @@ -Дальнейшие шаги для DevSecOps -========================= +# Дальнейшие шаги для DevSecOps Создание безопасных API критически важно из-за их роли в архитектуре современных приложений. Безопасностью нельзя пренебрегать, она должна быть частью всего жизненного цикла разработки. Уже недостаточно проводить сканирование и тестирование на проникновение раз в год. diff --git a/2019/ru/src/0xd0-about-data.md b/editions/2019/ru/0xd0-about-data.md similarity index 98% rename from 2019/ru/src/0xd0-about-data.md rename to editions/2019/ru/0xd0-about-data.md index d4e7e730b..4c2522eee 100644 --- a/2019/ru/src/0xd0-about-data.md +++ b/editions/2019/ru/0xd0-about-data.md @@ -1,5 +1,4 @@ -Методология и данные -==================== +# Методология и данные ## Обзор diff --git a/2019/ru/src/0xd1-acknowledgments.md b/editions/2019/ru/0xd1-acknowledgments.md similarity index 94% rename from 2019/ru/src/0xd1-acknowledgments.md rename to editions/2019/ru/0xd1-acknowledgments.md index f06490b51..b446870e4 100644 --- a/2019/ru/src/0xd1-acknowledgments.md +++ b/editions/2019/ru/0xd1-acknowledgments.md @@ -1,5 +1,4 @@ -Благодарность -=============== +# Благодарность ## Благодарность участникам diff --git a/2019/ru/dist/owasp-api-security-top-10.odt b/editions/2019/ru/dist/owasp-api-security-top-10.odt similarity index 100% rename from 2019/ru/dist/owasp-api-security-top-10.odt rename to editions/2019/ru/dist/owasp-api-security-top-10.odt diff --git a/2019/ru/dist/owasp-api-security-top-10.pdf b/editions/2019/ru/dist/owasp-api-security-top-10.pdf similarity index 100% rename from 2019/ru/dist/owasp-api-security-top-10.pdf rename to editions/2019/ru/dist/owasp-api-security-top-10.pdf diff --git a/2019/ru/src/images/cover.jpg b/editions/2019/ru/images/cover.jpg similarity index 100% rename from 2019/ru/src/images/cover.jpg rename to editions/2019/ru/images/cover.jpg diff --git a/2019/ru/src/images/front-cc.png b/editions/2019/ru/images/front-cc.png similarity index 100% rename from 2019/ru/src/images/front-cc.png rename to editions/2019/ru/images/front-cc.png diff --git a/2019/ru/src/images/front-wasp.png b/editions/2019/ru/images/front-wasp.png similarity index 100% rename from 2019/ru/src/images/front-wasp.png rename to editions/2019/ru/images/front-wasp.png diff --git a/2019/ru/src/images/license.png b/editions/2019/ru/images/license.png similarity index 100% rename from 2019/ru/src/images/license.png rename to editions/2019/ru/images/license.png diff --git a/2019/ru/src/images/owasp-logo.png b/editions/2019/ru/images/owasp-logo.png similarity index 100% rename from 2019/ru/src/images/owasp-logo.png rename to editions/2019/ru/images/owasp-logo.png diff --git a/editions/2023/en/0x00-header.md b/editions/2023/en/0x00-header.md new file mode 100644 index 000000000..d3936a8b2 --- /dev/null +++ b/editions/2023/en/0x00-header.md @@ -0,0 +1,14 @@ +--- +title: '' +description: OWASP API Security Top 10 2023 edition +--- + +![OWASP LOGO](images/cover.jpg) + +| | | | +| - | - | - | +| https://owasp.org | This work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License][1] | ![Creative Commons License Logo](images/front-cc.png) | + +[1]: http://creativecommons.org/licenses/by-sa/4.0/ + + diff --git a/editions/2023/en/0x00-notice.md b/editions/2023/en/0x00-notice.md new file mode 100644 index 000000000..c40368695 --- /dev/null +++ b/editions/2023/en/0x00-notice.md @@ -0,0 +1,14 @@ +# Notice + +This is the text version of OWASP API Security Top 10, used as source for any +official versions of this document such the web site. + +Contributions to the project such as comments, corrections, or translations +should be done here. For details on [How To Contribute][1], please refer to +[CONTRIBUTING.md][1]. + +* Erez Yallon +* Inon Shkedy +* Paulo Silva + +[1]: ../../../CONTRIBUTING.md diff --git a/editions/2023/en/0x00-toc.md b/editions/2023/en/0x00-toc.md new file mode 100644 index 000000000..ca93bd5ba --- /dev/null +++ b/editions/2023/en/0x00-toc.md @@ -0,0 +1,23 @@ +# Table of Contents + +* [Table of Contents](0x00-toc.md) +* [About OWASP](0x01-about-owasp.md) +* [Foreword](0x02-foreword.md) +* [Introduction](0x03-introduction.md) +* [Release Notes](0x04-release-notes.md) +* [API Security Risks](0x10-api-security-risks.md) +* [OWASP Top 10 API Security Risks – 2023](0x11-t10.md) +* [API1:2023 Broken Object Level Authorization](0xa1-broken-object-level-authorization.md) +* [API2:2023 Broken Authentication](0xa2-broken-authentication.md) +* [API3:2023 Broken Object Property Level Authorization](0xa3-broken-object-property-level-authorization.md) +* [API4:2023 Unrestricted Resource Consumption](0xa4-unrestricted-resource-consumption.md) +* [API5:2023 Broken Function Level Authorization](0xa5-broken-function-level-authorization.md) +* [API6:2023 Unrestricted Access to Sensitive Business Flows](0xa6-unrestricted-access-to-sensitive-business-flows.md) +* [API7:2023 Server Side Request Forgery](0xa7-server-side-request-forgery.md) +* [API8:2023 Security Misconfiguration](0xa8-security-misconfiguration.md) +* [API9:2023 Improper Inventory Management](0xa9-improper-inventory-management.md) +* [API10:2023 Unsafe Consumption of APIs](0xaa-unsafe-consumption-of-apis.md) +* [What's Next For Developers](0xb0-next-devs.md) +* [What's Next For DevSecOps](0xb1-next-devsecops.md) +* [Methodology and Data](0xd0-about-data.md) +* [Acknowledgments](0xd1-acknowledgments.md) diff --git a/editions/2023/en/0x01-about-owasp.md b/editions/2023/en/0x01-about-owasp.md new file mode 100644 index 000000000..1a7e05126 --- /dev/null +++ b/editions/2023/en/0x01-about-owasp.md @@ -0,0 +1,59 @@ +# About OWASP + +The Open Worldwide Application Security Project (OWASP) is an open community +dedicated to enabling organizations to develop, purchase, and maintain +applications and APIs that can be trusted. + +At OWASP, you'll find free and open: + +* Application security tools and standards. +* Complete books on application security testing, secure code development, and + secure code review. +* Presentations and [videos][1]. +* [Cheat sheets][2] on many common topics. +* Standard security controls and libraries. +* [Local chapters worldwide][3]. +* Cutting edge research. +* Extensive [conferences worldwide][4]. +* [Mailing lists][5] ([archive][6]). + +Learn more at: [https://www.owasp.org][7]. + +All OWASP tools, documents, videos, presentations, and chapters are free and +open to anyone interested in improving application security. + +We advocate approaching application security as a people, process, and +technology problem, because the most effective approaches to application +security require improvements in these areas. + +OWASP is a new kind of organization. Our freedom from commercial pressures +allows us to provide unbiased, practical, and cost-effective information about +application security. + +OWASP is not affiliated with any technology company, although we support the +informed use of commercial security technology. OWASP produces many types of +materials in a collaborative, transparent, and open way. + +The OWASP Foundation is the non-profit entity that ensures the project's +long-term success. Almost everyone associated with OWASP is a volunteer, +including the OWASP board, chapter leaders, project leaders, and project +members. We support innovative security research with grants and infrastructure. + +Come join us! + +## Copyright and License + +![license](images/license.png) + +Copyright © 2003-2023 The OWASP Foundation. This document is released under the +[Creative Commons Attribution Share-Alike 4.0 license][8]. For any reuse or +distribution, you must make it clear to others the license terms of this work. + +[1]: https://www.youtube.com/user/OWASPGLOBAL +[2]: https://cheatsheetseries.owasp.org/ +[3]: https://owasp.org/chapters/ +[4]: https://owasp.org/events/ +[5]: https://groups.google.com/a/owasp.org/forum/#!overview +[6]: https://lists.owasp.org/mailman/listinfo +[7]: https://www.owasp.org +[8]: http://creativecommons.org/licenses/by-sa/4.0/ diff --git a/editions/2023/en/0x02-foreword.md b/editions/2023/en/0x02-foreword.md new file mode 100644 index 000000000..944acfc82 --- /dev/null +++ b/editions/2023/en/0x02-foreword.md @@ -0,0 +1,43 @@ +# Foreword + +A foundational element of innovation in today's app-driven world is the +Application Programming Interface (API). From banks, retail, and transportation +to IoT, autonomous vehicles, and smart cities, APIs are a critical part of +modern mobile, SaaS, and web applications and can be found in customer-facing, +partner-facing, and internal applications. + +By nature, APIs expose application logic and sensitive data such as Personally +Identifiable Information (PII) and because of this, APIs have increasingly +become a target for attackers. Without secure APIs, rapid innovation would be +impossible. + +Although a broader web application security risks Top 10 still makes sense, due +to their particular nature, an API-specific security risks list is required. +API security focuses on strategies and solutions to understand and mitigate the +unique vulnerabilities and security risks associated with APIs. + +If you're familiar with the [OWASP Top 10 Project][1], then you'll notice the +similarities between both documents: they are intended for readability and +adoption. If you're new to the OWASP Top 10 series, you may be better off +reading the [API Security Risks][2] and [Methodology and Data][3] sections +before jumping into the Top 10 list. + +You can contribute to OWASP API Security Top 10 with your questions, comments, +and ideas at our GitHub project repository: + +* https://owasp.org/www-project-api-security/ +* https://github.com/OWASP/API-Security/blob/master/CONTRIBUTING.md + +You can find the OWASP API Security Top 10 here: + +* https://owasp.org/www-project-api-security/ +* https://github.com/OWASP/API-Security + +We wish to thank all the contributors who made this project possible with their +effort and contributions. They are all listed in the [Acknowledgments +section][4]. Thank you! + +[1]: https://owasp.org/www-project-top-ten/ +[2]: ./0x10-api-security-risks.md +[3]: ./0xd0-about-data.md +[4]: ./0xd1-acknowledgments.md diff --git a/editions/2023/en/0x03-introduction.md b/editions/2023/en/0x03-introduction.md new file mode 100644 index 000000000..752492b1f --- /dev/null +++ b/editions/2023/en/0x03-introduction.md @@ -0,0 +1,61 @@ +# Introduction + +## Welcome to the OWASP API Security Top 10 - 2023! + +Welcome to the second edition of the OWASP API Security Top 10! + +This awareness document was first published back in 2019. Since then, the API +Security industry has flourished and become more mature. We strongly believe +this work has positively contributed to it, due to it being quickly adopted as +an industry reference. + +APIs play a very important role in modern application architecture. But since +innovation has a different pace than creating security awareness, we believe +it's important to focus on creating awareness for common API security +weaknesses. + +The primary goal of the OWASP API Security Top 10 is to educate those involved +in API development and maintenance, for example, developers, designers, +architects, managers, or organizations. You can know more about the API Security +Project visiting [the project page][1]. + +If you're not familiar with the OWASP top 10 series, we recommend checking at +least the following top 10 projects: + +* [OWASP Cloud-Native Application Security Top 10][2] +* [OWASP Desktop App Security Top 10][3] +* [OWASP Docker Top 10][4] +* [OWASP Low-Code/No-Code Top 10][5] +* [OWASP Machine Learning Security Top Ten][6] +* [OWASP Mobile Top 10][7] +* [OWASP TOP 10][8] +* [OWASP Top 10 CI/CD Security Risks][9] +* [OWASP Top 10 Client-Side Security Risks][10] +* [OWASP Top 10 Privacy Risks][11] +* [OWASP Serverless Top 10][12] + +None of the projects replaces another: if you're working on a mobile application +powered by a back-end API, you're better off reading both the corresponding top +10's. The same is valid if you're working on a web or desktop application +powered by APIs. + +In the [Methodology and Data][13] section, you can read more about how this +edition was created. For now, we encourage everyone to contribute with +questions, comments, and ideas at our [GitHub repository][14] or +[Mailing list][15]. + +[1]: https://owasp.org/www-project-api-security/ +[2]: https://owasp.org/www-project-cloud-native-application-security-top-10/ +[3]: https://owasp.org/www-project-desktop-app-security-top-10/ +[4]: https://owasp.org/www-project-docker-top-10/ +[5]: https://owasp.org/www-project-top-10-low-code-no-code-security-risks/ +[6]: https://owasp.org/www-project-machine-learning-security-top-10/ +[7]: https://owasp.org/www-project-mobile-top-10/ +[8]: https://owasp.org/www-project-top-ten/ +[9]: https://owasp.org/www-project-top-10-ci-cd-security-risks/ +[10]: https://owasp.org/www-project-top-10-client-side-security-risks/ +[11]: https://owasp.org/www-project-top-10-privacy-risks/ +[12]: https://owasp.org/www-project-serverless-top-10/ +[13]: ./0xd0-about-data.md +[14]: https://github.com/OWASP/API-Security +[15]: https://groups.google.com/a/owasp.org/forum/#!forum/api-security-project diff --git a/editions/2023/en/0x04-release-notes.md b/editions/2023/en/0x04-release-notes.md new file mode 100644 index 000000000..bff6dc01c --- /dev/null +++ b/editions/2023/en/0x04-release-notes.md @@ -0,0 +1,47 @@ +# Release Notes + +This is the second edition of the OWASP API Security Top 10 edition, exactly +four years after its first release. A lot has changed in the API (security) +scene. API traffic increased at a fast pace, some API protocols gained a lot +more traction, many new API security vendors/solutions have popped up, and, of +course, attackers have developed new skills and techniques to compromise +APIs. It was about time to get the list of the ten most critical API security +risks updated. + +With a more mature API security industry, for the first time, there was [a +public call for data][1]. Unfortunately, no data was contributed, but based on +the project's team experience, careful API security specialist review, and +community feedback on the release candidate, we built this new list. In the +[Methodology and Data section][2], you'll find more details about how this +version was built. For more details about the security risks please refer to the +[API Security Risks section][3]. + +The OWASP API Security Top 10 2023 is a forward-looking awareness document for +a fast pace industry. It does not replace other TOP 10's. In this edition: + +* We've combined Excessive Data Exposure and Mass Assignment focusing on the + common root cause: object property level authorization validation failures. +* We've put more emphasis on resource consumption, over focusing on the pace + they are exhausted. +* We've created a new category "Unrestricted Access to Sensitive Business Flows" + to address new threats, including most of those that can be mitigated using + rate limiting. +* We added "Unsafe Consumption of APIs" to address something we've started + seeing: attackers have started looking for a target's integrated services to + compromise those, instead of hitting the APIs of their target directly. This + is the right time to start creating awareness about this increasing risk. + +APIs play an increasingly important role in modern microservices architecture, +Single Page Applications (SPAs), mobile apps, IoT, etc. The OWASP API Security +Top 10 is a required effort to create awareness about modern API security +issues. + +This update was only possible due to the great effort of several volunteers, +listed in the [Acknowledgments][4] section. + +Thank you! + +[1]: https://owasp.org/www-project-api-security/announcements/cfd/2022/ +[2]: ./0xd0-about-data.md +[3]: ./0x10-api-security-risks.md +[4]: ./0xd1-acknowledgments.md diff --git a/editions/2023/en/0x10-api-security-risks.md b/editions/2023/en/0x10-api-security-risks.md new file mode 100644 index 000000000..c9d284b14 --- /dev/null +++ b/editions/2023/en/0x10-api-security-risks.md @@ -0,0 +1,47 @@ +# API Security Risks + +The [OWASP Risk Rating Methodology][1] was used to do the risk analysis. + +The table below summarizes the terminology associated with the risk score. + +| Threat Agents | Exploitability | Weakness Prevalence | Weakness Detectability | Technical Impact | Business Impacts | +| :-: | :-: | :-: | :-: | :-: | :-: | +| API Specific | Easy: **3** | Widespread **3** | Easy **3** | Severe **3** | Business Specific | +| API Specific | Average: **2** | Common **2** | Average **2** | Moderate **2** | Business Specific | +| API Specific | Difficult: **1** | Difficult **1** | Difficult **1** | Minor **1** | Business Specific | + +**Note**: This approach does not take the likelihood of the threat agent into +account. Nor does it account for any of the various technical details associated +with your particular application. Any of these factors could significantly +affect the overall likelihood of an attacker finding and exploiting a particular +vulnerability. This rating does not take into account the actual impact on your +business. Your organization will have to decide how much security risk from +applications and APIs the organization is willing to accept given your culture, +industry, and regulatory environment. The purpose of the OWASP API Security Top +10 is not to do this risk analysis for you. Since this edition is not +data-driven, prevalence results from a consensus among the team members. + +## References + +### OWASP + +* [OWASP Risk Rating Methodology][1] +* [Article on Threat/Risk Modeling][2] + +### External + +* [ISO 31000: Risk Management Std][3] +* [ISO 27001: ISMS][4] +* [NIST Cyber Framework (US)][5] +* [ASD Strategic Mitigations (AU)][6] +* [NIST CVSS 3.0][7] +* [Microsoft Threat Modeling Tool][8] + +[1]: https://owasp.org/www-project-risk-assessment-framework/ +[2]: https://owasp.org/www-community/Threat_Modeling +[3]: https://www.iso.org/iso-31000-risk-management.html +[4]: https://www.iso.org/isoiec-27001-information-security.html +[5]: https://www.nist.gov/cyberframework +[6]: https://www.asd.gov.au/infosec/mitigationstrategies.htm +[7]: https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator +[8]: https://www.microsoft.com/en-us/download/details.aspx?id=49168 diff --git a/editions/2023/en/0x11-t10.md b/editions/2023/en/0x11-t10.md new file mode 100644 index 000000000..ac22172ac --- /dev/null +++ b/editions/2023/en/0x11-t10.md @@ -0,0 +1,28 @@ +# OWASP Top 10 API Security Risks – 2023 + +| Risk | Description | +| ---- | ----------- | +| [API1:2023 - Broken Object Level Authorization][api1] | APIs tend to expose endpoints that handle object identifiers, creating a wide attack surface of Object Level Access Control issues. Object level authorization checks should be considered in every function that accesses a data source using an ID from the user. | +| [API2:2023 - Broken Authentication][api2] | Authentication mechanisms are often implemented incorrectly, allowing attackers to compromise authentication tokens or to exploit implementation flaws to assume other user's identities temporarily or permanently. Compromising a system's ability to identify the client/user, compromises API security overall. | +| [API3:2023 - Broken Object Property Level Authorization][api3] | This category combines [API3:2019 Excessive Data Exposure][1] and [API6:2019 - Mass Assignment][2], focusing on the root cause: the lack of or improper authorization validation at the object property level. This leads to information exposure or manipulation by unauthorized parties. | +| [API4:2023 - Unrestricted Resource Consumption][api4] | Satisfying API requests requires resources such as network bandwidth, CPU, memory, and storage. Other resources such as emails/SMS/phone calls or biometrics validation are made available by service providers via API integrations, and paid for per request. Successful attacks can lead to Denial of Service or an increase of operational costs. | +| [API5:2023 - Broken Function Level Authorization][api5] | Complex access control policies with different hierarchies, groups, and roles, and an unclear separation between administrative and regular functions, tend to lead to authorization flaws. By exploiting these issues, attackers can gain access to other users’ resources and/or administrative functions. | +| [API6:2023 - Unrestricted Access to Sensitive Business Flows][api6] | APIs vulnerable to this risk expose a business flow - such as buying a ticket, or posting a comment - without compensating for how the functionality could harm the business if used excessively in an automated manner. This doesn't necessarily come from implementation bugs. | +| [API7:2023 - Server Side Request Forgery][api7] | Server-Side Request Forgery (SSRF) flaws can occur when an API is fetching a remote resource without validating the user-supplied URI. This enables an attacker to coerce the application to send a crafted request to an unexpected destination, even when protected by a firewall or a VPN. | +| [API8:2023 - Security Misconfiguration][api8] | APIs and the systems supporting them typically contain complex configurations, meant to make the APIs more customizable. Software and DevOps engineers can miss these configurations, or don't follow security best practices when it comes to configuration, opening the door for different types of attacks. | +| [API9:2023 - Improper Inventory Management][api9] | APIs tend to expose more endpoints than traditional web applications, making proper and updated documentation highly important. A proper inventory of hosts and deployed API versions also are important to mitigate issues such as deprecated API versions and exposed debug endpoints. | +| [API10:2023 - Unsafe Consumption of APIs][api10] | Developers tend to trust data received from third-party APIs more than user input, and so tend to adopt weaker security standards. In order to compromise APIs, attackers go after integrated third-party services instead of trying to compromise the target API directly. | + +[1]: https://github.com/OWASP/API-Security/blob/master/2019/en/src/0xa3-excessive-data-exposure.md +[2]: https://github.com/OWASP/API-Security/blob/master/2019/en/src/0xa6-mass-assignment.md +[3]: https://github.com/OWASP/API-Security/blob/master/2019/en/src/0xa4-lack-of-resources-and-rate-limiting.md +[api1]: 0xa1-broken-object-level-authorization.md +[api2]: 0xa2-broken-authentication.md +[api3]: 0xa3-broken-object-property-level-authorization.md +[api4]: 0xa4-unrestricted-resource-consumption.md +[api5]: 0xa4-unrestricted-resource-consumption.md +[api6]: 0xa6-unrestricted-access-to-sensitive-business-flows.md +[api7]: 0xa7-server-side-request-forgery.md +[api8]: 0xa8-security-misconfiguration.md +[api9]: 0xa9-improper-inventory-management.md +[api10]: 0xaa-unsafe-consumption-of-apis.md diff --git a/2023/en/src/0xa1-broken-object-level-authorization.md b/editions/2023/en/0xa1-broken-object-level-authorization.md similarity index 70% rename from 2023/en/src/0xa1-broken-object-level-authorization.md rename to editions/2023/en/0xa1-broken-object-level-authorization.md index d949289a8..be629d9c8 100644 --- a/2023/en/src/0xa1-broken-object-level-authorization.md +++ b/editions/2023/en/0xa1-broken-object-level-authorization.md @@ -1,10 +1,9 @@ -API1:2023 Broken Object Level Authorization -=========================================== +# API1:2023 Broken Object Level Authorization | Threat agents/Attack vectors | Security Weakness | Impacts | | - | - | - | -| API Specific : Exploitability **3** | Prevalence **3** : Detectability **2** | Technical **3** : Business Specific | -| Attackers can exploit API endpoints that are vulnerable to broken object level authorization by manipulating the ID of an object that is sent within the request. This can lead to unauthorized access to sensitive data. This issue is extremely common in API-based applications because the server component usually does not fully track the client's state, and instead, relies more on parameters like object IDs, that are sent from the client to decide which objects to access. | This has been the most common and impactful attack on APIs. Authorization and access control mechanisms in modern applications are complex and widespread. Even if the application implements a proper infrastructure for authorization checks, developers might forget to use these checks before accessing a sensitive object. Access control detection is not typically amenable to automated static or dynamic testing. | Unauthorized access can result in data disclosure to unauthorized parties, data loss, or data manipulation. Unauthorized access to objects can also lead to full account takeover. | +| API Specific : Exploitability **Easy** | Prevalence **Widespread** : Detectability **Easy** | Technical **Moderate** : Business Specific | +| Attackers can exploit API endpoints that are vulnerable to broken object-level authorization by manipulating the ID of an object that is sent within the request. Object IDs can be anything from sequential integers, UUIDs, or generic strings. Regardless of the data type, they are easy to identify in the request target (path or query string parameters), request headers, or even as part of the request payload. | This issue is extremely common in API-based applications because the server component usually does not fully track the client’s state, and instead, relies more on parameters like object IDs, that are sent from the client to decide which objects to access. The server response is usually enough to understand whether the request was successful. | Unauthorized access to other users’ objects can result in data disclosure to unauthorized parties, data loss, or data manipulation. Under certain circumstances, unauthorized access to objects can also lead to full account takeover. | ## Is the API Vulnerable? @@ -22,13 +21,14 @@ disclosure, modification, or destruction of all data. Comparing the user ID of the current session (e.g. by extracting it from the JWT token) with the vulnerable ID parameter isn't a sufficient solution to -solve BOLA. This approach could address only a small subset of cases. +solve Broken Object Level Authorization (BOLA). This approach could address +only a small subset of cases. In the case of BOLA, it's by design that the user will have access to the vulnerable API endpoint/function. The violation happens at the object level, by manipulating the ID. If an attacker manages to access an API -endpoint/function they should not have access to - this is a case of BFLA -rather than BOLA. +endpoint/function they should not have access to - this is a case of [Broken +Function Level Authorization][5] (BFLA) rather than BOLA. ## Example Attack Scenarios @@ -37,7 +37,7 @@ rather than BOLA. An e-commerce platform for online stores (shops) provides a listing page with the revenue charts for their hosted shops. Inspecting the browser requests, an attacker can identify the API endpoints used as a data source for those charts -and their pattern `/shops/{shopName}/revenue_data.json`. Using another API +and their pattern: `/shops/{shopName}/revenue_data.json`. Using another API endpoint, the attacker can get the list of all hosted shop names. With a simple script to manipulate the names in the list, replacing `{shopName}` in the URL, the attacker gains access to the sales data of thousands of e-commerce @@ -52,7 +52,7 @@ As part of this flow, the user sends the Vehicle Identification Number (VIN) to the API. The API fails to validate that the VIN represents a vehicle that belongs to the logged in user, which leads to a BOLA vulnerability. An attacker can access -vehicles that don't belong to them. +vehicles that don't belong to him. ### Scenario #3 @@ -75,8 +75,8 @@ POST /graphql } ``` -Since a document ID is deleted without any further permission checks, a user -may be able to delete another user's document. +Since the document with the given ID is deleted without any further permission +checks, a user may be able to delete another user's document. ## How To Prevent @@ -89,7 +89,6 @@ may be able to delete another user's document. * Write tests to evaluate the vulnerability of the authorization mechanism. Do not deploy changes that make the tests fail. - ## References ### OWASP @@ -106,3 +105,4 @@ may be able to delete another user's document. [2]: https://cheatsheetseries.owasp.org/cheatsheets/Authorization_Testing_Automation_Cheat_Sheet.html [3]: https://cwe.mitre.org/data/definitions/285.html [4]: https://cwe.mitre.org/data/definitions/639.html +[5]: ./0xa5-broken-function-level-authorization.md diff --git a/2023/en/src/0xa2-broken-authentication.md b/editions/2023/en/0xa2-broken-authentication.md similarity index 72% rename from 2023/en/src/0xa2-broken-authentication.md rename to editions/2023/en/0xa2-broken-authentication.md index f6c15eb25..a02822f90 100644 --- a/2023/en/src/0xa2-broken-authentication.md +++ b/editions/2023/en/0xa2-broken-authentication.md @@ -1,17 +1,17 @@ -API2:2023 Broken Authentication -=============================== +# API2:2023 Broken Authentication | Threat agents/Attack vectors | Security Weakness | Impacts | | - | - | - | -| API Specific : Exploitability **3** | Prevalence **2** : Detectability **2** | Technical **3** : Business Specific | -| Authentication in APIs is a complex and confusing mechanism. Software and security engineers might have misconceptions about what are the boundaries of authentication and how to implement it correctly. In addition, the authentication mechanism is an easy target for attackers, since it's exposed to everyone. These two points make the authentication component potentially vulnerable to many exploits. | There are two sub-issues: 1. Lack of protection mechanisms: API endpoints that are responsible for authentication must be treated differently from regular endpoints and implement extra layers of protection; 2. Misimplementation of the mechanism: The mechanism is used / implemented without considering the attack vectors, or for the wrong use case (e.g. an authentication mechanism designed for IoT clients might not be the right choice for web applications). | Attackers can gain control of other users' accounts in the system, read their personal data, and perform sensitive actions on their behalf, like money transactions and sending personal messages. | +| API Specific : Exploitability **Easy** | Prevalence **Common** : Detectability **Easy** | Technical **Severe** : Business Specific | +| The authentication mechanism is an easy target for attackers since it's exposed to everyone. Although more advanced technical skills may be required to exploit some authentication issues, exploitation tools are generally available. | Software and security engineers’ misconceptions regarding authentication boundaries and inherent implementation complexity make authentication issues prevalent. Methodologies of detecting broken authentication are available and easy to create. | Attackers can gain complete control of other users’ accounts in the system, read their personal data, and perform sensitive actions on their behalf. Systems are unlikely to be able to distinguish attackers’ actions from legitimate user ones. | ## Is the API Vulnerable? -Authentication endpoints and flows are assets that need to be protected. Additionally, "Forgot password / reset password" should be treated the same way +Authentication endpoints and flows are assets that need to be protected. +Additionally, "Forgot password / reset password" should be treated the same way as authentication mechanisms. -A public-facing API is vulnerable if it: +An API is vulnerable if it: * Permits credential stuffing where the attacker uses brute force with a list of valid usernames and passwords. @@ -82,11 +82,11 @@ Authorization: Bearer { "email": "" } ``` -Because the API does not require the user to confirm their identity by -providing their current password, bad actors are able to put themselves in a -position to steal the auth token.They also might be able to take over the -victim's account by starting the reset password workflow after updating the -email address of the victim's account. +Because the API does not require users to confirm their identity by providing +their current password, bad actors able to put themselves in a position to +steal the auth token might be able to take over the victim's account by starting +the reset password workflow after updating the email address of the victim's +account. ## How To Prevent diff --git a/2023/en/src/0xa3-broken-object-property-level-authorization.md b/editions/2023/en/0xa3-broken-object-property-level-authorization.md similarity index 69% rename from 2023/en/src/0xa3-broken-object-property-level-authorization.md rename to editions/2023/en/0xa3-broken-object-property-level-authorization.md index 65cc402c1..94219bfa6 100644 --- a/2023/en/src/0xa3-broken-object-property-level-authorization.md +++ b/editions/2023/en/0xa3-broken-object-property-level-authorization.md @@ -1,10 +1,9 @@ -API3:2023 Broken Object Property Level Authorization -==================================================== +# API3:2023 Broken Object Property Level Authorization | Threat agents/Attack vectors | Security Weakness | Impacts | | - | - | - | -| API Specific : Exploitability **3** | Prevalence **2** : Detectability **2** | Technical **2** : Business Specific | -| Attackers can exploit API endpoints that are vulnerable to broken object property level authorization by reading or changing values of object properties they are not supposed to access. | Authorization in APIs is done in layers. While developers might perform proper validations to make sure that a user has access to a function, and then to a specific object, they often don't validate if the user is allowed to access a specific property within the object. | Unauthorized access can result in data disclosure to unauthorized parties, data loss, or data manipulation. | +| API Specific : Exploitability **Easy** | Prevalence **Common** : Detectability **Easy** | Technical **Moderate** : Business Specific | +| APIs tend to expose endpoints that return all object’s properties. This is particularly valid for REST APIs. For other protocols such as GraphQL, it may require crafted requests to specify which properties should be returned. Identifying these additional properties that can be manipulated requires more effort, but there are a few automated tools available to assist in this task. | Inspecting API responses is enough to identify sensitive information in returned objects’ representations. Fuzzing is usually used to identify additional (hidden) properties. Whether they can be changed is a matter of crafting an API request and analyzing the response. Side-effect analysis may be required if the target property is not returned in the API response. | Unauthorized access to private/sensitive object properties may result in data disclosure, data loss, or data corruption. Under certain circumstances, unauthorized access to object properties can lead to privilege escalation or partial/full account takeover. | ## Is the API Vulnerable? @@ -65,48 +64,61 @@ As part of this flow, an API call is sent by the host to `POST /api/host/approve_booking` with the following legitimate payload: ``` -{"approved":true,"comment":"Check-in is after 3pm"} +{ + "approved": true, + "comment": "Check-in is after 3pm" +} ``` The host replays the legitimate request, and adds the following malicious payload: ``` -{"approved":true,"comment":"Check-in is after 3pm","total_stay_price":"$1,000,000"} +{ + "approved": true, + "comment": "Check-in is after 3pm", + "total_stay_price": "$1,000,000" +} ``` The API endpoint is vulnerable because there is no validation that the host -should have access to the internal object property - "total_stay_price", and +should have access to the internal object property - `total_stay_price`, and the guest will be charged more than she was supposed to be. ### Scenario #3 A social network that is based on short videos, enforces restrictive content filtering and censorship. Even if an uploaded video is blocked, the user can -change the description of the video using the following API request +change the description of the video using the following API request: ``` PUT /api/video/update_video -{"description":"a funny video about cats"} +{ + "description": "a funny video about cats" +} ``` A frustrated user can replay the legitimate request, and add the following malicious payload: ``` -{"description":"a funny video about cats","blocked":false} +{ + "description": "a funny video about cats", + "blocked": false +} ``` The API endpoint is vulnerable because there is no validation if the user -should have access to the internal object property - "blocked", and the user -can change the value from "true" to "false" and unlock their own blocked content. +should have access to the internal object property - `blocked`, and the user +can change the value from `true` to `false` and unlock their own blocked +content. ## How To Prevent * When exposing an object using an API endpoint, always make sure that the user should have access to the object's properties you expose. -* Avoid using generic methods such as to_json() and to_string(). Instead, +* Avoid using generic methods such as `to_json()` and `to_string()`. Instead, cherry-pick specific object properties you specifically want to return. * If possible, avoid using functions that automatically bind a client's input into code variables, internal objects, or object properties diff --git a/2023/en/src/0xa4-unrestricted-resource-consumption.md b/editions/2023/en/0xa4-unrestricted-resource-consumption.md similarity index 57% rename from 2023/en/src/0xa4-unrestricted-resource-consumption.md rename to editions/2023/en/0xa4-unrestricted-resource-consumption.md index 34ad0e37b..cf2862b03 100644 --- a/2023/en/src/0xa4-unrestricted-resource-consumption.md +++ b/editions/2023/en/0xa4-unrestricted-resource-consumption.md @@ -1,10 +1,9 @@ -API4:2023 Unrestricted Resource Consumption -=========================================== +# API4:2023 Unrestricted Resource Consumption | Threat agents/Attack vectors | Security Weakness | Impacts | | - | - | - | -| API Specific : Exploitability **2** | Prevalence **3** : Detectability **3** | Technical **2** : Business Specific | -| Exploitation requires simple API requests. Multiple concurrent requests can be performed from a single local computer or by using cloud computing resources. | It's common to find APIs that do not limit client interactions or resource consumptions. Although most of the time interactions are logged, due to the lack of monitoring, or improper monitoring, malicious activity passes unnoticed. | Exploitation can lead to DoS due to resource starvation, but it can also impact service providers' billing. | +| API Specific : Exploitability **Average** | Prevalence **Widespread** : Detectability **Easy** | Technical **Severe** : Business Specific | +| Exploitation requires simple API requests. Multiple concurrent requests can be performed from a single local computer or by using cloud computing resources. Most of the automated tools available are designed to cause DoS via high loads of traffic, impacting APIs’ service rate. | It's common to find APIs that do not limit client interactions or resource consumption. Crafted API requests, such as those including parameters that control the number of resources to be returned and performing response status/time/length analysis should allow identification of the issue. The same is valid for batched operations. Although threat agents don't have visibility over costs impact, this can be inferred based on service providers’ (e.g. cloud provider) business/pricing model. | Exploitation can lead to DoS due to resource starvation, but it can also lead to operational costs increase such as those related to the infrastructure due to higher CPU demand, increasing cloud storage needs, etc. | ## Is the API Vulnerable? @@ -30,45 +29,84 @@ inappropriately (e.g. too low/high): ### Scenario #1 -An attacker uploads a large image by issuing a POST request to /api/v1/images. -When the upload is complete, the API creates multiple thumbnails with different -sizes. Due to the size of the uploaded image, available memory is exhausted -during the creation of thumbnails and the API becomes unresponsive. +A social network implemented a “forgot password” flow using SMS verification, +enabling the user to receive a one time token via SMS in order to reset their +password. + +Once a user clicks on "forgot password" an API call is sent from the user's +browser to the back-end API: + +``` +POST /initiate_forgot_password + +{ + "step": 1, + "user_number": "6501113434" +} +``` + +Then, behind the scenes, an API call is sent from the back-end to a 3rd party +API that takes care of the SMS delivering: + +``` +POST /sms/send_reset_pass_code + +Host: willyo.net + +{ + "phone_number": "6501113434" +} +``` + +The 3rd party provider, Willyo, charges $0.05 per this type of call. + +An attacker writes a script that sends the first API call tens of thousands of +times. The back-end follows and requests Willyo to send tens of thousands of +text messages, leading the company to lose thousands of dollars in a matter of +minutes. ### Scenario #2 -In order to activate a credit card the following API request should be issued -providing the last four digits printed on it (only users with physical access -to the card should be able to perform such operation): +A GraphQL API Endpoint allows the user to upload a profile picture. ``` POST /graphql { "query": "mutation { - validateOTP(token: \"abcdef\", card: \"123456\") { - authToken + uploadPic(name: \"pic1\", base64_pic: \"R0FOIEFOR0xJVA…\") { + url } }" } ``` -Bad actors will be able to perform the credit card activation without physical -access to it, crafting a request like the one below: +Once the upload is complete, the API generates multiple thumbnails with +different sizes based on the uploaded picture. This graphical operation takes a +lot of memory from the server. + +The API implements a traditional rate limiting protection - a user can't access +the GraphQL endpoint too many times in a short period of time. The API also +checks for the uploaded picture's size before generating thumbnails to avoid +processing pictures that are too large. + +An attacker can easily bypass those mechanisms, by leveraging the flexible +nature of GraphQL: ``` POST /graphql [ - {"query": "mutation {activateCard(token: \"abcdef\", card: \"0000\") {authToken}}"}, - {"query": "mutation {activateCard(token: \"abcdef\", card: \"0001\") {authToken}}"}, + {"query": "mutation {uploadPic(name: \"pic1\", base64_pic: \"R0FOIEFOR0xJVA…\") {url}}"}, + {"query": "mutation {uploadPic(name: \"pic2\", base64_pic: \"R0FOIEFOR0xJVA…\") {url}}"}, ... - {"query": "mutation {activateCard(token: \"abcdef\", card: \"9999\") {authToken}}"} + {"query": "mutation {uploadPic(name: \"pic999\", base64_pic: \"R0FOIEFOR0xJVA…\") {url}}"}, } ``` -Because the API does not limit the number of times the activateCard operation -can be attempted, one of the mutations will succeed. +Because the API does not limit the number of times the `uploadPic` operation can +be attempted, the call will lead to exhaustion of server memory and Denial of +Service. ### Scenario #3 @@ -86,7 +124,8 @@ the next monthly bill increases from US$13, on average, to US$8k. ## How To Prevent * Use a solution that makes it easy to limit [memory][1], - [CPU][2], [number of restarts][3], [file descriptors, and processes][4] such as Containers / Serverless code (e.g. Lambdas). + [CPU][2], [number of restarts][3], [file descriptors, and processes][4] such + as Containers / Serverless code (e.g. Lambdas). * Define and enforce a maximum size of data on all incoming parameters and payloads, such as maximum length for strings, maximum number of elements in arrays, and maximum upload file size (regardless of whether it is stored diff --git a/2023/en/src/0xa5-broken-function-level-authorization.md b/editions/2023/en/0xa5-broken-function-level-authorization.md similarity index 74% rename from 2023/en/src/0xa5-broken-function-level-authorization.md rename to editions/2023/en/0xa5-broken-function-level-authorization.md index 808e4c431..0bb3f432d 100644 --- a/2023/en/src/0xa5-broken-function-level-authorization.md +++ b/editions/2023/en/0xa5-broken-function-level-authorization.md @@ -1,10 +1,9 @@ -API5:2023 Broken Function Level Authorization -============================================= +# API5:2023 Broken Function Level Authorization | Threat agents/Attack vectors | Security Weakness | Impacts | | - | - | - | -| API Specific : Exploitability **3** | Prevalence **2** : Detectability **1** | Technical **2** : Business Specific | -| Exploitation requires the attacker to send legitimate API calls to the API endpoint that they should not have access to. These endpoints might be exposed to anonymous users or regular, non-privileged users. It's easier to discover these flaws in APIs since APIs are more structured, and the way to access certain functions is more predictable (e.g. replacing the HTTP method from GET to PUT, or changing the "users" string in the URL to "admins"). | Authorization checks for a function or resource are usually managed via configuration, and sometimes at the code level. Implementing proper checks can be a confusing task since modern applications can contain many types of roles or groups and complex user hierarchies (e.g. sub-users, or users with more than one role). Detection relies on proper logging and monitoring. | Such flaws allow attackers to access unauthorized functionality. Administrative functions are key targets for this type of attack. | +| API Specific : Exploitability **Easy** | Prevalence **Common** : Detectability **Easy** | Technical **Severe** : Business Specific | +| Exploitation requires the attacker to send legitimate API calls to an API endpoint that they should not have access to as anonymous users or regular, non-privileged users. Exposed endpoints will be easily exploited. | Authorization checks for a function or resource are usually managed via configuration or code level. Implementing proper checks can be a confusing task since modern applications can contain many types of roles, groups, and complex user hierarchies (e.g. sub-users, or users with more than one role). It's easier to discover these flaws in APIs since APIs are more structured, and accessing different functions is more predictable. | Such flaws allow attackers to access unauthorized functionality. Administrative functions are key targets for this type of attack and may lead to data disclosure, data loss, or data corruption. Ultimately, it may lead to service disruption. | ## Is the API Vulnerable? @@ -25,8 +24,8 @@ Don't assume that an API endpoint is regular or administrative only based on the URL path. While developers might choose to expose most of the administrative endpoints -under a specific relative path, like `/api/admins`, it's very common to find these -administrative endpoints under other relative paths together with regular +under a specific relative path, like `/api/admins`, it's very common to find +these administrative endpoints under other relative paths together with regular endpoints, like `/api/users`. ## Example Attack Scenarios @@ -48,7 +47,10 @@ The attacker exploits the issue and sends a new invite with admin privileges: ``` POST /api/invites/new -{"email":"attacker@somehost.com","role":"admin"} +{ + "email": "attacker@somehost.com", + "role":"admin" +} ``` Later on, the attacker uses the maliciously crafted invite in order to create @@ -70,7 +72,6 @@ module that is invoked from all your business functions. Frequently, such protection is provided by one or more components external to the application code. - * The enforcement mechanism(s) should deny all access by default, requiring explicit grants to specific roles for access to every function. * Review your API endpoints against function level authorization flaws, while diff --git a/editions/2023/en/0xa6-unrestricted-access-to-sensitive-business-flows.md b/editions/2023/en/0xa6-unrestricted-access-to-sensitive-business-flows.md new file mode 100644 index 000000000..1a9220834 --- /dev/null +++ b/editions/2023/en/0xa6-unrestricted-access-to-sensitive-business-flows.md @@ -0,0 +1,106 @@ +# API6:2023 Unrestricted Access to Sensitive Business Flows + +| Threat agents/Attack vectors | Security Weakness | Impacts | +| - | - | - | +| API Specific : Exploitability **Easy** | Prevalence **Widespread** : Detectability **Average** | Technical **Moderate** : Business Specific | +| Exploitation usually involves understanding the business model backed by the API, finding sensitive business flows, and automating access to these flows, causing harm to the business. | Lack of a holistic view of the API in order to fully support business requirements tends to contribute to the prevalence of this issue. Attackers manually identify what resources (e.g. endpoints) are involved in the target workflow and how they work together. If mitigation mechanisms are already in place, attackers need to find a way to bypass them. | In general technical impact is not expected. Exploitation might hurt the business in different ways, for example: prevent legitimate users from purchasing a product, or lead to inflation in the internal economy of a game. | + +## Is the API Vulnerable? + +When creating an API Endpoint, it is important to understand which business flow +it exposes. Some business flows are more sensitive than others, in the sense +that excessive access to them may harm the business. + +Common examples of sensitive business flows and risk of excessive access +associated with them: + +* Purchasing a product flow - an attacker can buy all the stock of a high-demand + item at once and resell for a higher price (scalping) +* Creating a comment/post flow - an attacker can spam the system +* Making a reservation - an attacker can reserve all the available time slots + and prevent other users from using the system + +The risk of excessive access might change between industries and businesses. +For example - creation of posts by a script might be considered as a risk of +spam by one social network, but encouraged by another social network. + +An API Endpoint is vulnerable if it exposes a sensitive business flow, without +appropriately restricting the access to it. + +## Example Attack Scenarios + +### Scenario #1 + +A technology company announces they are going to release a new gaming console on +Thanksgiving. The product has a very high demand and the stock is limited. An +attacker writes code to automatically buy the new product and complete the +transaction. + +On the release day, the attacker runs the code distributed across different IP +addresses and locations. The API doesn't implement the appropriate protection +and allows the attacker to buy the majority of the stock before other legitimate +users. + +Later on, the attacker sells the product on another platform for a much higher +price. + +### Scenario #2 + +An airline company offers online ticket purchasing with no cancellation fee. A +user with malicious intentions books 90% of the seats of a desired flight. + +A few days before the flight the malicious user canceled all the tickets at +once, which forced the airline to discount the ticket prices in order to fill +the flight. + +At this point, the user buys herself a single ticket that is much cheaper than +the original one. + +### Scenario #3 + +A ride-sharing app provides a referral program - users can invite their friends +and gain credit for each friend who has joined the app. This credit can be later +used as cash to book rides. + +An attacker exploits this flow by writing a script to automate the registration +process, with each new user adding credit to the attacker's wallet. + +The attacker can later enjoy free rides or sell the accounts with excessive +credits for cash. + +## How To Prevent + +The mitigation planning should be done in two layers: + +* Business - identify the business flows that might harm the business if they + are excessively used. +* Engineering - choose the right protection mechanisms to mitigate the business + risk. + + Some of the protection mechanisms are more simple while others are more + difficult to implement. The following methods are used to slow down automated + threats: + + * Device fingerprinting: denying service to unexpected client devices (e.g + headless browsers) tends to make threat actors use more sophisticated + solutions, thus more costly for them + * Human detection: using either captcha or more advanced biometric solutions + (e.g. typing patterns) + * Non-human patterns: analyze the user flow to detect non-human patterns (e.g. + the user accessed the "add to cart" and "complete purchase" functions in + less than one second) + * Consider blocking IP addresses of Tor exit nodes and well-known proxies + + Secure and limit access to APIs that are consumed directly by machines (such + as developer and B2B APIs). They tend to be an easy target for attackers + because they often don't implement all the required protection mechanisms. + +## References + +### OWASP + +* [OWASP Automated Threats to Web Applications][1] +* [API10:2019 Insufficient Logging & Monitoring][2] + +[1]: https://owasp.org/www-project-automated-threats-to-web-applications/ +[2]: https://github.com/OWASP/API-Security/blob/master/2019/en/src/0xaa-insufficient-logging-monitoring.md diff --git a/2023/en/src/0xa6-server-side-request-forgery.md b/editions/2023/en/0xa7-server-side-request-forgery.md similarity index 73% rename from 2023/en/src/0xa6-server-side-request-forgery.md rename to editions/2023/en/0xa7-server-side-request-forgery.md index e11ae5037..70bce4868 100644 --- a/2023/en/src/0xa6-server-side-request-forgery.md +++ b/editions/2023/en/0xa7-server-side-request-forgery.md @@ -1,17 +1,16 @@ -API6:2023 Server Side Request Forgery -===================================== +# API7:2023 Server Side Request Forgery | Threat agents/Attack vectors | Security Weakness | Impacts | | - | - | - | -| API Specific : Exploitability **2** | Prevalence **2** : Detectability **1** | Technical **2** : Business Specific | -| Exploitation requires the attacker to find an API endpoint that receives a URI as a parameter and then accesses the provided URI. URL parsing inconsistencies are well-known for most common programming languages' built-in functions and libraries. | Modern concepts in application development encourage developers to access URIs provided by the client. Usually, server-side data retrieval is not logged, or when it is chances are it isn't being monitored. | Successful exploitation might lead to internal services enumeration (e.g. port scanning) or information disclosure, bypassing firewalls or other security mechanisms. In some cases, it can lead to DoS or the server being used as a proxy to hide malicious activities. | +| API Specific : Exploitability **Easy** | Prevalence **Common** : Detectability **Easy** | Technical **Moderate** : Business Specific | +| Exploitation requires the attacker to find an API endpoint that accesses a URI that’s provided by the client. In general, basic SSRF (when the response is returned to the attacker), is easier to exploit than Blind SSRF in which the attacker has no feedback on whether or not the attack was successful. | Modern concepts in application development encourage developers to access URIs provided by the client. Lack of or improper validation of such URIs are common issues. Regular API requests and response analysis will be required to detect the issue. When the response is not returned (Blind SSRF) detecting the vulnerability requires more effort and creativity. | Successful exploitation might lead to internal services enumeration (e.g. port scanning), information disclosure, bypassing firewalls, or other security mechanisms. In some cases, it can lead to DoS or the server being used as a proxy to hide malicious activities. | ## Is the API Vulnerable? -Server-Side Request Forgery (SSRF) flaws occur whenever an API is fetching a -remote resource without validating the user-supplied URL. It allows an attacker -to coerce the application to send a crafted request to an unexpected -destination, even when protected by a firewall or a VPN. +Server-Side Request Forgery (SSRF) flaws occur when an API is fetching a remote +resource without validating the user-supplied URL. It enables an attacker to +coerce the application to send a crafted request to an unexpected destination, +even when protected by a firewall or a VPN. Modern concepts in application development make SSRF more common and more dangerous. @@ -24,7 +23,6 @@ More dangerous - Modern technologies like cloud providers, Kubernetes, and Docker expose management and control channels over HTTP on predictable, well-known paths. Those channels are an easy target for an SSRF attack. - It is also more challenging to limit outbound traffic from your application, because of the connected nature of modern applications. @@ -42,14 +40,18 @@ image. Choosing the second, will trigger the following API call: ``` POST /api/profile/upload_picture -{"picture_url":"http:///example.com/profile_pic.jpg"} +{ + "picture_url": "http://example.com/profile_pic.jpg" +} ``` An attacker can send a malicious URL and initiate port scanning within the internal network using the API Endpoint. ``` -{"picture_url":"localhost:8080"} +{ + "picture_url": "localhost:8080" +} ``` Based on the response time, the attacker can figure out whether the port is @@ -91,7 +93,7 @@ POST /graphql ``` -During the creation process, the API backend sends a test request to the +During the creation process, the API back-end sends a test request to the provided webhook URL, and presents to the user the response. An attacker can leverage this flow, and make the API request a sensitive @@ -129,7 +131,7 @@ can view the credentials of the cloud environment. * Isolate the resource fetching mechanism in your network: usually these features are aimed to retrieve remote resources and not internal ones. -* Whenever possible, use allow lists of +* Whenever possible, use allow lists of: * Remote origins users are expected to download resources from (e.g. Google Drive, Gravatar, etc.) * URL schemes and ports diff --git a/2023/en/src/0xa7-security-misconfiguration.md b/editions/2023/en/0xa8-security-misconfiguration.md similarity index 81% rename from 2023/en/src/0xa7-security-misconfiguration.md rename to editions/2023/en/0xa8-security-misconfiguration.md index 5bedb0af1..c2dd4b98a 100644 --- a/2023/en/src/0xa7-security-misconfiguration.md +++ b/editions/2023/en/0xa8-security-misconfiguration.md @@ -1,10 +1,9 @@ -API7:2023 Security Misconfiguration -=================================== +# API8:2023 Security Misconfiguration | Threat agents/Attack vectors | Security Weakness | Impacts | | - | - | - | -| API Specific : Exploitability **3** | Prevalence **3** : Detectability **3** | Technical **2** : Business Specific | -| Attackers will often attempt to find unpatched flaws, common endpoints, or unprotected files and directories to gain unauthorized access or knowledge of the system. | Security misconfiguration can happen at any level of the API stack, from the network level to the application level. Automated tools are available to detect and exploit misconfigurations such as unnecessary services or legacy options. | Security misconfigurations can not only expose sensitive user data, but also system details that can lead to full server compromise. | +| API Specific : Exploitability **Easy** | Prevalence **Widespread** : Detectability **Easy** | Technical **Severe** : Business Specific | +| Attackers will often attempt to find unpatched flaws, common endpoints, services running with insecure default configurations, or unprotected files and directories to gain unauthorized access or knowledge of the system. Most of this is public knowledge and exploits may be available. | Security misconfiguration can happen at any level of the API stack, from the network level to the application level. Automated tools are available to detect and exploit misconfigurations such as unnecessary services or legacy options. | Security misconfigurations not only expose sensitive user data, but also system details that can lead to full server compromise. | ## Is the API Vulnerable? @@ -56,14 +55,14 @@ not required): GET /dm/user_updates.json?conversation_id=1234567&cursor=GRlFp7LCUAAAA ``` -Because the API response does not include the Cache-Control HTTP response +Because the API response does not include the `Cache-Control` HTTP response header, private conversations end-up cached by the web browser, allowing malicious actors to retrieve them from the browser cache files in the filesystem. ## How To Prevent -The API life cycle should include +The API life cycle should include: * A repeatable hardening process leading to fast and easy deployment of a properly locked down environment @@ -80,8 +79,12 @@ Furthermore: (TLS), regardless of whether it is an internal or public-facing API. * Be specific about which HTTP verbs each API can be accessed by: all other HTTP verbs should be disabled (e.g. HEAD). -* Implement a proper Cross-Origin Resource Sharing (CORS) policy on APIs - expected to be accessed from browser-based clients (e.g. web app front-ends). +* APIs expecting to be accessed from browser-based clients (e.g., WebApp + front-end) should, at least: + * implement a proper Cross-Origin Resource Sharing (CORS) policy + * include applicable Security Headers +* Restrict incoming content types/data formats to those that meet the business/ + functional requirements. * Ensure all servers in the HTTP server chain (e.g. load balancers, reverse and forward proxies, and back-end servers) process incoming requests in a uniform manner to avoid desync issues. diff --git a/2023/en/src/0xa9-improper-assets-management.md b/editions/2023/en/0xa9-improper-inventory-management.md similarity index 71% rename from 2023/en/src/0xa9-improper-assets-management.md rename to editions/2023/en/0xa9-improper-inventory-management.md index be4d3eef3..64458f478 100644 --- a/2023/en/src/0xa9-improper-assets-management.md +++ b/editions/2023/en/0xa9-improper-inventory-management.md @@ -1,10 +1,9 @@ -API9:2023 Improper Inventory Management -======================================= +# API9:2023 Improper Inventory Management | Threat agents/Attack vectors | Security Weakness | Impacts | | - | - | - | -| API Specific : Exploitability **3** | Prevalence **3** : Detectability **2** | Technical **2** : Business Specific | -| Threat agents usually get unauthorized access through old API versions or endpoints left running unpatched and using weaker security requirements. Alternatively, they may get access to sensitive data through a 3rd party with whom there's no reason to share data with. | Outdated documentation makes it more difficult to find and/or fix vulnerabilities. Lack of assets inventory and retirement strategies leads to running unpatched systems, resulting in leakage of sensitive data. It's common to find unnecessarily exposed API hosts because of modern concepts like microservices, which make applications easy to deploy and independent (e.g. cloud computing, K8S). | Attackers can gain access to sensitive data, or even take over the server, through old, unpatched API versions connected to the same database. | +| API Specific : Exploitability **Easy** | Prevalence **Widespread** : Detectability **Average** | Technical **Moderate** : Business Specific | +| Threat agents usually get unauthorized access through old API versions or endpoints left running unpatched and using weaker security requirements. In some cases exploits are available. Alternatively, they may get access to sensitive data through a 3rd party with whom there's no reason to share data with. | Outdated documentation makes it more difficult to find and/or fix vulnerabilities. Lack of assets inventory and retirement strategies leads to running unpatched systems, resulting in leakage of sensitive data. It's common to find unnecessarily exposed API hosts because of modern concepts like microservices, which make applications easy to deploy and independent (e.g. cloud computing, K8S). Simple Google Dorking, DNS enumeration, or using specialized search engines for various types of servers (webcams, routers, servers, etc.) connected to the internet will be enough to discover targets. | Attackers can gain access to sensitive data, or even take over the server. Sometimes different API versions/deployments are connected to the same database with real data. Threat agents may exploit deprecated endpoints available in old API versions to get access to administrative functions or exploit known vulnerabilities. | ## Is the API Vulnerable? @@ -16,7 +15,7 @@ the APIs are storing or sharing data with external third parties. Running multiple versions of an API requires additional management resources from the API provider and expands the attack surface. -An API has a "documentation blindspot“ if: +An API has a "documentation blindspot" if: * The purpose of an API host is unclear, and there are no explicit answers to the following questions @@ -48,10 +47,10 @@ An API has a "data flow blindspot" if: A social network implemented a rate-limiting mechanism that blocks attackers from using brute force to guess reset password tokens. This mechanism wasn't implemented as part of the API code itself but in a separate component between -the client and the official API (www.socialnetwork.com). A researcher found a -beta API host (www.mbasic.beta.socialnetwork.com) that runs the same API, -including the reset password mechanism, but the rate-limiting mechanism was not -in place. The researcher was able to reset the password of any user by using +the client and the official API (`api.socialnetwork.owasp.org`). A researcher +found a beta API host (`beta.api.socialnetwork.owasp.org`) that runs the same +API, including the reset password mechanism, but the rate-limiting mechanism was +not in place. The researcher was able to reset the password of any user by using simple brute force to guess the 6 digit token. ### Scenario #2 diff --git a/2023/en/src/0xaa-unsafe-consumption-of-apis.md b/editions/2023/en/0xaa-unsafe-consumption-of-apis.md similarity index 73% rename from 2023/en/src/0xaa-unsafe-consumption-of-apis.md rename to editions/2023/en/0xaa-unsafe-consumption-of-apis.md index 77c68543c..016b1ddba 100644 --- a/2023/en/src/0xaa-unsafe-consumption-of-apis.md +++ b/editions/2023/en/0xaa-unsafe-consumption-of-apis.md @@ -1,10 +1,9 @@ -API10:2023 Unsafe Consumption of APIs -===================================== +# API10:2023 Unsafe Consumption of APIs | Threat agents/Attack vectors | Security Weakness | Impacts | | - | - | - | -| API Specific : Exploitability **2** | Prevalence **2** : Detectability **1** | Technical **3** : Business Specific | -| Developers tend to trust but not verify in their endpoints which interact with external or third-party APIs. Successful exploitation of security flaws in these APIs can impact those relying on them. | Usually, API integrations rely on weaker security requirements such as those regarding transport security, authentication/authorization, and input validation and sanitization. | Exposure of sensitive information to unauthorized actors and many kinds of injections are common issues. | +| API Specific : Exploitability **Easy** | Prevalence **Common** : Detectability **Average** | Technical **Severe** : Business Specific | +| Exploiting this issue requires attackers to identify and potentially compromise other APIs/services the target API integrated with. Usually, this information is not publicly available or the integrated API/service is not easily exploitable. | Developers tend to trust and not verify the endpoints that interact with external or third-party APIs, relying on weaker security requirements such as those regarding transport security, authentication/authorization, and input validation and sanitization. Attackers need to identify services the target API integrates with (data sources) and, eventually, compromise them. | The impact varies according to what the target API does with pulled data. Successful exploitation may lead to sensitive information exposure to unauthorized actors, many kinds of injections, or denial of service. | ## Is the API Vulnerable? @@ -46,11 +45,13 @@ request like the one below: ``` POST /user/store_phr_record -{ "genome": "ACTAGTAG__TTGADDAAIICCTT…" } +{ + "genome": "ACTAGTAG__TTGADDAAIICCTT…" +} ``` Bad actors found a way to compromise the third-party API and it starts -responding with a 308 Permanent Redirect to requests like the previous one. +responding with a `308 Permanent Redirect` to requests like the previous one. ``` HTTP/1.1 308 Permanent Redirect @@ -63,11 +64,11 @@ attacker's server. ### Scenario #3 -An attacker can prepare a git repo named `'; drop db;--`. +An attacker can prepare a git repository named `'; drop db;--`. Now, when an integration from an attacked application is done with the -malicious repo, an injection payload is used on an application that builds an -SQL query believing the repo's name is safe input. +malicious repository, SQL injection payload is used on an application that +builds an SQL query believing the repository's name is safe input. ## How To Prevent diff --git a/editions/2023/en/0xb0-next-devs.md b/editions/2023/en/0xb0-next-devs.md new file mode 100644 index 000000000..89139c49f --- /dev/null +++ b/editions/2023/en/0xb0-next-devs.md @@ -0,0 +1,38 @@ +# What's Next For Developers + +The task to create and maintain secure applications, or fixing existing +applications, can be difficult. It is no different for APIs. + +We believe that education and awareness are key factors to writing secure +software. Everything else required to accomplish the goal depends on +**establishing and using repeatable security processes and standard security +controls**. + +OWASP provides numerous free and open resources to help you address security. +Please visit the [OWASP Projects page][1] for a comprehensive list of available +projects. + +| | | +|-|-| +| **Education** | The [Application Security Wayfinder][2] should give you a good idea about what projects are available for each stage/phase of the Software Development LifeCycle (SDLC). For hands-on learning/training you can start with [OWASP **crAPI** - **C**ompletely **R**idiculous **API**][3] or [OWASP Juice Shop][4]: both have intentionally vulnerable APIs. The [OWASP Vulnerable Web Applications Directory Project][5] provides a curated list of intentionally vulnerable applications: you'll find there several other vulnerable APIs. You can also attend [OWASP AppSec Conference][6] training sessions, or [join your local chapter][7]. | +| **Security Requirements** | Security should be part of every project from the beginning. When defining requirements, it is important to define what "secure" means for that project. OWASP recommends you use the [OWASP Application Security Verification Standard (ASVS)][8] as a guide for setting the security requirements. If you're outsourcing, consider the [OWASP Secure Software Contract Annex][9], which should be adapted according to local law and regulations. | +| **Security Architecture** | Security should remain a concern during all the project stages. The [OWASP Cheat Sheet Series][10] is a good starting point for guidance on how to design security in during the architecture phase. Among many others, you'll find the [REST Security Cheat Sheet][11] and the [REST Assessment Cheat Sheet][12] as well the [GraphQL Cheat Sheet][13]. | +| **Standard Security Controls** | Adopting standard security controls reduces the risk of introducing security weaknesses while writing your own logic. Although many modern frameworks now come with effective built-in standard controls, [OWASP Proactive Controls][14] gives you a good overview of what security controls you should look to include in your project. OWASP also provides some libraries and tools you may find valuable, such as validation controls. | +| **Secure Software Development Life Cycle** | You can use the [OWASP Software Assurance Maturity Model (SAMM)][15] to improve your processes of building APIs. Several other OWASP projects are available to help you during the different API development phases e.g., the [OWASP Code Review Guide][16]. | + +[1]: https://owasp.org/projects/ +[2]: https://owasp.org/projects/#owasp-projects-the-sdlc-and-the-security-wayfinder +[3]: https://owasp.org/www-project-crapi/ +[4]: https://owasp.org/www-project-juice-shop/ +[5]: https://owasp.org/www-project-vulnerable-web-applications-directory/ +[6]: https://owasp.org/events/ +[7]: https://owasp.org/chapters/ +[8]: https://owasp.org/www-project-application-security-verification-standard/ +[9]: https://owasp.org/www-community/OWASP_Secure_Software_Contract_Annex +[10]: https://cheatsheetseries.owasp.org/ +[11]: https://cheatsheetseries.owasp.org/cheatsheets/REST_Security_Cheat_Sheet.html +[12]: https://cheatsheetseries.owasp.org/cheatsheets/REST_Assessment_Cheat_Sheet.html +[13]: https://cheatsheetseries.owasp.org/cheatsheets/GraphQL_Cheat_Sheet.html +[14]: https://owasp.org/www-project-proactive-controls/ +[15]: https://owasp.org/www-project-samm/ +[16]: https://owasp.org/www-project-code-review-guide/ diff --git a/editions/2023/en/0xb1-next-devsecops.md b/editions/2023/en/0xb1-next-devsecops.md new file mode 100644 index 000000000..7cf75e87d --- /dev/null +++ b/editions/2023/en/0xb1-next-devsecops.md @@ -0,0 +1,29 @@ +# What's Next For DevSecOps + +Due to their importance in modern application architectures, building secure +APIs is crucial. Security cannot be neglected, and it should be part of the +whole development life cycle. Scanning and penetration testing yearly are no +longer enough. + +DevSecOps should join the development effort, facilitating continuous security +testing across the entire software development life cycle. Your goal should be +to enhance the development pipeline with security automation, but without +impacting the speed of development. + +In case of doubt, stay informed, and refer to the [DevSecOps Manifesto][1]. + +| | | +|-|-| +| **Understand the Threat Model** | Testing priorities come from a threat model. If you don't have one, consider using [OWASP Application Security Verification Standard (ASVS)][2], and the [OWASP Testing Guide][3] as an input. Involving the development team will help to make them more security-aware. | +| **Understand the SDLC** | Join the development team to better understand the Software Development Life Cycle. Your contribution on continuous security testing should be compatible with people, processes, and tools. Everyone should agree with the process, so that there's no unnecessary friction or resistance. | +| **Testing Strategies** | Since your work should not impact the development speed, you should wisely choose the best (simple, fastest, most accurate) technique to verify the security requirements. The [OWASP Security Knowledge Framework][4] and [OWASP Application Security Verification Standard][2] can be great sources of functional and nonfunctional security requirements. There are other great sources for [projects][5] and [tools][6] similar to the one offered by the [DevSecOps community][7]. | +| **Achieving Coverage and Accuracy** | You're the bridge between developers and operations teams. To achieve coverage, not only should you focus on the functionality, but also the orchestration. Work close to both development and operations teams from the beginning so you can optimize your time and effort. You should aim for a state where the essential security is verified continuously. | +| **Clearly Communicate Findings** | Contribute value with less or no friction. Deliver findings in a timely fashion, within the tools development teams are using (not PDF files). Join the development team to address the findings. Take the opportunity to educate them, clearly describing the weakness and how it can be abused, including an attack scenario to make it real. | + +[1]: https://www.devsecops.org/ +[2]: https://owasp.org/www-project-application-security-verification-standard/ +[3]: https://owasp.org/www-project-web-security-testing-guide/ +[4]: https://owasp.org/www-project-security-knowledge-framework/ +[5]: http://devsecops.github.io/ +[6]: https://github.com/devsecops/awesome-devsecops +[7]: http://devsecops.org diff --git a/editions/2023/en/0xd0-about-data.md b/editions/2023/en/0xd0-about-data.md new file mode 100644 index 000000000..3e856f718 --- /dev/null +++ b/editions/2023/en/0xd0-about-data.md @@ -0,0 +1,73 @@ +# Methodology and Data + +## Overview + +For this list update, the OWASP API Security team used the same methodology used +for the successful and well adopted 2019 list, with the addition of a 3 month +[public Call for Data][1]. Unfortunately, this call for data did not result in +data that would have enabled a relevant statistical analysis of the most common +API security issues. + +However, with a more mature API security industry capable of providing direct +feedback and insights, the update process moved forward using the same +methodology as before. + +Arrived here, we believe to have a good forward-looking awareness document for +the next three or four years, more focused on modern APIs-specific issues. The +goal of this project isn't to replace other top 10 lists, but instead to cover +the existing and upcoming top API security risks that we believe the industry +should be aware and diligent about. + +## Methodology + +In the first phase, publicly available data about API security incidents were +collected, reviewed, and categorized. Such data were collected from bug bounty +platforms and publicly available reports. Only issues reported between 2019 and +2022 were considered. This data was used to give the team a sense of in which +direction the previous top 10 list should evolve as well as to help deal with +possible contributed data bias. + +A public [Call for Data][1] ran from September 1st and November 30th, 2022. In +parallel the project team started the discussion about what has changed since +2019. The discussion included the impact of the first list, feedback received +from the community, and new trends of API security. + +The project team promoted meetings with specialists on relevant API security +threats to get insights into how victims are impacted and how those threats can +be mitigated. + +This effort resulted in an initial draft of what the team believes were the ten +most critical API security risks. The [OWASP Risk Rating Methodology][2] was +used to perform the risk analysis. Prevalence ratings were decided from a +consensus among the project team members, based on their experience in the +field. For considerations on these matters, please refer to the [API Security +Risks][3] section. + +The initial draft was then shared for review with security practitioners with +relevant experience in the API security fields. Their comments were reviewed, +discussed, and when applicable included in the document. The resulting document +was [published as a Release Candidate][4] for [open discussion][5]. Several +[community contributions][6] were included into the final document. + +The list of contributors is available in the [Acknowledgments][7] section. + +## API Specific Risks + +The list is built to address security risks that are more specific to APIs. + +It does not imply that other generic application security risks don't exist in +API based applications. For example, we didn't include risks such as "Vulnerable +and Outdated Components" or "Injection", even though you might find them in API +based applications. These risks are generic, they don't behave differently in +APIs, nor their exploitation is different. + +Our goal is to increase the awareness of security risks that deserve special +attention in APIs. + +[1]: https://owasp.org/www-project-api-security/announcements/cfd/2022/ +[2]: https://www.owasp.org/index.php/OWASP_Risk_Rating_Methodology +[3]: ./0x10-api-security-risks.md +[4]: https://owasp.org/www-project-api-security/announcements/2023/02/api-top10-2023rc +[5]: https://github.com/OWASP/API-Security/issues?q=is%3Aissue+label%3A2023RC +[6]: https://github.com/OWASP/API-Security/pulls?q=is%3Apr+label%3A2023RC +[7]: ./0xd1-acknowledgments.md diff --git a/editions/2023/en/0xd1-acknowledgments.md b/editions/2023/en/0xd1-acknowledgments.md new file mode 100644 index 000000000..19bfb30a3 --- /dev/null +++ b/editions/2023/en/0xd1-acknowledgments.md @@ -0,0 +1,13 @@ +# Acknowledgments + +## Acknowledgments to Contributors + +We'd like to thank the following contributors who contributed publicly on +GitHub, or via other means: + +247arjun, abunuwas, Alissa Knight, Arik Atar, aymenfurter, Corey J. Ball, cyn8, +d0znpp, Dan Gordon, donge, Dor Tumarkin, faizzaidi, gavjl, guybensimhon, Inês +Martins, Isabelle Mauny, Ivan Novikov, jmanico, Juan Pablo, k7jto, LaurentCB, +llegaz, Maxim Zavodchik, MrPRogers, planetlevel, rahulk22, Roey Eliyahu, Roshan +Piyush, securitylevelup, sudeshgadewar123, Tatsuya-hasegawa, tebbers, vanderaj, +wenz, xplo1t-sec, Yaniv Balmas, ynvb diff --git a/editions/2023/en/images/cover.jpg b/editions/2023/en/images/cover.jpg new file mode 100644 index 000000000..db6e87f8d Binary files /dev/null and b/editions/2023/en/images/cover.jpg differ diff --git a/editions/2023/en/images/front-cc.png b/editions/2023/en/images/front-cc.png new file mode 100644 index 000000000..45f139804 Binary files /dev/null and b/editions/2023/en/images/front-cc.png differ diff --git a/editions/2023/en/images/front-wasp.png b/editions/2023/en/images/front-wasp.png new file mode 100644 index 000000000..5a163dd4b Binary files /dev/null and b/editions/2023/en/images/front-wasp.png differ diff --git a/editions/2023/en/images/license.png b/editions/2023/en/images/license.png new file mode 100644 index 000000000..124d3ba4d Binary files /dev/null and b/editions/2023/en/images/license.png differ diff --git a/editions/2023/en/images/owasp-logo.png b/editions/2023/en/images/owasp-logo.png new file mode 100644 index 000000000..b0af38b27 Binary files /dev/null and b/editions/2023/en/images/owasp-logo.png differ diff --git a/editions/2023/mkdocs.yml b/editions/2023/mkdocs.yml new file mode 100644 index 000000000..98a46f03a --- /dev/null +++ b/editions/2023/mkdocs.yml @@ -0,0 +1,7 @@ +site_name: editions/2023 +docs_dir: . + +extra: + alternate: + - name: English + lang: en diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 000000000..b2c6f76bb --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,41 @@ +site_name: OWASP API Security Top 10 +site_description: The Ten Most Critical API Security Risks +site_author: OWASP API Security Project team +site_url: https://owasp.org/API-Security/ + +copyright: '© Copyright 2023 - OWASP API Security Project team' + +repo_name: 'OWASP/API-Security' +repo_url: 'https://github.com/OWASP/API-Security' + +theme: + name: material + custom_dir: docs/overrides + language: en + favicon: assets/images/favicon.png + logo: assets/images/icon.png + features: + - navigation.tabs + - navigation.indexes + - navigation.footer + - search.suggest + +extra: + social: + - icon: fontawesome/brands/twitter + link: https://twitter.com/APItop10 + +extra_css: + - assets/stylesheets/extra.css + +plugins: + - monorepo + - search: + lang: en + +nav: + - Home: + - 'README.md' + - 'How-to Contribute': ./CONTRIBUTING.md + - 2023: '!include ./editions/2023/mkdocs.yml' + - 2019: '!include ./editions/2019/mkdocs.yml'