Methods and systems for API deception environment and API traffic control and security
The present invention relates to the field of networking and API/application security. In particular, the invention is directed towards methods, systems and computer program products for Application Programming Interface (API) based flow control and API based security at the application layer of the networking protocol stack. The invention additionally provides an API deception environment to protect a server backend from threats, attacks and unauthorized access.
1. A method, comprising:
receiving, at a proxy and from a client device, a client message intended for a server backend;
identifying a target application programming interface (API) from the client message;
in response to identifying that the target API is not hosted by the server backend, dynamically generating a decoy API associated with the target API; and
in response to identifying that the target API is not hosted by the server backend, routing the client message via the decoy API such that network communication is initiated with the client device via the decoy API.
2. The method of claim 1 , further comprising:
recording information associated with the network communication with the client device.
3. The method of claim 1 , wherein the decoy API and the target API have identical names.
4. The method of claim 1 , wherein the decoy API emulates the target API and precludes access to the server backend.
5. The method of claim 1 , wherein the decoy API is configured to identify an attack pattern associated with the client device and store an indication of the attack pattern in a library of attack patterns.
6. The method of claim 1 , further comprising:
in response to identifying that the target API is hosted by the server backend, routing the client message to the server backend.
7. An apparatus, comprising:
a memory; and
a processor of a proxy operatively coupled to the memory, the processor configured to:
receive, from a client device, a client message intended for a server backend;
identify a target application programming interface (API) from the client message;
identify the target API as a decoy API; and
in response to identifying the target API as the decoy API, route the client message via the decoy API such that network communication is initiated with the client device via the decoy API.
8. The apparatus of claim 7 , wherein the processor is configured to record information associated with the network communication with the client device.
9. The apparatus of claim 7 , wherein the target API and the decoy API have identical names.
10. The apparatus of claim 7 , wherein the decoy API emulates the target API and precludes access to the server backend.
11. The apparatus of claim 7 , wherein the decoy API is one of an out-of-context API or an in-context API.
12. The apparatus of claim 7 , wherein the routing the client message via the decoy API is at a first time, the processor configured to discard a subsequent client message from the client device at a second time after the first time without sending the client message to the server backend.