Before we understand why API security is one of the most important aspects of modern application security we first need to define and understand modern application security. And before we can define and understand modern application security, we have to understand how modern applications are different from traditional applications. Well, that sounds like we need a blog series. And just like that, we have one.
In this first part, let’s call it Part I, we’ll compare traditional and modern application architectures. In part 2 we’ll dive into modern app security and outline the requirements needed to protect modern applications. And last but not least, in part 3 we finally get to API security.
Without further ado, let’s get into part 1.
Let’s start with a quick refresher on the “Traditional” application architecture so we’re all on the same page.
You get the picture. Now, fast forward to today and we’ve got, what at present time is referred to as modern, cloud-native application architectures! Let’s take a look:
The Cloud: Modern applications live “in the cloud”. Cloud providers offer different levels of abstractions (IaaS, PaaS, SaaS) but long story short, these apps run in the cloud.
Business Logic is Highly Distributed: Applications are decentralized with business logic spread across services.
Microservices: Large applications are broken down into smaller components or services.
Deployment Orchestration: Containers and Kubernetes (K8S) make it easier to connect and manage large numbers of microservices.
Continuous Integration / Continuous Delivery (CI/CD): Software teams develop features using agile methodologies and continuously deliver new code to production.
DevOps: Developers and operations work together to manage and operate the application and development toolchain.
Data Volumes: There’s no shortage of useful data these days and it comes in many shapes and sizes that require more databases than your standard RDBMS (sorry Oracle).
Cloud / 3rd Party Services: Not all application functionality needs to be created in-house. Most apps integrate 3rd party services, using APIs, to beef up application functionality without reinventing the wheel. Or the storage bucket.
Devices became more powerful: When I was a kid, iPhones only had 1 camera! What a time.
Client Varietals: Today there are more types of clients - from traditional web browsers to native mobile apps to (purposely) exposing your own APIs to other developers.
Client Muscle: Modern frontend frameworks (Angular, React.js) allow developers to write complex logic that runs efficiently in the client. Clients now render visual components that used to render server-side.
More Calls, More Parameters: Clients maintain user state locally and trigger API calls when data or an action is needed. This is done at the component level vs the page, so the number of calls is higher and the number of parameters sent to the server is higher as well.
In part 2 of our series we cover the security requirements for modern applications.
"Before we understand why API security is one of the most important aspects of modern application security we first need to define and understand modern application security."
Recommended reads.