Skip to content

Commit 36a2e23

Browse files
committed
refactor(2023): Automated threats
"Lack of Protection from Automated Threats" was renamed "Unrestricted Access to Sensitive Business Flows". The category was rewritten to make it more clear. It was moved from 8th to 6th since it should required a lot more effort to create awareness about the risk.
1 parent 18d2594 commit 36a2e23

File tree

6 files changed

+53
-43
lines changed

6 files changed

+53
-43
lines changed

2023/en/src/0x00-toc.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ Table of Contents
1313
* [API3:2023 Broken Object Property Level Authorization](0xa3-broken-object-property-level-authorization.md)
1414
* [API4:2023 Unrestricted Resource Consumption](0xa4-unrestricted-resource-consumption.md)
1515
* [API5:2023 Broken Function Level Authorization](0xa5-broken-function-level-authorization.md)
16-
* [API6:2023 Server Side Request Forgery](0xa6-server-side-request-forgery.md)
17-
* [API7:2023 Security Misconfiguration](0xa7-security-misconfiguration.md)
18-
* [API8:2023 Lack of Protection from Automated Threats](0xa8-lack-of-protection-from-automated-threats.md)
16+
* [API6:2023 Unrestricted Access to Sensitive Business Flows](0xa6-unrestricted-access-to-sensitive-business-flows.md)
17+
* [API7:2023 Server Side Request Forgery](0xa7-server-side-request-forgery.md)
18+
* [API8:2023 Security Misconfiguration](0xa8-security-misconfiguration.md)
1919
* [API9:2023 Improper Inventory Management](0xa9-improper-inventory-management.md)
2020
* [API10:2023 Unsafe Consumption of APIs](0xaa-unsafe-consumption-of-apis.md)
2121
* [What's Next For Developers](0xb0-next-devs.md)

2023/en/src/0x04-release-notes.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ a fast pace industry. It does not replace other TOP 10's. In this edition:
2424
common root cause: object property level authorization validation failures.
2525
* We've put more emphasis on resource consumption, over focusing on the pace
2626
they are exhausted.
27-
* We've created a new category "Lack of Protection from Automated Threats" to
28-
address new threats, including most of those that can be mitigated using rate
29-
limiting.
27+
* We've created a new category "Unrestricted Access to Sensitive Business Flows"
28+
to address new threats, including most of those that can be mitigated using
29+
rate limiting.
3030
* We added "Unsafe Consumption of APIs" to address something we've started
3131
seeing: attackers have started looking for a target's integrated services to
3232
compromise those, instead of hitting the APIs of their target directly. This

2023/en/src/0x11-t10.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ OWASP Top 10 API Security Risks – 2023
88
| API3:2023 - Broken Object Property Level Authorization | 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. |
99
| API4:2023 - Unrestricted Resource Consumption | 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. |
1010
| API5:2023 - Broken Function Level Authorization | 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. |
11-
| API6:2023 - Server Side Request Forgery | 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. |
12-
| API7:2023 - Security Misconfiguration | 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. |
13-
| API8:2023 - Lack of Protection from Automated Threats | 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. |
11+
| API6:2023 - Unrestricted Access to Sensitive Business Flows | 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. |
12+
| API7:2023 - Server Side Request Forgery | 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. |
13+
| API8:2023 - Security Misconfiguration | 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. |
1414
| API9:2023 - Improper Inventory Management | 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. |
1515
| API10:2023 - Unsafe Consumption of APIs | 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. |
1616

2023/en/src/0xa8-lack-of-protection-from-automated-threats.md renamed to 2023/en/src/0xa6-unrestricted-access-to-sensitive-business-flows.md

Lines changed: 42 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
API8:2023 Lack of Protection from Automated Threats
2-
===================================================
1+
API6:2023 Unrestricted Access to Sensitive Business Flows
2+
=========================================================
33

44
| Threat agents/Attack vectors | Security Weakness | Impacts |
55
| - | - | - |
@@ -8,51 +8,60 @@ API8:2023 Lack of Protection from Automated Threats
88

99
## Is the API Vulnerable?
1010

11-
Automated threats have become more profitable, smarter and harder to protect
12-
from, and APIs are often used as an easy target for them. Traditional
13-
protections, such as rate limiting and captchas become less effective over time.
14-
For example, an attacker who operates bot-nets (for scalping) gets around rate
15-
limiting because they can easily access the API from thousands of location/IP
16-
addresses around the world, in a matter of seconds.
11+
When creating an API Endpoint, it is important to understand which business flow
12+
it exposes. Some business flows are more sensitive than others, in the sense
13+
that excessive access to them may harm the business.
1714

18-
Vulnerable APIs don't necessarily have implementation bugs. They simply expose
19-
a business flow - such as buying a ticket, or posting a comment - without
20-
considering how the functionality could harm the business if used excessively
21-
in an automated manner.
15+
Common examples of sensitive business flows and risk of excessive access
16+
associated with them:
2217

23-
Each industry might have its own specific risks when it comes to automated
24-
threats.
18+
* Purchasing a product flow - an attacker can buy all the stock of a high-demand
19+
item at once and resell for a higher price (scalping)
20+
* Creating a comment/post flow - an attacker can spam the system
21+
* Making a reservation - an attacker can reserve all the available time slots
22+
and prevent other users from using the system
2523

26-
An API endpoint is vulnerable if it exposes a business-sensitive functionality,
27-
and allows an attacker to harm the business by accessing it in an excessive
28-
automated manner.
24+
The risk of excessive access might change between industries and businesses.
25+
For example - creation of posts by a script might be considered as a risk of
26+
spam by one social network, but encouraged by another social network.
2927

30-
The [OWASP Automated Threats to Web Applications][1] covers different types of
31-
automated threats and their impact.
28+
An API Endpoint is vulnerable if it exposes a sensitive business flow, without
29+
appropriately restricting the access to it.
3230

3331
## Example Attack Scenarios
3432

3533
### Scenario #1
3634

37-
A technology company announces they are going to release a new gaming console
38-
on Thanksgiving. The product has a very high demand and the stock is limited.
39-
An attacker, operator of a network of automated threats, writes code to
40-
automatically buy the new product and complete the transaction.
35+
A technology company announces they are going to release a new gaming console on
36+
Thanksgiving. The product has a very high demand and the stock is limited. An
37+
attacker writes code to automatically buy the new product and complete the
38+
transaction.
4139

4240
On the release day, the attacker runs the code distributed across different IP
4341
addresses and locations. The API doesn't implement the appropriate protection
44-
and allows the attacker to buy the majority of the stock before other
45-
legitimate users.
42+
and allows the attacker to buy the majority of the stock before other legitimate
43+
users.
4644

4745
Later on, the attacker sells the product on another platform for a much higher
4846
price.
4947

50-
5148
### Scenario #2
5249

50+
An airline company offers online ticket purchasing with no cancellation fee. A
51+
user with malicious intentions books 90% of the seats of a desired flight.
52+
53+
A few days before the flight the malicious user canceled all the tickets at
54+
once, which forced the airline to discount the ticket prices in order to fill
55+
the flight.
56+
57+
At this point, the user buys herself a single ticket that is much cheaper than
58+
the original one.
59+
60+
### Scenario #3
61+
5362
A ride-sharing app provides a referral program - users can invite their friends
54-
and gain credit for each friend who has joined the app. This credit can be
55-
later used as cash to book rides.
63+
and gain credit for each friend who has joined the app. This credit can be later
64+
used as cash to book rides.
5665

5766
An attacker exploits this flow by writing a script to automate the registration
5867
process, with each new user adding credit to the attacker's wallet.
@@ -78,11 +87,12 @@ The mitigation planning should be done in two layers:
7887
solutions, thus more costly for them
7988
* Human detection: using either captcha or more advanced biometric solutions
8089
(e.g. typing patterns)
81-
* Non-human patterns: analyze the user flow to detect non-human patterns
82-
(e.g. the user accessed the "add to cart" and "complete purchase"
83-
functions in less than one second)
90+
* Non-human patterns: analyze the user flow to detect non-human patterns (e.g.
91+
the user accessed the "add to cart" and "complete purchase" functions in
92+
less than one second)
8493
* Consider blocking IP addresses of Tor exit nodes and well-known proxies
85-
* Secure and limit access to APIs that are consumed directly by machines (such
94+
95+
Secure and limit access to APIs that are consumed directly by machines (such
8696
as developer and B2B APIs). They tend to be an easy target for attackers
8797
because they often don't implement all the required protection mechanisms.
8898

2023/en/src/0xa6-server-side-request-forgery.md renamed to 2023/en/src/0xa7-server-side-request-forgery.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
API6:2023 Server Side Request Forgery
1+
API7:2023 Server Side Request Forgery
22
=====================================
33

44
| Threat agents/Attack vectors | Security Weakness | Impacts |

2023/en/src/0xa7-security-misconfiguration.md renamed to 2023/en/src/0xa8-security-misconfiguration.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
API7:2023 Security Misconfiguration
1+
API8:2023 Security Misconfiguration
22
===================================
33

44
| Threat agents/Attack vectors | Security Weakness | Impacts |

0 commit comments

Comments
 (0)