OWASP API Security Top 10 2019 Has Been Published
The Open Web Application Security Project (OWASP) is the non-profit organization behind the OWASP Top 10. As the application development landscape changes and evolves so does the security requirements and focus on refining the details of cybersecurity protections.
The OWASP Top 10 focuses on web application security there is a growing aspect to applications and communications with the cloud revolution using Application Programming Interface (API) more heavily. Even though APIs are part of a web application there is enough difference between them, how they work and how they are used that required a separate document specifically addressing API security.
A summary explanation between the two goes like this. Web applications are generally processed server-side, with the presentation being sent to and rendered in a browser. This limits the network access points that can be protected through firewall appliances.
APIs work very differently, pulling data from the server-side to process and send between client-side components. This moves the data away from the server to the client-side which has more access points, more sensitive data is pulled away from the data sources and the footprint increases exponentially.
Although there are similarities of security, API security and Architecture have unique aspects that required direct attention.
The OWASP API Security Top 10 list is the focused document that does just that.
Here is the first API Security Top 10 list:
|API1:2019 – Broken Object Level Authorization||APIs tend to expose endpoints that handle object identifiers,
creating a wide attack surface Level Access Control issue. Object-level authorization checks should be considered in every function that accesses a data source using input from the user.
|API2:2019 – Broken User Authentication||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 system’s ability to identify the client/user, compromises API security overall.|
|API3:2019 – Excessive Data Exposure||Looking forward to generic implementations, developers tend to expose all object properties without considering their individual sensitivity, relying on clients to perform the data filtering before displaying it to the user.|
|API4:2019 – Lack of Resources & Rate Limiting||Quite often, APIs do not impose any restrictions on the size or
number of resources that can be requested by the client/user. Not only can this impact the API server performance, leading to Denial of Service (DoS), but it also leaves the door open to authentication flaws such as brute force.
|API5:2019 – Broken Function Level
|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 gain access to other users’ resources and/or administrative functions.
|API6:2019 – Mass Assignment||Binding client provided data (e.g., JSON) to data models, without proper properties filtering based on a whitelist, usually lead to Mass Assignment. Either guessing objects properties, exploring other API endpoints, reading the documentation or providing additional object properties in request payloads allows attackers to modify object properties they are not supposed to.|
|API7:2019 – Security Misconfiguration||Security misconfiguration is commonly a result of insecure
default configurations, incomplete or ad-hoc configurations, open cloud storage, misconfigured HTTP headers, unnecessary HTTP methods, permissive Cross-Origin resource sharing (CORS), and verbose error messages containing sensitive information.
|API8:2019 – Injection||Injection flaws, such as SQL, NoSQL, Command Injection, etc., occur when untrusted data is sent to an interpreter as part of a command or query. The attacker’s malicious data can trick the interpreter into executing unintended commands or accessing data without proper authorization.|
|API9:2019 – Improper Assets Management||APIs tend to expose more endpoints than traditional web
applications, making proper and updated documentation highly important. Proper hosts and deployed API versions inventory also play an important role to mitigate issues such as deprecated API versions and exposed debug endpoints.
|API10:2019 – Insufficient Logging & Monitoring||Insufficient logging and monitoring, coupled with missing or
ineffective integration with incident response, allows attackers to further attack systems, maintain persistence, pivot to more
systems to tamper with, extract, or destroy data. Most breach
studies demonstrate the time to detect a breach is over 200 days, typically detected by external parties rather than internal processes or monitoring.
Be aware, be safe.