As cyber attackers continue to take advantage of vulnerable people, processes, and technology, they are now expanding their operations beyond “traditional” targets. It seems that nothing is outside of their jurisdiction and no one is 100 percent safe from their malicious campaigns. Although organizations are making strides in the right direction to protect themselves, as soon as one attack vector is thwarted, another quickly becomes exposed.
Today’s adversaries are now focusing their efforts on APIs in particular, which are quickly becoming the new attack frontier. In fact, recent reports suggest that by 2022, API abuses will be the vector most responsible for data breaches within enterprise Web applications. This is primarily due to the extensive growth of API implementations world-wide, providing a new target that hasn’t been widely exploited as of yet. With this, protecting APIs is becoming more important than ever.
While the concepts of API security are somewhat new, the attacks that can be performed through them are not. Most organizations have been experiencing similar threats targeting their networks and internet-facing applications for years. Now, they must focus their efforts on mobile apps, APIs, and back-end servers being targeted by similar methods as seen in the past. Before discussing the risks associated with today’s APIs, we must first understand exactly what makes them unique and vulnerable.
API-based apps are significantly different than traditional applications. In the past, users / visitors would access a webserver via a browser (for example) and most of the “data processing” was performed on the server itself. As client devices became more varied, and increasingly powerful with faster CPUs, extensive memory, more bandwidth etc., much of the logic moved away from being performed on back-end servers to the front-end (i.e. on the client device itself) as highlighted in the graphic below.
When viewing the graphic, we see that in the modern application at the bottom, the downstream server acts more like a proxy for the data consumed by the API-based app. The rendering component in this instance is the client who consumes the raw data, not the server itself. Let me further explain.
Many can remember the early days of using smartphones and traditional websites when trying to reserve a flight, for example. People would open a browser on their phone and attempt to use an airline website that was designed for a large computer monitor, not a small smartphone screen. This didn’t work too well, and as a consequence, companies began to update their websites by making them more smartphone friendly. Although this improved the client’s experience, it still was quite cumbersome to navigate and complete an airline reservation.
As a result, airlines, hotels, car rental companies, etc. began to develop their own mobile apps. Instead of trying to reserve a flight using a mobile-friendly version of the airline’s website and a browser on their phone, people now download and install the airline’s mobile app and use it exclusively when reserving flights directly from their smartphones. Concerning how this operates in conjunction with APIs, what’s different?
Well, when making a flight reservation using an airline mobile app, the app uses API calls that are interacting with back-end servers primarily to retrieve data about flight schedules, availability, pricing, seats, etc. The app is also interacting with the user, allowing them to specify travel dates, departure and arrival cities, seat selection, and purchase options. In this case, the smartphone is performing almost all of the processing load of the flight reservation within the mobile app itself, without the usage of a browser. Although this has tremendously improved the flight reservation experience overall when using a smartphone, it begs the question: are APIs just as vulnerable to cyberattacks as browser-based applications?
Unfortunately, APIs are also exposed to attacks and at a very high level, API security issues do exist similar to their browser-based counterparts. However, since APIs expose the underlying implementation of a mobile app, and the user’s state is usually maintained and monitored by the client app, plus more parameters are sent in each HTTP request (object IDs, filters, etc.), some of the security issues surrounding APIs are rather unique. For the most part, these issues lead to vulnerabilities that can be categorized into three unique areas of concern:
- Exposing sensitive data
- Intercepted communications
- Launching denial of service (DoS) attacks against back-end servers
As a result of a broadening threat landscape and the ever-increasing usage of APIs throughout the entire industry, I, along with Inon Shkedy, Head of Research at Salt Security, have been spearheading the OWASP API Security Top 10 Project. The Project is designed to help organizations, developers, and AppSec teams become more aware of the risks they face daily in the context of APIs. So, what makes this project so important?
According to the Project’s site, “a foundational element of innovation in today’s app-driven world is the 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 APIs 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, have increasingly become a target for attackers. Without secure APIs, rapid innovation would be impossible.”
The OWASP API Security Project aims to develop, release, and track an ongoing Top 10 List of the risks that organizations face concerning their usage of APIs, similar to OWASP Top 10 Most Critical Web Application Security Risks. From broken object level authorization to insufficient logging and monitoring, this list rounds up the most critical API risks facing businesses, while also providing example attack scenarios and recommendations for mitigating these threats. Please note that the Top 10 List is in the “request for comments” stage and commenters and contributors are welcome to review the draft and add any input prior to September 25th.
In our next installment of this three part series, we’ll begin to dive into the specific API security risks presented in the Top 10 list and what all organizations can be doing to address these concerns. At the end of the day, enterprises that take advantage of APIs to enhance their business offerings, streamline their operations, improve their customers’ experience, and grow their revenues need to take a long, hard look to determine where attackers can take advantage of the vulnerabilities that are being inadvertently introduced. There is no doubt that organizations must address these concerns now, or soon they will face the consequences of not doing so.
*** This is a Security Bloggers Network syndicated blog from Blog – Checkmarx authored by Erez Yalon. Read the original post at: https://www.checkmarx.com/2019/09/13/why-you-need-api-security/