IP Library Granted Patent US 11,645,144
Granted Patent B2
US 11,645,144 · App. 16/694,823 · Granted May 9, 2023

Methods and systems securing an application based on auto-learning and auto-mapping of application services and APIs

Inventors: Amit Jain (Santa Clara, CA); Gopi Krishna (Saratoga, CA); Pratik Roychowdhury (Menlo Park, CA)
Assignee: VMware, Inc.
G06F11/0793G06F11/302H04L41/5058H04L67/51
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,645,144
App. No.
16/694,823
Granted
May 9, 2023
Kind
B2
Abstract

A computerized method for securing an application based on auto-learning and auto-mapping of application services and application programming interfaces (APIs), includes the step of providing a distributed application security mesh system. The method includes the step of implementing a learning mode of the distributed application security mesh system. This includes learning a set of services and a set of APIs that are used by the set of services to interact with each other. The service comprises an application service. This includes creating a record of the set of services. The record comprises a list of services that are currently active in a specified environment of the distributed application security mesh system, and a list of interactions of the services. The method includes the step of implementing an enforcing mode of the distributed application security mesh system. This includes determining that there is a deviation from a state of at least one record of the set of services provided during the learning mode. This includes implementing a mechanism for the review of the deviations by administrators of the systems and updating the learned state or to take an action based on the review.

Claims (87)

1. A computerized method comprising:

providing a distributed application security mesh system comprising a controller and a plurality of distributed proxy agents implemented within a cloud computing platform;

implementing a learning mode of the distributed application security mesh system, the learning mode comprising:

learning a state for each application service of a set of application services of the cloud computing platform and a set of APIs that are used by respective application services of the set of application services to interact with each other, wherein learning the state of the set of application services and the set of APIs comprises:

determining, as the set of application services, those application services that are i) active in an environment of the distributed application security mesh system and ii) that are interacting with one or more other application services or external users,

determining one or more categories for each application service of the set of application services based on attributes of interactions of the application service with one or more other application services, and

determining unique pairs of interacting application services; and

implementing an enforcing mode of the distributed application security mesh system, the enforcing mode comprising:

determining that there is a deviation in a state of a particular application service from the learned state for each application service of the set of application services, and

performing an action in response to determining the deviation.

2. The computerized method of claim 1 , wherein the set of application services are learned based on one or more of:

using a service discovery mechanism provided by a platform on which the application is deployed;

using a manually entered configuration of the platform on which the application is deployed; or

using traffic inspection in the application environment.

3. The computerized method of claim 1 , wherein the attributes used to determine the one or more categories for each application service comprise one or more of:

a protocol of the application service,

an administrator assigned attribute to the application service, or

an administrator assigned attribute to the API that is being provided by the application service when the application service is interacting with external users or external services.

4. The computerized method of claim 1 further comprising:

generating a service dependency map from the list of interactions of each application service of the list of application services; and

generating an API dependency map from the list of API interactions of each application service of the list of application services.

5. The computerized method of claim 1 , wherein the learning of the state for each of the application services and APIs comprises:

determining APIs used by each application service to interact with one or more other application services;

determining the application services that are interacting with external users or services; and

determining a schema of the set of APIs, wherein the schema of an API governs the format and structure of the API.

6. The computerized method of claim 5 , wherein the learning of the state of each of the application services and APIs comprises:

determining a rate of requests per second at which each API of the set of APIs is invoked;

determining an invocation sequence of each API of the set of APIs with respect to the other APIs of the set of APIs; and

determining an amount of data that is transmitted or received by the application service.

7. The computerized method of claim 6 , wherein the learning of the state of each of the application services and APIs comprises:

determining the resource usage of the application services including one or more of CPU, memory, or network usage; and

determining the resource usage of the APIs including one or more of CPU, memory, or network usage.

8. The computerized method of claim 1 , wherein determining that there is a deviation in a state of a particular application service from the learned state for each application service of the set of application services comprises:

for each API of the set of APIs, determining a deviation from the learned state, wherein the deviation from the learned state comprises one or more of:

determining that a new application service that was not determined to be in the set of application services during the learning mode and has become active in the environment;

determining a new unique pair of interacting application services that was not determined during the learning mode; or

determining a new category for a particular application service of the set of application services than the one or more categories for the particular application service determined during the learning mode.

9. The computerized method of claim 1 , wherein determining that there is a deviation in a state of a particular application service from the learned state for each application service of the set of application services comprises:

for each API of the set of APIs, determining a deviation from the learned state, wherein the deviation from the learned state comprises one or more of:

determining that a particular application service of the set of application services starts using an API that it was not previously used by the particular application service during the learning mode; or

determining that a particular application service of the set of application services starts to interact with external users or applications that were not determined as interactions during the learning mode.

10. The computerized method of claim 1 , wherein determining that there is a deviation in a state of a particular application service from the learned state for each application service of the set of application services comprises:

for each API of the set of APIs, determining a deviation from the learned state, wherein the deviation from the learned state comprises one or more of:

a change in a rate at which the application service invokes the API;

a change in an amount of data that is transmitted or received by the application service; or

a change in an invocation sequence in which the application service invokes the API.

11. The computerized method of claim 1 , wherein determining that there is a deviation in a state of a particular application service from the learned state for each application service of the set of application services comprises:

for each API of the set of APIs, determining a deviation from the learned state, wherein the deviation from the learned state comprises one or more of:

a change in a schema of the API;

a change in a request origin geo-location; or

a change in a user identifier associated with an API request; and

in response to determining the deviation, a specified application service associated with the deviation is shut down, stopped or mitigated in a specified manner.

12. The computerized method of claim 1 , wherein implementing the enforcing mode of the distributed application security mesh system further comprises:

communicating the deviation to a system administrator for review either manually or programmatically through a script; and

wherein performing the action comprises implementing a particular action specified by the system administrator.

13. The computerized method of claim 1 , wherein performing the action in response to determining the deviation comprises one or more of:

blocking the interaction between application services such that the deviation is no longer observed;

blocking the specific application service that is causing deviation such that deviation is no longer observed; or

blocking a specific API that is causing deviation such that the deviation is no longer observed.

14. The computerized method of claim 1 , wherein performing the action in response to determining the deviation comprises one or more of:

logging the interaction between application services such that the deviating behavior is logged but the application services are allowed to interact;

logging the activity from a specific application service such that the deviating behavior is logged but the application service is allowed to be active in the environment; or

logging the specific API requests and responses such that deviating behavior is logged but the API is continued to be allowed in the environment.

15. The computerized method of claim 1 , wherein performing the action in response to determining the deviation comprises one or more of:

remediating the deviation by controlling a rate of API requests; or

accepting the deviating behavior such that the specific deviating behavior then is added to the learned state that the a subsequent instance of the behavior does not lead to a determination of a deviation.

16. A system comprising:

a plurality of hardware computing devices configured to implement respective application services of a cloud-computing platform; and

a distributed application security mesh comprising a controller and a plurality of proxy agents implemented within the cloud computing platform, the distributed application security mesh configured to provide a learning mode and an enforcement mode,

wherein the learning mode comprises:

learning a state for each application service of a set of application services of the cloud computing platform and a set of APIs that are used by respective application services of the set of application services to interact with each other, wherein learning the state of the set of application services and the set of APIs comprises:

determining, as the set of application services, those application services that are i) active in an environment of the distributed application security mesh system and ii) that are interacting with one or more other application services or external users,

determining one or more categories for each application service of the set of application services based on attributes of interactions of the application service with one or more other application services, and

determining unique pairs of interacting application services; and

wherein the enforcement mode comprises:

determining that there is a deviation in a state of a particular application service from the learned state for each application service of the set of application services, and

performing an action in response to determining the deviation.

17. One or more non-transitory machine readable media comprising instructions that when executed by a data processing system causes the data processing system to perform operations comprising:

providing a distributed application security mesh system comprising a controller and a plurality of distributed proxy agents implemented within a cloud computing platform;

implementing a learning mode of the distributed application security mesh system, the learning mode comprising:

learning a state for each application service of a set of application services of the cloud computing platform and a set of APIs that are used by respective application services of the set of application services to interact with each other, wherein learning the state of the set of application services and the set of APIs comprises:

determining, as the set of application services, those application services that are i) active in an environment of the distributed application security mesh system and ii) that are interacting with one or more other application services or external users,

determining one or more categories for each application service of the set of application services based on attributes of interactions of the application service with one or more other application services, and

determining unique pairs of interacting application services;

implementing an enforcing mode of the distributed application security mesh system, the enforcing mode comprising:

determining that there is a deviation in a state of a particular application service from the learned state for each application service of the set of application services, and

performing an action in response to determining the deviation.

Assignments (3)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 28, 2021
From: MESH7, INC.
To: VMWARE, INC.
Reel/Frame 056074/0301 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 25, 2020
From: JAIN, AMIT; KRISHNA, GOPI; ROYCHOWDHURY, PRATIK
To: MESH7, INC.
Reel/Frame 054748/0643 →